Javascript 元素。appendChild()在IE中阻塞
我有以下javascript:Javascript 元素。appendChild()在IE中阻塞,javascript,internet-explorer,Javascript,Internet Explorer,我有以下javascript: css = document.createElement('style'); css.setAttribute('type', 'text/css'); css_data = document.createTextNode(''); css.appendChild(css_data); document.getElementsByTagName("head")[0].appendChild(css); 出于某种原因,仅在IE中,它会被“css
css = document.createElement('style');
css.setAttribute('type', 'text/css');
css_data = document.createTextNode('');
css.appendChild(css_data);
document.getElementsByTagName("head")[0].appendChild(css);
出于某种原因,仅在IE中,它会被“css.appendChild(css_data);”阻塞
给出错误:“对方法或属性访问的意外调用”
发生了什么事?试试:
var css = document.createElement('style');
css.setAttribute('type', 'text/css');
var cssText = '';
if(css.styleSheet) { // IE does it this way
css.styleSheet.cssText = cssText
} else { // everyone else does it this way
css.appendChild(document.createTextNode(cssText));
}
document.getElementsByTagName("head")[0].appendChild(css);
对于“style”元素,这是特别的,即不允许在其上使用appendChild()方法。不允许将appendChild()与HTMLStyleElement一起使用,即 我尝试了你的建议,但是样式块的内容永远不会被填充。在IE6和IE7中尝试过。。。它似乎什么都没用 这是我修改过的代码:
function load_content()
{
var d = new Date();
css = document.createElement('style');
css.setAttribute('type', 'text/css');
if(css.styleSheet) { css.styleSheet.cssText = 'testing'} //Because IE is evil
else { css_data = document.createTextNode(''); css.appendChild(css_data); } //And everyone else is cool
document.getElementsByTagName("head")[0].appendChild(css);
new Ajax.PeriodicalUpdater('content', '/%doc_path%?'+d.getTime(),
{
method: 'post',
frequency: 5,
onSuccess: function(transport) {
new Ajax.Request('/%css_path%?'+d.getTime(), {
method: 'get',
onSuccess: function(transport) {
if(css.styleSheet) { css.styleSheet.cssText = transport.responseTex}
else {
var new_css_data = document.createTextNode(transport.responseText);
css.replaceChild(new_css_data, css_data);
css_data = new_css_data;
}
}
});
}
});
}
有什么想法吗?两件事:1)如何验证样式块没有获得内容?IE开发者工具栏什么的?2) 不是“测试”而是“尝试”body{font-size:45px;}(iow-try-legal-css)。我有一个bookmarklet,它会显示文档的内存源,而不是文件的源…不确定你对#2css.styleSheet.cssText='body{font-size:45px;}的意思;bookmarklet是否显示页面上其他标记内的css?是的…bookmarklet显示样式标记内的css。它还显示在其他浏览器的特定标记中。嗨,同样的事情是否适用于脚本元素?我遇到了一个类似的问题,但是当我想动态加载javascript代码时,使用了一个脚本元素。。。