试图编写Javascript在YouTube iFrame嵌入中循环
我试图为我的用户编写一个插入式YouTube嵌入播放器,但失败了,因此他们只需更改一行即可更改页面上的任何和所有YouTube播放器。我正在把这个放到我的页面上,但是什么也没发生试图编写Javascript在YouTube iFrame嵌入中循环,javascript,html,arrays,iframe,youtube,Javascript,Html,Arrays,Iframe,Youtube,我试图为我的用户编写一个插入式YouTube嵌入播放器,但失败了,因此他们只需更改一行即可更改页面上的任何和所有YouTube播放器。我正在把这个放到我的页面上,但是什么也没发生 <script> // Replace line below with video id(s), e.g. ["dQw4w9WgXcQ"] or ["dQw4w9WgXcQ","b1WWpKEPdT4"] var ids = ["dQw4w9WgXcQ","b
<script>
// Replace line below with video id(s), e.g. ["dQw4w9WgXcQ"] or ["dQw4w9WgXcQ","b1WWpKEPdT4"]
var ids = ["dQw4w9WgXcQ","b1WWpKEPdT4"];
//
//
var idsAmount = ids.length;
for (var i in idsAmount) {
document.write("<iframe src=\"https://www.youtube.com/embed/" + ids[i] + "?modestbranding=1&rel=0&autoplay=1\" /> <br />");
};
</script>
//将下面的行替换为视频id,例如[“dQw4w9WgXcQ”]或[“dQw4w9WgXcQ”、“b1WWpKEPdT4”]
变量id=[“dQw4w9WgXcQ”,“b1WWpKEPdT4”];
//
//
var idsAmount=ids.length;
对于(var i,单位:金额){
文件。写(“
”);
};
控制台中没有错误。知道为什么什么都没发生吗
编辑:这是我最后的工作代码:
<script>
// Replace line below with video id(s), e.g. ["dQw4w9WgXcQ"] or ["dQw4w9WgXcQ","b1WWpKEPdT4"]
var ids = ["dQw4w9WgXcQ","b1WWpKEPdT4"];
//
if (ids.length == 1) {
document.write("<iframe width=\"640px\" height=\"360px\" src=\"https://www.youtube.com/embed/" + ids + "?modestbranding=1&rel=0&autoplay=1\" frameborder=\"0\" allowfullscreen></iframe>");
document.write("<br />");
}
else {
for (var i = 0; i < ids.length; i++) {
document.write("<iframe width=\"640px\" height=\"360px\" src=\"https://www.youtube.com/embed/" + ids[i] + "?modestbranding=1&rel=0\" frameborder=\"0\" allowfullscreen></iframe>");
document.write("<br /> <br />");
};
};
</script>
//将下面的行替换为视频id,例如[“dQw4w9WgXcQ”]或[“dQw4w9WgXcQ”、“b1WWpKEPdT4”]
变量id=[“dQw4w9WgXcQ”,“b1WWpKEPdT4”];
//
如果(id.length==1){
文件。填写(“”);
文件。写(“
”);
}
否则{
对于(变量i=0;i
”);
};
};
首先,您要转义2个不需要转义的引号(用于串联),而且循环是错误的,应该如下所示:
<script>
// Replace line below with video id(s), e.g. ["dQw4w9WgXcQ"] or ["dQw4w9WgXcQ","b1WWpKEPdT4"]
var ids = ["dQw4w9WgXcQ","b1WWpKEPdT4"];
//
//
for (var i = 0; i < ids.length; i++) {
document.write("<iframe src=\"https://www.youtube.com/embed/" + ids[i] + "?modestbranding=1&rel=0&autoplay=1\" /> <br />");
};
</script>
//将下面的行替换为视频id,例如[“dQw4w9WgXcQ”]或[“dQw4w9WgXcQ”、“b1WWpKEPdT4”]
变量id=[“dQw4w9WgXcQ”,“b1WWpKEPdT4”];
//
//
对于(变量i=0;i ”);
};
与其使用document.write()
和for…
循环,我建议只需迭代数组本身,使用array.prototype.map()
,创建一个HTML节点数组,该数组本身可以被迭代,以将这些节点附加到文档片段中,然后可以将其附加到指定的DOM节点:
//视频ID数组:
变量ID=[“dQw4w9WgXcQ”,“b1WWpKEPdT4”],
//创建元素:
iframeElement=document.createElement('iframe'),
//创建文档片段:
fragment=document.createDocumentFragment(),
//统一化(未定义)变量供以后使用:
克隆
//迭代ID数组,创建新的
//使用array.prototype.map()的数组:
html=ids.map(函数(currentID){
//在匿名函数中,第一个
//参数(此处为:“currentID”)是
//数组的当前数组元素
//我们正在迭代。
//克隆:
var clone=iframelement.cloneNode();
//设置克隆对象的src属性
// :
clone.src=https://www.youtube.com/embed/“+currentID+”?默认值=1&rel=0&autoplay=0';
//请注意,“自动播放”已设置为
//原则上设置为“0”。
//将修改后的克隆返回到阵列
//我们正在创造:
返回克隆;
//迭代从返回的数组
//并将每个
//文档片段的数组元素:
}).forEach(函数(iframe){
片段.appendChild(iframe);
});
//将文档片段附加到body元素:
document.body.appendChild(片段)代码>是否已验证正在生成的iframe src。看起来你是在逃避一个“
。这很好。非常感谢!我很感激!没问题。很乐意帮助。嗯。你知道为什么页面上只显示第一个视频id,而不是每个循环的视频id吗?