2017-08-11 1 views
0

Suite à la réponse here, j'essaie de vérifier s'il y a 2 chaînes sur une page, puis exécutez la fonction.Greasemonkey - Vérifiez s'il y a 2 chaînes sur une page

Le travail ci-dessous fonctionne mais une fois je le change en & & qui est l'opérateur pour ET cela ne fonctionne pas? - Il me manque quelque chose? (Ce sera mon premier script Greasemonkey)

Voici mon code actuel pour l'opérateur OR qui fonctionne - Je veux simplement qu'il soit et (si les deux textes EXISTE effectuons ensuite la fonction)

if (/(text1) || (text2)/i.test (document.body.innerHTML)) 
{ 
var input=document.createElement("input"); 
input.type="button"; 
input.value="Intuit SLI"; 
input.onclick = redirect; 
input.setAttribute("style", "font-size:18px;position:absolute;top:120px;right:40px;"); 
document.body.appendChild(input); 

function redirect() 
{ 
    var URLa = 'https://someurlhere'; 
    var URL_FINALa = encodeURI(URLa); 

    window.open(URL_FINALa, '_blank'); 
} 
} 
+0

savez-vous ce que '/ (text1) || (text2)/'signifie réellement dans RegExp? ce n'est pas vraiment ce que tu penses. Cela correspond à tout contenu de document.body.innerHTML. Quoi qu'il en soit, pourquoi ne pas juste '/text1/.test(document.body.inerrHTML) && /text2/.test (document.body.inerrHTML)' –

+0

Pour expliquer ... '(test1) || (test2) 'match" test 1 "ou" "ou" test2 "parce que c'est ce que le caractère' | 'signifie dans RegExp ... ou ... en utilisant deux' || 'signifie que l'un des" ou "sera un chaîne vide ... et bien sûr, chaque chaîne correspond à une chaîne vide –

+0

Merci pour l'explication @JaromandaX - votre suggestion a fonctionné. – Toblerone

Répondre

1

répondu avec la suggestion de @JaromandaX.

if (/text1/.test(document.body.innerHTML) && /text2/.test(document.body.innerHTML))