如果它不需要很漂亮并且你可以做一些类似黑客的事情,这应该强制解除绑定到该元素的每个点击侦听器:
var el = document.querySelector('a[rel]');
el.onclick = function() {};
el.addEventListener = function() {};
或对于每个元素:
Array.prototype.slice.call(document.querySelectorAll('a[rel]')).forEach(function(el) {
el.onclick = function() {};
el.addEventListener = function() {};
});
编辑:您可能会做一些更丑陋的事情,并在“document_start”处运行内容脚本并执行以下操作:
Element.prototype.addEventListener = (function() {
var real = Element.prototype.addEventListener;
return function(ev) {
if (ev === 'click' && this.tagName === 'A' && this.hasAttribute('rel')) {
console.log('try again, jquery!');
} else {
return real.apply(this, arguments);
}
};
})();