JavaScript 不可选择文本在 Chrome/Internet Explorer 中不起作用
在 Firefox 中似乎没问题,Chrome 和 Internet Explorer 中的文本仍然可选,有什么办法解决这个问题吗?该代码取自另一个问题(我现在找不到),所以它可能已经过时了?
// Prevent selection
function disableSelection(target) {
if (typeof target.onselectstart != "undefined") // Internet Explorer route
target.onselectstart = function() { return false }
else if (typeof target.style.MozUserSelect != "undefined") // Firefox route
target.style.MozUserSelect = "none"
else // All other routes (for example, Opera)
target.onmousedown = function() { return false }
}
在代码中使用为:
disableSelection(document.getElementById("gBar"));
In Firefox seems fine, Chrome and Internet Explorer the text is still selectable, is there any way around this? The code was taken from another question, (which I can't find right now) so it may be out of date?
// Prevent selection
function disableSelection(target) {
if (typeof target.onselectstart != "undefined") // Internet Explorer route
target.onselectstart = function() { return false }
else if (typeof target.style.MozUserSelect != "undefined") // Firefox route
target.style.MozUserSelect = "none"
else // All other routes (for example, Opera)
target.onmousedown = function() { return false }
}
Used in code as:
disableSelection(document.getElementById("gBar"));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于 webkit,请使用
khtmlUserSelect
而不是MozUserSelect
。在 Opera 和 MSIE 中,您可以将 unselectable-property 设置为“On”
由于与 gecko/webkit 相关的两种样式都是 CSS,您可以使用类来应用它:
注意:unselectable 不会传递子元素,因此如果您如果目标内除了 textNodes 之外还有其他内容,则需要使用 MSIE/opera 已有的解决方法。
For webkit use
khtmlUserSelect
instead ofMozUserSelect
.In opera and MSIE you may set the unselectable-property to "On"
As the both styles related to gecko/webkit are CSS, you can use a class to apply it:
Note: unselectable will not pass on child-elements, so if you have there anything else than textNodes inside target, you need the workaround you already have there for MSIE/opera.
上面所有的例子都太复杂了..基于浏览器版本。
我得到了简单的解决方案......适用于所有浏览器!
如果你需要,你可以使这个功能更复杂。
将此代码用于任何容器元素...
all of the above examples is too complicated.. based on the browser version.
I got simle solution ... works for all browsers!
if you need you can make this function more complicated.
Use this code for any container element ...
对于 Wekbit(例如 Chrome 和 Safari),您可以添加:
对于 IE,使用“不可选择”:
参考:http:// /help.dottoro.com/ljrlukea.php
For Wekbit (e.g. Chrome and Safari) you can add:
For IE, use 'unselectable':
Reference: http://help.dottoro.com/ljrlukea.php
与 Firefox 中的 MozUserSelect 样式类似,您可以对基于 Webkit 的浏览器(例如 Safari 和 Chrome)使用
-webkit-user-select: none
。我认为你可以在 Opera 中使用
-o-user-select: none
。但我还没有测试过。对于 IE,也许这可以帮助您: http://msdn .microsoft.com/en-us/library/ms534706(VS.85).aspx
Like the MozUserSelect styling in Firefox you can use
-webkit-user-select: none
for Webkit based browser (like Safari and Chrome).I think that you can use
-o-user-select: none
in Opera. But I have not tested it.For IE, maybe this can help you: http://msdn.microsoft.com/en-us/library/ms534706(VS.85).aspx