【问题标题】:Make mouse clicks unresponsive when text are selected选择文本时使鼠标单击无响应
【发布时间】:2010-08-31 15:29:32
【问题描述】:

我目前正在开发 WYSIWYG 网络编辑器。

我遇到的问题有点复杂。

当我选择一段文本并单击工具上的某些内容时,该命令有效,但文本立即变为未选中状态。

就像我们在任何网页中选择文本一样,当我们点击其他内容时,文本变为未选中状态,一切恢复正常。

有没有办法在文本已被选中时抑制鼠标单击以使文本保持选中状态?

提前致谢。

【问题讨论】:

    标签: javascript events wysiwyg contenteditable


    【解决方案1】:

    你需要给工具栏中的所有html元素添加一个属性:

    unselectable = "on"
    

    这适用于IE,不知道其他浏览器。 我记得当我尝试通过第 n 个 WYSIWYG HTML 编辑器重新发明轮子的时候。 在我决定使用 TinyMCE 之后,即使有时我仍然后悔没有从头开始开发它的乐趣

    【讨论】:

    • 根据此处:help.dottoro.com/lhwdpnva.php 显然对于 Safari 和 FF,您可以使用特定的内联样式:-moz-user-select:none; -webkit-user-select:无
    • 相信我,一旦您深入开发自己的所见即所得编辑器,您将不会有乐趣。
    • +1,但关于非 IE 浏览器中的 CSS 解决方案的部分在答案中会更好。只是为了确认,unselectable = "on" 确实是 IE-only。
    • @Tim Down:我从未为 FF/Safari 测试过这些 CSS,因为我的 WYSIWYG 原型仅适用于 IE。所以我不想建议使用它们,因为我从未尝试过它们。
    • 感谢专家,但我现在意识到的问题是双击。当我双击任何元素时,所选文本再次变为未选中
    【解决方案2】:

    在有问题的元素上添加一个事件侦听器,并使函数返回 false - 这将捕获默认行为(即取消选择您的文本)。您需要将 useCapture 设置为 true 才能正常工作。

    【讨论】:

    • 谢谢格雷格,我搞砸了 return false; event.preventDefault();,returnValue=false 并且它们都不起作用你能不能更具体一点。
    【解决方案3】:

    当您添加 unselection=on 时,工具栏元素单击将不起作用。这个问题是特定于 IE 的, 在工具栏上结束时 IE 调整句柄插入符的大小

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 2012-01-12
      • 2021-10-12
      • 2010-10-03
      • 1970-01-01
      • 2019-07-11
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多