如何在特定JavaScript代码中加载外部HTML页面?例如,在JS函数中

如何在特定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页面,页面的不同部分包含一些内容,下面是我的代码:

<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的时候了!