Javascript Întrebări frecvente

Această soluție este posibilă, deoarece   pur și simplu introduceți în codul HTML al personajului cu A0 - vom schimba pur și simplu secvența condiționată de caracterul în sine, care nu afectează afișarea HTML-pagini.

Urmând logica simplă, vom adăuga la textul suspectului câteva condiții evidente:

Poate exista matematica in RegExp?

Cel mai simplu răspuns este evident ca eval (str). Dar există întotdeauna oameni care doresc ciudat. Este posibil să conta un astfel de șir și o expresie regulată prin utilizarea metodei pentru a înlocui a doua funcție de parametri:

Cum se obține o listă (matrice) a tuturor copiilor de un anumit element de HTML?

Cu proprietăți childNodes și metode cu matrice:

Cum se cunoaște dimensiunea completă a documentului deschis în browser-ul?

Acolo doar desene ciudate nu pot fi găsite pe net! Uneori lățimea documentului încearcă să determine, de exemplu, după cum urmează:

Această expresie în mod incorect de trei ori. În primul rând, partea inițială (a verifica condițiile) pur și simplu de prisos:

Acest cod mai scurt oferă exact același rezultat. În al doilea rând, în primul rând ar trebui să fie pus document.body (dă un rezultat corect) și document.documentElement (HTML) sau pur și simplu duplicate dimensiunea corpului (în browsere mai corecte), sau produce rezultate foarte ciudate. În al treilea rând, codul de mai sus calculează lățimea ferestrei, mai degrabă decât întregul document (din care o parte poate fi ascunsă). Lățimea documentului poate fi obținut (inclusiv capacitatea de a derula, în aproape toate browserele), după cum urmează:

Poate mult timp încercând să înțeleagă ce este diferit de scrollWidth offsetWidth, dar în loc de deliberare agonizante, tocmai am găsit cu inspectorul de acasă toate proprietățile DOM existente legate de dimensiunea elementului, și apoi un script simplu a adus aceste proprietăți în formă de tabel:

Selectați lățimea și înălțimea oricărei DOM svoytva - așa mai!

Cum să eliminați domeniul din adresa URL folosind expresii regulate?

Privind pentru cazul în care pentru a cumpăra un blat la un preț scăzut? Vă rugăm să contactați Cedar!

Cum de a ascunde, elementul de afișare (e), cu un singur buton?

Ideea se bazează pe o interesantă caracteristici CSS: elementul poate fi un ClassName câteva separate prin spații în codul HTML:

. și fiecare clasă poate fi descrisă separat în stylesheet:

- specificând o foaie de stil, putem schimba programatic afișarea elementului selectat prin adăugarea de disnone clasă:

Procedura inversă - îndepărtarea disnone (pentru a face elementul vizibil) - un pic mai complicat:

Extins funcția noastră în două moduri: din cauza interfeței (ca întotdeauna) - schimbați textul unui buton, moduri de comutare, și din cauza ipotezelor ca parametru la funcția nu este una, ci mai multe elemente (matrice). Funcția ia, deci doi parametri: obj element (sau matrice de elemente) și knop comutatorului elementului (cu inscripția, care este necesar să se schimbe):

Elementul de comutare pot fi diferite, așa că îl schimbă în inscripție prin proprietatea că există (valoare sau innerHTML) și nu este gol. Pentru a găsi proprietățile curente și non-gol (ESS) (din setul de candidat - arr) a trebuit să scrie o funcție separată findProp (ea ir2.js bibliotecă partajată):

  1. Recoltat container div id = "newbox" pentru lista obținută.
  2. a pus direct în container al doilea container div id = „framebox“ - a creat în mod dinamic elementul iframe; este acolo să fie afișate în caz de eroare și, în general, cu o slaba comunicare, utilizatorul poate vedea că lucrarea merge.
  3. Încărcați pagina dorită în iframe. într-un ciclu de interval de 200 ms încearcă să acceseze iframecontentWindow proprietate (sau contentDocument).
  4. Daca va avea succes, vom obține o listă cu toate trimiterile la documentul (framedoc.links) și a imprima lista în recipientul pregătit.
  5. În cazul în care rezultatul absențe îndelungate încetează încearcă să obțină un document prin 1800 cadru ms și raportează eșecul utilizatorului.

Nou moment doi:

Din aceeași funcție de utilizare bibliotecă addLoadEvent permite accesul (create_frame). Toate cod pentru a obține link-uri către o anumită pagină a site-ului sa dovedit ca aceasta:

În primul rând aveți nevoie pentru a deschide o nouă pagină într-o altă fereastră a browserului (1) sau trimite-l la fundal (ascuns) http-cerere (2). Din păcate, fondul în acest caz, o cerere nu poate fi executată cu elementul script src atribut (2.1), dar numai folosind Ajax (XMLHttpRequest) (2.2); Ajax, de asemenea, pe site-ul nostru este considerat a fi de prisos esență, prin urmare, toate optiunile pe care le putem doar (1).

Constrângerea (3). În toate cazurile (inclusiv Ajax), nu se poate obține textul (documentul) din noua pagină, în cazul în care se află într-un alt domeniu; browser-ul va afișa o eroare, ceva de genul „Eroare: Permisiune refuzată pentru a obține proprietatea Window.document“.

În conformitate cu termenii problemei avem nevoie pentru a obține o parte a unei pagini (de exemplu, elementul de text cu id-ul dat). Deci, nu este nevoie de o pagină nouă cu fereastra noi (utilizatori), este necesar să se deschidă, ridica un fragment și închide rapid spate. Prin urmare, o fereastră cu o nouă pagină în general, cel mai bine este de a face invizibil. Acest lucru se poate face numai cu opțiunea de ajutor (1.1) - iframe. Schema de lucru va fi de aproximativ după cum urmează:

  1. Crearea unui cadru de pagină cu src specificat.
  2. După ce în așteptare pentru un cadru de încărcare completă pentru a avea acces la documentele sale.
  3. Extras din documentul de biți pe care doriți și să le ardă în spațiul alocat pe pagina principală.
  4. Scoateți cadrul creat de program.

Crearea unui element de iframe timp

Este doar în cuvinte ușor și rapid. Crearea IFRAME cross-browser cu metodele „clasice“ ale DOM (createElement, appendChild) pare mai degrabă „strâmbă“ din cauza IE. Deci, folosim un innerHTML primitiv. Simplu și fiabil: care conține elemente atribuie proprietăți innerHTML = "