我遇到了問題。由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(對我很重要)。
我需要解決方案,它將幫助我加載模板,而不需要雙重標記。
什麼'console.log(http.responseText)'在第二次點擊顯示?這會告訴你是否存在提供頁面內容的服務器腳本中的問題。 – bloodyKnuckles