[英]Changing the URL when loading Content
所以我想做的是通過javascript更改div的內容,這也更改了瀏覽器中的URL。
我在index.php
是這樣的:
<a href="#page" onclick="loadContent()";>
<div id="pageContent">
Here is some content
</div>
在我的.js文件中,我有一個類似這樣的函數來替換div
的內容:
function loadContent()
{
$("#pageContent").load("new_page.php");
}
現在發生的是瀏覽器中的URL變為如下所示: exmaple.com/#page
。 但是,當我之后重新加載此鏈接時,它將加載頁面的“舊內容”,而不是加載了div的網站。
在我在URL中鍵入exmaple.com/#page
之后,如何以一種新的方式加載頁面並在div中加載具有新內容的頁面?
使用window.location =“ / absolute / path / to / page#your-div-id”;
您可以在目標頁面元素上使用.scrollIntoView()
。
document.getElementById("the_div_id").scrollIntoView(true);
創建一個onLoad方法來檢查是否需要加載任何頁面內容。
<body onload="onPageLoad();">
function onPageLoad() {
var location = window.location.hash;
if(location == "somePage") {
loadContent();
}
}
如果使用的是JQuery,則還可以使用Ready-Event。
$(document).ready(function(){ /** code **/ })
您可以:
1)拋開ajax,只使用普通鏈接
2)檢查頁面加載時的哈希值,然后加載正確的內容:
$(function(){
var hash = window.location.hash.replace('#','');
var pages = ['home','contact','about'];
if(pages.indexOf(hash) > 0){
$("#pageContent").load(hash+".php");
}
});
您可以使用事件偵聽器檢查錨點何時更改,以及何時為任何錨點頁面加載。
//Listener
$(window).on('hashchange', loadPage);
$(window).on('load', loadPage);
function loadPage() {
if(loaction.hash.length > 1) {
//The anchor has been changed.
loadContent("example.com/example.php?page=" + location.hash.substring(1));
} else {
//Load standard page if no anchor
...
}
}
錨點更改時,腳本將加載頁面。
<a href="#page">Page</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.