Javascript 使用YUI更改IE 8中脚本标记的内容

Javascript 使用YUI更改IE 8中脚本标记的内容,javascript,internet-explorer,yui,Javascript,Internet Explorer,Yui,以下脚本在Firefox中运行良好,但在IE8中崩溃,错误为“未知运行时错误” 唯一的区别是有时它会给出更有用的错误“意外调用方法或属性访问”,这让我认为脚本标记的文本不能在IE中更改 在IE中处理表元素时,我在四处搜索时发现了很多关于上述问题的引用,但这些情况下的解决方法似乎不适用于脚本标记 有什么办法可以在IE中完成以上内容吗?(我只在IE8中测试了这个问题,但我认为在6,7中问题是相同的) 谢谢 这里有一个解决问题的变通方法,可以在IE 8中使用(尚未检查6,7) 似乎只有在创建脚本标记时

以下脚本在Firefox中运行良好,但在IE8中崩溃,错误为“未知运行时错误”

唯一的区别是有时它会给出更有用的错误“意外调用方法或属性访问”,这让我认为脚本标记的文本不能在IE中更改

在IE中处理表元素时,我在四处搜索时发现了很多关于上述问题的引用,但这些情况下的解决方法似乎不适用于脚本标记

有什么办法可以在IE中完成以上内容吗?(我只在IE8中测试了这个问题,但我认为在6,7中问题是相同的)


谢谢

这里有一个解决问题的变通方法,可以在IE 8中使用(尚未检查6,7)

似乎只有在创建脚本标记时才能设置文本,因此,我不想像问题中的代码那样尝试更新文本,只要想更改文本,我就删除并重新创建脚本标记(这在FF中也适用)

例如:

YUI().use('node', function (Y) {

    var writeToScript = function(text) {
        if (Y.one('#asdf') != null)
            Y.one('#asdf').remove();
        Y.one('head').append(Y.Node.create("<script id='asdf'>"+ text + " </script>"));
    }

    writeToScript("Hello there!");
    console.log( Y.one('#asdf').get('innerHTML') );
    writeToScript("How are you?");
    console.log( Y.one('#asdf').get('innerHTML') );
    writeToScript("Goodbye");
    console.log( Y.one('#asdf').get('innerHTML') );
});
YUI()。使用('node',函数(Y){
var writeToScript=函数(文本){
if(Y.one('#asdf')!=null)
Y.one(“#asdf”).remove();
Y.one('head').append(Y.Node.create(“+text+”));
}
writeToScript(“你好!”;
log(Y.one('#asdf').get('innerHTML');
writeToScript(“你好吗?”);
log(Y.one('#asdf').get('innerHTML');
书面脚本(“再见”);
log(Y.one('#asdf').get('innerHTML');
});
但是,如果有人能解释为什么设置文本没有如问题中所述起作用,或者如果您有其他方法来完成此操作而不删除/重新添加(这对性能有害吗?),请添加您的答案,我将投票!!这项工作使这项工作变得不那么紧迫,但我仍然很好奇

Y.one('#testel').set('innerHtml', 'Wish this would work in IE!');
Y.one('#testel').set('html', 'Wish this would work in IE!');
Y.one('#testel').setContents('Wish this would work in IE!');
YUI().use('node', function (Y) {

    var writeToScript = function(text) {
        if (Y.one('#asdf') != null)
            Y.one('#asdf').remove();
        Y.one('head').append(Y.Node.create("<script id='asdf'>"+ text + " </script>"));
    }

    writeToScript("Hello there!");
    console.log( Y.one('#asdf').get('innerHTML') );
    writeToScript("How are you?");
    console.log( Y.one('#asdf').get('innerHTML') );
    writeToScript("Goodbye");
    console.log( Y.one('#asdf').get('innerHTML') );
});