2011-12-27 12 views
4

これは私の現在のブックマークレットです:Javascriptのブックマークレットでlocation.hrefを取得するより堅牢な方法?

javascript:(function(){ alert(location.href); })(); 

場所を得るために、より堅牢な方法がある。..正常に動作するようだが、私にとって、それはいくつかの理由でクロム下ユーチューブ上では動作しません。 href?ありがとう。

+0

奇妙です。 YouTubeは何らかの理由で「about:blank」を表示します(Chrome 16)。 –

+2

@Rocketデバッギングコンソールに 'alert(location.href)'を書くと正しいアドレスが表示されます... – bezmax

+1

これはわかりました。いくつかの未知の理由により、ブックマークレットの 'Location'オブジェクトは最後の要求からの位置を含んでいます。そして、あまり知られていない理由でも、youtubeの検索ボックスは、メインページが読み込まれた後に 'about:blank'をロードします(デベロッパーコンソールのネットワークタブで見ることができます)。 – bezmax

答えて

3

いいえ。あなたはグローバル名前空間からいくつかのカスタムalert機能を使用していないことを確認します

(function(window){window.alert(window.location.href)})(this); 

をしようとします。しかし、のように、window.alertが上書きされるのを防ぐ方法はありません。

locationオブジェクトは失敗し、証明しなければならない、ブラウザの内部セッターメソッドが(windowことを意味年代location属性は、効果的に書き込み保護、window.locationあるようです年代href属性)が任意のペテンを阻害するので、

を編集:
「social engineering bookmarklet attacks」のため、ブックマークレットがFirefox 6+で動作しないように見えますが、何もできません。
https://stackoverflow.com/a/6643466/27862
https://bugzilla.mozilla.org/show_bug.cgi?id=527530

+0

これは残念です。 – Timmy

+1

機能を復元する[Firefoxアドオン](https://addons.mozilla.org/en-US/firefox/addon/inheritprincipal/)のようです – user123444555621

関連する問題