2013-09-30 2 views
0

간단한 Angular 페이지 (템플릿을로드하는 경우를 제외하고는 xhr이 아님)와 지금까지 it's not been easy을 사용하려고합니다.XULrunner 안전하지 않음 : 이전에 링크를 사용하는 경우

어떻게 든 파이어 폭스가 스크립트/HTML을 렌더링하고 XUL이 어떻게 동작하는지에 차이가 있습니다. 이 차이점은 제가 지난 한 시간 동안 링크가 왜 unsafe:이 될지 궁금해하기 때문에 제가 아는 한 비공식적 인 것입니다. 내용이 안전하지 않다고 여겨지지만 문서를 찾을 수 없기 때문이라고 추측 할 수 있습니다.

<a href='#/students/JON'>link in the template</a> 
:이 content-primary로 설정 유형 그리고 그것은 소스가 chrome://myapp/content/index.html 메인 페이지에서 첫 번째로드 된 템플릿 작업에

직접 링크가 설정되어 함께

내 주요 HTML 페이지는 XUL 브라우저 요소의 내부

클릭하면 세부 템플릿을로드하고 데이터를 표시합니다. 나는 각도가에있는 링크를 생성 할 때

NG를 반복은 더 이상 작동하지 않습니다

<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> 

그 생성하는 HREF가 안전하지 않은 것으로 간주되어 아직 다음 작품을 잘 JS

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를 거부하기 전부터 (Firefox에서와 같이) 200 대신에 0 상태를 반환하고 있었기 때문에 XUL도 관련 있다고 생각했습니다. 돔 요소를 추가했기 때문에 각도를 알 수 있었을 것입니다 (앵글은 내가 그것을 추가했다는 것을 알지 못했습니다) 그리고 각진으로 처리되지 않은 링크는 작동했습니다. 나는 아직도 모든 것이 있는지 확인하기 위해 파이어 폭스에서 디스크에서 파일을 열도록 순간에 그것을 사용하고 같은

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

나중에 파일을 제거 할 것인가 : 나는 다음과 같은 짓을했는지 신뢰할 : // 프로토콜 크롬을 추가하려면 작동

답변

2

XUL per se와는 아무 관련이 없습니다. 이것은 AngularJS feature (use)이며 예상대로 chrome:에서 작동하지 않습니다. 이 문제를 해결해야합니다 (예 : 화이트리스트는 chrome: protocol입니다.

+0

에서 각 설명서를 참조하십시오. 이제 작동 중입니다. – HMR

2

링크의 href 속성에서 바인딩을 사용하는 경우 href가 아닌 ng-href을 사용해야 바인딩이 평가됩니다. 예 : 대신

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

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

너무 감사 http://docs.angularjs.org/api/ng.directive:ngHref

+0

좋은 점은이 링크를 처리 할 것입니다. – HMR

+1

또한 Angular 1.2로 이동하는 경우 $ compileProvider.urlSanitizationWhitelist()가 $ compileProvider.aHrefSanitizationWhitelist()로 대체되었습니다. – Jazzuzz

관련 문제