4

リンクから tampermonkey 関数を呼び出すにはどうすればよいですか?

これが私が試したものです。tampermonkey を使用して、次のようにリンクを挿入できます。

var aNode = document.createElement('a'); 
var aText = document.createTextNode('will it run');
aNode.appendChild(aText);
aNode.href = 'javascript:runTest();';
document.body.insertBefore(aNode, document.body.firstChild);

function runTest() {
   alert('it ran!');
};

リンクが呼び出されると、関数 runTest() が呼び出されます。そうではありません。代わりに、次のエラー メッセージが表示されます。

Uncaught ReferenceError: runTest が定義されていません

4

1 に答える 1

5

そのように JavaScript ハンドラを設定しないでください。addEventListener()次のように使用します。

var aNode   = document.createElement ('a');
var aText   = document.createTextNode ('will it run');
aNode.href  = '#';
aNode.appendChild (aText);
document.body.insertBefore (aNode, document.body.firstChild);

aNode.addEventListener ("click", runTest, false);

function runTest (zEvent) {
    zEvent.preventDefault ();
    zEvent.stopPropagation ();

    alert('it ran!');
};
于 2013-03-27T23:36:56.877 に答える