Javascript 在页面上将Safari 6控制台的上下文更改为iframe
我知道,让我们使用下拉菜单选择控制台执行的上下文,Firebug让我们将Javascript 在页面上将Safari 6控制台的上下文更改为iframe,javascript,safari,console,web-inspector,Javascript,Safari,Console,Web Inspector,我知道,让我们使用下拉菜单选择控制台执行的上下文,Firebug让我们将cd()放入iframe。我不知道如何在Safari的控制台中更改上下文。有人知道怎么做吗 Iframe元素本身属于控制台中的Window类型 <iframe id="frame" src="about:blank"/> 请注意,“frame”是文档的缩写。getElementById(“frame”)Safari与chrome和firefox不同,它不支持此功能,唯一的选择似乎是从控制台访问window对象。
cd()
放入iframe。我不知道如何在Safari的控制台中更改上下文。有人知道怎么做吗 Iframe元素本身属于控制台中的Window类型
<iframe id="frame" src="about:blank"/>
请注意,“frame”是
文档的缩写。getElementById(“frame”)
Safari与chrome和firefox不同,它不支持此功能,唯一的选择似乎是从控制台访问window对象。正如您正确指出的,这将触发跨域策略问题,但是如果您在mac上运行(由于某些原因,这在windows上不起作用),您可以使用
open -a '/Applications/Safari.app' --args --disable-web-security
绕过这个。接下来在jsbin中,您可以使用
window.frames[0]
访问页面的窗口。据我所知,windows没有类似的解决方案
Safari.exe --disable-web-security
显然不起作用。不幸的是,这不适用于具有不同于主机页的域的iFrame。这就是为什么firebug
cd
命令和用于更改“上下文”的Chrome下拉菜单如此有用的原因…确定吗?我用一个不同的URL尝试了这个,它成功了。仅在发布时,我将其更改为:blank.Yup:--当我打开Safari控制台并键入:document.getElementById(“test-iframe”).document
我得到未定义的
:trydocument.getElementById(“test-iframe”).contentDocument
或document.getElementById(“test-iframe”).contentWindow
。此外,您还可以将框架的所有部分打印到控制台:for(document.getElementById(“test-iframe”))console.log(key)代码>以查找所有有用的属性。不,我仍然无法访问iframe中的任何内容。你确定你在使用Safari 6.x吗?
Safari.exe --disable-web-security