由于您尚未分享您的代码或结构的摘录,因此我们只能提供有限的建议。尝试这样的事情(假设你的引导模式被包裹在一个容器用id #myModal
):
$('#myModal a').on('click', function(e) {
e.preventDefault();
/* your own logic to handle the click if you want */
return false;
});
这将阻止(在这种情况下,导航)的所有锚标签的默认操作,你可以添加自己的自定义处理程序,如果你想提醒用户他们要离开网站(在这种情况下不要返回false
)。
更新:由于您的场景中的嵌入式播放器可能具有自己的导航链接,因此上述代码段将不起作用。您可以做的最好的方法是检测导航并提示用户确认他们是否真的想从您的网站导航。
首先设置以下事件处理程序当用户点击视频链接检测和即将被导航离开该页面:
window.onbeforeunload = function() {
if (window.isPlayingVideo) {
return "Are you sure you want to stop playing the video and leave the website?";
}
}
然后,当用户点击视频缩略图打开该模式的玩家,并开始播放视频,设置以下标志:
window.isPlayingVideo = true;
这将提示用户确认,如果他们想离开页面(确切的UI依赖于浏览器)。请注意,您仍然无法禁用代码中的导航。你所能做的就是给用户一个选择。
这取决于您从哪个网站上嵌入视频(例如** **版权**)例如YouTube有一个按钮,用于观看“YouTube.com”上的视频,查找支持流行网站API的播放器(以获得视频来源永久链接) –
那么有没有什么办法可以提醒用户他们将要离开网站?视频嵌入链接是用户提交的,我无法控制是否有视频可能来自的特定网站的API。 – ThatGuy343
你可以使用''''unload'''和/或''''beforeunload'''方法,这些方法在浏览器行为(浏览器版本)上有所不同,但是你仍然必须区分导航是否启动通过点击和什么是通过地址栏条目和/或关闭标签/窗口。保留一个点击计时器或者指定点击URL的有效性的另一个变量。 – cbayram