2011 18 февруари 2011

IE Javascript Грешка: Обектът не поддържа това свойство или метод

Този странен въпрос, където едно парче на Javascript работи добре в всички браузъра АНО, както обикновено бар, т.е. :) ... Просто беше, но тъй като скриптът не е написана от мен, това отне известно време за коригиране на грешки в тази "грешка" Обектът не поддържа това свойство или метод, че само IE е хвърляне. Вероятно! Ако трябваше да напише сценария, аз няма да имам тази грешка на всички, за да не се смесват моите имена на променливи с област IDS :).

Проблем: Обектът не поддържа това свойство или метод (он-лайн 3)

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

Решение:
Грешката е генерирана на thirdrow в примера по-горе (линия 3 ... "shortdesc = document.getE ...."). Опитах сортиране на всички глупави неща, че аз съм се струва дори се споменава тук и най-накрая познайте какво! просто смяна на VaR shortdesc към нещо друго се отървете от тази грешка. По принцип! Името на променливата трябва да се различава от на fieldID


2009 24 март 2009 г.

Е забранено = "истинска" и хора с увреждания = "фалшиви" една и съща?

Това тези старото училище, но както обикновено това е ми памет добавка ...
Така че е забранено = "истинска" и хора с увреждания = "фалшиви" една и съща?
... Не вярвам, добре! Това е начина, по който тя е ... тук е малко бързо обяснение ...
"Инвалид" е атрибут на всяка форма елемент / поле и следователно може да приеме никаква стойност по своята същност.

Докато този атрибут е, елементът ще бъде забранено, независимо от неговата стойност. напр.
<input type="text" value="This е disabled" disabled>
<input type="text" value="This е disabled" disabled="disabled">
<input type="text" value="This е disabled" disabled="true">
<input type="text" value="This е disabled" disabled="false">

Всичко това ще направи този формуляр поле "инвалид".

Просто не предоставя атрибута "изключена" поддържа полето "ABLED" ... като по-долу

<input type="text" value="This не е disabled", />

Не забравяйте, "Всяка стойност (или никаква стойност) на инвалиди атрибут, браузърът ще го направи с увреждания". За да запазите нещата ясно в съзнанието ни W3C препоръчва, че ние използваме с увреждания = "инвалид" в тези ситуации.

Това е разликата въпреки че, когато ние използваме този атрибут, JavaScript ...

document.form.element.disabled = вярно; / / елемент ще бъде забранена
document.form.element.disabled = False / / елемент ще бъде включен

Посочените по-горе аргументи са също така и за тези атрибути и елементи:

  • проверявани (радио бутона и отметката)
  • избран (опция)
  • nowrap (TD)

2009 Mar 7 2009 г.

Повикване на няколко прозореца Onload функции в JavaScript

, Ерес друго малко peice, на измама Javascript, че аз трябваше да копаем наоколо, защото ситуацията го commaned. В един от моите уеб сайтове, имах тази ситуация, в която трябваше да въведе "windows.onload" два пъти. Първото нещо, че ще дойде да неопитен ум като моя (аз трябва да кажа честно, че, тъй като имам използвате JavaScript рамки и библиотеки, съм Забравена да го прости неща, на моя ... тъжно, но е истина), е следният метод ...

 window.onload = onloadfn1;
 window.onload = onloadfn2;
 window.onload = onloadfn3;
 и т.н. ..

Съжалявам да кажа, но това няма да работят ... не искам да обсъдят науката изпълнението на Javascript много ... но в съответствие с неотдавнашното ми опит, само последната функция (onloadfn3) ще лошо всъщност се изпълнява.

В нормални ситуации, за разлика от моя (което аз ще говоря за малко по-късно) ... бихте могли да направите едно от следните да изпълни mutliple функции onload ....

Или нещо такова

 на функция doOnLoad () {
         onloadfn1 ();
         onloadfn2 ();
         onloadfn3 ();
 }
 window.onload = doOnLoad;

За сегашното ми положение не може да използвате някоя от по-горе ...
Защо имам нужда да се обадя windows.onload два пъти, а, че призовава две функции в рамките на една функция onload? Ето бърз поглед на моя проблем изявление ...

"Моят сайт" страници са структурирани като Wordpress Тема .... т.е. налице е обща header.php и Footer.php, който да се включва във всички страници на сайта. Налице е едно implementaion onload функция в Footer.php, да се направят някои общи функции onload. И има няколко страници, които се нуждаят от нещо на собствената си ONLOAD, освен тези, направено от общата функция onload. Ако аз зададете функция за обратно извикване директно към window.onload манипулатор, ще свръх-вози на вече възложени извика в Footer.php "

