javascript - AJAX动态页面更新

标签 javascript php jquery html ajax

我有一个问题。

我正在使用 AJAX 加载页面并且它工作正常,但我无法避免错误。
当我加载页面时,第一次它工作正常但后来我转到另一个页面,AJAX 加载我想要的页面,但它有双标签,如 <head><footer> .

我的意思是,当我第二次加载页面时,页面会加载 <div> 中的相同页面. 这就像画中画。

我在模板中使用这样的代码:

<?php echo $header ?>
            My content
<?php echo $footer ?>

在我通过链接返回上一页后,每个页面都加载相同的代码。

我的 ajax 代码:

function showContent(link) {

    var cont = document.getElementById('content');
    var loading = document.getElementById('loading');
    window.history.replaceState('', 'Title', link);
    cont.innerHTML = loading.innerHTML;

    var http = createRequestObject();                   // создаем ajax-объект
    if( http ) {
        http.open('get', link);                         // инициируем загрузку страницы
        http.onreadystatechange = function () {         // назначаем асинхронный обработчик события
            if(http.readyState == 4) {

                cont.innerHTML = http.responseText;     // присваиваем содержимое
            }
        }
        http.send(null);    
    } else {
        document.location = link;   // если ajax-объект не удается создать, просто перенаправляем на адрес
    }
}

// создание ajax объекта
function createRequestObject() {
    try { return new XMLHttpRequest() }
    catch(e) {
        try { return new ActiveXObject('Msxml2.XMLHTTP') }
        catch(e) {
            try { return new ActiveXObject('Microsoft.XMLHTTP') }
            catch(e) { return null; }
        }
    }
}

我能做什么? 因为如果我删除标签页眉和页脚,我的页面根本就没有设计。 如您所见,我更改了 URL(对我来说很重要)。

我需要一种解决方案,它可以帮助我在不使用双重标记的情况下加载模板。

最佳答案

在你的模板中,确保你有类似的东西

<?php echo $header ?>
        <div id="content">My content</div>
<?php echo $footer ?>

id="content" 是唯一的,仅存在于您的 $header 或 $footer 中。

关于javascript - AJAX动态页面更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37944004/

相关文章:

php创建目录

javascript - 防止Selectize自动排序

jquery - 在悬停时停止不必要的 div 重复

php - 列存在但抛出未找到列 : 1054 Unknown column 'so.event_id' in 'where clause' while inserting into sales_order

javascript - 使用 404 撤销对某些页面的访问

javascript - 如何通过 Jquery/Javascript 知道以 px 为单位的占位符字符串宽度?

javascript - jQuery 不工作的等高列?

javascript - 用于移动设备的 HTML5 拖放

javascript - Ember.js - 如何使用 Ember.Router 实现选定的项目?

javascript - 如何允许特定部分进行多项选择?