Node webkit:剪切/复制/粘贴右键单击上下文菜单和iframe

时间:2014-05-12 18:06:16

标签: javascript jquery node.js iframe node-webkit

是否有关于如何执行此操作的参考实现?

整个应用都有一个iframe,其中包含我无法修改的第三方内容。我能够在空白的应用程序中设置上下文菜单,但是当iframe占据整个窗口时它不会出现。

(我使用$(document).on(“contextmenu”,..)

我怎样才能让它在iframe中运行?

2 个答案:

答案 0 :(得分:2)

您应该将监听器附加到iframe的内容窗口。以下是示例代码,我认为它应该符合您的需求。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf8">
    <title></title>
    <style type="text/css">
        #gframe{
            width: 100%;
            height: 100%;
            left: 0px;
            top: 0px;
            position: absolute;
        }
    </style>
    <script type="text/javascript">
        var appendContextmenuListener = function(){
            var gframe = document.getElementById('gframe');
            var subWindow = gframe.contentWindow;
            var subDocument = subWindow.document;
            subDocument.oncontextmenu = function(){
                console.log(1);
            }
        };
    </script>
</head>
<body>
    <iframe id="gframe" src="https://www.google.com.hk" 
        onload="appendContextmenuListener()"></iframe>
</body>
</html>

答案 1 :(得分:0)

这是对tinyproxy的脚本的回应......

onload事件非常适合在用户导航时报告iframe的TITLE和URL,但我不会将其用于点击,因为每次用户导航到某处(使用左键单击),您的脚本都会附加一个新的监听器,因为onload事件将在框架加载新内容时触发!

侦听右键单击的更正确方法是......

FrameID.addEventListener('contextmenu',function(){Whatever();});