使用jQuery将导航栏加载到HTML页面中

4
我曾是ASP的热衷用户,非常喜欢它,但由于某些原因,我决定使用基于Linux的服务器来建立我的网站。尽管我甚至还没有开始构建我的网站,却已经在为一个看起来极其简单的任务而烦恼,即:加载一个常量导航栏。
基本上,我的目标是有一个模板页面 - 单一的布局 - 动态加载我从另一个页面创建的内容。例如:
index.html将“navi.html”加载到标有“navigation”的div中,将“banner.html”加载到标有“banner”的div中,等等...因此,当用户点击链接时,它不会刷新整个页面,而是改变“main”div中的内容。使用ASP,这非常简单,然而在我的研究中,迄今为止我找到的最好方法是使用jQuery将HTML加载到div中 - 唯一的问题是它对我不起作用,我不知道为什么,也找不到原因。
下面是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Ace8i</title>
 </head>

<body>

<div id="navigation">
nav div tag is here
</div>


<p onclick="">test</p>

<script type="text/javascript" src="js/jquery.js">
$(document).ready(function(){
$('#navigation').load('navi.html');
});
</script>

</body>
</html>

我基本上是按照在网上找到的其他三篇帖子中的方法创建的,我尝试在头部和正文中使用它。我还尝试过将加载函数包装在document.ready函数中和不包装。没有错误,只是没有导航栏。


我看到你的代码中没有包含查询库,http://jquery.com/download/。 - aahhaa
是的,我做了,我甚至使用jQuery测试了它,当点击时隐藏了那个测试段落...据我所知,jQuery正在正常运行o_O - Ace
如果可以避免,这确实不应该使用JavaScript来完成。您使用的是什么后端语言? - Kolby
我完全愿意听取关于这个的建议。就个人而言,我讨厌JavaScript。它就像是C#的丑陋孩子,没有人想跟它玩,但又不得不用。如果你说的后端语言是指操作系统的话,那我使用的是Linux。正如我所说,我是一个ASP迷,但我选择使用Linux主机,因为针对MySQL的信息比针对Windows SQL-S要多。 - Ace
我在 PHP 和 JS/JQ 方面的水平都不太好,但是 PHP 的 include() 方法不仅可以用于附加其他 PHP 文档,还可以类比于在 C# 中创建一个类的实例,对吗? - Ace
显示剩余2条评论
2个回答

0

你的脚本标签已经在加载一个名为 "js/jquery.js" 的脚本。 尝试关闭该标签并为内联脚本创建第二个标签。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#navigation').load('navi.html');
});
</script>

JavaScript:使用SRC属性的内联脚本?


嗯,你确定使用检查器、控制台或查看源代码来重新加载页面并反映更改了吗? - Strongbeard
我不确定你的意思,但我正在使用 Dreamweaver 并在 Chrome 中进行测试。这对我来说都是新的,我以前只用过 Visual Studio 来开发 Web。 - Ace
在Chrome中,您应该能够右键单击页面并点击“检查元素”按钮。这将为您的网页打开一个调试器。由于您正在使用内联脚本,因此可以通过右键单击页面,然后单击“查看页面信息”来检查内联JavaScript的更改是否实际存在,并且没有加载旧的缓存版本。 - Strongbeard
XMLHttpRequest无法加载file:///C:/Users/Nicolas/Desktop/Ace8Interactive/Website/WEBSITE/public_html/navi.html。收到无效响应。因此,源“null”不允许访问。Index.html:1 - Ace
终于解决了我的问题。我所做的一切都是正确的,但是:我不完全理解这个,但是因为我正在本地测试,.load文件无法识别目标html文件。将我的站点与主机同步,进行了现场测试,它的运行完全符合预期。尽管如此,感谢您的帮助 :) - Ace

0
我相信你已经弄清楚了,但当我搜索同样的问题时,我偶然发现了这个问题。如果你在本地测试它是不会起作用的,但如果你把你的文件放到服务器或本地主机上,你会发现它是正确执行的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接