2009-12-18 3 views
5

많은 페이지와 색인/ToC 파일이있는 작은 웹 프로젝트가 있습니다. TOC 파일은 toc.html에있는 내 프로젝트의 루트에 있습니다. 페이지는 몇 개의 하위 디렉토리에 분포되어 있으며 toc에는 iframe이 포함됩니다.Firefox : BASE 태그에서 상대 경로를 사용할 수 있습니까?

프로젝트에는 웹 서버가 필요하지 않으므로 디렉토리에서 HTML을 만들고 브라우저에서 찾아 볼 수 있습니다. 문제는 toc.html의 JavaScript가 페이지의 함수를 호출하려고 할 때 XSS 문제가 발생한다는 것입니다 (동일한 원본 정책 위반).

그래서 toc.html이라는 디렉토리에 상대 URL을 사용하여 헤더에 base 태그를 추가했습니다. 이 Konqueror에서 작동하지만, 파이어 폭스에서, 나는 절대 경로를 사용하거나 여기 :(표시도하지 않습니다 TOC는 예입니다.

<?xml version='1.0' encoding='utf-8' ?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<base href="../" target="_top" /> 
<title>Project 1</title> 
</head> 
<body> 
<iframe class="toc" frameborder="0" src="toc.html"> 
</iframe> 
</body> 
</html> 

이 파일은 page 파이어 폭스 하위 디렉토리에조차되지 않습니다이다 로드 중입니다. page/toc.html을 찾을 수 없다고 말합니다.

해결 방법이 있습니까? 내 모든 파일을 절대적으로 저장하지 않도록하고 싶습니다. (로컬 및 나중에 웹 서버에 업로드 할 때))

+0

나는 지금 같은 문제가 있습니다. Firefox는 상대 경로를 가리키는 ''태그를 고려하지 않습니다. 슬프게도이 문제에 대한 Google의 첫 번째 결과는이 질문입니다. – zneak

답변

7

HTML4에서 <base>absolute URI이 필요하지만 HTML5 이제 광범위하게 지원되고 있으므로 절대 또는 상대 일 수있는 HTML5 <base> tag accepts an URL을 언급해야합니다. 이것은 이제 절대 URI 대신에 상대 경로를 사용할 수 있음을 의미합니다.

관련 문제