2009-11-11 4 views
7

結合のonClick:のGreaseMonkeyが、私はdiv要素を作成し、それが動作警告するのonclick設定した場合、私は、のGreaseMonkeyスクリプトを記述する場合

var btn = document.createElement('div'); btn.setAttribute('onclick',"alert('clicked!');");

しかし、私は、以前に定義されていた何かを行うには、それを頼めばそれが失敗した:私はdiv要素のonclickイベントに機能をバインドすることができます任意の方法は

function graphIt() {...}; var btn = document.createElement('div'); btn.setAttribute('onclick',"graphIt();");

ありますか?

+0

PS。私が呼びたい機能は、他の機能も呼び出します。 – KalEl

答えて

10

あなたの問題は、属性を文字列に設定しているため、graphIt機能を持たないページ自体のコンテキストで文字列を評価していることです。

あなたはこのように、addEventListenerメソッドを呼び出す必要があります:

function graphIt() {...}; var btn = document.createElement('div'); 
btn.addEventListener("click", graphIt, false); 
+0

完璧なソリューションです。 – kitokid

+0

これはまだ動作しますか?私は試したが、ページが読み込まれたときにボタンが自動的にクリックされる。 – geekscrap

+0

@geekscrap:おそらく、関数を渡すのではなく、関数を呼び出した。 – SLaks

関連する問題