I'm writing a userscript currently, and i wanted to clean my code up.. I've changed this:
if (document.location.href.search("de.example.com") != -1) { var lng = "de"; var gamepage = ".de.example.com"; var reg = /http:\/\/s(\d+)\.de\.example\.com\/(.*?)\.php(.*)/i; }
if (document.location.href.search("pl.example.com") != -1) { var lng = "pl"; var gamepage = ".pl.example.com"; var reg = /http:\/\/s(\d+)\.pl\.example\.com\/(.*?)\.php(.*)/i; }
to this (I've got a bit more of these, but i wanted to start with small pieces):
var ccode = [["de","de",".de.example.com"],["pl","pl",".pl.example.pl"]]; var lng; var gamepage; var reg;
for ( var i = 0; !document.location.href.search(ccode[i][1]+".example.com") != -1; i++) { lng = ccode[i][1]; gamepage = ccode[i][2]; reg = new RegExp("http://s(\d+)\." + ccode[i][1] + "\.example\.com/(.*?)\.php(.*)", "i"); }
I know that the vars are set properly, but, for some reason the script doesn't execute after this.. To give you a background it is used to change language of my script, it looks for ccode[i][1] in front of the url, it's searching for country code, if it would not find it, i++, and look for the ccode[i+1][1].
@TaylorSwiftVerified: jeśli nie znajdzie ccode[i][1]+".example.com" w adresie strony i++ ccode[i][1] to np "pl" chodzi o zmianę jezyka skryptu..
Tamto działało, to chyba i to powinno, a że tamto miało ustawić wartości gdy znajdzie to to ma wartości nie zmieniac na kolejne jesli znajdzie czyli opuścić pętlę. Chyba, że totalnie to popierdzieliłęm ;v
@IreuN: do tego co podałeś będzie pasować xD i wybierze de (bierze literki od a-z także s1 nie pasuje), wszystko zależy jaki będzie adres itp. z magicznej kuli tego nie wywróżę. Ale prędzej tym sposobem bym próbował.
@xcccx: Czekaj, bo chyba wykminiłęm dlaczego nie idzie dalej, i++ i chce czytać z tablicy ccode[2] a takiego czegoś nie ma, dodam ifa i powinno grać, chyba ;v
@xcccx: I działa, warunek i < ccode.length musiał być na początku, bo przecież drugi warunek jest z ccode[i] której później już takiej nie ma. Dziękuję, masz u mnie pywo. ;)
@IreuN: nie document.location tylko window.location, document.location z tego co pamiętam to read-only. Po stronie skryptu php (czy czego tam masz) nie kontroluje czasem?
@xcccx: w konsoli działa, więc i tu powinno chyba, to jest sam skrypt, do strony która już istnieje, taka modyfikacja po prostu. poradziłem sobie i zrobiłem "http://www." + lang + ".example.com"; Tak działa, to nie pytam już dlaczego ;v
@IreuN: ciężko mi stwierdzić dlaczego tak może być (spróbuj z window.location albo samo location), jak masz to na serwerze albo coś to możesz na PW podrzucić linka to popatrzę.
#javascript
if (document.location.href.search("de.example.com") != -1) {
var lng = "de";
var gamepage = ".de.example.com";
var reg = /http:\/\/s(\d+)\.de\.example\.com\/(.*?)\.php(.*)/i;
}
if (document.location.href.search("pl.example.com") != -1) {
var lng = "pl";
var gamepage = ".pl.example.com";
var reg = /http:\/\/s(\d+)\.pl\.example\.com\/(.*?)\.php(.*)/i;
}
var ccode = [["de","de",".de.example.com"],["pl","pl",".pl.example.pl"]];
var lng;
var gamepage;
var reg;
for ( var i = 0; !document.location.href.search(ccode[i][1]+".example.com") != -1; i++) {
lng = ccode[i][1];
gamepage = ccode[i][2];
reg = new RegExp("http://s(\d+)\." + ccode[i][1] + "\.example\.com/(.*?)\.php(.*)", "i");
}
!document.location.href.search(ccode[i][1]+".example.com") != -1jak ten warunek ma działać?
Tamto działało, to chyba i to powinno, a że tamto miało ustawić wartości gdy znajdzie to to ma wartości nie zmieniac na kolejne jesli znajdzie czyli opuścić pętlę. Chyba, że totalnie to popierdzieliłęm ;v
( ͡° ͜ʖ ͡°)
@Acnologia: Na to bym nie wpadł xD
console.log(i);bo wydaje mi się że to może się zapętlać
źródło: comment_5NvKL7lhWqrooTF9wsrbc9ZRpB6jZy6V.jpg
Pobierzlocation.href.match(/((?!ww)[a-z]{2,3})\./igm)[0].replace('.','')http:\/\/s(\d+)(\.(..)\.example\.com)\/(.*?)\.php(.*)
i < ccode.length, poza tym imho i tak lepiej regexpem.źródło: comment_pgFE0jlgDni6cXvB7MaJdqjeS4L0MStp.jpg
PobierzNa domenie pl git, na de nic nie działa, i och ironio, z "pl" logout page wraca do "de" XDD
@xcccx: w konsoli działa, więc i tu powinno chyba, to jest sam skrypt, do strony która już istnieje, taka modyfikacja po prostu. poradziłem sobie i zrobiłem "http://www." + lang + ".example.com"; Tak działa, to nie pytam już dlaczego ;v