Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以将HTML片段存储在不同的文件中,但可以通过JavaScript访问吗_Javascript_Html - Fatal编程技术网

我可以将HTML片段存储在不同的文件中,但可以通过JavaScript访问吗

我可以将HTML片段存储在不同的文件中,但可以通过JavaScript访问吗,javascript,html,Javascript,Html,我不确定我的问题措辞是否正确,但我会在问题的主体部分更清楚地解释 我正在使用ASP.NET C# 我只有一个网络表单页面 例如,在本页中,我有以下内容: <div id="page1" style="display:block"> page 1 contents <a href='#' id="liPage1" onclick='Page2();'>Page2</a> </div> <div id="page2" style

我不确定我的问题措辞是否正确,但我会在问题的主体部分更清楚地解释

我正在使用ASP.NET C#

我只有一个网络表单页面

例如,在本页中,我有以下内容:

<div id="page1" style="display:block">
    page 1 contents
    <a href='#' id="liPage1" onclick='Page2();'>Page2</a>
</div>

<div id="page2" style="display:block">
    page 2 contents
    <a href='#' id="liPage2" onclick='Page1();'>Page1</a>
</div>

<script>
  //this is just sudo code
  Page1 function will hide div page2 and show div page1
  Page2 function will hide div page1 and show div page2
</script>

第1页目录
第2页目录
//这只是sudo代码
Page1函数将隐藏div page2并显示div Page1
Page2函数将隐藏div page1并显示div Page2
现在我不需要任何脚本帮助

我要问的是,我是否可以将页面1的HTML放在一个文件中,将页面2的HTML放在另一个文件中,并通过客户端加载这些HTML“片段”

通过将HTML封装在用户控件中,我可以在服务器代码中轻松实现这一点。 我想知道我是否可以使用客户端调用进行同样的操作。但我真的不想在JavaScript代码中“编写”HTML

我问这个问题是因为我打算有相当多的页面,我希望通过客户端编码来呈现所有页面,而不是每次都回叫服务器。这完全是一个可读性和管理的问题

我一直在思考类似资源文件的问题,但不确定如何解决


我希望这一切都清楚了?

是的,您可以简单地执行一些ajax调用,然后将响应设置为容器元素的内容

那么,假设您有file1.html、file2.html和file3.html,您希望将所有这些“片段文件”包含在一个容器中

脚本将如下所示:

[
    "file1.html",
    "file2.html",
    "file3.html"
].forEach(function(file) {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", file, true);
    xhr.addEventListener("load", function() {
        document.querySelector("#content").html += xhr.response;
    });
    xhr.send();
});

看看jQuery,特别是
.load()
方法。你是对的。。谢谢在同一页上删除两个表单。如果JavaScript被禁用或不起作用,那么至少用户能够完成表单的两个部分。严重依赖JavaScript是不可取的。嗨,谢谢你的想法。如果禁用javascript,那么该应用程序无论如何都无法运行。您好,谢谢您的时间,但我的问题是我不想调用服务器。但是谢谢你!我以为您想在服务器端执行与在客户端相同的“包含”操作。然后,答案是,afaik是否定的。如果您希望在外部文件中包含内容,则需要ajax调用来获取它们。如果要减少调用量,可以实现应用程序缓存或本地存储之类的功能。嗨,这不是问题。很高兴你抽出时间。但是,可以使用上面@MikeW提供的jQuery.load()方法执行我想要的操作:)jQuery.load()执行ajax请求。只需在浏览器的开发者工具中查看日志。