.... Е мой проблем разбира :) ?

Е! има няколко решения, че съм откри. Те всички са много сходни и най-вече implementions на решение, дадено от за Саймън Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Решение:

Просто добавете този код на JavaScript на сайта ...

 за функция addLoadEvent (функции) {
     VAR oldonload = window.onload;
     ако (window.onload Вид на! = 'функция ") {
        window.onload = функции
     } Друго {
        window.onload = функция () {
            ако (oldonload) {
                   oldonload ()
           }
           функция ()
        }
    }
 }

И да го наречем, вместо на обичайните "windows.onload"

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (функция () {
 / * Повече код, за да се движат по зареждане на страницата *
 }); 

Предимства на този код фрагмент ...
1. На първо място, това ви позволява да имате няколко събития windows.onload, наречен от отделни части от кода си, без overridding предходната дефиниция
2. Това наистина е ненатрапчив. Това могат да бъдат поставени във файл с други скриптове или в отделен файл.
3. Тя работи дори ако window.onload вече е определена.


2008 25 декември 2008 г.

Зареждане на JavaScripts Динамично

Понякога да запази pageweight надолу ... ние сме разделени на нашите скриптове на фрагменти ... Тези javascript, фрагменти могат да бъдат заредени, както и когато е необходимо (на дадено събитие или на кликване на връзка или бутон и т.н.).

Зареждане Javascripts динамично е прост и доста чисти напред както по-долу ...

= “text/javascript” > <Скрипт тип = "текст / JavaScript">
за функция loadNewScript (източник) {
Var = document.createElement ('Script');
s.setAttribute ("тип", "текст / JavaScript");
s.setAttribute ("SRC", източник);
document.body.appendChild (и);
}
</ Скрипта>

и можете да имате на следния линк за набиране навсякъде в тялото, или може да има този скрипт "onLoad", на самия документ ...

= “javascript:loadNewScript('myDynamicScript.js');” >Load Dynamic Script</ a > <Една HREF = "JavaScript: loadNewScript (" myDynamicScript.js ");"> Зареди Dynamic Script </ A>

или

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


2008 Окт 3 2008

Проста, лека, кръст Lightbox браузър за вашата уеб страница

Не че има само няколко Лайтбокс че можете да намерите, когато ви Google. Проблемът с повечето от които намерих лайтбокса беше, че всички те като че ли да се използва едно или други тежки рамки тегло JavaScript като JQuery, прототип, MooTools и харесва. Те всички са готини и ефектен търсите. Но ако вашите изисквания е "НО ИСКАМ прост и лек Lightbox скрипт за моя сайт", след това тук е;

Някои хубави черти на този Lightbox

  1. Много лек
    а. 4KB на скриптове, когато опаковани 8 KB разопакован)
    б. 2 KB на CSS
    в. Няколко реда HTML за Лайтбокс контейнер
  2. Лесна за разбиране и прилагане на
  3. Може да има множество лайтбокса на същата страница.
  4. Лайтбокс се използва един и същ контейнер, за да покаже, различно съдържание (която е отделно включена като скрити разделения в страницата), в зависимост от връзката / опция, която е щракване.
  5. Автоматично се центрове, като се вземат предвид всички фактори, като например, височина и ширина на прозореца (разделителна способност на екрана), превъртане размер на страница и от височината на съдържанието на Лайтбокс
  6. Изпробван в IE 7 и FF

Вижте Demo |
Изтегляне Zip на Lightbox Източник (Свалено 1792 пъти)


Използване на Lightbox [файлове в компресирания файл]

jo.js, jo_pack.js [опаковани версия]: - прост набор от JavaScript ОБЕКТИ [JO], който съдържа елемент, прозорец и скриптове за позициониране на документи. Можете да отворите JO.JS, ако искате да си цапат ръцете с някои на Advanced Javascripting, създавайки абстрактни функции, разширяване на елементите имоти и такива. Ако не е твърде много в Javascripting, го остави на мира.

lightbox.js, lightbox_pack.js [опаковани версията]: -, съдържа леки скриптове, мениджър кутия. Ако сте дизайнер на страница, отговаря и с прилагането на Лайтбокс на страницата, трябва да разберат LightBoxManager. LightBoxManager основно съдържа само две функции showLightBox и closeLightBox.

