由于您要求这样做以隐藏关联链接,因此可能会有更好的方法。
它循环遍历所有链接(比如说,在广泛的$("a.out")
选择器下,然后获取并存储它们的真实href到元素存储中,替换为一个虚拟元素(以及标题属性,如果必须),然后附加一个单击事件处理程序,停止默认事件,读回原始href并将其设置为location.href,从而有效地将链接隐藏到所有已启用js的链接上。
例如mootools中的代码:
(function() {
var links = document.getElements("a.out");
links.each(function(el) {
// save original
el.store("href", el.get("href"));
// replace it.
el.set("href", el.get("data-link"));
el.addEvents({
click: function(e) {
e.stop();
// console.log(e);
document.location.href = this.retrieve("href");
},
contextmenu: function(e) {
e.stop();
// do something on right click so we dont get caught
alert("hi");
}
});
});
})();
它在这个标记上工作得很好:
<a href="http://www.energyhelpline.com/energy/rg_home.aspx?aid=107" rel="nofollow" class="out" title="Enegry savings" data-link="http://www.energyhelpline.com/">Swap Energy Provider</a><br />
<a href="http://www.moneysupermarket.com/link.asp?Source=MSE&Section=utils" rel="nofollow" class="out" title="Money supermarket" data-link="http://www.moneysupermarket.com/">Money Supermarket</a>
数据链接包含我们向最终用户展示的内容。
你可以做ID,如果你允许它你浏览器。你有哪个浏览器? – 2010-11-30 14:56:05