为什么这个javascript不打印出一系列脚本元素

Why does this javascript not print out a series of script elements?

本文关键字:一系列 脚本 元素 打印 javascript 为什么      更新时间:2023-09-26

可能重复:
JavaScript:如何在循环中打印多个脚本标记?

我试图从数组中打印这些元素,但我得到了一个空白屏幕

<div id="playerContainer" style="width: 20em; height: 180px; float: left;">
    <object id="player"></object>
</div>
<div id="videos2"></div><script type = "text/javascript">
for (var i=0; i<arr.length; i++) {
    document.write("<script 
        type="text/javascript" 
        src="http://gdata.youtube.com/feeds/api/videos?q=arr["+i+"] &max-results=8&orderby=relevance&alt=json-in-script&format=5&callback=showMyVideos2">
    </script>");
}
</script>

我的版本-假设arr包含要发送到q=的内容

<div id="playerContainer" style="width: 20em; height: 180px; float: left;">
    <object id="player"></object>
</div>
<div id="videos2"></div><script type="text/javascript">
var text ="";
for (var i=0; i<arr.length; i++) {
  text += '<script type="text/javascript" '+
  'src="http://gdata.youtube.com/feeds/api/videos?q='+arr[i]+
  '&max-results=8&orderby=relevance&alt=json-in-script&format=5&callback=showMyVideos2">'+
  '<'/script>';
}
document.write(text);
</script>
<div id="videos2"></div><script type = "text/javascript">
for (var i=0; i<arr.length; i++) {
    document.write('<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos?q=' + arr[i] + '&max-results=8&orderby=relevance&alt=json-in-script&format=5&callback=showMyVideos2"></scr' + 'ipt>');    
}
</script>
  • 浏览器将看到脚本中的标记并将其关闭
  • 你的报价有问题
  • 你的arr[i]呼叫有问题

试试这个:

<script type = "text/javascript">
    for (var i=0; i<arr.length; i++) {
        document.write('< ' + 'script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos?q='+arr[i]+'&max-results=8&orderby=relevance&alt=json-in-script&format=5&callback=showMyVideos2"><' + '/script>');
    }
</script>

您需要转义引号,拆分脚本标记,使其不会被解析为标记,并在循环中使用arr[i]更改i变量