我可以将HTML片段存储在不同的文件中,但可以通过JavaScript访问吗
我不确定我的问题措辞是否正确,但我会在问题的主体部分更清楚地解释 我正在使用ASP.NET C# 我只有一个网络表单页面 例如,在本页中,我有以下内容:我可以将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
<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请求。只需在浏览器的开发者工具中查看日志。