我正在使用Bootstrap构建站点,并创建了带有某些链接的导航栏。索引页面由导航栏和带有单个div的主体组成,该主体通过jQuery的ajax功能(取决于导航栏中单击的链接,该页面显示在div中)来提取内容(我创建的页面)。
该网站面向有权根据我创建的文件夹设置访问页面的用户(如果用户有权访问文件夹,则可以查看其中的页面)。它在大多数情况下都能正常工作,但是当没有访问页面权限的用户单击链接时,我认为错误页面会显示在div中。但是,它只会使用户完全离开站点跳到错误页面。
我的解决方案是使用jQueryunload
事件。我把它放在一个.js文件中:
$( window ).unload(function() {
alert( "Bye now!" );
});
但是,当我单击任何外部链接,关闭浏览器或刷新页面时,都会显示一个弹出窗口。我只希望在用户单击特定链接(具有id类的链接)时激活它。我想让他们知道他们单击了他们无权访问的链接,并且如果他们没有停留在该页面上,它们将被转发到错误页面。我将如何去做呢?
因此,例如,所有用户都可以访问“技术”页面,因此,当他们单击导航栏上的该链接时,该链接将被提取并显示在div ID“结果”中。但是,只有部分用户可以访问页面“检查”;只有部分用户可以访问页面“检查”。对于那些访问该页面的用户,对于那些没有访问该页面的用户,会将其从我的页面重定向到外部错误页面。我希望弹出警告,以便他们知道他们没有访问权限,并且如果他们点击打开的链接,他们将最终出现在错误页面上。
-更新2 ---使用Genuis先生的代码使其正常工作,但是我还有最后一个问题。我实现了代码,并为无法访问链接的用户显示了一个弹出窗口(正是我想要发生的情况),但是当他们单击“确定”按钮或单击弹出窗口上的“ x”按钮时,他们仍会转发到错误页面。反正有禁用它吗?我尝试使用此代码更新卸载功能(Genuis先生提供的功能),并且可以正常工作(它为用户提供了选择停留在当前页面上的选项,以防止错误页面被加载),但是当用户尝试关闭浏览器页面。我只希望它在单击链接时触发。这是我使用的代码:
$(window).bind('beforeunload', function(){ return '>>>>>Before You Go<<<<<<<< \n Your custom message go here'; })
我真的不确定您的方法是否适合给定的问题。
关于有条件地激活窗口卸载事件,
将卸载事件的联播移动到链接单击事件内,这样,仅在需要时才联结窗口卸载事件。不总是!
更新:
像下面这样。仅用于说明目的。
警告:我觉得这种方法有异味。
$(".link").click(function(){
if(true){//Your condition check goes here.
$( window ).unload(function() {
alert( "Bye now!" );
});
}
else{
window.location.href = "someurl";
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句