2016-03-24 13 views
-2

Google Chrome Extensionで次のJavaScriptを使用して、nike.comでスニーカーを購入するための「カートに追加」プロセスを自動化しています。JavaScriptの変数の宣言と設定

var size_i_want = "11"; 

function fRun() 
{enter code here 
// Select size option. 
var sizesList=document.getElementsByName("skuAndSize")[0]; 
for(var i=0; i<sizesList.length; i++) 
{ 
    if(sizesList.options[i].text.trim() == size_i_want) 
    { 
     sizesList.selectedIndex = i; 
    } 
} 

var aButtons = document.getElementsByTagName("button"); 
for(var i = 0; i < aButtons.length; ++i) 
{ 
    if(aButtons[i].className.indexOf("add-to-cart") > -1) 
    { 
     aButtons[i].click(); 
    } 
} 
} 

function fTick() 
{ 
if(document.getElementsByName("skuAndSize")[0] != undefined) 
{ 
    setTimeout("fRun()", 600); 
    //fRun(); 
}else{ 
    setTimeout("fTick()", 300); 
} 
} 
setTimeout("fTick()", 300); 

このスクリプトは、アメリカでnike.comのために完璧に動作、しかし、英国やスウェーデンなどの他の国でナイキのウェブサイトでは正しく動作しません。

おそらく私はJavaScriptを初めて使い慣れていると言えますが、言語を理解するためには高低を調べています。しかし、私は、これはしかし、これが影響するノードは、たとえば「英国10.5」のために、文字が含まれているナイキ英国のウェブサイトに

var size_i_want = "11"; 

値は整数(数)として設定されているという事実にダウンしています理解しています。

誰かが新しい変数を宣言し、それに文字と数字の両方を含むように値を設定するのを手伝ってもらえますか?私もこのことがスクリプトにも影響すると感じているので、その周辺のヘルプも非常に高く評価されています。

+0

指定した情報では不可能です。このスクリプトは、HTMLドキュメントに基づいています。このHTMLドキュメントは、画面に表示されたものや入力されたものに基づいて値を取得します。書面には書類を提出していません。また、この文字列がコードの後半でどのように使用されているかを知っていて、それを変更すると、あなたが記述する方法でサービスが中断されます。さらにSOは、他人にあなたのためにコードを書くように依頼するサイトではなく、本質的にあなたが求めているものです。私のアドバイスは、あなたの会社のプログラマーがこれを担当し、そのプログラマーに協力してください。 – Igor

+0

答えの前半をありがとうが、残りは必要ありませんでした。コメントに使った言葉の量は、おそらく私が必要としているかもしれないコードの量よりも多いでしょう。 – done

+0

"これは、' var size_i_want = "11" '"という事実にまでわかります。私はそれがはるかに可能性が高いという事実は、異なるサイトは異なるレイアウトを持っているので、おそらく 'document.getElementsByName(" skuAndSize ")[0];'は動作しないと主張します。 – apokryfos

答えて

0

javascriptでは、変数は型保証されていないため、整数または文字列として宣言しません。一致:

var size_i_want = "11"; 

これはすでに文字列です。だから既にそれに手紙を加えることができるはずです。ちょうどそれに変更してください:

var size_i_want = "UK 10.5"; 
+0

しかし、私はもともと思って試したものですが、それはうまくいかないようです。 元のスクリプトは.crxファイルから作成されたもので、.jsファイルを開いて編集するために.crxファイルを解凍したとき(var size_i_want = "UK 10.5"に変更)というエラーが発生したと考えられます。 – done

0

として、すでにjaverriptはタイプセーフではないと言いました。

文字と数字の組み合わせは、スクリプトに影響を与えるべきではない、なぜなら

size_i_want = "11"; 
size_i_want = "UK 10.5"; 

は両方の文字列です。

+0

私はもともと思って試したことがありますが、それはうまくいかないようです。元のスクリプトは.crxファイルから作成されたもので、.jsファイルを開いて編集するために.crxファイルを解凍したとき(var size_i_want = "UK 10.5"に変更)などのエラーが発生したと考えられます。 – done

+0

crxファイルの圧縮を解除する必要があります。 値を変更してchromeツールを使用してcrxに戻します – GuyWithCookies