2009-04-03 3 views
0

그래서이 웹 사이트의 Greasemonkey 스크립트를 코딩하고 있습니다. 어쨌든 내 문제는 내 새롭게 onclick 이벤트를 첨부 할 수 없다는 것입니다. 생성 된 앵커.동적으로 링크에 이벤트를 첨부하고 싶습니다. 그러나 onclick attach doesnt work

나는 무엇이 잘못 되었는가, 내가 Greasemonkey에 있다고 생각하기 때문에 그것이 예상대로 작동하지 않는 이유가 무엇일까요?

function createButton() { 
    var a = document.createElement('a'); 
    var css = document.createElement('style'); 
    css.type = 'text/css'; 
    css.innerHTML = '#prt { position:absolute; right:3em; top: 6em; font-family: Arial,Helvetica,sans-serif; font-weight:bold; font-size:125%; background: #777777 none repeat scroll 0 0; color: white; padding: 6px 12px;}' 
    a.href = '#'; 
    a.innerHTML = 'Print Topic'; 
    a.id = 'prt'; 
    a.onclick = getTopic; // DOESN'T WORK 
    document.body.insertBefore(a, document.body.lastChild); 
    document.body.appendChild(css); 
} 

나는

a.setAttribute('onclick', function() { alert("hey"); }); 

의 setAttribute도 작동하지 않았다의 setAttribute와 같은 다른 기술 .. 올 어떻게

를 시도?

안녕 얘들 아,

나는 그것을 만들었다. 누군가 IRC#greasemonkey를 통해 나를 도왔습니다 .. 고마워요 !!

그래서 요소의 setAttribute 또는 .onclick 속성을 사용하는 문제는 greasemonkey가이를 지원하지 않으며 JavaScript 콘솔에서 "구성 요소를 사용할 수 없음"오류를 반환합니다. 당신이

element.addEventListener ('click', myClickHandler, false); 

을 사용해야하기 전에이 문제가 발생하는 경우

여기에 위키 : http://wiki.greasespot.net/XPCNativeWrapper#Event_Handlers

답변

2

는 앵커의는 attachEvent 방법 사용 -는 attachEvent는 -

a.attachEvent(getTopic)

편집 IE 만. 파이어 폭스의 경우, 또는 addEventListener를 사용해야합니다 -

a.addEventListener(getTopic)

1

는 .. 익명 함수에

a.onclick = function(){ 
    getTopic(); 
} 
+0

감사를 포장하려고하지만 버튼은 기능을 포장 후 보이지 않았다. – rymn