2011-07-24 7 views
0

私はこのコードを使用して、URL内のブックマークレット経由のonclick関数を変更しようとしました:ではJavaScriptを通じて動的にonclickを変更することはできません:ブックマークレット

javascript: document.getElementById('Button1').onclick = function(){alert('foo')};void(0); 

私はボタンの値を変更するちょうどすることはできませんonclick関数です。それも可能ですか? 感謝^^

いくつかの注意:私も.jsファイル内のコードを入れてcreateElementIdを使用して外部の.jsファイルを作成しようとしましたが、まだ動作していないよう:/

+0

エラーが発生しましたか? –

+0

@Jcubed document.getElementById( 'Button1')がnullの場合:/ – imNewbAtJS

+0

あなたはどのブラウザをテストしていますか? – Joe

答えて

0

このコードの動作。つまり、Button1はそのページの要素のIDではないという唯一のオプションです。例えば

<div id="Button1">Button</div> 

ページ上の要素は、そのように見える場合、あなたはあなたのalert ('foo');

+0

私はすでにボタンにIDを与えています。これは、同じコードを使用してボタンの値を変更する方法です:/ – imNewbAtJS

+0

「値を変更する」と言うと、そのコードが表示されますか? – Joe

+0

javascript:document.getElementById( 'button1')。value = "変更"; void(0); – imNewbAtJS

0

あなたのコードが動作しているようでしょう...

このコードを挿入しようw3schools jseditorにhttp://www.w3schools.com/js/tryit.asp?filename=tryjs_events

<html> 
<body> 

<button type="button" id="Button1" onclick="alert('Some action');">Action!!</button> 

<button type="button" id="Button2" onclick="document.getElementById('Button1').onclick = function(){alert('another action')};">Change onclick</button> 

</body> 
</html> 
+0

私は別のドメインでブックマークレットを実行していますので、HTMLを編集することはできません。できるだけコードを短くしていますが、createElement( 'button')を実行して、 – imNewbAtJS

1

アラートコールを終了するために、末尾のセミコロンがありませんでした。あなたがインデントした後に見つけやすくなります。

document.getElementById('Button1').onclick = function() { 
    alert('foo'); 
}; 
関連する問題