2009-12-18 92 views
5

我有一个小网站项目,我有很多页面和索引/ ToC文件。 toc文件位于我的项目的根目录toc.html中。这些页面分布在几个子目录中,并且包括一个iframe的toc。Firefox:我可以在BASE标签中使用相对路径吗?

该项目不需要Web服务器,所以我可以在目录中创建HTML并在浏览器中浏览它。问题是当toc.html的JavaScript想要调用页面中的函数(违反相同的源策略)时,我遇到了XSS问题。

所以我添加base标签在标题中使用相对URL,其中toc.html的目录。这适用于Konqueror的,但在Firefox中,我必须使用绝对路径或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

是否有解决方法吗?我真的想避免在我出口的绝对路径,以保持它到处都一样(在本地,当我把它上传的Web服务器上后)

+0

我现在有同样的问题。看起来Firefox不会考虑指向相对路径的''标签。可悲的是,Google的第一个结果就是这个问题。 – zneak 2010-05-10 02:34:14

回答

7

在HTML4中,<base>需要absolute URI但是,由于HTML5现在得到了广泛的支持,应该提及的是HTML5 <base> tag accepts an URL,它可以是绝对的也可以是相对的;这实际上意味着您现在可以使用相对路径而不是绝对URI。

相关问题