草庐IT

unsafeWindow

全部标签

javascript - 如何从用户脚本访问 iframe 的 javascript?

我正在尝试使用Chrome用户脚本或Tampermonkey脚本来修改具有此结构的页面:contentuphereiframe是同源的。我需要访问iframe#main中的函数。我以为我可以使用unsafeWindow来获取它,但我总是什么也得不到,或者undefined返回。我已经尝试了很多事情:尝试在iframe中创建一个新的脚本元素,但即使使用$('frame#main').contents().append(script)或$('frame#main').contents()[0].createElement('script')window.frames["#main"].co

javascript - Greasemonkey、Chrome 和 unsafeWindow.foo()

我有以下anchor标记,其中包含动态生成的参数arg1,...,arg5到在网络上运行的JavaScript函数foo()站点端。整个相关页面中有几个这样的anchor标记,具有唯一的id值和argN值:blah我想通过循环遍历该元素的所有命中、搜索参数并将这些参数传递给Greasemonkey的unsafeWindow.function(args)来以编程方式触发foo()函数调用。这是我目前编写的Greasemonkey脚本:functionremoveAllProperties(){varxpath="//A[@title='foobarbaz']";varactionNode

javascript - Greasemonkey 和全局变量

我不熟悉JavaScript和Greasemonkey,我想编写一个简单的脚本。我知道Greasemonkey使用匿名函数包装您的代码,因此您的变量在离开当前页面后将不存在。但是,我需要一个全局变量。我尝试像这样使用unsafeWindow和window对象:if(window.myVar==undefined){window.myVar="myVar";}如果我刷新页面,条件值始终为真。有没有办法在Greasemonkey中使用全局变量? 最佳答案 你必须使用unsafeWindow以便创建可用于页面的javascript范围的全

javascript - 设置@grant值后如何访问 `window`(目标页面)对象?

假设我正在使用以下网页:clickmevarhello=function(){alert('hello');}document.getElementById('click').addEventListener('click',function(e){hello();});我的Greasemonkey脚本是://==UserScript==//@nameMyScript//@includehttp://example.com/hello.html//@version1//@grantnone//==/UserScript==window.hello=function(){alert('g

javascript - 我如何在 Chrome 中模仿 Greasemonkey/Firefox 的 unsafeWindow 功能?

我现在只是在chrome中摆弄用户脚本,所以请原谅我潜在的无知/白痴。在我为其编写脚本的页面中,有一个声明变量的元素x.这是否意味着,在我的用户脚本中,我只能访问x来自全局命名空间?例如,如果我的用户脚本中只有一行是alert(x);,是否应该按预期工作(假设x是一个字符串)?我知道chrome不支持unsafewindow,但出于某种原因,我发现无法弄清楚如何模仿该功能。有可能吗? 最佳答案 这将为您提供对窗口对象的引用(如p):varp=unsafeWindow;if(window.navigator.vendor.match(

javascript - 网页可以检测到篡改用户脚本吗?

我的问题有两个方面。首先,沙箱模型如何工作,如何影响用户脚本,从网页和用户脚本的Angular可以访问/看到的内容,以及如果使用其他沙箱模型也会影响页面,从而能够注意到您的脚本已注入(inject)到页面(或没有)。第二个,如何将脚本注入(inject)到页面中,并且页面可以检测到它?第一据我所知,当您使用@grantnone时,沙箱被禁用,您将可以访问该网页及其javascript。如果您对javascript和/或DOM进行了任何更改,则该页面可能会检测到它。我的理解是,如果您使用@grantunsafeWindow,您的脚本将被隔离在其自己的js上下文中,您对window所做的任

javascript - 为什么来自用户脚本的窗口(和 unsafeWindow)与来自 <script> 标签的窗口(和 unsafeWindow)不同?

我在开发这个smalluserscript时遇到了问题.当我想阻止每个XMLHttpRequest从使用我的脚本运行的网站上,没有发生任何事情(至少在Chrome中):functionmain(){//OverrideXHR.openwithacustomfunctionwindow.XMLHttpRequest.prototype.open=function(){//Nothing...soit'ssupposedtoblockeveryxhr.open()call}}main();替换window时相同通过unsafeWindow.然而,当我使用这个小技巧时,一切都很顺利://No