我已经注意到DOMSubtreeModified事件已被弃用(这是一个令人遗憾的消息),但我想知道是否有办法检测页面上每个标签的变化(我知道 - 这可能真的很贵,但是它有其目的)。
基本上,我想知道每当创建/修改<a>
标记(节点)时,我都可以快速扫描它的.href,看看它是否与我正在寻找的模式匹配(如果是的话,我想要重定向它来运行我的JS(与此无关),而不是导航到所述链接)。我需要这是通用的(我不知道ID / div /除了它们是<a href>
之外的任何东西,并且它们有我正在寻找的特定URL模式。
我知道对此的支持甚至是不完整的,但现在它只能用作Chrome扩展程序(很快就会推出Firefox,所以我不得不修补它),所以它现在应该没问题
如果有其他问题,请告诉我。谢谢!
答案 0 :(得分:0)
您可以在发生链接操作时捕获它。您正在寻找的模式是什么?这只是“选择”正确<a>
的问题。 jQuery在任何场合都有selectors属性,“以...开头”,“以...结尾”,“包含”,“等于”等等......
$('a[href="http://notHere.com"]').on('click',function(event){
alert("omg don't go there!");
//window.location="http://www.goHere.com";
event.preventDefault();
});
根据评论:
如果您的页面将动态更改,您需要将事件绑定委派给肯定会始终存在的内容,并包含您的目标。
$('body').on('click','a[href="http://notHere.com"]',function(event){
alert("omg don't go there!");
//window.location="http://www.goHere.com";
event.preventDefault();
});
这会将点击处理程序放在<body>
上,并从那里监视相应锚点的点击次数。如果你可以靠近,那就去吧,例如:$('#mainContent')