2012-02-06 4 views
2

정규식으로 전화 번호를 검색하는 프로그램을 작성하려고합니다. 그런 다음 일치하는 경우 기본적으로 클릭 할 수 있어야하는 전화 번호의 뒷면에 이미지를 추가하고 내 Firefox 확장 프로그램에서 내 기능을 호출해야합니다.html로 onclick으로 firefox addon 함수를 호출하는 방법

onDialerHandler: function(number){ 
    alert("onclick Event detected!"); 
}, 

onPageLoad : function(aEvent) { 
if(aEvent.originalTarget.nodeName=="#document"){ 
    var doc = aEvent.originalTarget; 

    var regex = /\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})/g;  

    var contents=doc.body.innerHTML; 

    var idx=contents.search("hello"); 
    if(idx) { 
    var candidates = contents.match(regex); 

    contents=contents.replace(regex,'($1) $2-$3<input id="testbutton" type="image" src="chrome://click2dial/content/images/call.png" name="image" onclick="onDialerHandler()" width="15" height="15">'); 
    doc.body.innerHTML=contents; 
    } 
    } 
}, 

저는 여전히 Firefox의 addons 및 javascript에 새로운입니다. 이것은 이미지를 추가하는 방법 중 하나이지만 onclick을 처리 할 수는 없습니다.

"createElement"를 사용하는 사람들을 읽었지만 작동시키지 못했습니다.

내 클릭 가능한 이미지를 추가하는 데 도움이되는 본문이 내 정규 표현식 일치 부분에있는 경우. 하나의 이미지를 클릭하면 onDialerHandler 함수를 호출해야합니다.

나는이 작동을 얻으려면 .replace 함수를 사용하지 말고 도움이 필요하다고 생각합니다. 올바른 방향으로 나를 가리켜조차도 도움이 될 수 있습니까?

답변

1

페이지에서 사용자 지정 이벤트를 만들어 디스패치해야합니다.


    var evt = document.createEvent("Events"); 
    evt.initEvent("MY_EVENT", true, false); 
    document.dispatchEvent(evt); 

확장 측에서는 이벤트를 수신하기 위해 수신기를 만들어야합니다.


document.addEventListener("MY_EVENT", myFunction, false, true); 

일부 날짜를 통과하려면이


    var evt = document.createEvent("Events"); 
    evt.someDate = "date"; 
.... 
을 위해 당신이 할 수있는 사용자 이벤트
관련 문제