2011 18 februarie 2011

Eroare IE Javascript: Obiectul nu suportă această proprietate sau metodă

Am avut această problemă ciudat, în cazul în care o bucată de Javascript lucrat bine în toate ANS browser ca IE bara de obicei :) Simplu ... a fost, dar din moment ce scenariul nu a fost scris de mine, a luat un timp pentru a depana această "Obiectul nu suportă această proprietate sau metodă", eroare care doar IE a fost aruncat în sus. Probabil! Dacă ar fi să scriu scenariul, nu aş fi primit această eroare, la toate, ca nu se amesteca nume de variabile mele cu câmpul ID-uri :).

Problemă: Obiectul nu suportă această proprietate sau metodă (pe linia 3)

function funzoneSP(){ document.getElementById('video_id').style.visibility="hidden"; shortdesc = document.getElementById('shortdesc').value; .... } 

Soluţie:
Eroare este generata pe thirdrow în exemplul de mai sus (linia 3 ... "shortdesc = document.getE ...."). Am încercat tot felul de lucruri stupide, pe care i dont este chiar merită menţionat aici şi în cele din urmă ghici ce! schimbarea doar var shortdesc la altceva scapat de eroare. Practic! Numele variabilei a trebuit să diferit de fieldID


2009 24 martie 2009

Este dezactivat = "true" şi cu handicap = "false" la fel?

Această şcoală a celor vechi, dar ca de obicei aceasta este un supliment mea de memorie ...
Deci, este dezactivat = "true" şi cu handicap = "false", acelaşi lucru? Da
Nu cred că ..., bine! Asta e modul în care este ... aici este o explicaţie rapidă ...
"Handicap" este un atribut de orice element de formular / domeniu şi, prin urmare, poate accepta orice valoare, prin natura sa.

Atâta timp cât acest atribut este prezent, elementul va fi dezactivat, indiferent de valoarea sa. de ex.
<input type="text" value="This este disabled" disabled>
<input type="text" value="This este disabled" disabled="disabled">
<input type="text" value="This este disabled" disabled="true">
<input type="text" value="This este disabled" disabled="false">

Toate cele de mai sus se va face în domeniul această formă "Disabled".

Pur şi simplu nu oferă atributul "Disabled" pastreaza Rubrica "permis luarea" ... ca de mai jos

<input type="text" value="This nu este disabled" />

Amintiţi-vă "Orice valoare (sau nici o valoare, la toate), a persoanelor cu handicap atribut, browser-ul va face dezactivat". Pentru a păstra lucrurile clar în mintea noastră W3C recomandă pe care le folosim dezactivat = "handicap" în aceste situaţii.

Aceasta este diferenţa, deşi atunci când vom folosi acest atribut în javascript ...

document.form.element.disabled = true; / / element va fi dezactivat
document.form.element.disabled = false; / / element va fi activat

Argumentele de mai sus sunt, de asemenea, valabil şi pentru aceste atribute şi elemente:

  • verificate (butonul radio şi checkbox)
  • selectat (opţiune)
  • nowrap (TD)

2009 07 martie 2009

Apelarea funcţiilor multiple de Windows onload in JavaScript

Heres un alt peice puţin de înşelăciune Javascript pe care am avut de a săpa în jurul, deoarece situaţia se commaned. Într-una din site-ul meu, am avut această situaţie în care am avut de a pune în aplicare "windows.onload" de două ori. Primul lucru pe care ar fi ajuns la o minte lipsit de experienţă ca a mea (eu trebuie să spun sincer că, din moment ce am fost cu ajutorul cadrelor javascript şi biblioteci, am uitate de a face lucruri simple, pe propria mea ... trist dar adevarat), este următoarea metodă ...

 window.onload = onloadfn1;
 window.onload = onloadfn2;
 window.onload = onloadfn3;
 , etc ..

Ne pare rau sa spun, dar, acest lucru obiceiul de lucru ... nu vreau pentru a discuta despre stiinta executarea de Javascript mult ... dar în funcţie de experienţa mea recentă, doar ultima funcţie (onloadfn3) va bolnav se de fapt executate.

În situaţii normale, spre deosebire de a mea (pe care voi vorbi despre un pic mai târziu) ... ai putea face una dintre următoarele pentru a executa funcţiile mutliple onload ....

Sau ceva de genul asta

 doOnLoad function () {
         onloadfn1 ();
         onloadfn2 ();
         onloadfn3 ();
 }
 window.onload = doOnLoad;

Pentru situaţia mea actuală, eu nu pot folosi oricare dintre cele de mai sus ...
De ce am nevoie pentru a apela windows.onload de două ori, mai degrabă, că de asteptare două funcţii într-o funcţie onload singur? Aici este un aspect rapid la declaraţia problema mea ...

"Paginile site-ul meu sunt structurate ca temă WordPress .... adică nu este un header.php comune şi Footer.php care devine incluse în toate paginile site-ului. Există o funcţie implementaion onload în Footer.php pentru a face unele funcţii comune onload. Şi acolo sunt câteva pagini care au nevoie de ceva de ONLOAD lor, în afară de cele făcute de funcţia de onLoad comun. Dacă aş atribui funcţie de apel invers direct la handler window.onload, se va merge pe-callback atribuite anterior în Footer.php "

.... Este problema mea a înţeles :) ?

Ei bine! există puţine soluţii pe care am găsit. Ele toate sunt foarte asemănătoare şi, în principal implementions de o soluţie dată de Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Soluţie:

Pur şi simplu adăugaţi acest cod javascript pentru site-ul ...

 Funcţia addLoadEvent (func) {
     var = oldonload window.onload;
     în cazul în care (typeof window.onload = "funcţie"!) {
        window.onload = func
     } Else {
        window.onload = function () {
            dacă (oldonload) {
                   oldonload ()
           }
           func ()
        }
    }
 }

Şi-l numesc în loc de "windows.onload"

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Codul de mai mult pentru a rula pe pagina de încărcare *
 }); 

Avantajele acestui fragment de cod ...
1. În primul rând, Acesta vă permite să aveţi mai multe evenimente windows.onload, numit de părţi separate ale codului, fără a overridding definiţia anterioară
2. Este într-adevăr discret. Acesta poate fi plasat într-un fişier cu script-uri sau alte într-un fişier separat.
3. Ea funcţionează, chiar dacă window.onload a fost deja stabilit.


2008 25 decembrie 2008

JavaScripts de încărcare dinamică

Uneori, pentru a menţine pageweight jos ... ne-am împărţit în fragmente de script-uri noastre ... Aceste fragmente JavaScript poate fi încărcat ca şi atunci când este necesar (la un eveniment sau la un clic pe un link sau buton, etc).

Javascripts dinamic de încărcare este simplă şi destul de drept înainte, ca de mai jos ...

= “text/javascript” > <Tip de script = "text / javascript">
Funcţia loadNewScript (sursa) {
var s = document.createElement ("script");
s.setAttribute ("tip", "text / javascript");
s.setAttribute ("src", sursa);
document.body.appendChild (e);
}
</ Script>

şi puteţi avea link-ul următor apel oriunde în corp, sau poti avea acest script "onLoad" a documentului în sine ...

= “javascript:loadNewScript('myDynamicScript.js');” >Load Dynamic Script</ a > <A href = "javascript: loadNewScript (" myDynamicScript.js '); "> Script Sarcină dinamică </ a>

sau

<body onload="loadNewScript('myDynamicScript.js');">


2008 03 octombrie 2008

Simplu, Lightbox uşoare, Crucea browser pentru pagina dvs. de Web

Nu faptul că există doar câteva lightbox lui pe care le puteţi găsi atunci când Google. Problema cu cele mai multe lumini pe care am găsit a fost că toţi păreau a utiliza una sau alte cadre grele, JavaScript greutate, cum ar fi jQuery, Prototype, mootools şi îi place. Acestea sunt toate rece şi swanky cautati. Dar dacă cerinţa este "dar vreau un SCRIPT lightbox SIMPLU şi uşoară pentru Site-ul meu", atunci aici este;

