简单地说,当用户点击诸如" 480p"之类的javascripted文本时,我希望该文本激活一个javascript函数,该函数只是将一个视频播放器的脚本放入div中,然后加载另一个不同质量的视频。
YouTube是一个很好的例子。回到youtube年轻的时候,如果你想改变质量,玩家就会被重置。
在我的javascript函数中,我有document.getElementById('videoplayer').innerHTML="<script language=\"JavaScript\">flowplayer(\"player\", \"swf location\", {clip:{data}}); </scr"+"ipt>";
当我这样做时,它会用我的数据覆盖div,但脚本不会在div中播放/激活,这将使用新流重新加载视频播放器
任何提示?
谢谢,
答案 0 :(得分:1)
为什么不使用createElement?
<html>
<head>
<script type="text/javascript">
function doit() {
var script = document.createElement("script");
script.type = "text/javascript";
script.innerHTML = "flowplayer(\"player\", \"swf location\", {clip:{data}});";
document.getElementById('videoplayer').appendChild(script);
}
</script>
</head>
<body>
<div id="videoplayer">...</div>
<input type="button" value="doit" onclick="doit()" />
</body>
</html>
答案 1 :(得分:0)
由于您已经在执行javascript以修改DOM,为什么不直接调用该函数?
而不是
document.getElementById('videoplayer').innerHTML="<script language=\"JavaScript\">flowplayer(\"player\", \"swf location\", {clip:{data}}); </scr"+"ipt>";
只是做
flowplayer("player", "swf location", {clip:{data}});
答案 2 :(得分:-1)
当你需要在DIV中生成AJAX答案时使用eval() 并且不要忘记并非所有浏览器都支持createElement