ie6/7脚本标记填充"意外调用方法或属性访问"

Aar*_*ken 2 javascript internet-explorer internet-explorer-7 internet-explorer-6

我使用AJAX来获取脚本的内容,然后使用以下代码:

    var scr = document.createElement('script');
    scr.appendChild(document.createTextNode(script)); // ***
    document.getElementsByTagName('head')[0].appendChild(scr);
Run Code Online (Sandbox Code Playgroud)

哪里script是ASTRING从AJAX填充.这适用于IE9,Chrome和Firefox.但是,在IE6和7中我收到一个错误:

意外调用方法或属性访问

IE给出了用数字表示的行数// ***.

虽然还有其他许多问题,但似乎都没有解决这个问题.

ken*_*bec 6

较旧的IE不接受脚本元素中的子节点(或者在样式和选项元素中,但这是另外两个问题).

您可以改为设置脚本元素的文本属性.(scripttext是一串脚本文本.)

var scr = document.createElement('script');
if(window.addEventListener)scr.appendChild(document.createTextNode(script))
else scr.text=scripttext;
document.getElementsByTagName('head')[0].appendChild(scr);
Run Code Online (Sandbox Code Playgroud)