第三方有一个外部脚本,可以将流式网络摄像头显示到现有的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控制台中没有错误。
答案 0 :(得分:0)
您的脚本可能违反了Javascript Same Origin Policy。在这种情况下,它不会正确评估。
答案 1 :(得分:0)
卫生署!外部js调用的脚本创建了第二个脚本,该脚本将事件添加到onLoad。这是一个调用函数来加载播放器的事件。