2016-03-24 17 views
-2

Ich verwende derzeit das folgende JavaScript in einer Google Chrome-Erweiterung, um den Prozess zum Hinzufügen von Sneakern auf nike.com zu automatisieren;Deklarieren und Festlegen von Variablen in 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); 

Dieses Skript funktioniert perfekt für nike.com in den Staaten, aber nicht richtig wie Großbritannien und Schweden in anderen Ländern für Nike-Websites arbeiten.

Wie Sie wahrscheinlich sagen können, bin ich neu in JavaScript und forsche immer noch hoch und niedrig, um die Sprache zu verstehen. Allerdings verstehe ich dies darauf ankommt, dass

var size_i_want = "11"; 

Wert als eine ganze Zahl (Zahl) gesetzt ist jedoch auf der Website Nike UK der Knoten, dies wirkt sich Buchstaben enthält, zB „UK 10.5“.

Kann jemand mir helfen, eine neue Variable zu deklarieren und seinen Wert so einzustellen, dass er sowohl Buchstaben als auch Zahlen enthält? Ich habe auch das Gefühl, dass dies auch Auswirkungen auf das Skript haben wird, so dass Hilfe in diesem Bereich auch sehr geschätzt wird.

+0

Nein, nicht möglich mit den angegebenen Informationen. Dieses Skript basiert auf dem HTML-Dokument, das basierend auf dem, was auf dem Bildschirm angezeigt und/oder eingegeben wird, Werte erhält. Sie haben das Dokument nicht in Ihrer Beschreibung bereitgestellt. Auch wer weiß, wie diese Zeichenfolge später im Code verwendet wird, und wenn Sie es so ändern, wie Sie es beschreiben, wird der Dienst beschädigt. Außerdem ist SO keine Seite, auf der man andere darum bittet, Code für dich zu schreiben, was im Wesentlichen das ist, was du verlangst. Mein Rat, finde den Programmierer in deiner Firma, der dafür verantwortlich ist und mit ihnen arbeitet. – Igor

+0

Danke für die erste Hälfte Ihrer Antwort, aber der Rest war nicht notwendig. Die Anzahl der Wörter, die Sie zum Kommentieren verwendet haben, ist wahrscheinlich mehr als die Menge an Code, die ich möglicherweise benötigt habe. – done

+0

"Ich verstehe, dass dies auf die Tatsache zurückzuführen ist, dass' var size_i_want = "11" '": Was gab Ihnen diesen Eindruck? Ich würde argumentieren, dass es viel wahrscheinlicher ist aufgrund der Tatsache, dass verschiedene Seiten ein anderes Layout haben, also ist es document.getElementsByName ("skuAndSize") [0]; 'das funktioniert nicht. – apokryfos

Antwort

0

In JavaScript sind Variablen nicht typsicher, daher deklarieren Sie sie nicht als Ganzzahlen oder Zeichenfolgen. Zufälligerweise:

var size_i_want = "11"; 

Dies ist bereits eine Zeichenfolge. Sie sollten also schon Buchstaben hinzufügen können. Ändern Sie einfach zu:

+0

Hmmm das ist was ich ursprünglich dachte und versuchte, aber das scheint nicht zu funktionieren. Ich denke, es ist, weil das Original-Skript stammt aus einer .crx-Datei, und wenn ich die .crx-Datei zum Öffnen und Bearbeiten der .js-Datei (d. H. Wechsel zu var size_i_want = "UK 10.5"), verursachte etwas den Fehler. – done

0

Wie millerbr bereits sagte, Javascript ist nicht Typ sicher.

Die Mischung aus Buchstaben und Zahlen sollten nicht Auswirkungen auf das Skript, weil

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

sind beide Saiten.

+0

Hmmm das ist was ich ursprünglich dachte und versuchte, aber das scheint nicht zu funktionieren. Ich denke, das liegt daran, dass das ursprüngliche Skript aus einer .crx-Datei stammt, und wenn ich die .crx-Datei entpacke, um die .js-Datei zu öffnen und zu bearbeiten (d. H. Var size_i_want = "UK 10.5"), hat etwas den Fehler verursacht. – done

+0

Sie müssen die crx-Datei dekomprimieren. Ändern Sie den Wert und verwenden Sie die Chrome-Tools, um sie wieder in crx zu komprimieren – GuyWithCookies

Verwandte Themen