【问题标题】:TinyMCE paste button only works in Internet ExplorerTinyMCE 粘贴按钮仅适用于 Internet Explorer
【发布时间】:2020-08-19 17:20:15
【问题描述】:

当我使用 TinyMCE 工具栏中的粘贴按钮时,它显示“您的浏览器不支持直接访问剪贴板。请改用 Ctrl+X/C/V 键盘快捷键。”它在 IE 中完美运行。有没有办法让粘贴按钮在 Chrome 和 FF 中有用?也许使用自定义按钮来执行适用于现代浏览器的 jQuery 粘贴功能。

editor.addButton('paste', {
  icon: 'paste',
  onclick: function () {
    pastecontent();
  } 
});

function pastecontent(){
   // get clipboard content
}

【问题讨论】:

    标签: javascript jquery tinymce paste


    【解决方案1】:

    正如来自编辑器的消息所述,这只是对您在某些浏览器中可以/不能直接通过 JavaScript 执行的操作的限制。无论您是否使用 jQuery,您仍然在使用 JavaScript,因此存在潜在的限制。

    想象一下,如果您的任意 JavaScript 可以随时访问剪贴板,您会做什么? “坏人”不遵守规则,那么如果(在加载网页时)他们有 JavaScript 可以从剪贴板中抓取所有内容并将其发送到他们的服务器怎么办?随着时间的推移,浏览器制造商意识到直接访问剪贴板是“不好的”......通过让用户输入CRTL+C and CRTL+V,您实际上是在告诉浏览器您希望它访问剪贴板。

    【讨论】:

    • 感谢您的详细解释。
    • 实际上是在寻找一种加入白名单的方法,因此可以允许受信任的代码访问...
    【解决方案2】:

    如果 tinyMce 编辑器或一般网页可以获得“粘贴”的结果,那么任何网站都可以窃取您的剪贴板数据(您的剪贴板中可能复制了敏感数据!)。这就是您无法通过 javascript 触发粘贴事件的原因。

    关于这个安全限制,允许使用内部网络浏览器的本地应用程序这样做!

    【讨论】:

      【解决方案3】:

      附注:如果您禁用contextmenu,则 ctrl+v 键绑定粘贴将照常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-13
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多