Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 调试和绕过禁用网页上的文本选择_Jquery_Html_Css - Fatal编程技术网

Jquery 调试和绕过禁用网页上的文本选择

Jquery 调试和绕过禁用网页上的文本选择,jquery,html,css,Jquery,Html,Css,我是一名新的Web开发人员,我喜欢调查各种网站如何实现奇怪的功能。我看到了以下网页: 首先,我很好奇他们是如何禁用所有选择的。这真令人印象深刻。他们是怎么做到的 我首先查找了user select:none,尤其是在body元素和其他地方,但找不到它。然后我查找对jquery.disableSelection的调用。$document.ready中似乎有一个,但它似乎适用于一小部分,即仅适用于应用某个类的情况。我真的很好奇这些家伙是如何实现禁用选择的,因为即使是Ctrl+a也似乎不起作用。这将是

我是一名新的Web开发人员,我喜欢调查各种网站如何实现奇怪的功能。我看到了以下网页:

首先,我很好奇他们是如何禁用所有选择的。这真令人印象深刻。他们是怎么做到的

我首先查找了user select:none,尤其是在body元素和其他地方,但找不到它。然后我查找对jquery.disableSelection的调用。$document.ready中似乎有一个,但它似乎适用于一小部分,即仅适用于应用某个类的情况。我真的很好奇这些家伙是如何实现禁用选择的,因为即使是Ctrl+a也似乎不起作用。这将是一个很好的网站上有我的工作

相反,我很好奇是否有办法使这种行为失效。例如,我使用。我是否可以在JavaScript控制台中运行任何命令,或者动态更改CSS以禁用此行为?当然,只有当我知道这是如何实现的,我才能尝试这些更改

如果有任何帮助,我将不胜感激。我正在使用FireFox和Chrome中最新的浏览器。

他们正在调用。禁用选择。他们只是没有像你说的那样称呼它。以下是从网站来源直接复制/粘贴的内容

第629行,如果单击“查看源”

$(document).on('click', '.thumbActions button', thumbHandler).disableSelection();
:

禁用文本选择是错误的。不要用这个

下面的代码也直接取自网站的源代码,应该使它的实际工作方式更加明显

(function($){
    $.fn.disableSelection = function() {
        return this.attr('unselectable', 'on').css('user-select', 'none').on('selectstart', false);
    };
    $.fn.enableSelection = function() {
        return this.attr('unselectable', 'off').css('user-select', 'all').on('selectstart', true);
    };
})(jQuery);
它将CSS规则“用户选择”设置为“无”或“全部”,具体取决于应该选择什么或不应该选择什么。起初我以为这是因为HTML的unSelectable属性,但在实际尝试之后,它似乎什么都没做。也许这是唯一的事情。 不过,用户选择确实有效。

他们正在呼叫。禁用选择。他们只是没有像你说的那样称呼它。以下是从网站来源直接复制/粘贴的内容

第629行,如果单击“查看源”

$(document).on('click', '.thumbActions button', thumbHandler).disableSelection();
:

禁用文本选择是错误的。不要用这个

下面的代码也直接取自网站的源代码,应该使它的实际工作方式更加明显

(function($){
    $.fn.disableSelection = function() {
        return this.attr('unselectable', 'on').css('user-select', 'none').on('selectstart', false);
    };
    $.fn.enableSelection = function() {
        return this.attr('unselectable', 'off').css('user-select', 'all').on('selectstart', true);
    };
})(jQuery);
它将CSS规则“用户选择”设置为“无”或“全部”,具体取决于应该选择什么或不应该选择什么。起初我以为这是因为HTML的unSelectable属性,但在实际尝试之后,它似乎什么都没做。也许这是唯一的事情。
不过,用户选择确实有效。

这会适得其反。我能理解你为什么想知道它是如何工作的,因为它很酷。好奇是件好事。但请不要自己实现这一点。无论如何,您会注意到,如果右键单击文本的一部分,它将设置光标,如果按住shift+向右箭头键,它将允许您选择文本。所以它一定与onClick或类似事件有关。我很好奇为什么你说它会适得其反?一旦我知道某件事是如何运作的,我就会谨慎地使用它,以及如何使用它。然而,这一切都是从知道它是如何工作开始的。我相信这会适得其反,因为,首先;为什么?给我一个合理的理由这样做。这是浪费时间和带宽。为什么您需要/想要阻止用户选择文本。如果他们真的想,他们会找到办法的。四处走动并不难。这就像在一个网站上禁用右键点击,根本没有什么好的理由。主要是因为它实际上不会起任何作用,大多数人都可以绕过它。谢谢你,杰温斯。我明白你说的,我同意你的看法——有时非程序员会决定应该做什么,但如果由我决定,我同意你的看法。贾温斯——我刚刚看到你编辑了你的第一条评论。shift+向右箭头在哪个浏览器中工作?我刚刚意识到,在旧的浏览器中,我们可以选择,所以这种方法不是傻瓜式的。这会适得其反。我能理解你为什么想知道它是如何工作的,因为它很酷。好奇是件好事。但请不要自己实现这一点。无论如何,您会注意到,如果右键单击文本的一部分,它将设置光标,如果按住shift+向右箭头键,它将允许您选择文本。所以它一定与onClick或类似事件有关。我很好奇为什么你说它会适得其反?一旦我知道某件事是如何运作的,我就会谨慎地使用它,以及如何使用它。然而,这一切都是从知道它是如何工作开始的。我相信这会适得其反,因为,首先;为什么?给我一个合理的理由这样做。这是浪费时间和带宽。为什么您需要/想要阻止用户选择文本。如果他们真的想,他们会找到办法的。四处走动并不难。这就像在一个网站上禁用右键点击,根本没有什么好的理由。主要是因为它实际上什么都不会做,
大多数人都可以绕过它。谢谢你,杰温斯。我明白你说的,我同意你的看法——有时非程序员会决定应该做什么,但如果由我决定,我同意你的看法。贾温斯——我刚刚看到你编辑了你的第一条评论。shift+向右箭头在哪个浏览器中工作?我刚刚意识到,在旧的浏览器中,我们可以选择,所以这种方法不是傻瓜式的。当我查看Firebug时,为什么用户选择不显示为属性之一?这是因为它不是标准的吗?很可能你只是没有看到正确的元素。我不确定。我现在不能调查,但我肯定会迟到的。在使用Safari进行检查时,我也看不到用户选择,但正如我所说的,它可能只是一个不同的元素。尝试在控制台中升级到parentNodes并检查属性。非常感谢JhawinssJhawinsss-这个解释似乎很完美。当我查看Firebug时,为什么用户选择不显示为属性之一?这是因为它不是标准的吗?很可能你只是没有看到正确的元素。我不确定。我现在不能调查,但我肯定会迟到的。在使用Safari进行检查时,我也看不到用户选择,但正如我所说的,它可能只是一个不同的元素。尝试在控制台中升级到parentNodes并检查属性。非常感谢Jhawinss