2013-03-08 4 views
5

私はこの小さなブックマークレットを持っています。ブックマークレットのinnerHTMLへの追加がページ全体を上書きするのはなぜですか?</p> <pre><code>javascript:document.getElementsByTagName("div")[0].innerHTML+="Chuck Norris"; </code></pre> <p>今ではページ上<code>div</code>非常に最初に取ると、それにチャック・ノリスを追加する</em>をはず<em>は明らかだ:

代わりに、アドレスバーに貼り付けると、Chuck Norrisがそのページを上書きします。

これはなぜですか?

注:これは、私は、正確な問題が何であるかわからないんだけど

+0

JSコンソールに入力したときにChrome/Winで言うことはありません。 (アドレスバーへの入力はOmniboxのため動作しません) – millimoose

+1

なぜこれがダウンリストされているのか分かりません。 Chromeで私の画面を置き換えています。 – Malk

+0

ありがとう、@millimoose ...オムニバスがこれをやってくれるのは分かっていなかった...そしてなぜ? – seanlevan

答えて

5

あなたはアクションをキャンセルしていません。ボイド0を追加する。終了する。

javascript:document.getElementsByTagName("div")[0].innerHTML+="Chuck Norris";void 0; 
+1

どうやらブックマークレットの推奨事項はたくさんあります:http://subsimple.com/bookmarklets/rules.asp – millimoose

+0

なぜvoid()が必要ですか? – seanlevan

+0

あなたの答えに感謝します! :)とvoidとの違いは何ですか?falseを返しますか? – seanlevan

-1

...サファリでは発生しませんが、私はそれがtextNodeを作り、それを追加することによって、作業ました:

javascript:var d=document.getElementsByTagName("div")[0];var n=document.createTextNode("Chuck Norris");d.appendChild(n); 
関連する問題

 関連する問題