2012-12-10 5 views
0

J'ai un bookmarklet simple pour présenter dans une invite() la valeur d'un méta-élément. Cela fonctionne, mais après l'exécution de la fenêtre, vous chargez simplement la chaîne "null" ou la valeur demandée.Comment empêcher bookmarklet de charger son résultat?

Comment puis-je empêcher le bookmarklet de provoquer une charge de la page?

Je veux simplement que le script pop l'invite, mais ne rien faire plus.

Mon bookmarket est la suivante:

javascript:var%20description;var%20metas=document.getElementsByTagName('meta');for(var%20x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="description"){description=metas[x];}}prompt("Meta%20Description",description.content); 

.. qui ressemble à ce déballa:

var description; 
var metas=document.getElementsByTagName('meta'); 
for(var x=0,y=metas.length;x<y;x++){ 
    if(metas[x].name.toLowerCase()=="description"){ 
     description=metas[x]; 
    } 
} 
prompt("Meta Description",description.content); 
+0

J'ai essayé retour% 20false; et d'autres tentatives tâtonnantes de moyens novateurs d'échouer. Je suis bon à ça. – Erics

Répondre

4

La façon acceptée ces jours-ci est d'envelopper votre code dans une « expression de fonction immédiatement invoqué » comme celui-ci

(function(){ /*your code */})(); 

Cela vaut mieux que d'ajouter void(0); à la fin parce que l'emballage de votre code dans une fonction empêche les conflits entre la variable nommée et la fonction dans votre bookmarklet et dans ceux de la portée du document HTML parent.

En d'autres termes, si vous exécutez votre bookmarklet comme il est maintenant sur une page Web qui utilise le code JavaScript avec une variable déjà existante « description », vous pouvez créer des problèmes.

2

Ajouter void(0); à la fin de celui-ci.

javascript:var%20description;var%20metas=document.getElementsByTagName('meta');for(var%20x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="description"){description=metas[x];}}prompt("Meta%20Description",description.content);void(0); 
+0

c'est parfait =) – Erics

Questions connexes