2017-08-09 12 views
-5

J'ai un problème avec un script qui clique automatiquement sur le bouton suivant. Cela a fonctionné parfaitement pendant 2-3 semaines mais pour les deux derniers jours, je reçois constamment une erreur dans la console. En outre, la fonction de défilement ne fonctionne pas correctement non plus.Impossible de lire la propriété 'scrollHeight' de undefined - ce qui doit être corrigé dans le script

Voici mes codes:

var jq = document.createElement('script'); 
 
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"; //Loads JavaScript 
 
document.getElementsByTagName('head')[0].appendChild(jq); 
 
jQuery.noConflict()

window.setInterval(function(){ 
 
var x = 0; 
 
$("button:contains('Follow')").each(
 
function(){ if($(this).text()=="Follow"){ 
 
if(x==2) return false; 
 
$(this).trigger("click"); 
 
$('._4gt3b').scrollTop($('._4gt3b')[0].scrollHeight); 
 
x++;} 
 
} 
 
) 
 
$('._4gt3b').scrollTop($('._4gt3b')[0].scrollHeight); console.log('loop'); 
 
}, 70000);

est en dessous du message d'erreur que je reçois dans la console:

VM160:7 Uncaught TypeError: Cannot read property 'scrollHeight' of undefined 
 
    at HTMLButtonElement.<anonymous> (<anonymous>:7:39) 
 
    at Function.each (jquery.min.js:2) 
 
    at n.fn.init.each (jquery.min.js:2) 
 
    at <anonymous>:3:32

+0

Vous faire erreur parce que '._4gt3b' élément est existe pas. peut-être que JS s'exécute avant que l'élément '._4gt3b' ne soit peint dans le navigateur. –

Répondre

0

Pour éviter élément de contrôle d'erreur est existe ou non. Ajout d'une condition pour vérifier l'élément est ou non définie existe if(typeof $('._4gt3b')[0] !== 'undefined')

Voici le script modifié avec indention approprié,

window.setInterval(function(){ 
    var x = 0; 
    $("button:contains('Follow')").each(function(){ 
    if($(this).text()=="Follow"){ 
     if(x==2) return false; 
     $(this).trigger("click"); 
     if(typeof $('._4gt3b')[0] !== 'undefined'){ 
     $('._4gt3b').scrollTop($('._4gt3b')[0].scrollHeight); 
     } 
     x++; 
    } 
    }); 
    if(typeof $('._4gt3b')[0] !== 'undefined'){ 
    $('._4gt3b').scrollTop($('._4gt3b')[0].scrollHeight); 
    } 
    console.log('loop'); 
}, 70000); 
+0

Million Merci à vous Muthu. L'erreur a disparu. Je vous serais reconnaissant si vous pouviez m'aider à résoudre le problème du parchemin. Le script fonctionne parfaitement mais il n'effectue pas la commande déroulante. Quelle peut être la solution? Avance à l'avance – user8439189

+0

Vérifiez que l'élément '._4gt3b' existe dans le balisage HTML? –

+0

Si cela ne vous dérange pas, pouvez-vous me dire comment faire cela? Je l'ai googlé et je n'ai pas réussi à trouver ça utile. Dois-je inspecter la page HTML vérifier cela? P.S. En passant, c'est un script de suivi pour instagram si cela aide. Merci encore une fois Muthu pour votre patience et votre aide – user8439189