如何在特定JavaScript代码中加载外部HTML页面?例如,在JS函数中
我是这个网站的新手,不知道它是如何工作的,也不知道是否有人会回答我的问题,但值得一试,所以我会在这里发布我的问题!:) 基本上,我有一个HTML页面,页面的不同部分包含一些内容,下面是我的代码:如何在特定JavaScript代码中加载外部HTML页面?例如,在JS函数中,javascript,html,Javascript,Html,我是这个网站的新手,不知道它是如何工作的,也不知道是否有人会回答我的问题,但值得一试,所以我会在这里发布我的问题!:) 基本上,我有一个HTML页面,页面的不同部分包含一些内容,下面是我的代码: <html> <head> <title>Welcome to My 1st JavaScript Page</title> </head> <body> <script type="text/javascript">
<html>
<head>
<title>Welcome to My 1st JavaScript Page</title>
</head>
<body>
<script type="text/javascript">
//
var parameter = document.location.search.replace("?", "").replace("=", "");
// IF NO PARAMETER
if (!document.location.search || !parameter) {
document.write("No parameter is defined. Please either set ?pictures, ?videos or ?music");
// IF PARAMETER
} else {
// IF GAMES
if (parameter == "pictures") {
// FOR EXAMPLE INCLUDE THE PICTURES.HTML
// IF VIDEOS
} else if (parameter == "videos") {
// FOR EXAMPLE INCLUDE THE VIDEOS.HTML
// IF MUSIC
} else if (parameter == "music") {
// FOR EXAMPLE INCLUDE THE MUSIC.HTML
}
}
</script>
</body>
</html>
欢迎来到我的第一个JavaScript页面
//
var参数=document.location.search.replace(“?”,”).replace(“=”,”);
//如果没有参数
如果(!document.location.search | |!参数){
document.write(“未定义参数,请设置图片、视频或音乐”);
//IF参数
}否则{
//如果游戏
如果(参数==“图片”){
//例如,包括PICTURES.HTML
//如果视频
}else if(参数==“视频”){
//例如,包括VIDEOS.HTML
//如果音乐
}else if(参数==“音乐”){
//例如,包括MUSIC.HTML
}
}
这个页面将根据我设置的URL参数加载不同的内容,因此当调用不同的URL参数时,我希望在同一页面中加载不同的外部HTML页面,而不希望使用iframe等!
这可能吗?请看一下我上面的代码
在PHP中,我们使用:
<?php
include ("./includes/music.html");
?>
但我不知道如何在JavaScript中做到这一点!谁能帮我一下吗
谢谢:)尝试使用模板引擎加载包含数据的模板 有许多模板引擎,如
一般的想法是基于URL从服务器请求一些模板文件,并使用模板引擎来呈现它。您还可以请求JSON数据来填充您的模板。如果您对学习一个新的库没问题,最简单的方法就是使用它和它的方法
使用XmlHttpRequest对象获取HTML页面还有其他一些跨平台的方法,但jQuery是迄今为止最简单的方法。您需要Ajax,如下所示:
function include(page) {
var rq = null;
if(window.XMLHttpRequest) {
rq = new XMLHttpRequest();
} else if(window.ActiveXObject) {
try { rq = new ActiveXObject("Msxml2.XMLHTTP"); } catch(o) { try { rq = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} }
}
if(rq) {
try {
rq.open("GET", page, false);
rq.send(null);
document.body.innerHTML = rq.responseText;
} catch(ex) {
// Provide a fallback here, probably a redirect
}
} else {
// Provide a fallback here, probably a redirect
}
}
感谢您的回复,但我不必使用JavaScript库以及服务器端编程语言,如PHP!我星期三要考试,有很多问题,这是其中的一个…:)@用户然后您需要使用
XMLHTTPRequest
或iframe您确实应该使用
或
和元素。innerHTML=
而不是文档。编写
Internet Explorer(我相信是8和以前版本,不确定)使用ActiveXObject
s,而不是其他浏览器使用的XMLHttpRequest
。有两个ActiveX对象可以使用—Msxml2.XMLHTTP和Microsoft.XMLHTTP,后者是旧的ActiveX对象,仅适用于6和更早版本(我认为)。所以我们先尝试使用新的,如果没有,我们就使用旧的。谢谢回复!)有没有其他方法可以做到这一点,一些更简单的方法,不需要库,当然还有AJAX,我在问,因为在考试中我需要解释一切,因为我是JS新手,那么我在解释时可能会遇到问题。。。thanks@minitechIE 6及以下版本需要activex:)。我知道mcirosoft.xmlhttp。我以为IE7和IE8有XMLHttpRequest构建inNo,真的没有其他方法。(在现实生活中,如果Ajax是适用的,你也没有理由想这么做。)@Raynos:好的。所以Msxml2=IE6和Microsoft=IE5.5或更低版本。感谢大家的帮助!我很感激……:)我认为现在也是学习AJAX的时候了!