动态加载的外部脚本不会被评估

时间:2015-03-05 21:52:21

标签: javascript jquery

第三方有一个外部脚本,可以将流式网络摄像头显示到现有的div中。有多个网络摄像头可用,因此我想在用户选择要查看的网络摄像头后触发脚本。

供应商的嵌入代码包括一个显示视频流的div和一个调用javascript文件的脚本标记。

<div id="player_cam1"></div>
<script type="text/javascript" src="[url for cam1 external .js]"></script>

当相同的脚本标记嵌入静态页面时,脚本会在播放器div中放置一个flash对象。

如果我在用户点击链接选择摄像头后使用jquery将脚本标签添加到页面,我可以在fiddler中看到javascript文件加载状态为200并且返回的响应是相同的因为脚本标记在加载之前在页面源中。回报是

的eval(函数(){...})

但是,当通过jQuery添加标签时,flash播放器不会嵌入div中。

javascript控制台中没有错误。

如果我使用

,就会发生同样的事情
jQuery.getScript([url for cam1 external .js]);

总而言之,页面加载时会出现脚本标记 - 一切正常,页面加载后添加脚本标记,未嵌入Flash播放器。

作为测试,我将脚本标记返回的js复制到本地文件,并在函数的任一侧发出警报。当页面加载时出现该标记时,Flash播放器会正确嵌入。当动态添加时,会弹出警报,但不会嵌入Flash播放器。再次,在javascript控制台中没有错误。

2 个答案:

答案 0 :(得分:0)

您的脚本可能违反了Javascript Same Origin Policy。在这种情况下,它不会正确评估。

答案 1 :(得分:0)

卫生署!外部js调用的脚本创建了第二个脚本,该脚本将事件添加到onLoad。这是一个调用函数来加载播放器的事件。