我被要求防止从表格复制。使用oncopy处理程序在所有<input/>类型的字段上都可以正常工作。

但是,我无法将其应用于我们的“ richtextarea”,该区域基本上是一个空的iframe(对于我已经能够收集到的src="about:blank";该页面是GWT生成的,而我之前的人们围绕它开发了一个相当广泛的框架)。

我可以在JavaScript中获得iframe,但是我没有正确的处理程序(我尝试添加一个可记录日志的处理程序,但从未成功)。

我已经尝试过frame.oncopyframe.contentWindow.oncopyframe.contentWindow.document.oncopyframe.contentDocument.oncopy。当我复制iframe的内容时,这些都不会登录到控制台。

有人对我有帮助吗?任何帮助表示赞赏(我已经坚持了好几天了)。

具有交叉兼容的解决方案当然是理想的选择,但主要目标是Firefox(仅通过基于Firefox 10的自定义容器打开页面)。

编辑2015-03-24

对于那些想尝试一些调试脚本的人,我遇到问题的组件是演示的here

我在Java项目中有一些native方法可以在其上执行一些自定义JavaScript。

以下是一些我尝试失败的JavaScript。

var frame = document.getElementsByTagName('iframe')[0];

function disallowCopy() {
    alert('Gotcha!');
    return false;
}

frame.oncopy = disallowCopy;
frame.contentWindow.oncopy = disallowCopy;
frame.contentWindow.document.oncopy = disallowCopy;
frame.contentWindow.document.body.oncopy = disallowCopy;
frame.contentDocument.oncopy = disallowCopy;

最佳答案

即使oncopy是非标准事件https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/oncopy,并且没有可靠的方法来防止复制文本,

您可以查看以下bin


确保框架已加载
使用iframe.contentDocument.body参加活动

关于javascript - 防止在空的iFrame(GWT RichTextArea)上进行复制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29206774/

10-10 05:36