Javascript.положить скрипт в div, используя getElementById - PullRequest
0 голосов
/ 03 марта 2012

Проще говоря, когда пользователь щелкает текст javascript, такой как «480p», я хочу, чтобы этот текст активировал функцию javascript, которая просто помещает в div сценарий для видеопроигрывателя, который затем загружает другое видео другого качества. ,

YouTube является ярким примером. В тот день, когда youtube был молодым, если вы хотите изменить качество, проигрыватель будет сброшен.

В моей функции JavaScript у меня есть document.getElementById('videoplayer').innerHTML="<script language=\"JavaScript\">flowplayer(\"player\", \"swf location\", {clip:{data}}); </scr"+"ipt>";

Когда я делаю это, он перезаписывает div с моими данными, но скрипт не будет воспроизводиться / активироваться в div, что перезагрузит видеоплеер с новым потоком

Какие-нибудь советы?

Спасибо

Ответы [ 3 ]

1 голос
/ 03 марта 2012

почему бы не использовать вместо него 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>
0 голосов
/ 03 марта 2012

Поскольку вы уже выполняете JavaScript для изменения DOM, почему бы не вызвать эту функцию напрямую?

Вместо

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

просто сделай

flowplayer("player", "swf location", {clip:{data}});
0 голосов
/ 03 марта 2012

, когда вам нужно сгенерировать ответ AJAX в DIV, используйте eval () и не забывайте, что не все браузеры поддерживают createElement

...