javascript bookmarklet 与其他脚本隔离吗?

发布于 2024-10-15 19:19:49 字数 147 浏览 5 评论 0原文

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

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

Using DOM, I am able to write a script that read (and potentially assign to a variable) the code of the other scripts in the current page, isn't it?

Is it possible to do the same thing for bookmarklets? That is, could a inline or external script in the current web page read (and potentially assign to a variable) the source code of a bookmarklet that is executed after the loading of the page, or access any variable and/or property of such bookmarklet?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨后彩虹 2024-10-22 19:19:49

你尝试过看看会发生什么吗?看起来很容易制作一个测试页。答案是肯定的,它可以更改值,它不像代码在沙箱中运行。

Did you try it and see what happens? Seems easy to make a test page. Answer is yes it can change values, it is not like code runs in sandboxes.

只是一片海 2024-10-22 19:19:49

为什么,不!它们根本不是,这就是小书签如此强大的原因。 Bookmarklet 只是在全局范围内执行的 javascript: URL,并且可以完全控制当前 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()}

Why, no! They are not at all, thats why bookmarklets are so powerful. Bookmarklets are simply javascript: URLs executing in global scope and have full control on current window

Lets hijack window.open() method for example:

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

So, the following popup is under our full control now:

javascript:with(window.open()){document.open('text/plain');document.write('HAI!');document.close()}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文