js页面重定向跳转被阻拦

JavaScript015

js页面重定向跳转被阻拦,第1张

常规页面location.href跳转被阻止时,不涉及前端部分。

也有可能是浏览器本身对于http和https的证书验证拦截,并非bug。

以下为https在大部分浏览器标识。

部分浏览器会因以下原因阻止页面的重定向。

在链接后面加上没有什么意义的字符来做追踪。

举个例子:

原始链接为:xxx.html

加上追踪代码:xxx.html?&from=qq

(这里的?&from=qq就是没有什么意义的,不会影响解析)然后可以通过服务器日志(比如apache访问日志)来看这个链接(xxx.html?&from=qq)的记录。有多个IP进入则说明可以跳转的。

实际上能从聊天窗口跳转的链接会自动地在链接后面加上腾讯的标记:类似"&tdsourcetag=s_pctim_aiomsg" 这样的后缀(你不需要刻意手动添加)。通过服务器访问日志可以找到类似的记录的。

用js 判断的话:

用window.location.toString()获取当前浏览器当前页面的地址。

然后用正则表达式: /(tdsourcetag)/g 去测试匹配。

如返回true,则说明可以跳转。false则不是通过点击链接进来。

JS阻止关闭和跳转页面方法如下:

window.onbeforeunload = function(){

    return '要显示的提示内容'

}

onbeforeunload:在即将离开当前页面(刷新或关闭)时执行 JavaScript :

定义和用法

onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。

该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。

对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 "确定要离开此页吗?"。该信息不能删除。

但你可以自定义一些消息提示与标准信息一起显示在对话框。