Javascript XULrunner在使用Angular时添加不安全链接:在链接之前
到目前为止,我正在尝试使用一个简单的角度页面(除了加载模板外,没有xhr) Firefox运行脚本/呈现html的方式与XUL运行脚本/呈现html的方式有所不同。据我所知,这些差异没有记录在案,因为我在过去的一个小时左右一直在寻找一个链接之前为什么会有Javascript XULrunner在使用Angular时添加不安全链接:在链接之前,javascript,firefox,angularjs,xul,xulrunner,Javascript,Firefox,Angularjs,Xul,Xulrunner,到目前为止,我正在尝试使用一个简单的角度页面(除了加载模板外,没有xhr) Firefox运行脚本/呈现html的方式与XUL运行脚本/呈现html的方式有所不同。据我所知,这些差异没有记录在案,因为我在过去的一个小时左右一直在寻找一个链接之前为什么会有不安全:。我猜这是因为内容被认为不安全,但找不到任何文档 我的html主页位于XUL浏览器元素中,其类型设置为content primary,源代码设置为chrome://myapp/content/index.html 主页和第一个加载的模板工
不安全:
。我猜这是因为内容被认为不安全,但找不到任何文档
我的html主页位于XUL浏览器元素中,其类型设置为content primary
,源代码设置为chrome://myapp/content/index.html
主页和第一个加载的模板工作中的直接链接:
<a href='#/students/JON'>link in the template</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的好文档?如果有这样一个文档,那么它肯定包含不安全的部分,可能还有我将遇到的其他东西
[更新]
多亏了梅尔先生,我才发现这根本不是XUL的问题。因为之前XUL拒绝location.replaceState作为chrome内容,然后返回状态0而不是200(就像在Firefox中),所以我认为它也与XUL相关。应该知道它是Angular的,因为添加dom元素起作用(Angular不知道我添加了它们),而Angular未处理的链接起作用。要将chrome://协议添加为可信协议,我已完成以下操作:
angular.module('student', []).
config(['$routeProvider','$compileProvider',
function($routeProvider,$compileProvider) {
$compileProvider.urlSanitizationWhitelist(/^\s*(chrome|file):/);
稍后将删除该文件,因为我正在使用它在Firefox中从磁盘打开该文件,以查看是否一切正常与XUL本身无关。这是一个(),显然在
chrome:
中无法正常工作。您必须解决这个问题,例如,通过白名单。与XUL本身无关。这是一个(),显然在chrome:
中无法正常工作。您必须解决这一问题,例如,在白名单中列出。在链接的href属性中使用绑定时,您应该使用ng href而不是href,以便对绑定进行评估。e、 g
<a ng-href="#/students/{{student.name}}">{{student.name}}</a>
而不是
<a href="#/students/{{student.name}}">{{student.name}}</a>
在链接的href属性中使用绑定时,应使用ng href而不是href,以便对绑定进行评估。e、 g
<a ng-href="#/students/{{student.name}}">{{student.name}}</a>
而不是
<a href="#/students/{{student.name}}">{{student.name}}</a>
请参见位于的angular文档,对于移动到angular 1.2的用户,请注意$compileProvider.UrlSanitationWhiteList()已替换为$compileProvider.AhrefSanitationWhiteList()。对于移动到angular 1.2的用户,请注意$compileProvider.UrlSanitationWhiteList()已替换为$compileProvider.ahrefSanitationWhiteList()