服务器端HTML包含并不总是有效

时间:2015-01-26 21:09:52

标签: jquery html

我正在创建一个包含大量HTML页面的项目(没有后端服务器),以避免大量输入我希望通过包含所有导航菜单(顶部和侧面) 。所以我使用以下代码。

我使用Visual Studio(作为一个美化的文本编辑器),当我从Visual Studio启动IE时,一切正常。当我直接浏览该文件并使用IE打开时,未加载navigation.html文件。

我能看到的唯一区别是,从VS启动时,网址为" http://localhost:60282/pages/index.html"而不是像" C:\ Users .. \ index.html"

我被困住了,真的很感激挖掘出来。

感谢。

<!-- Navigation -->
<div id="nav-place-holder"></div>
<!-- jQuery -->
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

<script>
$(document).ready(function () {
    $('#nav-place-holder').load("navigation.html");
});
</script>

1 个答案:

答案 0 :(得分:0)

您必须在浏览器的控制台和XHR日志记录(网络相关)中获取战利品。最有可能.load()无法找到您的navigation.html文件。

我猜想.load()应该在根文件夹中查找文件,例如:

$('#nav-place-holder').load("/navigation.html");

另一个可能的原因是安全相关。正如 Pevara 的评论中所述,您的浏览器根本无法访问该文件。

据我所知, Google Chrome Opera 中有一些安全设置可以调整以解决您的问题。

  1. 在Google Chrome中,您必须在运行--allow-file-access-from-files时使用选项参数,例如:"C:\Documents and Settings\User\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
  2. 在Opera中,您必须在“用户首选项”的Allow File XMLHttpRequest中设置标记opera:config
  3. IE中也可能有选项。