나는 그렇게처럼 내 XUL 응용 프로그램에서 브라우저 개체가 :XUL 응용 프로그램 및 플러그인에 대한 history.replaceState가 손상 되었습니까?
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window title="Students"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
width="800px"
height="500px">
<groupbox flex="1">
<caption label="Students"/>
<browser type="chrome" src="chrome://myapp/content/index.html" flex="1"/>
</groupbox>
</window>
그리고 index.html을은 다음과 같습니다
<!DOCTYPE html>
<html>
<head>
<title>Student page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Something wrong with history.replaceState</h1>
<script>
try{
history.replaceState(null, '', 'chrome://myapp/content/another.html');
}catch(e){
//not sure how to log stuff in XUL without creating helper functions
alert(e);
}
</script>
</body>
</html>
오류와 함께 엽니 다 :
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.replaceState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://myapp/content/index.html :: :: line 11" data: no]
내가했다 브라우저 요소에서 Angularjs를 사용하려하지만 history에 의존하기 때문에 .replaceState는 XUL 응용 프로그램에서 실패한 작업을 수행하지 못합니다.
[업데이트] 1 차 콘텐트 location.replaceState 브라우저 요소의 유형을 설정하면 예외를 발생하지 않는
. XUL에서 여전히 상태 (200)를 반환 디스크에서 파일을 열 수 있지만 때
<browser type="content-primary"
src="chrome://myapp/content/index.html" flex="1"/>
[업데이트]
XMLHttpRequest problem 상태는 파이어 폭스에서 if(status...
0과 각도 검사를 반환합니다. 이렇게하면 템플리트가로드되지 않습니다.
각도 소스의 isSuccess의 복귀를 return (200 <= status && status < 300)||status===0;
으로 변경하면 이제 템플릿이로드됩니다.
[업데이트]
내가 #/students/22
같은 링크가 unsafe:chrome://myapp/content/index.html#/students/22
안전하지 않은이가 XUL 문제가 아닙니다 등록 된 프로토콜이 아니라고 말해 경고에 종료됩니다 것을 볼 링크를 클릭. 크롬을 추가하려면 : // 프로토콜을 각도에 나는 내 application.js에서 다음을 수행 한 신뢰할 수 :
angular.module('student', []).
config(['$routeProvider','$compileProvider',
function($routeProvider,$compileProvider) {
$compileProvider.urlSanitizationWhitelist(/^\s*(chrome|file):/);
그 것이다 browser
의 chrome://path/file
또는 file://path/file