Extensie Chrome pentru a redirecționa utilizatorul pe adrese URL specifice


Vreau să construiesc o extensie cromă care verifică, în esență,
dacă domeniul curent este într-o listă, dacă redirecționează astfel
utilizatorul la o adresă URL diferită, îi permite să facă clic pe
un link și apoi să meargă la adresa URL dorită inițial.


Nu am prea multă experiență cu extensiile Javascript sau crom,
dar acest lucru pare destul de simplu pentru un proiect
demarat.


Ceea ce vreau să fac este să am un dosar cu această
structură



```
urlregex1#redirecttourl1
urlregex2#redirecttourl2
.
.
.

```

și aveți un crom content\_script parse fiecare url și verificați
dacă una dintre expresiile regulate se potrivește.


În acest caz, scriptul trebuie să salveze adresa URL originală
și să redirecționeze utilizatorul.


Poate cineva să mă pună în direcția corectă cu privire la modul
în care să pun în aplicare acest lucru? Sunt total pierdut între
funcțiile javascript, extensia api crom, ....
Va trebui să configurați funcționalitatea în pagina de fundal
astfel încât să fie difuzată pe toate filele.



```
// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var safesite = false;

    if (changeInfo  "loading") {
       //logic for checking white list, using tab.url

        if (!safesite) {
            chrome.tabs.update(tabId, { url: 'www.google.com' });
        }
    }
});

```

În esență, adăugați un ascultător de evenimente la toate filele.
Când se încarcă, verificați dacă este afișată pe lista albă. Dacă
este un site pe lista neagră, redirecționați-le către orice url
doriți. De asemenea, puteți include un fișier .html în directorul
de extensii pentru a le redirecționa la fel. Acest incendiu de pe
toate filele, inclusiv Inspectorul Web, astfel încât ați putea dori
să puneți în unele logică pentru a verifica doar cererile http
(s).


