簡體   English   中英

加載內容時更改URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM