Jquery 调试和绕过禁用网页上的文本选择
我是一名新的Web开发人员,我喜欢调查各种网站如何实现奇怪的功能。我看到了以下网页: 首先,我很好奇他们是如何禁用所有选择的。这真令人印象深刻。他们是怎么做到的 我首先查找了user select:none,尤其是在body元素和其他地方,但找不到它。然后我查找对jquery.disableSelection的调用。$document.ready中似乎有一个,但它似乎适用于一小部分,即仅适用于应用某个类的情况。我真的很好奇这些家伙是如何实现禁用选择的,因为即使是Ctrl+a也似乎不起作用。这将是一个很好的网站上有我的工作 相反,我很好奇是否有办法使这种行为失效。例如,我使用。我是否可以在JavaScript控制台中运行任何命令,或者动态更改CSS以禁用此行为?当然,只有当我知道这是如何实现的,我才能尝试这些更改 如果有任何帮助,我将不胜感激。我正在使用FireFox和Chrome中最新的浏览器。他们正在调用。禁用选择。他们只是没有像你说的那样称呼它。以下是从网站来源直接复制/粘贴的内容 第629行,如果单击“查看源”Jquery 调试和绕过禁用网页上的文本选择,jquery,html,css,Jquery,Html,Css,我是一名新的Web开发人员,我喜欢调查各种网站如何实现奇怪的功能。我看到了以下网页: 首先,我很好奇他们是如何禁用所有选择的。这真令人印象深刻。他们是怎么做到的 我首先查找了user select:none,尤其是在body元素和其他地方,但找不到它。然后我查找对jquery.disableSelection的调用。$document.ready中似乎有一个,但它似乎适用于一小部分,即仅适用于应用某个类的情况。我真的很好奇这些家伙是如何实现禁用选择的,因为即使是Ctrl+a也似乎不起作用。这将是
$(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