XULrunner 添加不安全:在使用 Angular 时在链接之前
XULrunner adding unsafe: before links when using Angular
我正在尝试使用一个简单的 Angular 页面(除了加载模板外没有 xhr(,到目前为止这并不容易。
不知何故,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渲染和JS与Firefox不同的良好文档?如果有这样的文档,那么它肯定包含不安全的部分,可能还有我将要遇到的其他内容。
[更新]多亏了迈尔先生,我发现这根本不是XUL的问题。由于在XUL拒绝chrome内容的location.replaceState之前,然后返回状态为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本身无关。这是一个 AngularJS 功能(使用(,显然无法按预期在chrome:
工作。您必须解决此问题,例如将chrome:
协议列入白名单。
在链接的 href 属性中使用绑定时,应使用 ng-href 而不是 href,以便评估绑定。
<a ng-href="#/students/{{student.name}}">{{student.name}}</a>
而不是
<a href="#/students/{{student.name}}">{{student.name}}</a>
请参阅 http://docs.angularjs.org/api/ng.directive:ngHref
- 如何在Angular中的表的所有单元格中添加链接
- angular.js从数据库中获取链接
- Angular 2中登录页上的动态后退链接
- 使用angular创建JSON下载链接
- Angular Marked和Inappbrowser打开系统浏览器中的所有链接
- Angular UI&引导程序:点击链接时折叠移动导航栏
- 关于用 angular 和打字稿链接$q承诺的困惑
- 如何在 Angular 中将锚标记与模态链接,以便用户登录
- 超链接;编译angular指令内的模板后无法工作
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- Angular JS:更改html块中所有链接的指令
- 当模型在Angular中更改时,自动更新深度链接的url
- ng-click事件不适用于Angular JS中的链接
- 是否可以在 Angular.js 应用程序中使用传统的锚链接
- 在 Angular js 中嵌入后的链接函数
- 指令链接中的范围变量不会更新到指令控制器使用 Angular 读取它时
- 链接在被 Angular JS 包含时不再有效
- 如何正确链接Angular HttpPomise
- 用ng-click链接angular js的活动类
- 如何在循环中链接Angular.JS的承诺