Javascript 节点webkit:剪切/复制/粘贴右键单击关联菜单和iframe
有没有关于如何做到这一点的参考实现 整个应用程序有一个iframe,其中包含我无法修改的第三方内容。我可以在一个空白的应用程序中设置上下文菜单,但当iframe接管整个窗口时,它不会出现 (我使用$(document).on(“contextmenu”,…)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的内容窗口。下面是一个示例代码,我认为它应该适合您的需要
<!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;我想这会让你绕过这个。