jquery页脚,从更高的目录调用footer.html?

时间:2017-01-17 22:23:03

标签: javascript jquery html footer

我似乎无法弄清楚为什么这不起作用。我的主目录中有一个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>

2 个答案:

答案 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附加到它上面。