2014-05-12 2 views
1

잘라 내기/복사/붙여 넣기이 작업을 수행하는 방법에 대한 참조 구현이 있습니까?노드 웹킷 : 마우스 오른쪽 버튼으로 클릭 컨텍스트 메뉴 및 iframe

전체 앱에는 수정할 수없는 제 3 자 콘텐츠가 포함 된 iframe이 있습니다. 빈 앱에서 컨텍스트 메뉴를 설정할 수 있었지만 iframe이 전체 창을 차지할 때 표시되지 않습니다.

(나는 어떻게는 iframe에 작동 할 수 있습니다 $ (문서) CSTE 연구진 ("의 ContextMenu", ..)

를 사용하여 너무?

+0

가 동일한 도메인에있는 경우는, http://p2p.wrox.com/javascript/17782-iframe에 봐 -contextmenu.html # post115003 CORS를 허용하도록 서버를 해킹합니다. – nicolallias

+1

노드 웹킷입니다. 나는 이것을 우회 할 수 있다고 생각한다. – Wesley

답변

0

...

onload 이벤트는 iframe의 TITLE 및 URL을 사용자가 탐색 할 때보고하는 데 유용하지만 클릭 할 때마다 사용자가 탐색 할 때마다 (왼쪽 클릭을 사용하여) 스크립트가 새 수신기를 추가하기 때문에 onload 이벤트 새로운 콘텐츠로 프레임이로드 될 때 트리거됩니다.

오른쪽 클릭이 수신하는 더 정확한 방법 ...

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

당신의 내용 창을하면 iframe 청취자를 추가합니다. 여기 나는 그것이 당신의 요구에 맞게해야한다고 생각, 샘플 코드입니다.이 tinyproxy의 스크립트에 대한 응답입니다

<!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> 
관련 문제