javascript bookmarklet是否与其他脚本隔离?

时间:2011-02-05 20:03:46

标签: javascript dom bookmarklet

使用DOM,我能够编写一个脚本来读取(并可能分配给变量)当前页面中其他脚本的代码,不是吗?

是否有可能为bookmarklets做同样的事情?也就是说,当前网页中的内联或外部脚本是否可以读取(并且可能分配给变量)在加载页面之后执行的书签的源代码,或者访问这种书签的任何变量和/或属性。 ?

2 个答案:

答案 0 :(得分:0)

你有没有尝试过,看看会发生什么?似乎很容易做出测试页面。答案是肯定它可以改变值,它不像代码在沙箱中运行。

答案 1 :(得分:0)

为什么,不!它们根本不存在,这就是为什么bookmarklet如此强大。 Bookmarklets只是在全局范围内执行的javascript:个网址,可以完全控制当前window

让我们劫持window.open()方法,例如:

javascript:(function(){var wo=window.open;window.open=function(){if(confirm('All your window.open are belong to us!'))return wo.apply(window, arguments)}})()

因此,以下弹出窗口现在完全由我们控制:

javascript:with(window.open()){document.open('text/plain');document.write('HAI!');document.close()}