Unele caracteristici ale acestui frumos lightbox

  1. Foarte uşor
    o. 4KB de scripturi atunci când ambalate (8 kb despachetat)
    B. 2 KB din CSS
    C. Câteva linii de cod HTML pentru containere lightbox
  2. Simplu să înţeleagă şi să pună în aplicare
  3. Poate avea mai multe lumini de pe aceeaşi pagină.
  4. Container Lightbox este folosit pentru a arăta, conţinut diferit (care este inclus separat ca diviziuni ascunse în pagină), în funcţie de link-ul / opţiunea care se face clic.
  5. Automat centre, luând în considerare toţi factorii, cum ar fi, înălţimea şi lăţimea ferestrei (rezoluţia ecranului), valoarea pagina de defilare şi înălţimea a conţinutului de lightbox
  6. Testat în IE 7 şi FF

Vezi Demo |
Descarca Sursa Zip Lightbox (Downloaded 1803 ori)


Utilizarea Lightbox [Fişiere în fişierul zip]

jo.js, jo_pack.js [versiunea ambalat]: - un set simplu de OBIECTE JAVASCRIPT [JO], care conţine elementul, ferestre şi script-uri de poziţionare a documentelor. Puteţi deschide JO.JS dacă doriţi să obţineţi mâinile murdare cu unele Javascripting avansată, crearea de funcţii abstracte, extinderea unor astfel de proprietăţi şi a elementelor. Dacă nu se prea mult în Javascripting, Lasă-l singur.

lightbox.js, lightbox_pack.js [versiune plin de]: - Contine scripturi de lumina caseta de Manager. Dacă sunteţi proiectantul paginii, de asemenea, responsabil cu punerea în aplicare a lightbox pe pagina, aveţi nevoie pentru a înţelege LightBoxManager. LightBoxManager conţine practic doar două funcţii showLightBox şi closeLightBox.

lightbox.css: - Dacă ştii CSS, poţi să te joci în jurul cu lightbox.css pentru a personaliza aspectul-N-simt lightbox.css

index.html: punerea în aplicare Exemplu de lightbox cu două conţinut diferit

lb_underlay_bkg.png: - Aceasta este lumina / Simi imagine transparentă, care este folosit de fundal pentru stratul de baza lightbox [Covorul este stratul de mai jos lighbox, care împiedică utilizatorul de la clic pe orice altă entitate pe pagină, în timp ce lightbox este deschis]. Puteţi utiliza orice imagine sau chiar o culoare solida pentru acest scop, în funcţie de designul paginii şi cerinţa.

icon_lb_close.gif: - imagine pentru mâner lightbox aproape de partea din dreapta sus a casetei de lumină. Pot folosi orice imagine ca pe proiectarea

Vezi Demo |
Descarca Sursa Zip Lightbox (Downloaded 1803 ori)

Vă rugăm să ne comentariile dumneavoastră şi feedback-ul ...


2008 13 septembrie 2008

JavaScript: Editare pagină web în browser-ul

Ei bine, eu trebuie să spun nu, o astfel de piesă util de ştiinţă, dar dacă sunteţi un dezvoltator web, ar putea veni la îndemână, într-o zi (sau nu?). Aici este bookmarklet mic, care permite să editaţi pagina de web pentru orice site.
Şi îmi pare rău! Aveţi posibilitatea să salvaţi rezultatele pe computerul local numai.

javascript: document.body.contentEditable = "true"; document.designMode = "pornit"; nule 0


2008 2 septembrie 2008

CSS hack: Javascript, CSS, HTML pentru numai pentru Firefox

De multe ori ne simţim nevoia de a scrie hacks browser specfic (deşi nu este o practică bună, am dezvoltatorii UI trebuie să recurgă la astfel de rele până la marile razboaie Browsere ajunge la un armistiţiu). Mai devreme, am menţionat în acest articol Pentru schimburile de dvs. Numai , cum să scrie un fragment de CSS care ar fi vizibil pentru browserele IE <IE7 numai.

