2009-04-03 3 views
0

私はこのウェブサイト用のGreasemonkeyスクリプトをコーディングしています..とにかく、私の問題は私の新しくonclickイベントを添付できません作成されたアンカー。私は動的にリンクにイベントを添付したいですが、onclickはdid notの仕事を添付します

私はGreasemonkey that'sに期待したように動作しなかったので、何が間違っているのか分かりません。

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); 

を使用する必要があります前に、ここでwikiのこの問題を経験している場合:http://wiki.greasespot.net/XPCNativeWrapper#Event_Handlers

答えて

2

は、アンカーのattachEventメソッドを使用します -

a.attachEvent(getTopic)

編集 - attachEventですIEのみ。 Firefoxの場合、あなたがにaddEventListenerを使用する必要があります -

a.addEventListener(getTopic)

1

は匿名関数で

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

おかげでそれをラップしてみ..しかし、ボタンはその機能をラッピングした後、表示されませんでした。 – rymn