De asemenea, această abordare ar putea să afișeze pentru scurt
timp pagina neagră și apoi să vă redirecționeze către pagina
blocked\_url.html. API-ul experimental, [webRequest](https://code.google.com/chrome/extensions/experimental.webRequest.html) , ar trebui să ofere posibilitatea de
a filtra cererea înainte încărcarea paginii, dar nu veți putea să o
încărcați în Magazinul web Chrome până când aceasta nu face parte
din API-ul oficial [Google](https://google.com) Chrome. În cazul în care pentru uz personal,
atunci nu ezitați să-l utilizați.


Un ultim sfat pentru dezvoltare: puteți depana doar
background.html prin pagina de setări a extensiilor
(chrome://settings/extensionSettings). Deschideți rubrica
descendentă pentru extensia dvs. și veți vedea "Inspectați
vizionările active:" unde puteți să faceți clic pe un link către
paginile specifice fiecărei extensii pe care le-ați rulat în
prezent. În acest fel veți afișa Inspectorul Web pentru acea
pagină.


După ce mi-am zgâriat mult capul, am întâlnit-o accidental și de
atunci a fost salvatorul vieții.
la majoritatea extensiilor (excepție .ro) se aplică verificarea căsuței de e-mail, însă acest lucru nu reprezintă o regulă de bază. ulterior înregistrării unui domeniu, este indicată verificarea căsuței de email pentru a verifica dacă extensia achiziționată necesită verificări suplimentare. http://support.google.com/chrome/bin/answer.py?hl=en&answer=95346 JavaScript nu are suport pentru multi-threading pentru că JavaScript interpret în browser-ul este un singur fir (AFAIK). Chiar și Google Chrome nu va lăsa o singură pagină web JavaScript rulează în același timp, deoarece acest lucru ar provoca distrugeri masive de probleme de concurenta în paginile web existente. Toate Chrome nu este de a separa mai multe componente (diferite tab-uri, plugin-uri, etc.) în procese separate, dar nu-mi pot imagina o singură pagină având mai mult de un JavaScript fir.


Cu toate acestea, puteți utiliza, așa cum a fost sugerat, `setTimeout` pentru a permite un fel de programare și "fals" de concurenta. Acest lucru provoacă browser-ul pentru a recâștiga controlul de redare fir, și începe cod JavaScript furnizate `setTimeout după anumit număr de milisecunde. Acest lucru este foarte util dacă doriți pentru a permite viewport (ceea ce vezi) pentru a actualiza în timp ce efectuează operațiuni pe ea. Doar looping prin exemplu, coordonatele și actualizarea unui element în consecință, vă va face să vezi începutul și sfârșitul poziții, și nimic în între.


Vom folosi o abstracție în bibliotecă JavaScript, care ne permite de a crea procese și fire care sunt toate gestionate de către același JavaScript interpret. Acest lucru ne permite să executați acțiuni în felul următor:


* Un Proces, Firul 1
* Un Proces, Firul 2
* Procesul B, 1 Fir
* Procesul De O, Fir 3
* Un Proces, Thread 4
* Procesul B, Firul 2
* Pauză De Un Proces
* Procesul B, Fir 3
* Procesul B, Fire 4
* Procesul B, Fir 5
* Începe Un Proces
* Un Proces, Thread 5


Aceasta permite o formă de planificare și falsuri paralelism, pornirea și oprirea de fire, etc, dar nu va fi adevărat multi-threading. Nu cred că va fi vreodată puse în aplicare în limba în sine, deoarece adevarat multi-threading este utilă numai în cazul în care browser-ul poate rula o singură pagină, multi-threaded (sau chiar mai mult decât un singur nucleu), iar dificultățile sunt mult mai mari decât posibilitățile suplimentare.


Pentru viitorul JavaScript, check this out:
[https://developer.mozilla.org/presentations/xtech2006/javascript/](https://web.archive.org/web/20170920070053/https://developer.mozilla.org/presentations/xtech2006/javascript/) Valoarea returnată de o tratare a evenimentului determină dacă sau nu browser-ul implicit comportamentul ar trebui să aibă loc la fel de bine. În cazul clic pe link-uri, acest lucru ar fi urmatoarele link-ul, dar diferenta este cel mai vizibil în formă prezinte stivuitoare, unde puteți anula o formă de transmitere în cazul în care utilizatorul a făcut o greșeală introducerea informațiilor.


Eu nu't cred că există o W3C caietul de sarcini pentru acest lucru. Toate vechi JavaScript interfețe de acest gen au fost dat porecla "DOM 0", și sunt în mare parte nespecificată. Poate ai noroc de lectură vechi de Netscape 2 documentare.


Modul modern de realizare a acestui efect este de a apela eveniment.preventDefault()`, și acest lucru este specificat în [DOM 2 Evenimente caietul de sarcini](https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation). folosește opera are vpn integrat. sau folosește o extensie vpn pentru browserul google chrome de ex. extensia cyberghost sau tunnel bear. nu folosesc brave și nu știu ce extensii are! intra pe www.csserver.ro alege acolo de mod e svr la care vrei sa tii redirecte si numele acestuia. funda? Mă aștept răspunsul real este pur și simplu: nu a fost un bun exemplu de utilizare. Pentru cazuri, avantajul este acela că permite o fluente API asupra tipurilor existente (care nu se furnizează logica) - și anume



```
var foo = data.Where(x=>x.IsActive).OrderBy(x=>x.Price).First();

```

care permite LINQ:



```
var foo = (from x in data
           where x.IsActive
           order by x.Price
           select x).First();

```

Cu metode statice, acest lucru pur și simplu nu este o problemă, astfel încât nu există nici o justificare; doar utiliza metoda statică pe al doilea tip.


Așa cum este, metodele de extensie nu sunt *corect* obiect orientate - ele sunt un abuz pragmatic pentru a face viața mai ușoară în detrimentul purității. Nu a fost nici un motiv pentru a dilua metode statice în același mod. salut!
Ștergi toate datele de navigare de la browser. nu ai precizat care așa că vezi aici--> http://goo.gl/tgcj3
apoi, verifică dacă nu îţi sunt blocate site-uri. click pe computer, mergi la partiţia c:\windows\system32\drivers\etc
deschide fişierul hosts şi şterge adresele în cazul în care ai. sau, fă o copie a fişierului pe care îl poţi redenumi hosts2 iar fişierul hosts lasă-l gol (nu-l ştergi!).
dacă astea nu au mers, scanează de viruşi şi malware cu malwarebytes (dacă poţi descărca online> www.ninite.com/malwarebytes/ ) apoi cu hitman pro.
dacă nu poți rula browserele, dezinstalează toate toolbar-urile apoi fă o reinstalare a browserului. salut, intrii pe https://hide.me/en/proxy
iti alegi o tara si bagi acolo unde iti cere link-ul site-ul de la orange si iti comanzi cartela, dar vezi sa fie pe alta adresa si alt email/nume.
iar dupa asta faci la fel dar trebuie sa iti schimbi tara pe care ai selectat-o pe site-ul de mai sus si sa iti pui din nou alte date pe orange. http://www.extensiiparnatural.ro/home-extensii.html un site foarte bun;))