onclick事件:在追加HTML脚本之前刷新页面

时间:2018-07-31 08:10:50

标签: javascript onclick

我有一个像这样的按钮:

<button onclick="buttonMovieEvent('123')">Watch</button>

我的目的是当我单击该按钮时,它将调用buttonMovieEvent('123')函数,使页面刷新,移至哈希,例如:http://example.com/#123,然后附加HTML脚本以显示视频

我的代码:

function buttonMovieEvent(videoId){
  var hash = "#" + videoId;
  window.location.href += hash;
  location.reload();
  ...
  // build script tag
  var script = "<h3>Watching Movie:<br /></h3><video id=\"" + tag_id + "\" class=\"vjs-matrix video-js vjs-big-play-centered\" controls preload=\"auto\" width=\"1024\" height=\"768\" poster=\"" + poster + "\" data-setup='{}'><source src=\"" + src1 + "\" type='video/mp4'><source src=\"" + src2 + "\" type='video/webm'><p class=\"vjs-no-js\">To view this video please enable JavaScript, and consider upgrading to a web browser that<a href=\"http://videojs.com/html5-video-support/\" target=\"_blank\">supports HTML5 video</a></p></video>";

  $("#movie_show").append(script);
  eventController(tag_id);
}

但是,每当我单击按钮时,页面都会刷新,并且还会删除<video>标签,因此不会显示视频

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

重新加载Page后,原本应该在重新加载后执行的所有Javascript将不再执行。

如果希望在重定向后运行Javascript onPageLoad,则需要运行它。也许您可以检查当前位置onPageLoad,并且如果它包含哈希,您是否要运行其余的Javascript代码?这取决于您要实现的目标。

如果您只是使用location.reload()到达页面的某个位置,则只需使用document.getElementById(tag_id).scrollIntoView();-无需刷新页面。