防止在空iFrame上复制(GWT RichTextArea)

时间:2015-03-23 09:26:29

标签: javascript gwt iframe event-handling rich-text-editor

我需要阻止表单复制。使用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。{/ p>

我在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;

1 个答案:

答案 0 :(得分:1)

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

您可以查看以下bin

  1. 确保框架已加载
  2. 使用iframe.contentDocument.body来吸引活动