Firefox:我可以在BASE标签中使用相对路径吗?

时间:2009-12-18 09:48:15

标签: html firefox relative-path base

我有一个小网页项目,我有很多页面和索引/ ToC文件。 toc文件位于toc.html项目的根目录中。这些页面分布在几个子目录中,并包含带有iframe的toc。

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

所以我在标题中添加了base个标签,其中包含toc.html目录的相对URL。这适用于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中。 Firefox甚至不会加载它,说它找不到page/toc.html

有解决方法吗?我真的想避免导出中的绝对路径,以便在任何地方保持相同(本地和我以后在Web服务器上传时)。

1 个答案:

答案 0 :(得分:7)

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