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

Javascript 禁用任何网站中的所有超链接,javascript,firefox,web,chromium,Javascript,Firefox,Web,Chromium,有没有一种方法可以使用javascript禁用任何网站中的所有超链接 我想这样做的原因是为了文本选择。许多网站都将整段文字放在标签中,这使得选择文字变得困难 我在kubuntu 13.10上使用chromium和firefox。是的。您可以使用Firefox和Chrome插件来实现这一点 更新 在greasemonkey中使用这个。它将用跨距替换所有链接。这样可以像普通文本一样选择它们: // @require http://ajax.googleapis.com/ajax/libs

有没有一种方法可以使用javascript禁用任何网站中的所有超链接

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

我在kubuntu 13.10上使用chromium和firefox。

是的。您可以使用Firefox和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');
/@requirehttp://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.js
(函数($){
$.fn.changeElementType=函数(新类型){
var attrs={};
$.each(此[0]。属性,函数(idx,attr){
attrs[attr.nodeName]=attr.nodeValue;
});
this.replaceWith(函数(){
返回$(“”,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; };
}
var links=document.getElementsByTagName('a');

对于(var i=0;i禁用所有链接,请使用

$('a').bind("click.myDisable", function() { 
   return false; 
});
并使其能够使用

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

有点不对劲,基本上当页面加载后,它会用它们的内部HTML文本替换所有链接。如果你想使用它而不是页面加载时,只需删除window.onload部分,并在你想使用它时调用replaceA(document.body)

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

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

根据本论坛帖子,有以下几种选择:

  • 我通常将其粘贴到“TextEdit”中,并确保TexEdit以纯文本显示字体。然后从TexEdit复制链接或文本并将其粘贴到页面中
  • 打开“检查器”选项板。选择最后一个名为“链接检查器”的选项卡,然后突出显示链接本身。单击“作为超链接启用”复选框以关闭,它将消失
  • 在“页面首选项”中,在“自动更正”选项卡上有一个选项“自动检测电子邮件和web地址”。取消选中该选项,如果粘贴的内容包含URL或电子邮件地址,则不会发生这种情况

  • 希望这会有所帮助。

    您可以循环浏览,这是一个页面中所有链接的集合,并添加一个侦听器以防止导航。或者,只需删除href属性,使它们不再是链接。@RobG您可以测试一下这个技巧吗?在左侧,删除所有href属性后,某些块的行为仍然像lin一样ks。使用这种方法链接确实是禁用的,但文本选择也变得不可能。双击不选择单词,点击并拖动不选择任何内容。元素不一定是链接,它们可能是锚。添加href属性将在它们不在第一位时将它们变成链接。为什么要在每个元素上循环什么时候是页面中所有链接的现成集合?只是知道父元素是什么的一种懒散的方式,这样我就可以替换包含链接的父元素的innerHTML。您的第一个答案效果更好。:)使用此答案,单击链接会将您带到一个未定义的页面。试试这个url:这是一个更好的答案,如果你以后想重新启用链接,你可以重新启用链接,而且它清晰简洁。这并没有回答如何使用javascript清理链接文本的问题。此外,文本编辑、页面和检查器都是Mac应用程序/功能。OP在kubuntu,无法使用这些工具。
    for (var x=document.links.length-1;x>=0;x--) {
    document.links[x].removeAttribute("href")
    }