Je travaille sur un script simple avec des boutons suivant / précédent qui parcourent un tableau de pages et j'essaie d'obtenir une balise "img" et "a" à ne pas afficher sur une certaine page. Pour une raison quelconque, la ligne de code suivante provoque le rechargement infini de la page.

Code défectueux:

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

Voici mon code complet:

<!-- 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 -->

Toute aide serait grandement appréciée. FYI: J'ai essayé juste la ligne (If) seule sans la fonction Window.Onload, et j'ai toujours les mêmes résultats. Lorsque je supprime simplement la ligne suivante, le problème disparaît. Le problème semble être avec cette ligne en particulier:

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

MISE À JOUR: J'ai résolu le problème de rechargement infini, mais le style d'affichage ne fonctionne plus. Voici mon code mis à jour:

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

MISE À JOUR: J'ai corrigé l'erreur de style d'affichage en la réduisant à Window.Location. Code mis à jour ci-dessous:

var lastPart = window.location.href.split("/").pop();
    //HOMEFEED DISPLAY NO BUTTON
if ( lastPart == "homefeed.php" )   { document.getElementById('prev').style.display = "none"  
-3
JUSTAUSER 17 avril 2018 à 11:04

3 réponses

Meilleure réponse

Ton problème:

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

Vous attribuez au lieu de comparer. Tu devrais faire:

window.location == "homefeed.php"

Cependant, j'utiliserais location.pathname, car location n'est pas vraiment une chaîne et contient l'URL absolue:

window.location.pathname === "/homefield.php"
0
Oscar Paz 17 avril 2018 à 08:07
if ( window.location.href == "homefeed.php" )  document.getElementById('prev').style.display = "none";

Vous aviez manqué "==" et ".href"

Vérifiez donc toujours votre syntaxe avant de poser des questions, la plupart du temps celles-ci entraînent des erreurs. J'ai également fait une fois une erreur syntaxique dans mon code et posé une question.

De plus, la propriété href de window.location renvoie le chemin, donc si vous vouliez comparer le chemin, vous devriez également avoir ajouté window.location.href.

0
AG_BOSS 17 avril 2018 à 08:19

Erreur très simple :)

Vous essayez de vérifier si la page est homefeed.php ... Notez attentivement le code ...

Remarquez le signe égal là-bas ... Quelque chose a frappé? Sinon, lisez la suite.

Vous associez window.location à homefeed.php, c'est ce qui continue de définir votre window.location à homefeed.php

Tout ce que vous devez faire, c'est ceci

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

À votre santé!

0
Abhishek Kothari 17 avril 2018 à 08:13