禁用任何网站中的所有超链接

时间:2014-04-21 08:14:45

标签: javascript firefox web chromium

有没有办法使用javascript禁用任何网站中的所有超链接?

我想要这样做的原因是文本选择。许多网站都将整个文本块放在标签中,这使得选择文本变得很困难。

我在kubuntu 13.10上使用chrome和firefox。

5 个答案:

答案 0 :(得分:4)

要禁用所有链接,请使用

$('a').bind("click.myDisable", function() { 
   return false; 
});

并启用它

$('a').unbind("click.myDisable");

答案 1 :(得分:2)

是的。您可以使用Greasemonkey插件用于Firefox,Tampermonkey用于Chrome,以实现此目的。

<强>更新

在greasemonkey中使用它。它将用跨度替换所有链接。通过这种方式,可以像普通文本一样选择它们:

// @require       http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.js

(function($) {
    $.fn.changeElementType = function(newType) {
        var attrs = {};

        $.each(this[0].attributes, function(idx, attr) {
            attrs[attr.nodeName] = attr.nodeValue;
        });

        this.replaceWith(function() {
            return $("<" + newType + "/>", attrs).append($(this).contents());
        });
    };
})(jQuery);

$('a').changeElementType('span');

(效果不佳):

脚本可以是:

var links = document.getElementsByTagName('a');
for(var i=0;i<links.length;i++)
{
  links[i].href='#';
  links[i].onclick = function(){  return false; };
}

答案 2 :(得分:2)

使用Rob G所说的,我删除的答案完全不同。

for (var x=document.links.length-1;x>=0;x--) {
document.links[x].removeAttribute("href")
}

答案 3 :(得分:0)

function replaceA(element) {
    for (var i=element.children.length-1;i>=0;i--) {
        var getChild = element.children[i];
        if (getChild.tagName == "A") {
            element.innerHTML = element.innerHTML.replace(getChild.outerHTML,getChild.innerHTML);
        } else {
            replaceA(getChild);
        }
    }
}

window.onload = function(){replaceA(document.body)};

有点hacky,基本上当页面加载时,它将仅用他们的innerHTML文本替换所有链接。如果您想使用它而不是在页面加载时,只需删除window.onload部分,并在您希望使用它时调用replaceA(document.body)

答案 4 :(得分:0)

根据这个论坛帖子,有一些选择:

  1. 我通常将其粘贴到&#39; TextEdit&#39;并确保TexEdit将字体显示为纯文本。然后从TexEdit复制链接或文本并将其粘贴到Pages。
  2. 打开Inspector面板。选择名为&#34; Link Inspector&#34;的第二个最后一个选项卡,然后突出显示链接本身。单击&#34;启用为超链接&#34;复选框关闭,它将消失。
  3. 在“页面”偏好设置中,“&#34;自动修正”&#34;选项卡到&#34;自动检测电子邮件和网址&#34;。如果您粘贴的内容包含网址或电子邮件地址,那就不应该发生这种情况。
  4. 希望有所帮助。