gpt4 book ai didi

javascript - XULrunner 添加不安全 : before links when using Angular

转载 作者:行者123 更新时间:2023-11-28 15:55:25 26 4
gpt4 key购买 nike

我正在尝试使用一个简单的 Angular 页面(除了加载模板之外没有 xhr),到目前为止 it's not been easy .

不知何故,Firefox 运行脚本/渲染 html 的方式与 XUL 的方式有所不同。据我所知,这些差异没有记录在案,因为我花了大约一个小时的时间来找出为什么链接前面会有 unsafe: 。可以猜测这是因为该内容被认为不安全,但找不到任何相关文档。

我的主 html 页面位于 XUL 浏览器元素内,其类型设置为 content-primary,源设置为 chrome://myapp/content/index.html

主页和第一个加载的模板中的直接链接有效:

<a href='#/students/JON'>link in the template</a>

我可以点击它,它会加载详细信息模板并显示数据。

当我让 Angular 在 ng-repeat 中生成链接时,它不再起作用:

<a href="#/students/{{student.name}}">{{student.name}}</a>

此链接的href更改为:unsafe:chrome://myapp/content/index.html#/students/JON

以下内容也发生了更改:

<a href='#/students/{{"JON"}}'>messed with by angular</a>

这表明 JS 生成的 href 被认为是不安全的,但以下工作正常:

  var a=document.createElement("a");
a.href="#/students/JON";
a.innerHTML="dynamic added link same url";
document.body.appendChild(a);

单击该链接时,将加载详细信息模板并显示详细信息。

所以我的问题是:如何防止 XUL 将链接视为不安全?它们都指向 chrome://myapp/content/ 中的本地资源,并将链接设置为 chrome://myapp/content/index.html#/sudents/JON也不工作(仍然不安全)。

另一个问题是:是否有关于 XUL 与 Firefox 不同地渲染事物和执行 JS 的良好文档?如果存在这样的文档,那么它肯定包含不安全的部分,并且可能还包含我将遇到的其他内容。

[更新]感谢 Maier 先生,我发现这根本不是 XUL 问题。因为之前 XUL 拒绝对 chrome 内容使用 location.replaceState,然后返回状态 0 而不是 200(就像在 Firefox 中一样),所以我认为它也与 XUL 相关。应该知道它是 Angular,因为添加 dom 元素有效(Angular 不知道我添加了它们)并且未由 Angular 处理的链接有效。要将 chrome://协议(protocol)添加为可信协议(protocol),我执行了以下操作:

angular.module('student', []).
config(['$routeProvider','$compileProvider',
function($routeProvider,$compileProvider) {
$compileProvider.urlSanitizationWhitelist(/^\s*(chrome|file):/);

稍后将删除文件,因为我现在正在使用它在 Firefox 中从磁盘打开文件,看看一切是否仍然有效

最佳答案

与 XUL 本身无关。这是AngularJS feature ( use ),显然这在 chrome: 中不起作用。你必须解决这个问题,例如通过将 chrome: protocol 列入白名单.

关于javascript - XULrunner 添加不安全 : before links when using Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19095540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com