2017-08-11 9 views
0

答えがhereの場合、ページに2つの文字列があるかどうかを確認してから機能を実行しようとしています。Greasemonkey - ページに2つの文字列があるかどうかを調べる

以下は動作しますが、一度それをANDの演算子である& &に変更すると動作しません。 - 私は何かを逃していますか?私は単にそれになりたいと

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

「/(text1)|| (text2)/ '実際にはRegExpの意味ですか?それはあなたが思っていることを実際にやっていません。これはdocument.body.innerHTMLの内容に一致します。とにかく '/text1/.test(document.body.inerrHTML)&& /text2/.test(document.body.inerrHTML)' –

+0

説明するにはどうすればいいのですか? '(test1)|| (test2) 'test" 1または "test2"にマッチするのは、RegExpの中で '| '文字が意味するものなので...または... 2つの' ||'を使うと、 "or"のいずれかが空の文字列...もちろん、すべての文字列は空の文字列に一致します –

+0

@ JaromandaXの説明をありがとう - あなたの提案はうまくいきました。 – Toblerone

答えて

1

は答えた(ので、両方のテキストならば、機能を実行する存在) - ここで

作品OR演算子のための私の現在のコードである(これは私の最初のGreasemonkeyスクリプトになります) @ JaromandaXの提案で。

if (/text1/.test(document.body.innerHTML) && /text2/.test(document.body.innerHTML)) 
関連する問題