在Javascript Bookmarklet中获取location.href的更强大的方法?

时间:2011-12-27 14:19:29

标签: javascript bookmarklet

这是我目前的书签:

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

这似乎工作正常,但对我来说,由于某种原因,它在Chrome下无法在Chrome上运行..是否有更强大的方法来获取location.href?感谢。

1 个答案:

答案 0 :(得分:3)

没有。你可以尝试

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

这将确保您没有在全局命名空间中使用某些自定义alert函数。但是,没有办法阻止window.alertwindow.alert = function () { console.log('Haha!'); };那样被覆盖。

location对象应该是防故障的,因为浏览器的内部setter方法会禁止那里的任何恶作剧(意味着window的{​​{1}}属性被有效地写保护,因为location的{​​{1}}属性)

修改
由于“社会工程书签攻击”,看起来bookmarklet在Firefox 6+中不起作用,你无能为力。
https://stackoverflow.com/a/6643466/27862
https://bugzilla.mozilla.org/show_bug.cgi?id=527530