De exemplu, face un bookmarklet care caută textul selectat în Google.
La sfârșitul funcției searchGoogle ar duce la pierderea 0. Acest cross-browser oprește prelucrarea browser-ul link-uri, prevenind de conversie inutile.
După aceea, selectați doar textul pe pagină și faceți clic pe tab-ul pentru a găsi textul selectat în Google.
Deschideți documentul poate fi freymset. În același timp moduri de a accesa conținutul utilizat în exemplul nostru, nu va funcționa. Textul ar trebui să caute într-un cadru, și nu în fereastra curentă.
Există mai multe moduri în jurul acestei probleme.
În cazul în care nu se poate aplica proiectat pentru a lucra cu cadre - puteți verifica prezența lor și va afișa un avertisment.
Pentru o funcționare fiabilă exclud ifreymy: marea majoritate a site-urilor sunt utilizate pur tehnologică: în ajax, pentru a ocoli unele dintre bug-uri și altele asemenea.
Pe de altă parte, suportul cadrului - o caracteristică bună. De exemplu, pentru a căuta în marcatorul Google ar trebui să lucreze pe site-urile cu cadre.
Soluție - cadre recursiv:
Call traversa (fereastră) procesează recursiv (de exemplu, în căutarea de selecție) toate cadrele din fereastra curentă.
Deoarece bookmarklet închise în ghilimele - este de dorit să se utilizeze în codul fie „, sau singur.
. De exemplu, în marcatorului pentru a căuta în Google, puteți înlocui toate „, în ghilimele vor lucra de asemenea:
În cazul în care funcția sau asignarea revine operatorului - că, oricare ar fi ea, marcatorului va redirecționează vizitatorii către o nouă pagină care arată valoarea.
Uneori poate fi folosit cu înțelepciune. de exemplu, pentru a afișa un rezumat al cuvintelor cheie din document. De obicei, această valoare de interceptare și adus la zero folosind nule. O soluție tipică - pentru a pune la sfârșitul marcatorului:
Alternativa - să facă toate lucrările din interiorul funcției nu se întoarce. Pentru a face acest lucru, de a crea și a chemat imediat o funcție anonimă:
Această metodă are, de asemenea, bonusul pe care le puteți utiliza variabile locale, și nu poluează domeniul de aplicare la nivel mondial.
lucrări în domeniul de aplicare marcatorului la nivel mondial.
Acest lucru înseamnă că, chiar și o variabilă declarată cu var. este la nivel mondial:
Pentru a obține în jurul acestui - folosind 2 metode.
Primul - pentru a atribui un nume unice de tip aBBZZ variabile. E strâmbă.
În al doilea rând - ambalaj bookmarklet într-o funcție anonimă:
Acest lucru elimină, de asemenea, necesitatea de a anula.
Se pare ca bookmarklet de căutare, înfășurat într-o funcție anonimă:
Spre deosebire de exemplul de realizare originală, aceasta nu contaminează regiunea variabilă globală selectată și q.
Numărul de caractere din marcatorului limitat. Mai mult decât atât, aceasta variază nu numai de la browser-ul browser-ului, dar, de asemenea, între versiuni.
Iată câteva detalii:
După cum puteți vedea, Internet Explorer 6.0 păstrează până la 508 de caractere, și Internet Explorer 6.0 SP2 - chiar mai rău, doar 488 de caractere. Deci, dacă doriți să vă asigurați că marcatorului se execută în IE6 - o limita de 488 de caractere.
Pentru a obține în jurul valorii de acest lucru, un marcator în IE se poate conecta script-uri externe:
O abordare alternativă - de a dezvolta un bookmarklet numai pentru „browsere avansate.“ Acest lucru funcționează în cazul în care este un bookmarklet instrument util, pentru care nu lene, și schimbarea browser-ului.
De exemplu, multe marcatorii SEO'shnye făcut acest lucru. Doriți să utilizați - pune FF și instrumente la dispoziția dumneavoastră.
- versiune printabilă
Buna ziua, spune-mi unde ar putea fi problema?
Am încercat să pună în aplicare metoda descrisă pentru IE script-uri de conectare prin fișiere externe:
care încarcă fișierul local, cu un script
Am încercat să adăugați la fel la corp, și, de asemenea provoca „manual“ prin consola Firebug. Script-ul și conținutul său afișat în depanator html, dar consola dă că funcția este „nu este definit“, și nu se întâmplă nimic. NoScript'om permite scripturi locale.
Fac ceva greșit, sau este un fel de politică de securitate browser-ului, sau ceva de genul asta?
Creați proiectul. Și acolo a fost aceeași întrebare ca tine. La urma urmei, orice student deja în stare să-mi rupe cu ușurință ideile mele. Acum, aceste așa-numitele marcatorii gata din belșug! Dar nimeni nu spune cum să se protejeze de ei, poate și nimeni nu știe cum să facă acest lucru. Aceasta poate încă inteligent? Doar această întrebare încerca să decidă pentru sine. Dacă găsiți o soluție, eu sunt sigur că pentru a atinge scopul.
Nu, nu „apăra“. Tot ce partea de utilizator, și tot ce vine de la ea - nu poate fi luată de la sine)) numai (tip) înainte de a emite o formă de valori de returnare caching și post-check
Epidemia de creier jQuery, facilitează foarte mult dezvoltarea marcatorii
Pe un site mai mult sau mai puțin mare, cu siguranță activat jQuery, iar dacă nu - atunci o altă bibliotecă.
Buna ziua!
Oamenii te rog ajuta novice să se ocupe cu structura următorul exemplu:
1 if (frames.length> document.getElementsByTagName ( 'iframe'). Lungime)
2 alertă ( „Ne pare rau nu suporta frame-uri.“);
3 4 altcineva / * Cod * bookmarklet /
5>
Și anume, eu nu pot da seama în care situații, dacă starea returnează true.
Așa cum am motivat. Trebuie să recunosc un singur element de pagină iframe. prin urmare
window.frames.length = 1;
NodeList Obiectul returnat de getElementsByTagName. 1 va conține iframe obiect. Aceasta înseamnă document.getElementsByTagName ( 'iframe') lungime = 1 .;
Condițiile nu sunt îndeplinite, atunci nu vom vedea o alertă, dar cadrul de pe pagina are
Întrebare în cazul în care sunt eu greșit?
Sper foarte mult pentru ajutor!
Vă mulțumim!
Există o altă nuanță a caracterului%. Acestea ar trebui să fie înlocuit cu 25% și separate printr-un spațiu de la numerele ulterioare.