2010-04-08 5 views
3

IE 컨텍스트 메뉴에 하나의 메뉴 항목을 추가해야합니다. IE에서 마우스 오른쪽 버튼을 클릭하면 구글 맞춤형 컨텍스트 메뉴 "Search Google for xxx"와 비슷합니다.IE 컨텍스트 메뉴를 실제로 사용자 정의하는 방법은 무엇입니까?

IE BHO에서 IDocHostUIHandler :: ShowContextMenu를 재정 의하여 IE 컨텍스트 메뉴를 사용자 정의 할 수 있다는 조사를 실시했습니다. 샘플 프로젝트는 codeproject에 게시 된 팝업 차단기 프로젝트에서 찾을 수 있습니다. 그것은 잘 작동하고 구현하기 쉽습니다. 그러나이 방법에는 문제가 있습니다. 문제는 MSDN에 따라 다른 추가 기능의 컨텍스트 메뉴 사용자 지정과 충돌 할 수 있다는 것입니다.

MSDN Internet Explorer 센터 포럼에서이 항목에 대한 토론이 있습니다. 그러나 적절한 구현이 게시되지 않았습니다.

누구나이 경험이 있다면 아이디어를 공유하십시오. 감사!

답변

2

MSDN의 Adding Entries to the Standard Context Menu을 참조하십시오.

일부 샘플 코드의 경우 Web Accessories for Internet Explorer 5을 다운로드하고 추출합니다 (이 메커니즘은 최대 8 개까지의 IE 버전에서 작동 함). 다양한 IE 컨텍스트 메뉴 확장의 예는 ie5wa.inf*.html을 참조하십시오.

abive는 순수한 하나의 레지스트리 설정과 스크립트 (Javascript, JScript, VBScript 등)가 포함 된 파일을 통해 COM없이 수행됩니다. 스크립트 (JScript, VBScript)는 COM 개체, 메뉴 액션 로직이 그러한 객체에 있어야합니다. 키가 상황에 맞는 메뉴 동작을 (를 구현하는 스크립트 코드가 포함 된 파일을 가리 키도록하기위한

  • 기본 값을 설정)이있는 경우

    • HKCU\Software\Microsoft\Internet Explorer\MenuExt\My &Context Menu" registry key ( &는`가능성과 상호 작용)의 menu accelerator 편지를 앞에 만들 COM 객체는 (IDispatch IIRC 지원해야하며 또한 My Computer Security Zone에 읽어) 새로운 콘텍스트 메뉴가 디스플레이되어야 할 때 조절되는 (이미지 0x02, 선택 용 0x10 등) 이진 contexts 값을 생성
  • 0

    선택한 텍스트로 이동하기 위해 IE를 사용자 정의했습니다. 전체 내용을 읽고 자세한 소스 코드 here을 얻을 수 있습니다.

    내 솔루션의 난로는 자바 스크립트 코드와 레지스트리 키 다음 주위에 내장되어 [HKEY_CURRENT_USER \ 소프트웨어 \ 마이크로 소프트 \ Internet Explorer를 \는 MenuExt] :

    물론
    var parentwin = external.menuArguments; 
        var doc = parentwin.document; 
        var sel = doc.selection; 
        var rng = sel.createRange(); 
        var str = new String(rng.text); 
    
        if(0 < str.length) 
        { 
        if (str.indexOf("http")!=0) 
         window.open("http://"+str, "_blank"); 
        else 
         window.open(str, "_blank"); 
        } 
    
    +0

    , 당신은 사용자 정의 될 겁니다 내 자바 스크립트 코드를 사용하여 로 이동하는 대신 'http://www.google.com/search?q= '으로 이동하십시오. – hemme

    관련 문제