2009-12-18 24 views
5

Tôi có một dự án web nhỏ nơi tôi có nhiều trang và tệp chỉ mục/ToC. Tệp toc ở gốc của dự án của tôi theo số toc.html. Các trang được trải rộng trên một vài thư mục con và bao gồm toc với iframe.Firefox: Tôi có thể sử dụng đường dẫn tương đối trong thẻ BASE không?

Dự án không cần máy chủ web, vì vậy tôi có thể tạo HTML trong một thư mục và duyệt trong trình duyệt của tôi. Vấn đề là tôi đang chạy vào các vấn đề XSS khi JavaScript từ toc.html muốn gọi một hàm trong một trang (vi phạm chính sách gốc giống nhau).

Vì vậy, tôi đã thêm base thẻ vào tiêu đề có URL tương đối vào thư mục trong đó toc.html. Này làm việc cho Konqueror nhưng trong Firefox, tôi phải sử dụng đường dẫn tuyệt đối hoặc toc thậm chí sẽ không hiển thị :(Dưới đây là một ví dụ:

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

Đây là tập tin được trong một thư mục con page Firefox sẽ không còn. tải nó, nói rằng nó không thể tìm thấy page/toc.html.

Có cách nào khác không? Tôi thực sự muốn tránh đường dẫn tuyệt đối trong xuất khẩu của tôi để giữ cho nó giống nhau ở mọi nơi (cục bộ và khi tôi tải nó lên máy chủ web sau này)

+0

Tôi có cùng sự cố ngay bây giờ. Có vẻ như Firefox sẽ không tính đến các thẻ '' trỏ đến các đường dẫn tương đối. Đáng buồn là đủ, kết quả đầu tiên của Google về vấn đề là câu hỏi này. – zneak

Trả lời

7

Trong HTML4, <base> cần có absolute URI. Tuy nhiên, kể từ HTML5 bây giờ có sự hỗ trợ rộng rãi, cần được đề cập rằng HTML5 <base> tag accepts an URL, có thể là tuyệt đối hoặc tương đối; điều này có nghĩa là bạn có thể sử dụng một đường dẫn tương đối thay vì một URI tuyệt đối.

Các vấn đề liên quan