如何使用javascript在IE的框架中添加onpaste事件?

如何使用javascript在IE的框架中添加onpaste事件?,javascript,iframe,onpaste,Javascript,Iframe,Onpaste,我想在单击鼠标右键并选择“在IE中粘贴”后处理粘贴事件。例如,我这样做: parent.document.frames["myframe"].document.attachEvent('onclick', function(e) { alert("paste"); }); 它工作正常。但当我添加“onpaste”而不是“onclick”时,它就不起作用了。此外,我使用的是javascript,而不是jquery 有人知道这是怎么回事吗 谢谢您可能需要检查如何执行此操作。您可能需要

我想在单击鼠标右键并选择“在IE中粘贴”后处理粘贴事件。例如,我这样做:

 parent.document.frames["myframe"].document.attachEvent('onclick', function(e) {
      alert("paste");
});
它工作正常。但当我添加“onpaste”而不是“onclick”时,它就不起作用了。此外,我使用的是javascript,而不是jquery

有人知道这是怎么回事吗


谢谢

您可能需要检查如何执行此操作。

您可能需要检查如何执行此操作。

您需要将事件处理程序附加到
元素而不是文档,因为
粘贴
事件不会在IE中的
元素之外冒泡。例如:

parent.document.frames["myframe"].document.body.attachEvent('onpaste', function(e) {
    alert("paste");
});

您需要将事件处理程序附加到
元素而不是文档,因为
粘贴
事件不会在IE中的
元素之外出现。例如:

parent.document.frames["myframe"].document.body.attachEvent('onpaste', function(e) {
    alert("paste");
});

@novellino鉴于我没有足够的代表对Tims的回答发表评论,我不得不在这里发表评论。这是在使用jQuery(无论如何,阅读看起来您都在使用它):

这适用于IE和FF,oh和chrome

我也在使用“
$(window).bind('paste',function(e){})
”,但正如Tim所说:

“粘贴事件不会超出IE中的
元素”

因此,请尝试我附加的代码,它对我有效


希望这有助于。。。Al

@novellino鉴于我没有足够的代表对Tims的回答发表评论,我不得不在这里发表评论。这是在使用jQuery(无论如何,阅读看起来您都在使用它):

这适用于IE和FF,oh和chrome

我也在使用“
$(window).bind('paste',function(e){})
”,但正如Tim所说:

“粘贴事件不会超出IE中的
元素”

因此,请尝试我附加的代码,它对我有效


希望这有助于。。。Al

@novellino:文档中是否有任何文本输入或
contenteditable
元素?粘贴只在这样的元素中有效。我收到一条错误消息:“parent.document.frames.myframe.document.body”为null或不是对象。这意味着什么?这个主体实际上是一个文本编辑器,所以它可能没有contenteditable元素。在Firefox中,我使用$(window.bind('paste',function(e){});而且效果不错。为什么我不能在IE中也使用这个绑定命令?@novellino:这意味着你试图在frame的主体存在之前附加事件。我建议将附加事件的代码放入一个函数中,然后在加载框架的文档后从框架调用该函数。如果您无法更改框架的文档,则可以轮询框架以检查主体是否存在,并在主体存在后附加事件处理程序。同一命令在IE中不起作用的原因如我在may Response中所述:
粘贴
事件不会超出IE中的
元素。具体而言,这意味着
粘贴
事件永远不会到达
窗口
对象。@novellino:文档中是否有文本输入或
内容可编辑
元素?粘贴只在这样的元素中有效。我收到一条错误消息:“parent.document.frames.myframe.document.body”为null或不是对象。这意味着什么?这个主体实际上是一个文本编辑器,所以它可能没有contenteditable元素。在Firefox中,我使用$(window.bind('paste',function(e){});而且效果不错。为什么我不能在IE中也使用这个绑定命令?@novellino:这意味着你试图在frame的主体存在之前附加事件。我建议将附加事件的代码放入一个函数中,然后在加载框架的文档后从框架调用该函数。如果您无法更改框架的文档,则可以轮询框架以检查主体是否存在,并在主体存在后附加事件处理程序。同一命令在IE中不起作用的原因如我在may Response中所述:
粘贴
事件不会超出IE中的
元素。具体而言,这意味着
粘贴
事件永远不会到达
窗口
对象。仅供参考,Opera不支持
onpaste
,但它支持
oninput
(当用户粘贴时,除其他形式的输入外,它将触发)。仅供参考,Opera不支持
onpaste
,但它支持
oninput
(除其他形式的输入外,当用户粘贴时将触发)。