是否有可能在浏览器打开新标签页事件中使用JavaScript或Jquery捕获超链接的属性?

可以说我有一个超链接<a href="http://example.com/something">MyLink</a>,并使用右键单击链接并打开新标签应该首先警告“ http://example.com

最佳答案

好的,所以这是我能想到的最好的方法,但是效果并不理想。

使页面上的所有链接都指向另一个页面(我们将其称为redir.html)。 redir.html通过URL传递了一个参数,该参数定义了应该随后打开的页面,例如redir.html?page=www.example.com/something。然后,redir.html会执行您想要的任何JavaScript,也许只有在新标签页/窗口中打开了它之后,它才会执行。可以通过检查是否window.history.length === 1来检测到。

redir.html:

<script>
function getParameter(param) {
            var val = document.URL;
            var url = val.substr(val.indexOf(param))
            var n=url.replace(param+"=","");
            return n;
}
var page = getParameter("page");
if(window.history.length === 1)
{
    alert("I opened in a new tab or window");
}

window.location.href = page;
</script>


源页面上的示例锚标记:

<a href="redir.html?page=http://example.com/something">My link</a>


(我从this SO post获得了getParameter函数。)

10-05 21:44