2014-12-07 126 views
0

我在密码保护的网站上使用它,所以我无法与您分享一个URL。我正在尝试使用document.write在JS调用中将某些HTML白化,以便根据一天中的时间显示不同的YouTube视频。它似乎只用文本工作,而不用其他任何东西。我已经尝试了许多不同的方法,其中没有一个似乎可行。下面是我在做什么:使用document.write编写HTML导致尝试嵌入YouTube的错误

<script type="text/javascript" language="JavaScript"> 
var myDate = new Date(); 
/* hour is before noon */ 
if (myDate.getHours() >= 12 && myDate.getHours() <= 18) 
{ 
    document.write('<iframe width=\"100%\" height=\"340px\" src=\"http://youtu.be/MswheXWqlbQ\" frameborder=\"0\" allowfullscreen></iframe>'); 
} 
else /* the hour is not between 0 and 24, so something is wrong */ 
{ 
    document.write('<iframe width=\"100%\" height=\"340px\" src=\"//www.youtube.com/embed/MswheXWqlbQ\" frameborder=\"0\" allowfullscreen></iframe>'); 
} 
</script> 
+2

在[?为什么文件撰写认为是“不好的做法”]你可能想看看(http://stackoverflow.com/questions/802854/为什么是文档编写被认为是一个坏习惯) – 2014-12-07 01:30:52

+0

虽然不相关,但当用单引号引用字符串时,不需要使用双引号。 – outlyer 2014-12-07 01:44:19

+0

是的,我认为innerHTML可能是比document.write昨晚更好的方法。 – 2014-12-07 17:56:56

回答

1

使用官方YouTube嵌入网址:

http://youtube.com/embed/VIDEO_ID代替youtu.be这是造成跨站请求错误。

0

感谢您的建议。我找到了一个innerHTML脚本,我尝试了它,它似乎工作正常。

这是我的新的脚本:

<script> 
function dynamicYT(){ 

    var d = new Date(); 
    var h = d.getHours(); 

if ((h>=0 && h<=5) || (h>=18 && h<= 23)) 
{ 
    document.getElementById("bgText").innerHTML='<iframe width="560" height="315" src="http://youtube.com/embed/MswheXWqlbQ" frameborder="0" allowfullscreen></iframe>'; 
} else { 
    document.getElementById("bgText").innerHTML='<iframe width="420" height="315" src="http://youtube.com/embed/PKrzVIOvvQU" frameborder="0" allowfullscreen></iframe>'; 
} 
} 
window.onload = dynamicYT; 
</script>