2010-11-04 3 views
3

Je dois vérifier chaque valeur src de la balise script et s'il y a un match, je voudrais changer cet attribut balises de script src ... Quelque chose comme ceci:Comment vérifier match de script src, puis réattribuer src

var scripts = document.getElementsByTagName("script")[0].src 

for (i=0;i<scripts.length;i++){ 
    if(scripts[i] == "something.js"){ 
    document.getElementsByTagName("script")[i].src = "this.js" 
    } 
    else {} 
}} 
+0

ce n'est pas une question, mais votre premier problème est ici ce code var scripts = document.getElementsByTagName (« script ») [0] .src est d'obtenir le src de la balise script et la mise à la scripts variables donc ce n'est pas un tableau et vous ne pouvez pas le parcourir en boucle. – 3urdoch

+0

Le problème ici est que, au moment où vous êtes en mesure d'accéder à toutes les balises 'script' sur la page, elles ont toutes été exécutées. –

+1

Quelques commentaires, en parallèle à la bonne réponse d'Álvaro: 1) Regardez votre bloc interne "if" - voyez comment vous obtenez le même élément de script que vous * juste * recherché pour la comparaison? Cela devrait vous avoir incité à considérer la version d'Álvaro, à regarder à travers les scripts et à modifier le src (s) qui correspond (outre le fait que vous ne pouvez pas utiliser '.src' sur une nodelist!). 2) Un bloc "else" vide n'est pas requis et peut être omis. –

Répondre

8
var scripts = document.getElementsByTagName("script"); 

for (i=0;i<scripts.length;i++){ 
    if(scripts[i].src == "something.js"){ 
    scripts[i].src = "this.js"; 
    } 
} 
+0

Merci beaucoup ... en utilisant chrome devtools, cela montre que le src a été changé, mais comme Ryan Kinal l'a souligné, le script précédent a déjà été exécuté ... une solution de contournement? – David

+1

Autant que je sache, les scripts sont exécutés dans l'ordre où ils apparaissent. Cela signifie que votre propre code doit aller en premier pour pouvoir modifier les scripts précédents et il doit aller en dernier pour pouvoir les trouver. Ce n'est pas trivial du tout. Nous devrions connaître les détails exacts. N'hésitez pas à poster une nouvelle question à ce sujet. –

+0

Vous ne pouvez pas modifier une valeur src de html tant qu'elle n'est pas chargée. La même chose que vous dire "je peux mettre la fonction de suppression avant les autres" vous dit aussi "si je ne lis pas les autres src ci-dessous je ne peux pas le changer avant qu'ils ne soient chargés". – erm3nda