Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript bookmarklet是否与其他脚本隔离?_Javascript_Dom_Bookmarklet - Fatal编程技术网

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

javascript bookmarklet是否与其他脚本隔离?,javascript,dom,bookmarklet,Javascript,Dom,Bookmarklet,使用DOM,我可以编写一个脚本来读取(并可能分配给变量)当前页面中其他脚本的代码,不是吗 对bookmarklet也可以做同样的事情吗?也就是说,当前网页中的内联或外部脚本是否可以读取(并可能分配给变量)加载页面后执行的bookmarklet的源代码,或者访问此类bookmarklet的任何变量和/或属性?您是否尝试过并看到了结果?做一个测试页面似乎很容易。答案是肯定的,它可以改变值,它不像在沙盒中运行的代码。为什么,不!它们根本不是,这就是bookmarklet如此强大的原因。bookmark

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


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

您是否尝试过并看到了结果?做一个测试页面似乎很容易。答案是肯定的,它可以改变值,它不像在沙盒中运行的代码。

为什么,不!它们根本不是,这就是bookmarklet如此强大的原因。bookmarklet就是在全局范围内执行的
javascript:
url,可以完全控制当前的
窗口

允许劫持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()}

我问只是因为我不能做这样简单的测试页面。在DOM树中,我找不到关于bookmarklet.javascript:alert(SomeGlobalVariable)的任何引用;