2017-04-04 1 views
1

J'essaye d'obtenir un manuscrit pour remplacer le texte sur ma page avec le texte différent et un lien. Sans le code, la page fonctionne bien et je suis capable de faire des choses comme ajouter au panier, rechercher un numéro de produit (qui est piloté par une commande mouseover), etc. Le code fonctionne bien, il remplace le texte par un lien, mais quand j'ai le code inséré, la page n'exécute plus aucun code suite à une entrée d'utilisateur (c.-à-d. rechercher un numéro de produit).Le code sur ma page arrête le code sur la page de courir

Une idée pourquoi cela casse ma page?

window.addEventListener ? 
window.addEventListener("load",Name,false) : 
window.attachEvent && window.attachEvent("onload",Name); 
function Name(){ 
    if (document.getElementsByTagName('body')[0].innerText.indexOf("Text") > 
-1) { 
     var Var1 = document.getElementsByTagName('body')[0].innerHTML; 
    var Var2 = Var1.replace(/Text/gi,"<a href = 
\"https://www.example.com\">NewText;</a>"); 
    document.getElementsByTagName('body')[0].innerHTML = Var2; 

} 

} 

Au départ, j'utilisais document.onload, j'ai essayé window.onload, et plusieurs autres gestionnaires d'événements, tout ce qui a aussi battu la page. J'ai lu que l'ajout d'onload est la bonne façon de le faire, et l'ai incorporé dans le code que vous voyez ici, mais aucune de ces mesures que j'ai prises n'a résolu le problème.

+0

'function() {' C'est une erreur de syntaxe, vous devrez donner un nom à cette fonction. Quelque chose comme 'function funcNameHere() {' – Titus

+0

Merci Titus. Je l'ai eu dans mon code d'origine, j'ai juste oublié de taper quand je faisais tout générique pour le forum. J'ai modifié mon message et j'ai toujours le problème. – TomM0419

+0

Mettez votre code ici et vous verrez quelques problèmes tout à fait hors de la marque. http://jshint.com/ – Yoda

Répondre

0

Donc, il s'avère que le remplacement de l'innerHTML du corps empêche ma page (pour une raison inconnue ... c'est un site carré) d'exécuter du code après chargement. Par conséquent, le code ci-dessus a fonctionné (malgré quelques problèmes de syntaxe), mais a cassé la page. J'ai corrigé ce problème en ciblant des éléments plus spécifiques sur la page par classe, ce qui a permis de deviner et de trouver celui qui contenait mon élément (encore une fois, il est difficile de déchiffrer l'espace), mais tout fonctionne correctement.

Code de travail:

window.addEventListener ? 
window.addEventListener("load",FuncName,false) : 
window.attachEvent && window.attachEvent("onload",FuncName); 
function FuncName(){ 
    if (document.getElementsByTagName('body')[0].innerHTML.indexOf("word") > -1) 
{ 
     var Var1 = document.getElementsByClassName('ClassName');  
     for (var i = 0; i < Var1.length; i++){ 
    var Var2 = document.getElementsByClassName('ClassName')[i].innerHTML; 
    var Var3 = Var2.replace(/word/gi,"<a href = 
\"http://www.example.com\">NewWord</a>"); 
    document.getElementsByClassName('ClassName')[i].innerHTML = 
Var3; 

J'ai dû ajouter une boucle pour couvrir les multiples instances du mot que je cherche dans différentes classes, mais là vous allez. J'espère que cela aide quelqu'un à rester sur un problème similaire.