脚本导致页面无限重新加载

时间:2018-04-17 08:04:06

标签: javascript html

我正在编写一个简单的脚本,其中包含循环显示一系列页面的下一个/上一个按钮,我试图获得一个" img"和" a"标记不显示在某个页面上。由于某种原因,以下代码行导致页面无限重新加载。

错误代码:

function buttonCheck() {
if ( window.location = "homefeed.php" )  document.getElementById('prev').style.display = "none";    
}
window.onload = buttonCheck;

见下我的完整代码:

<!-- NEXT PAGE SCRIPT -->
    <script>
    var pageList = ["homefeed.php", "allfeed.php", "usfeed.php"];
    var url = window.location.pathname; // e.g. http://me.com/index.html
    var page = url.substring(url.lastIndexOf('/')+1); // e.g. index.html
    var currentPosition = pageList.indexOf(page); // e.g. 0, 1 or 2 

        // NEXT BUTTON
   function next(){
    if(currentPosition<pageList.length-1) {window.location = pageList[++currentPosition];
    }
    else {window.location = pageList[0];
    }
  }
        //PREVIOUS BUTTON
    function previous() {
     window.location = pageList[currentPosition - 1];}
    //HOMEFEED DISPLAY NO BUTTON
    function buttonCheck() {
     if ( window.location = "homefeed.php" )  document.getElementById('prev').style.display = "none";   
    }
    window.onload = buttonCheck;
 </script>
         <!-- NEXT PAGE SCRIPT -->

非常感谢任何帮助。仅供参考:我在没有Window.Onload功能的情况下只尝试了(If)行,但仍然有相同的结果。当我删除以下行时,问题就消失了。 问题似乎特别在于这一行:

if ( window.location = "homefeed.php" )  document.getElementById('prev').style.display = "none";

更新 我修复了无限重装问题,但显示风格现在无法正常工作。这是我更新的代码:

    //HOMEFEED DISPLAY NO BUTTON
if ( window.location == "homefeed.php" )  document.getElementById('prev').style.display = "none";   

更新: 我已经修改了显示样式错误,将其缩小到Window.Location。更新了以下代码:

var lastPart = window.location.href.split("/").pop();
    //HOMEFEED DISPLAY NO BUTTON
if ( lastPart == "homefeed.php" )   { document.getElementById('prev').style.display = "none"  

3 个答案:

答案 0 :(得分:0)

你的问题:

if ( window.location = "homefeed.php" )  {
    document.getElementById('prev').style.display = "none";    
}

asigning 而不是比较。你应该这样做:

window.location == "homefeed.php"

但是,我使用location.pathname,因为location实际上不是字符串并且包含绝对网址:

window.location.pathname === "/homefield.php"

答案 1 :(得分:0)

if ( window.location.href == "homefeed.php" )  document.getElementById('prev').style.display = "none";

你错过了&#39; ==&#39;和&#39; .href&#39;

因此,在提出问题之前,请务必检查语法,大多数情况下都会导致错误。我曾经在我的代码中做了一个语法错误并提出了一个问题。

另外,window.location的href属性返回路径,因此如果你想比较路径,你也应该添加window.location.href。

答案 2 :(得分:0)

非常简单的错误:)

您正在尝试检查该网页是否为homefeed.php ...请仔细注意代码...

注意那里的等号......有什么打击?如果没有,请继续阅读。

您将window.location等同于homefeed.php,这就是将window.location设置为homefeed.php

您需要做的就是这个

if ( window.location == "homefeed.php" )  document.getElementById('prev').style.display = "none";

干杯!