Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点webkit:剪切/复制/粘贴右键单击关联菜单和iframe_Javascript_Jquery_Node.js_Iframe_Node Webkit - Fatal编程技术网

Javascript 节点webkit:剪切/复制/粘贴右键单击关联菜单和iframe

Javascript 节点webkit:剪切/复制/粘贴右键单击关联菜单和iframe,javascript,jquery,node.js,iframe,node-webkit,Javascript,Jquery,Node.js,Iframe,Node Webkit,有没有关于如何做到这一点的参考实现 整个应用程序有一个iframe,其中包含我无法修改的第三方内容。我可以在一个空白的应用程序中设置上下文菜单,但当iframe接管整个窗口时,它不会出现 (我使用$(document).on(“contextmenu”,…) 如何使它也在iframe中工作?您应该将侦听器附加到iframe的内容窗口。下面是一个示例代码,我认为它应该适合您的需要 <!DOCTYPE html> <html lang="en"> <head>

有没有关于如何做到这一点的参考实现

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

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


如何使它也在iframe中工作?

您应该将侦听器附加到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>

#gframe{
宽度:100%;
身高:100%;
左:0px;
顶部:0px;
位置:绝对位置;
}
var appendContextmenuListener=函数(){
var gframe=document.getElementById('gframe');
var subWindow=gframe.contentWindow;
var subDocument=subWindow.document;
subDocument.oncontextmenu=函数(){
控制台日志(1);
}
};

这是对tinyproxy脚本的响应

onload事件非常适合在用户导航时报告iframe的标题和URL,但我不会在单击时使用它,因为每次用户导航到某个地方(使用左键单击)时,您的脚本都会附加一个新的侦听器,因为onload事件将在帧加载新内容时触发

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

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

如果他们在同一个域上,可以查看或攻击他们的服务器以允许CORS:)它是节点webkit;我想这会让你绕过这个。