2015-10-17 2 views
0

Je fais un bookmarklet qui vérifie le corps pour une chaîne de texte spécifique et exécute un script lorsqu'il est trouvé. Je suis en utilisant document.body.search(); mais il donne juste le message d'erreurBookmarklet using document.body.search()

[Error] TypeError: undefined is not a function (evaluating 'document.body.search('application is temporarily over its serving quota')')

dans la console. Est-ce que j'utilise search() incorrect? Dois-je utiliser autre chose que document.body?


Javascript

var prox='http://proxy-mirror.appspot.com/'; 
var prox1='http://toproxies.appspot.com/'; 
var prox2='http://meprxy.appspot.com/'; 
var prox3='http://i-love-proxy.appspot.com/'; 
var prox4='http://proxy0server.appspot.com/'; 
var prox5='http://proxy1server.appspot.com/'; 

var x=document.body.search('application is temporarily over its serving quota'); 

var url=window.location.href; 

if(x!==-1) { 
switch(window.location.hostname) { 
    case 'proxy-mirror.appspot.com':url.slice(32);window.location.href=prox1+url; 
     break; 

     case 'toproxies.appspot.com':url.slice(29);window.location.href=prox2+url; 
     break; 

     case 'meprxy.appspot.com':url.slice(26);window.location.href=prox3+url; 
     break; 

     case 'i-love-proxy.appspot.com':url.slice(32);window.location.href=prox4+url; 
     break; 
     case 'proxy0server.appspot.com':url.slice(32);window.location.href=prox5+url; 
     break; 
     case 'proxy1server.appspot.com':alert('Whoops!\n\nIt seems this site is over its quota, and its the last proxy I have on the list\n\nSorry about that, please wait until tomorrow when the servers reset and you\'ll be good to go!');break; 

} 
} else { 
window.location.href=prox+url; 
} 
+0

Apparemment 'document.body.search' n'existe pas. Qu'attendez-vous qu'il fasse? – melpomene

+0

Je ne pense pas que 'document.body' ait une fonction de recherche. Pour vérifier les extraits de texte, vous devrez peut-être parcourir tous les éléments que vous recherchez et les comparer à votre chaîne de texte. – Ryan

Répondre

0

Le chèque doit être:

document.body.textContent.indexOf('application is temporarily over its serving quota') > -1 

Il n'y a pas document.body.search mais location.search() et ce n'est pas sur la recherche de texte. Vous avez mal compris les docs.