Я пытаюсь использовать простую Угловую страницу (нет xhr кроме загрузки шаблонов) и до сих пор it's not been easy.XULrunner добавляет небезопасные: перед ссылками при использовании Angular
Как-то есть различия в том, как Firefox запускает скрипт/визуализирует html и как XUL будет. Эти различия недокументированы, насколько я знаю, так как я искал последний час или около того, чтобы выяснить, почему ссылка должна была иметь unsafe:
. Можете догадаться, потому что контент считается небезопасным, но не может найти никакой документации для него.
Мой основной HTML страницы в браузере элемента XUL с его тип установлен content-primary
и это источник установлен chrome://myapp/content/index.html
Прямые ссылки на главной странице и в первом загруженном шаблоне работы:
<a href='#/students/JON'>link in the template</a>
Я могу щелкнуть по нему, и он загрузит шаблон детали и покажет данные.
Когда я позволяю Угловая генерировать ссылки в нг-повторить это больше не работает:
<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 сгенерированные hrefs считаются небезопасными еще следующие прекрасно работает:
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 отказывался от location.replaceState для содержимого хром, а затем возвращал статус 0 вместо 200 (как в Firefox), я предположил, что это тоже связано с XUL. Должен был знать, что он был угловатым, потому что добавление элементов Dom (работа с угловыми элементами не знала, я добавил их) и ссылки, которые не обрабатывались угловыми работами. Для того, чтобы добавить хром: // протокол как доверенный я сделал следующее:
angular.module('student', []).
config(['$routeProvider','$compileProvider',
function($routeProvider,$compileProvider) {
$compileProvider.urlSanitizationWhitelist(/^\s*(chrome|file):/);
Снимут файл позже, как я использую его в данный момент, чтобы открыть файл с диска в Firefox, чтобы увидеть, если все еще работы
Спасибо так много. Теперь работает. – HMR