【问题标题】:How to disable magnifying glass in iPadOS15 safari如何在 iPadOS15 Safari 中禁用放大镜
【发布时间】:2021-11-28 03:33:20
【问题描述】:

我想禁用当我们长按任何 html 元素时出现的文本放大镜。

在IOS15又开始出现了。

我尝试了以下方法,但它们在 iOS15 上不起作用。 Disable magnifying glass in iOS html app

你知道任何 CSS 属性或其他禁用它的方法吗?

【问题讨论】:

  • 有什么方法可以在不禁用点击事件的情况下抑制放大镜?
  • 或者如果你知道出现的条件,请告诉我。

标签: javascript html css webkit ios15


【解决方案1】:

单独使用 -webkit-user-select: none; 禁用文本选择对我不起作用。我也必须使用 @Zhen Yao 方法在 touchstart 事件中调用 event.preventDefault()

另外:您可以在整个文档特定元素上禁用放大镜,具体取决于您调用 touchstart 的元素事件并设置css。

#some-html-id { -webkit-user-select: none; }
/* disable on specific html element */
var htmlElement = document.getElementById( 'some-html-id' );

htmlElement.addEventListener('touchstart', function( event ) { 
      event.preventDefault();
}, false);

小提琴样例:https://jsfiddle.net/0efro6cw/

【讨论】:

    【解决方案2】:

    该功能已在 iOS 15 中恢复,请参阅 https://9to5mac.com/2021/06/07/ios-15-brings-back-the-magnifying-glass-for-accurate-text-selection/

    一种解决方案是处理"touchstart" 事件并在您的处理程序中调用event.preventDefault()

    请注意,如果您仍想处理诸如"click" 之类的事件,则上述解决方案不起作用。

    此外,Apple 通过允许使用 -webkit-user-select: none; 禁用放大镜来修复 WebKit 中的问题,请参阅 https://bugs.webkit.org/show_bug.cgi?id=231161

    【讨论】:

    • 感谢您的回复。顺便说一句,我想问的是,当我在“touchstart”事件中调用“event.preventDefault()”时,随后的“click”事件被禁用。您知道如何避免这种情况并同时禁用放大镜吗?我为我糟糕的英语道歉。
    • @TakabasiSyu 在这种情况下,您可以在原来的 click 事件处理程序中调用 event.preventDefault()
    • @ZhenYao 似乎在点击事件处理程序中调用 preventDefault 并不会阻止放大镜显示。我找不到任何禁用放大镜的方法,同时仍然允许点击的默认行为
    • 这个答案不能解决问题。
    猜你喜欢
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2010-10-29
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多