繁体   English   中英

XUL:如何允许从浏览器脚本访问顶部窗口(当src是本地主机时)

[英]XUL: how to allow access to top window from a browser script (when src is localhost)

XUL:

<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <browser type="chrome" disablesecurity="true" src="http://localhost:60000/test.html" flex="1" disablehistory="true" />
</window>

test.html:

<script>
    window.parent.document.title = "abc";
</script>

jsconsole中的错误: Permission denied to access property 'document'

如果我将"http://localhost:60000/test.html"更改为"chrome://test.html"则一切正常,但是在我的情况下,我可以通过Web服务器进行访问。

出于安全原因,您无法按照自己的方式做自己想要的事情。

从非chrome://地址或其他Firefox扩展特定协议(例如resource:// )加载的页面在所有普通网页(非特权)的安全上下文内运行。 明确阻止的事情之一是访问Firefox当前页面之外的区域。因此,尝试访问当前浏览器window的父window应该总是失败。

在浏览器的URL栏中使用chrome://test.html地址可以明确指示Firefox将页面加载到可访问大多数Firefox的扩展程序的更高安全性上下文(特权)中。

如果您需要从非特权文档访问chrome://资源,则可以使用自定义DOM事件来实现消息传递。 但是,在特权方面,您必须事先在执行此操作的Firefox配置文件中安装了Firefox扩展。 换句话说,用户必须经过安装扩展的过程,或者至少已经从chrome://地址访问过某些内容,才能授予对特权级别的访问权限。 只能从用户本地文件存储区中数量非常有限的文件夹中使用这些地址。

如果您想了解更多信息,请在MDN上找到一个页面,该页面涉及特权页面和非特权页面之间交互

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM