Javascript。使用getElementById将脚本放入div

Javascript。使用getElementById将脚本放入div,javascript,javascript-events,video-streaming,innerhtml,video-processing,Javascript,Javascript Events,Video Streaming,Innerhtml,Video Processing,简单地说,当用户单击javascripted文本(如“480p”)时,我希望该文本激活一个javascript函数,该函数只需将视频播放器的脚本放入div中,然后加载另一个不同质量的视频 YouTube就是一个很好的例子。回到youtube还年轻的时候,如果你想改变质量,那么播放器就会被重置 在我的javascript函数中,我有document.getElementById('videoplayer').innerHTML=“flowplayer(\'player\”,\'swf locati

简单地说,当用户单击javascripted文本(如“480p”)时,我希望该文本激活一个javascript函数,该函数只需将视频播放器的脚本放入div中,然后加载另一个不同质量的视频

YouTube就是一个很好的例子。回到youtube还年轻的时候,如果你想改变质量,那么播放器就会被重置

在我的javascript函数中,我有
document.getElementById('videoplayer').innerHTML=“flowplayer(\'player\”,\'swf location\”,{clip:{data}});”

当我这样做时,它确实会用我的数据覆盖div,但是脚本不会在div中播放/激活,这会用新的流重新加载视频播放器

有什么建议吗


谢谢,

当您需要在DIV中生成AJAX应答时,请使用eval()
不要忘记,并非所有浏览器都支持createElement,因为您已经在执行javascript来修改DOM,为什么不直接调用该函数呢

而不是

document.getElementById('videoplayer').innerHTML="<script language=\"JavaScript\">flowplayer(\"player\", \"swf location\", {clip:{data}}); </scr"+"ipt>";

为什么不改用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>

函数doit(){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.innerHTML=“flowplayer(\“player\”,\“swf位置\”,{clip:{data}});”;
document.getElementById('videoplayer').appendChild(脚本);
}
...

加载页面后,用脚本填充div不会触发脚本运行。@cale\b您认为我该怎么办?我从一些人那里看到了“createelement”、“setattribute”等,他们说他们已经做到了。这通常是可行的,但flowplayer也可以通过使用href填充具有指定ID和指定文件位置的锚定标记来工作。因此,即使我调用了flowplayer函数,它也会引用锚点标记内的静态文件位置。快速提问<代码>变量脚本=document.createElement(“脚本”)哪里有“脚本”,引用的是什么?外部.js文件?您指的是哪些浏览器?请参阅:W3C DOM Level 2 HTML为定义了一个add方法,但没有为options集合定义。但是,使用该方法很困难,因为IE使用不同的参数实现了同名的方法。
<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>