我有一个像这样的按钮:
<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>
标签,因此不会显示视频
感谢您的帮助!
答案 0 :(得分:0)
重新加载Page后,原本应该在重新加载后执行的所有Javascript将不再执行。
如果希望在重定向后运行Javascript onPageLoad
,则需要运行它。也许您可以检查当前位置onPageLoad
,并且如果它包含哈希,您是否要运行其余的Javascript代码?这取决于您要实现的目标。
如果您只是使用location.reload()
到达页面的某个位置,则只需使用document.getElementById(tag_id).scrollIntoView();
-无需刷新页面。