-1

ページに挿入する JavaScript コードは次のとおりです。

javascript:{document.head.innerHTML+='<script>function inject(){alert("hello");}</script>';
document.body.innerHTML+='<button onclick="inject()">Run</button>';}

このコードを URL バーで実行した後、Web サイトのソース コードを調べます。ボタンと関数定義の両方が存在しますが、ボタンを押しても期待どおりにアラートが実行されません。

何が問題なのですか?

4

2 に答える 2

8
  1. 一部のブラウザーは JavaScript を受け入れなくなりました。ロケーション バーから直接、ブックマークレットからスクリプトを呼び出す必要があります。

  2. あなたの構文は希望的観測のにおいがします。ここで何をしようとしても、そのようには機能しません

この構文:

javascript:(function() { var s = document.createElement("script"); s.src="somejsurl.js";document.getElementsByTagName("head")[0].appendChild(s)})()

より良いスタートかもしれません

これを実行するには、HTML ページを作成する必要があります。

<a href="javascript:(function() { var s = document.createElement('script'); s.src='somejsurl.js';document.getElementsByTagName('head')[0].appendChild(s)})()">Exec</a>

hrefコード内で一重引用符を使用し、「Exec」をロードしてブックマークにドラッグします

テスト中、Chrome と Firefox には使用できるコマンド ラインがあります。

スクリプトを作成してロードしない場合は、作成したボタンにスクリプトをインライン化する必要があります。

javascript:(function() { var b = document.createElement("button"); b.onclick=function() { alert('hello')}; b.innerTHML='Hello';})()
于 2013-09-29T13:59:32.387 に答える