我似乎无法弄清楚为什么这不起作用。我的主目录中有一个footer.html文件,比该文件所在的目录高一级。我试图将它包含在网站的所有页面上,而不必将footer.html文件复制到每个页面中子目录。我假设在footer.html之前的一个简单的../可以工作,就像它在HTML中一样,但也许它在jquery中不起作用?它适用于footer.html文件所在的顶级目录中的所有页面。谁能告诉我我在这里失踪了什么?它验证是正确的。我确定这是我忽略的东西。制作一个footer.html页面的全部意义在于我可以在一个地方更新它并在每个页面上更新,如果我无法弄清楚这一点,那就有点挫败了目的。另外:我应该将脚本移动到head标签而不是将其嵌套在footer div标签内吗?
HEADER:
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<title></title>
<style>
body {background-color:#000000; color:#ffbb00;}
a, h1 {color:#ffffff;}
.center-div {
margin: 0 auto;
width: 1084px!important;
background-color:#000000;}
div.rule { margin: 0 auto;
width:50%;
height:1px;
background:#ffbb00;
align:center;
overflow:hidden;}
</style>
</head>
FOOTER:
<div id="footer">
<script>
$( "#footer" ).load( "../footer.html" );
</script>
</div>
答案 0 :(得分:0)
由于你的代码在块中,它正在尝试查找,它可能尚未加载。最佳做法是在$(document).ready()
中包装jquery调用。此外,不要在您的网址中使用相对内容,例如../
,这样更清晰。如果您使用以/templates/footer.html
之类的斜杠开头的相对路径,则可以在所有页面上重复使用相同的脚本。
答案 1 :(得分:0)
你在这里混合使用metaphores。
jQuery的.load使用的URL不符合文件系统方法。您需要使用页脚URL的绝对引用或使用一些javascript来确定它是什么。例如:
window.location.href.substr(0,window.location.href.lastIndexOf("/")+1)+"footer.html"
这很傻,但它会在你的网址中找到最后一个“/”,然后在其后面删除所有内容并将footer.html附加到它上面。