Ieri, am avut un caz, în cazul în care am vrut să scrie unele FireFox specific CSS fragmente. Ei bine! Eu nu sunt sigur dacă există un cod CSS pentru acest lucru, dar există un HTML. Există o captură Deşi, această bucată de cod HTML doesnot trece de validarea HTML. Dar, anywaz! Dacă sunteţi blocat prost sau ca atare, nu au ceea ce priveşte, pentru validare (uneori trebuie să fie crud), aţi putea folosi următorul text pentru a declara o legătură într-o foaie de stil numai FF sau chiar doar codul CSS în acest bloc. Codul este

Pune <comment> Firefox doar HTML / CSS / Scripturi aici </ comentariu>

de exemplu,
<comment>
<style>
/ * Stiluri de numai FF * /
FIELDSET {frontieră: 1px solid # dddddd;}
</ Style>
</ Comment>

Eu "m fericit pentru moment, ...


2008 O septembrie 2008

Scoateţi element specific dintr-o matrice JavaScript care se potriveşte cu un şir de trecut

Iată mod rapid de a extinde nativ obiect Javascript Array, doar pentru a face asta ...

Array.prototype. removeItem =function(str) {
for(i=0; i<this.length ; i++){
if(escape(this[i]).match(escape(str.trim()))){
this.splice(i, 1); break;
}
}
return this;
}

Deci, acum puteţi face ceva de genul asta ...

var animals= new Array("dog","lion","cat","tiger","elephant");
animals. removeItem ('tiger');

Acum, matrice animale va conţine "câine", "leu", "pisica", "elefant";

PS: Si aici este prototipul String Trim prea ...

String.prototype.trim=function(str) {
str = this != window? this : str;
return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


Bucuraţi-vă de ....


2008 15 mai 2008

Cele mai bune practici: de lucru cu Javascript

Include de JavaScript la fund a documentului HTML

Dacă nu aveţi document.write (sau orice generarea dinamică a conţinutului paginilor folosind javascript) pentru a insera o parte din conţinutul paginii în script-urile tale, mutaţi script-ul conţine şi declaraţia la partea de jos a paginii, înainte de sfârşitul tag-ul BODY.
Caietul de sarcini HTTP/1.1 sugerează că browser-descărcare nu mai mult de două componente, în paralel, pe numele gazdei. Dacă vă servi imaginile din numele gazdelor mai multe, puteţi obţine mai mult de două descărcări să apară în paralel. În timp ce un script este descărcarea, cu toate acestea, browser-ul nu va porni nici alte descărcări, chiar şi pe hosturi diferite.
Există, de asemenea, moduri de a crea dinamic noduri script-ul şi script-uri de la distanţă după ce incarca pagina este încărcată cu ajutorul AJAX.

Externaliza ai lui JavaScript

Utilizarea fişierelor externe JavaScript va duce la încărcare mai rapidă a paginilor, deoarece fisierele JavaScript sunt memorate în cache de către browser. "Inline JavaScript în documentele HTML se descărcate de fiecare dată când documentul HTML este solicitat. Acest lucru ar putea reduce de fapt, numărul de cereri HTTP facute, dar creşte ulterior dimensiunea documentului HTML. Extern JavaScript sunt cache de browser-ul, dimensiunea documentului HTML este redusă, fără a creşte numărul de cereri HTTP.
Vă rugăm să reţineţi că, în cazul în care utilizatorii de pe site-ul dvs. are mai multe vizualizări de pagini pe sesiune şi multe dintre paginile dvs. de re-folosesc script-urile şi aceleaşi stil, există un beneficiu mai mare potenţial de fisiere cache externe.

Ambalaj fişierelor Javascript

În caz de JavaScripts, spre deosebire de CSS, fişierele ar putea crunched utilizarea unor algoritmi standard de care ar da o dimensiune de fişier redusă decât a scoate pur şi simplu, spaţii sau tab. Un exemplu de JavaScript ambalatorului poate fi găsit aici http://dean.edwards.name/packer/

Scapa de orice script-uri duplicat

Este foarte neobisnuit ca script-uri întregi ar putea fi duplicat, dar o revizuire a zece de top din SUA site-uri arată că două dintre ele contine un script de duplicat. Duplicate script-uri, dar reduce în mod evident performanţa prin crearea de cereri HTTP inutile şi pierdut JavaScript executare.
De asemenea, în multe cazuri, deşi numele de script-uri sunt diferite, există o probabilitate de script-uri duplicat în aceeaşi pagină, din cauza dimensiunii echipă şi numărul de script-uri.

Minimizarea accesarea elemente DOM acolo unde este posibil

Accesarea elementelor DOM cu JavaScript este atât de lent, în scopul de a avea o pagină mai receptiv, trebuie:
• referiri la elementele de cache accesate
• noduri de actualizare "offline", şi apoi adăugaţi-le în copac
• Evitaţi de stabilire aspect cu JavaScript

Comportamentul separat de conţinutul şi prezentarea

Aşa cum am separat de prezentare (CSS / XSLT) la conţinut (XHTML / XML), ar trebui să ne separe, de asemenea, Behavior (JavaScript). Aceasta se numeşte Javascript discret. Aşa cum am lega la fişiere externe CSS, ar trebui să ne legaţi la fişiere externe javascript.

În loc de comportament greu de codificare în conţinut (de exemplu, onmouseover, onclick, etc), comportamentul dinamic trebuie să fie adăugate la elemente, clase, si elemente unice (IDS), folosind DOM. Documentul fundamental, de conţinut, trebuie să conţină numai valid XHTML / XML şi nu JavaScript.
Javascript trebuie sa insoteasca conţinutul prin adăugarea de comportament. Conţinutul trebuie să rămână util şi uşor de utilizat, fara javascript (sau fără sprijinul deplin JavaScript).


2008 15 martie 2008

Iritante Cutii Selectaţi vizibil prin diviziile Popup

La ocazii mai multe, în timp ce faci machete de pagini cu divizii pop-up / lumini / Sfaturi, etc am ajuns în situaţii în care unele obiecte de formular SELECT se întâmplă să fie în conformitate cu aceste diviziunile pop up, de proiectare şi arată, prin .... YuK!

Ei bine! ai putea rezolva cu usurinta acest lucru prin ajustarea dvs. Z-INDEX valori corespunzător pentru FF si IE7. Dar, bun vechi (joc de cuvinte destinate), IE6 nu se comporta ca destinate .... Arată BOX SELECT, prin, chiar şi după aplicarea unor drastic ridicate Z-INDEX valori de la Divizia de PopUp ... Dezamăgire!!

Nu există soluţii pentru această problemă, dar există, cred eu, mai mult decât o modalitate de a lucra câteva, în jurul valorii de această problemă, dar im aici să vă spun mai simplă soluţie pe care am folosi, care functioneaza bine pentru mine, în cea mai mare parte cazuri ....

"Ascunde ROUGE BOX Selectaţi când SHOW POPUP"

Pur şi simplu, în fragmentul de script-ul dvs. în cazul în care va arăta pop-up, adăugaţi o bucată de script pentru a seta vizibilitatea Box SELECT pentru a "ascuns"

document.getElementById ('my_select') style.visibilty = "ascuns".;

Şi amintiţi-vă să-l dăm înapoi pe Închidere a diviziei de PopUp

document.getElementById ('my_select') style.visibilty = "vizibil".;

în cazul în care "my_select" este ID-ul de Box iritare SELECT

Sper că acest lucru ajută la ...

PS. Există opţiuni, cum ar fi desigur alte positionining dinamic un IFRAME (aceeasi dimensiune ca ai pop-up) în conformitate cu DIV Popup ... Acest lucru functioneaza prea bine, dar cu un plus de incarcatura de elemente DOM, Scripturi si dureri de cap. Am folosit această soluţie de asemenea, şi dacă aveţi nevoie de ajutor cu această opţiune, nu să-mi spuneţi. Va fi bucuros să vă ajute!


NDK acasă | Exprimarea IT | Gust Exprimarea | Penmenship Exprimarea | Awe Exprimarea | a mă exprima