当我转到另一个页面而没有重新加载时运行Javascript函数

时间:2017-02-26 18:30:46

标签: javascript


我是JS的超级新手,所以也许这个问题非常愚蠢 我得到了这个在每个页面都正确启动的JS。但在某些情况下,在这篇博客中,我想在去往< mysite.com/page/2>页面未重新加载但只更改内容的位置。
我想我应该使用" hashchange"在eventlistners但不工作,原因不是哈希。 我不想在经过一段时间后运行JS,原因是一个肮脏的解决方案,我无法改变代码原因是一个wordpress模板,我只能通过JS编辑它。 有什么建议吗? 我尝试了一切,在事件参数:滚动,加载,更改,但没有任何工作,请给我建议。 :(

等你的,我留下我的代码和我工作的链接,以便向你展示更好的情况。

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/

1 个答案:

答案 0 :(得分: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>