2012-05-08 2 views
2

크롬 확장하여 버튼 이벤트를 감지하는 방법, 내 script.js background.html, 버튼을 클릭합니다에서 강력한 텍스트 파일을 삽입, 나는 경고 할 버튼이 그의 일을하게하는 것보다 약간의 메시지. 내가 어떻게 jQuery를 사용할 수 있습니다, 내가 background.html에서 JQuery와 파일을 포함해야, 는 그래서,내가 페이지에서 버튼 이벤트를 감지 할

1.I 내 srcript.jsJQuery와를 사용하는 두 가지 질문을하려고했지만 그 작동하지 않을 것 같다 .js 파일에?

2. 클릭하면 버튼 이벤트를 감지합니까? 아래

내 코드입니다 :

background.html

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 

<script> 
    chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(null,{file:'script.js',allFrames:true}); 
    }); 
</script> 

script.js 작동하지 않는 이유는 jQuery를 스크립트에 관해서

if(self.frameElement && self.frameElement.tagName == "IFRAME"){ 
    $(":button").bind("click",function(){ 
    alert("iframe button"); 
    }); 
} 
else{ 
    $(":button").bind("click",function(){ 
    alert("parent button"); 
    }); 
} 
+0

'$ (": button")'이 잘못 보입니다. '$ ("button.myClassName")'또는'$ ("# myButtonId")'와 같아야합니다. –

+0

Beetroot,이 두 가지 방법을 시도해 봤지만 여전히 작동하지 않습니다. 내 코드에 다른 오류가 있습니까? –

+0

크롬 확장 프로그램을 작성한 경험이 없습니다. 진짜 classname/진짜 ID로 내 제안을 수정 한 적이 있습니까? –

답변

7

, 즉 background page에 jQuery를 포함 했으므로 jQuery를 Google에로드해야합니다. 어의 페이지의 확장 기능의 세계. 그것을 분명히하기 위해서. 사용자의 script.js이 사용자 페이지에로드되어 있어야합니다. Chrome은 페이지에로드되지만 해당 페이지의 확장 프로그램의 세계 인 isolated world에로드됩니다. script.js처럼 jQuery를 해당 페이지에로드해야합니다. 아래 :

<script> 
    chrome.browserAction.onClicked.addListener(function(tab) { 
     chrome.tabs.executeScript(null,{file:'jQuery.js',allFrames:true}); 
     chrome.tabs.executeScript(null,{file:'script.js',allFrames:true}); 
    }); 
</script> 

버튼 클릭을 듣는 것과 관련하여 다른 질문으로는 어떤 버튼을 말하는지 분명하지 않습니다. 브라우저 동작 버튼입니까? 이 경우 코드가 올바르게 작동합니다. 사용자 DOM에있는 버튼 인 경우 위에 설명 된대로 스크립트를 추가하여 click 이벤트를 수신하고 내선 (background.html)에 알리면 background 페이지가 스크립트를로드합니다.

+0

감사합니다 juzerali 도움을! 지금 jQuery.js를 삽입합니다! 두 번째 질문은 사용자의 DOM에서 버튼을 듣고 싶습니다. 내 코드보다 더 강력한 방법을 사용하면 메시지에 경고 할 수 있습니다. 감사합니다. –

+0

이 대답을 수락 된 것으로 설정할 수 있습니다. –

+0

+1 매우 흥미 롭습니다. Chrome에서이 기능을 사용할 수 있는지 알지 못했습니다. –

관련 문제