通过DOM中的javascript附加脚​​本标记并设置其src抛出错误

时间:2012-01-19 19:04:50

标签: javascript internet-explorer

我试图通过JS附加脚本标记并设置其src。以下是代码:

var myscript = document.createElement('script');
myscript.setAttribute('src', 'http://player.ooyala.com/player.js?playerId=player&width=320&height=240&embedCode=thbXMxMzpq0RhOS82Hzx1lma8UMnFN-3&callback=apicallback');
document.getElementById('curr-video').appendChild(myscript);

这样做现代浏览器FF,Chrome,Safari工作正常。

但IE8,7抛出

  

错误[null为null或不是对象player.js]

视频src是ooyala视频服务。

是否有任何解决方案如何添加脚本标记并设置其src(从JSON检索)。

1 个答案:

答案 0 :(得分:0)

当player.js加载页面时,IE7不会出错,但是当动态加载时它会发生错误。此外,如果您忽略错误并让脚本正常工作,则播放器会正常显示。如果你坚持要删除错误,你可以创建一个iframe并在其中加载一个player.html页面,这样你就可以在页面加载时运行你的player.js而没有错误。

<html>
<head>
<script type="text/javascript">
function createIframe (iframeName, width, height) {
    var iframe;
    if (document.createElement && (iframe = document.createElement('iframe'))) {
            iframe.name = iframe.id = iframeName;
            iframe.width = width;
            iframe.height = height;
            iframe.frameBorder = "0";
            iframe.style.border = "none";
            iframe.src = 'about:blank';
            document.body.appendChild(iframe);
    }
    return iframe;
}

function load_item() {
    var iframe = createIframe ('iframe0', 320, 240);
    if (iframe) {
        iframe.src = "player.html";
    }
}
</script>
</head>
<body>
    <a onclick="load_item();">click to load</a>
</body>
</html>

这是player.html:

<html>
<body style="margin: 0px; padding: 0px;">
<script src="http://player.ooyala.com/player.js?........."></script>
</body>
</html>