2017-02-26 60 views
1


我是一個超級新手與JS,所以也許這個問題是超級愚蠢的。
我得到了這個JS在每一頁都正確啓動。但在某些情況下,在此博客中,我希望在訪問< mysite.com/page/2>時運行相同的腳本,其中頁面未重新載入但僅更改了內容。
我想我應該在事件列表中使用諸如「hashchange」之類的東西,但不工作,原因不是散列。 我不想在經過一段時間之後運行JS,原因是一個骯髒的解決方案,並且我無法更改代碼原因是一個WordPress模板,我只能通過JS編輯它。 有什麼建議嗎? 我嘗試了一切,在事件參數:滾動,加載,更改,但沒有任何工作,請給我建議。 :(當我去另一個頁面沒有重裝時運行Javascript函數

等待你的,我離開你我的代碼和我爲了我工作更好地爲您展示的情況的鏈接。

document.addEventListener("DOMContentLoaded", addStuff); 
document.addEventListener("hashchange", addStuff); //<--- THIS IS NOT WORKING 

function addStuff() 
{ 
    var x = document.getElementsByClassName("t-entry-cf-detail-106360"); 
    var i; 
    for (i = 0; i < x.length; i++) { 
     x[i].innerHTML = "<a href='http://www.filmidee.it/tag/" + x[i].innerHTML.replace(/\s+/g, '-') + "'>" + x[i].innerHTML + "</a>"; 
} 
}; 

http://www.filmidee.it/screening/

+0

如果在點擊從一個頁面更改爲另一個頁面的鏈接時運行此功能,該怎麼辦? –

+0

_「我希望在進入時運行相同的腳本」_你如何轉到「mysite.com/page/2」? 「運行相同的腳本」是什麼意思? – guest271314

+0

也許你可以使用[onbeforeunload](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload) –

回答

0

你必須使用一個根據這個問題稍微不同的語法:How to detect URL change in JavaScript

window.onhashchange = addStuff; 

工作示例:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <script type="text/javascript"> 
    document.addEventListener("DOMContentLoaded", addStuff); 
    window.onhashchange = addStuff; 

    function addStuff() 
    { 
     console.log("called addStuff"); 
    } 

    function processClick(){ 
     location.hash="myValue"; 
    } 
    </script> 
</head> 
<body> 
    <button onclick="processClick();"></button> 
</body> 
</html> 
+0

...因爲事件['hashchange'](https://developer.mozilla.org/en-US/docs/Web/Events/hashchange)發生在窗口,而不是DOM。 –

+0

hashchange不起作用# 是不是某個地方的事件,當URL更改時觸發函數,而不是必須與#內? – Antonio

+0

作爲一種破解,你可以在內容改變時改變哈希值嗎?的location.hash = 「myvalue的」; –

相關問題