lightbox.css: - Ако знаете, CSS, можете да си поиграете с lightbox.css, за да персонализирате външния вид на N-чувстват lightbox.css

index.html: изпълнение на пробата на Лайтбокс с две различно съдържание

lb_underlay_bkg.png: - Това е светлина / Сими прозрачен образ, който се използва фон за подложка Лайтбокс [подложка е слой под lighbox, която не позволява на потребителя да щракнете върху всеки друг субект на страницата,,, Лайтбокс е отворена. Можете да използвате всяко изображение или дори плътен цвят за тази цел, в зависимост от дизайна на страницата и изискването.

icon_lb_close.gif: - изображението за тясно Лайтбокс дръжка в горния десен ъгъл на светлината кутия. Може да използвате всяко изображение по проект

Вижте Demo |
Изтегляне Zip на Lightbox Източник (Свалено 1792 пъти)

Моля, нека вашите коментари и обратна връзка ...


2008 13 септември 2008 г.

JavaScript: редактиране на уеб страница в браузъра

Е, аз трябва да кажа, не, такава полезна парче на науката, но ако сте уеб разработчик, може да дойде под ръка, някой ден (или?). Ето малка отметка, която позволява да редактирате уеб страница за всеки сайт.
И Съжалявам! Можете да запишете резултатите само на локалния ви компютър.

JavaScript: document.body.contentEditable = "истински"; document.designMode = 'на'; невалидни 0


2008 Sep 2 2008

CSS рана: Javascript, CSS, HTML само за Firefox

Много пъти, че чувстваме нужда да пиша Браузър specfic хакове (въпреки че не е добра практика, ние потребителския интерфейс на разработчиците трябва да се прибегне до такива злини, докато най-големите войни Браузъри дума за примирие). По-рано, споменати в статията За вашата IES само , как да напишете откъс CSS, които ще бъдат видими т.е. браузъри <IE7 само.

Вчера, аз имах случай, когато исках да напиша някои FireFox специфичен CSS откъси. Е! Аз не съм сигурен, ако има CSS код за това, но има е HTML има и уловка Въпреки че, тази част на HTML doesnot да преминат проверката на HTML. Но anywaz! Ако сте остана лошо или като такъв, не се отнася за валидиране (по някое време ние трябва да бъдем жестоки), можете да използвате следното, за да обяви сочат към само стилове FF, или дори просто кодиране на CSS в рамките на този блок. Кодът е

<comment> Сложете си FireFox само HTML / CSS / Scripts тук </ коментар>

например
<comment>
<style>
/ * Стилове за само * FF /
fieldset {граница: 1px твърдо тяло # dddddd;:}
</ STYLE>
</ Коментар>

"Радвам се за момента ...


2008 Sep 1 2008

Премахване на конкретен елемент от масив JavaScript, който съвпада премина низ

Ето бърз начин за удължаване на родния Array JavaScript Object, само за да направи това ...

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;
}

Така че сега можете да направите нещо подобно ...

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

Сега животните масив ще съдържа "куче", "Лион", "котка", "слон";

PS: И тук е низ Trim Prototype прекалено ...

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


Насладете се ....


2008 15 май 2008 г.

Най-добри практики: Работа с JavaScript

Включване на JavaScript в долната част на документа на HTML

Ако не разполагате с document.write (или всяко динамично генериране на съдържанието на страницата, използващи javascripts), за да вмъкнете част от съдържанието на страницата във вашия скрипт, преместете сценария, включва изявление на долната част на страницата, преди края на Тялото маркер.
HTTP/1.1 спецификация предполага, че браузъри да свалите не повече от две компоненти успоредно на име на хост. Ако ви служи вашите изображения от множество имена на хостове, можете да получите повече от две сваляния да се появят при паралелно. Докато скриптът се изтегли, обаче, браузърът не ще стартира други сваляния, дори и на различни имена на хостове.
Има също така начини за динамично създаване на скриптове възли и заредете отдалечени скриптове след страницата се зарежда с помощта на AJAX.

Изнесе навън ви JavaScript.

Използване на външни файлове с JavaScript ще доведе до по-бързо зареждане на страници, защото на JavaScript файловете се кешират от браузъра. Inline JavaScript в документи на HTML се изтеглили HTML документа се иска всеки път. Това всъщност може да се намали броят на исканията на HTTP, направени, но впоследствие увеличава размера на HTML документ. Външен JavaScript са кеширани от браузъра, се намалява размера на HTML документа, без да се увеличава броя на молбите за HTTP.
Моля, обърнете внимание, че ако потребителите на сайта си имат множество изгледи страница на сесия и много от вашите страници повторно използване на същите скриптове и стилове, има по-голяма потенциалната полза от на кеширани външни файлове.

Опаковайте на JavaScript файлове

В случай на JavaScripts, за разлика от CSS, файлове могат да схруска използване на някои стандартни алгоритми, които ще предоставят на намален размер на файла не просто премахване на интервали или табулации. Един пример на JavaScript опаковчик може да намерите тук http://dean.edwards.name/packer/

Отърви се от евентуални дублирани скриптове

Това е много необичайно, че цели скриптове могат да бъдат дублирани, но мнението на десетте най-важни места в САЩ уеб показва, че двама от тях съдържат дублирани скрипт. Дублиране на скриптове, но очевидно намалява производителността чрез създаване на ненужни искания на HTTP и губи JavaScript за изпълнение.
Също така, в много случаи, въпреки че скриптове имена са различни, има вероятност на дублиращи скриптове рамките на същата страница, се дължи на екипа на размера и броя на скриптове.

Намаляване на достъп до Дом елементи, когато това е възможно

Достъп до дом елементи с JavaScript е бавен, така че за да има по-отзивчиви страница, трябва:
• Кеш препратки към достъпни елементи
• Обновяване възли "офлайн" и след това да ги добавите към дървото
• Избягвайте определяне оформление с JavaScript

Отделно поведение от съдържанието и представянето

Точно както ние отделно представяне (CSS / XSLT) от съдържанието (XHTML / XML), ние също трябва да се разделят поведение (JavaScript). Това се нарича ненатрапчив Javascript. Точно както ние линк към външни файлове на CSS, ние трябва да се свържете на javascript външни файлове.

Вместо твърд кодиране поведение в съдържанието (например поставяне на показалеца, OnClick и др.), Поведението трябва да бъде динамично добавят елементи, класове и уникални елементи (IDS) с помощта на DOM. Основополагащ документ, съдържанието, трябва да съдържа само валиден XHTML / XML и не JavaScript.
Javascript трябва да увеличи съдържание чрез добавяне на поведение. Съдържанието трябва да остане полезна и използваема без JavaScript (или без пълната подкрепа на JavaScript).


2008 15 март 2008 г.

Дразни Изберете кутии, видими през появилото се отделения

На няколко пъти, докато правите оформления на страници с на изскачащи дивизия / лайтбокса, / съвети и т.н. Ние се намира ситуации, в които под някаква форма Изберете обекти се случва да бъде в рамките на тези изскачащи отдели по дизайн и го показва чрез .... Гадост!!

Е! вие лесно може да се определи това чрез коригиране на Z-стойности на индекса, подходящо за FF и IE7. Но Добрия стар (игра на думи, предназначени) IE6 не се държи по предназначение .... Изберете Покажи кутия, дори след прилагане на някои драстично високи Z-стойности на индекса на вашия изскачащи дивизия ... Кофти!!!

Има Няма определя за този проблем, но има, според мен, повече от няколко начин да работят около този проблем, но съм тук да ви кажа най-простото решение, че аз използвам, който работи добре за мен, в по-голямата част от случаи ....

"Скрий SELECT BOX НА ROUGE, когато вие покажете появилото се"

Просто в скрипта ви откъс, където ви покаже изскачащ прозорец, добавете част от сценария, за да укажете видимост на прозорец Избор на "скритата"

document.getElementById ("my_select") style.visibilty = "скрит".

И не забравяйте да го върна на тясно на изскачащи си дивизия

document.getElementById ("my_select") style.visibilty = "видими";

, "my_select" е ID на прозорец Избор на дразненето

Надявам се това да помогне ...

PS. Има разбира се и други опции, като динамично positionining на една IFRAME (същия размер като ви изскачащи) под Popup DIV ... Това работи добре, но с добавянето на купища от DOM елементи, скриптове и главоболие. Използвал съм това решение, и ако имате нужда от помощ с тази опция, не да ме уведомите. Ще се радваме да помогнем!


НДК начало | Изразявайки | Изразявайки Вкус | Изразявайки Penmenship | Изразявайки страхопочитание | Изразяване на себе си