繁体   English   中英

加载Java脚本后一切都消失了

[英]Everything disappears on Javascript load

当我通过Body onload="playVideo();"启动该功能时 视频结束后,除背景视频外,网站上的所有内容均消失了。

我的功能(开始播放随机视频):

function playVideo() {
  var videos = [
    '1.mp4',
    'Lil Pump - _Gucci Gang_ (Official Music Video).mp4',
  ];
  var reloadCss = '<link rel="stylesheet" href="video.css"/>'
  var index = Math.floor(Math.random() * videos.length);
  var html = '<video autoplay="autoplay" preload="true" id="Background" onended="playVideo()"><source src="Videos/' + videos[index] + '" type="video/mp4"></video>';
  document.write(html);
  document.write(reloadCss);
}

您的页面已替换为通过document.write放置的视频html。

W3schools说了有关do​​cument.write的内容:

write()方法将HTML表达式或JavaScript代码写入文档。

write()方法主要用于测试:如果在完全加载HTML文档后使用它,它将删除所有现有的HTML。

您可以像尝试使用的那样,使用jQuery append函数添加动态html。 请参见下面的代码片段,以获取快速示例。 您的视频和脚本标签只是显示为空白,但是您可以看到append方法仅添加html而不是像建议的注释那样替换页面。

如果要使用普通javascript,也可以使用javascript appendChild()函数

 $(function(){ //Run your playvideo function on page load playVideo(); }) function playVideo() { var videos = [ '1.mp4', 'Lil Pump - _Gucci Gang_ (Official Music Video).mp4', ]; var reloadCss = '<link rel="stylesheet" href="video.css"/>' var index = Math.floor(Math.random() * videos.length); var html = '<video autoplay="autoplay" preload="true" id="Background" onended="playVideo()"><source src="Videos/' + videos[index] + '" type="video/mp4"></video>'; //Use append rather than setting the document html to add //elements. Otherwise the whole page html will be replaced $content = $(".content"); $content.append(html); $content.append(reloadCss); $content.append("<p>More content</p>"); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <body> <div class="content"> <p>Content</p> </div> </body> </html> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM