使用AJAX,如何设置尚未加载到DOM中的元素的innerHTML?

时间:2016-07-29 04:07:43

标签: javascript php html ajax

有一个主要信息显示博客帖子标题列表。单击标题时,我需要在新的html文件中显示博客文章的详细信息。以下是我目前的代码:

 window.location.href = "/viewpost.html";   


    postID = this.id;


    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("view-post-container").innerHTML = xmlhttp.responseText;
        }
    };


    xmlhttp.open("GET", "viewpost.php?q=" + postID, true);
    xmlhttp.send();

问题是,元素视图 - 后容器,在文件viewpost.html中,所以我不认为PHP文件可以访问它。我只是在当前页面上显示数据(index.php),但我希望每个帖子都有单独的页面,这样我最终可以学习如何为SEO和共享目的使用动态URL。最终目标是拥有动态网址,所以也许有更好的方法?非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

试试这个,你必须把代码放在 window.onload 函数

window.onload = function() {
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("view-post-container").innerHTML = xmlhttp.responseText;
        }
    };
    xmlhttp.open("GET", "viewpost.php?q=" + postID, true);
    xmlhttp.send();
}