2014-06-23 2 views
1

Google 이미지를 제외한 모든 웹 사이트의 이미지에 대한 컨텍스트 메뉴 항목을 포함하려는 Addon SDK로 Firefox 부가 기능을 개발 중입니다. 다른 문맥 메뉴 항목.컨텍스트 만들기 일부를 제외한 모든 웹 사이트의 메뉴 항목

var cm = require("sdk/context-menu"); 

cm.Item({ 
    label: "LABEL", 
    context: [ 
    cm.URLContext(["*.images.google.*"]), 
    cm.SelectorContext("img") 
    ], 
    contentScript: googleContentScript , 
    onMessage: ... 
}); 

cm.Item({ 
    label: "LABEL", 
    context: [ 
    cm.URLContext(["*"]), 
    cm.SelectorContext("img") 
    ], 
    contentScript: otherContentScript , 
    onMessage: ... 
}); 

첫 번째 URLContext에 대해 TLD (.com, .co.uk ...)에 관계없이 모든 Google 이미지를 포착하고 싶습니다. 그리고 두 번째는 URLContext를 첫 번째 URL이 아닌 모든 URL에 적용시킬 수 있기를 원합니다.

분명히 현재 상황이 아닙니다. 도움이 될 것입니다.

+0

URLContext는 RegEx를 사용합니까? 그것이 나를 알려주고 내가 당신을 도울 수 있다면 – Noitidart

+0

@Noitidart, [does does 지원] (https://developer.mozilla.org/en/US/Add-ons/SDK/High-Level_APIs/context-menu#URLContext) % 28matchPattern % 29) 다소 제한적인 [전체 일치 정규식] (https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern#Regular_Expressions). 하지만 왜 그렇게 열심히 돕는다면 왜 문서를 직접 보지 않았습니까? – nmaier

+0

나는이 물건들을 가지고 내 두뇌를 열심히하고있다. __ [here] (http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-2/#comment-467865) __. 내가 그 일을 끝내면 더 많은 사람들이 수천 명이 도움이 될 것입니다. 그래서 저는 더 많은 동기를 얻었습니다 : P 하하. 나는 그것에 너무 많이 들어 가지 못했지만 내 정규 표현식은 실패하여 즉시 하하를 포기했다. – Noitidart

답변

3

에 대한 match patterns은 다소 제한적이며 음수이면 패턴과 관련하여 다루기가 어렵습니다.

당신은 합리적인 옵션이 있습니다

  • 당신은 콘텐츠 스크립트에 self.on("context", function() ...)를 구현합니다. false을 반환하면 메뉴 항목이 표시되지 않습니다.

컨텍스트 메뉴가 표시 될 때마다 콘텐트 스크립트에 "context"라는 특수 이벤트가 생성됩니다. 이 이벤트에 대한 리스너 함수를 등록하고 true를 반환하면 해당 리스너의 컨텐츠 스크립트와 연관된 메뉴 항목이 메뉴에 표시됩니다.

  • 당신은 (그것을 시작하고 콘텐츠 스크립트를 통해 갈 필요가 없기 때문에) (유지) 또한 더 나은 성능을 얻을 쉽게 될 수있는 PredicateContext를 사용하여, 파이어 폭스 29+를 대상으로하는 경우.
+0

감사합니다 :) 나는 당신을 위해 커버하려했지만 실패했습니다 : P – Noitidart

+0

@nmaier, 그래서 당신은 내가 URLContext를 사용해서는 안되며, 대신에 Google 컨텐츠 스크립트에서 'self.on ("context", function() ...) 함수는 Google 페이지에서 true를 반환하고 그렇지 않으면 false를 반환합니다. 다른 콘텐츠 스크립트가 동일하지만 반대 값을 반환하는 동안? – RELnemtzov

+1

Google 패턴을 유효한 'URLContext'로 쉽게 변환 할 수 있다면 더 효율적으로 사용하기 전에 사용하겠습니다. 지금은 와일드 카드가 여러 개 포함되어 있으므로 정확히 유효하지 않습니다 (정규식이 작동 할 것입니다). 예 : "Other"패턴 :'self.on ("context", ...)'또는'PredicateContext'를 사용하십시오. – nmaier

관련 문제