ZoNT
Expert-
Posts
1,474 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by ZoNT
-
и... и... И я тут тоже был...
-
загружаться в мозг ITшникам и форматить там всё...
-
можно: надо написать свой браузер, которы в режиме ожидания не меняет курсор на progress
-
XSLT занмается только обработкой XML!!! Поэтому при смене увеличении задачи тебе придётся дописать еще один темплейт + получить нужный xml (а это изменение серверной части). А шаблон cms позволит сделать всего одну операцию, но на выходе ты получишь всегда один и тот же html! XSLT нужен для других целей: мы получаем от серверного скрипта всегда XML и используем его как нам угодно (пишем джава-апплет для мобилок, не имеющих браузера, пишем просто прогу, анпример экранную заставку, которая отображает текущий курс валют) и если нам надо этот XML преобразовать в HTML (а можно и в другой XML - XSLT это тоже делает), то используем XSLT.
-
Исправлен баг с неправильным подсчётом введёных символов при вставке из буфера. + немного косметических правок... function setMask(I,M){ function R(s){return new RegExp('('+s.replace(/\(/g,'\\(').replace(/\)/g,'\\)').replace(/\//g,'\\/').replace(/9/g,'\\d').replace(/a/g,'[a-zа-яё]').replace(/\*/g,'[a-zа-яё0-9]')+')','gi')} function N(c,j,x){ for(var k=0,s='';k<L;k++)s+=$[k]||c||'_'; I.value=s; x?0:I.sC(!j?i:0) } function D(e,p,i){ p=I.gC(); if (p[0]==p[1]) { if(e)p[1]++; else p[0]-- } for(i=p[0];i<p[1];i++) if(!S[i]&&$[i]){ $[i]=0; j-- } return p } function V(){ setTimeout(function(k){ if (R(M).test(I.value)) { I.value=RegExp.$1; $=I.value.split(''); for(k=j=0;k<L;k++)if(!S[k])j++ } else N() },0) } function P©{ if (c<35&&c!=8||c==45) return 1; switch©{ case 8: i=D()[0]; return 0; case 46: i=D(1)[1]; return 0; case 35: i = L; return 1; case 36: i = 1; case 37: if (i-=2<-1) i=-1; case 39: if (++i>L) i=L; return 1; default: i=I.gC()[0]; while(i<L&&S[i]){i++} if (i==L) return 0; c = String.fromCharCode© if (R(M.charAt(i)).test©) { D(1); $[i++] = c; j++; while(i<L&&S[i]){i++} } return 0 } } var d=document, c='character', y=-100000, L=M.length, G=!c, i=0, j=0, $=M.split(''), S=M.split(''); for (var k=0;k<L;k++) if (/a|9|\*/.test($[k])) $[k]=S[k]=0; I = typeof I=='string' ? d.getElementById(I) : I; I.sC = function(l,g){ if(this.setSelectionRange) this.setSelectionRange(l,l); else { g = this.createTextRange(); g.collapse(true); g.moveStart(c,y); g.move(c,l); g.select(); } } I.gC = function(r,{ if (this.setSelectionRange) return [this.selectionStart,this.selectionEnd]; else { r = d['selection'].createRange(); b = 0-r.duplicate().moveStart(c,y) return [b,b+r.text.length] } } I.onfocus = function(){ setTimeout(function(){N(0,!j)},0) } I.onblur = function(){ j ? N(' ',0,1) : this.value='' } I.onkeydown = function(e,c){ e = e||event; c = e.keyCode||e.charCode; if (c==8||c==46) { G = true; P©; N(); return !G } else if (!window.netscape&&(c>34&&c<38||c==39)) P© } I.onkeypress = function(e){ if (G) return G=!G; e = e||event; if (P(e.keyCode||e.charCode)) return !G; N(); return G } if (d.all&&!window.opera) I.onpaste=V; else I.addEventListener('input',V,false) }
-
а .jpg кто добавлять будет?
-
1) от пользователя идёт запрос на сервер: дай мне страничку /monitors/lcd/dell-3008.html и мониторы с 1-го по 20 (по порядку). Я сижу в ИЕ. 2) Серверный скрипт отдаёт XML (мониторы с 1-го по 20-й из базы) и всё! 3) Серверный скритп отдаёт XSLT для ИЕ. 4) xml и xslt загружаются в браузер и xslt из xml формирует html. Снова: 1) от пользователя идёт запрос на сервер: дай мне страничку /monitors/lcd/dell-3008.html и мониторы с 1-го по 20 (по порядку). Я сижу с мобилки. 2) Серверный скрипт отдаёт XML (мониторы с 1-го по 20-й из базы) и всё! Он отдаёт тот же самый XML, что и впревом случае!!! 3) Серверный скритп отдаёт XSLT для мобилки. 4) xml и xslt загружаются в браузер мобилки и xslt из xml формирует html для мобилки. И так далее. Таким образом, скрипт отающий XML всегда неизменен и ему наплевать, как там обработают этот XML (и кто). А разным отображением инфы занимается XSLT-шаблон. И для разных устройств/браузеров можно наделать шаблонов до усраки. А можно наделать шаблонов для одно страницы и хранить идентификатор шаблона в куках. Таким образом один шаблон - один скин для странички .
-
Всё правильно. Надо отдавать кусок xml (только нужный), а не всё-всё... Ты же не отдаёшь все странички на запрос одной и не скрываешь(не отрисовываешь) ненужне. Логика та же. Надо отдавать только то, что просят, а как это отобразится и переконвертится в HTML - это уже будет задача XSLT.
-
Это нубы
-
Я не использую, но люблю каверзные вопросы. Если не знаю ответа, так хоть поищу (может нового чего узнаю)
-
"неадекватное" - слабовато сказано...
-
Во-во. вот это я 10 раз уже и указывал...
-
Это известная проблема с сеелектами в ИЕ. Ищи поиском по форуму - я уже отвечал раз 10...
-
Есть, но я по-чукотски не бум-бум...
-
я в ступоре. Моя твоя непонимай...
-
Мне тоже в подпись что-ли про телепатов написать? Мы - не телепаты... Пример в студию...
-
Не серчай, я не со зла...
-
<img class="xxx" src="img1.gif"> Тогда это будет картинка и бэк ей можно прописать в классе xxx
-
Написал скрипт для маскированного ввода в инпуты. Потестируйте, если есть какие предложения - тоже высказывайте. function setMask(I,M){ function R(s){return new RegExp('('+s.replace(/\(/g,'\\(').replace(/\)/g,'\\)').replace(/\//g,'\\/').replace(/9/g,'\\d').replace(/a/g,'[a-zа-яё]').replace(/\*/g,'[a-zа-яё0-9]')+')','gi')} function N(c){ for(var i=0,s='';i<L;i++)s+=$[i]||c; return s } function D(e,p,i){ p=I.gC(); if (p[0]==p[1]) { if(e)p[1]++; else p[0]-- } for(i=p[0];i<p[1];i++) if(!S[i]&&$[i]){ $[i]=0; j-- } return p } function V(){ setTimeout(function(k){ if (R(M).test(I.value)) { I.value=RegExp.$1; $=I.value.split(''); for(k=0;k<L;k++)if(!S[k])j++ } else { I.value = N('_'); I.sC(i) } },0) } function P(c){ if (c<35&&c!=8||c==45) return 1; switch(c){ case 8: i=D()[0]; return 0; case 46: i=D(1)[1]; return 0; case 35: i = L; return 1; case 36: i = 1; case 37: if (i-=2<-1) i=-1; case 39: if (++i>L) i=L; return 1; default: i=I.gC()[0]; while(i<L&&S[i]){i++} if (i==L) return 0; c = String.fromCharCode(c) if (R(M.charAt(i)).test(c)) { D(1); $[i++] = c; j++; while(i<L&&S[i]){i++} } return 0 } } var d=document, c='character', y=-100000, L=M.length, G=!c, i=0, j=0, $=M.split(''), S=M.split(''); for (var k=0;k<L;k++) if (/a|9|\*/.test($[k])) $[k]=S[k]=0; I = typeof I=='string' ? d.getElementById(I) : I; I.sC = function(l,g){ if(this.setSelectionRange) this.setSelectionRange(l,l); else { g = this.createTextRange(); g.collapse(true); g.moveStart(c,y); g.move(c,l); g.select(); } } I.gC = function(r,b){ if (this.setSelectionRange) return [this.selectionStart,this.selectionEnd]; else { r = d['selection'].createRange(); b = 0-r.duplicate().moveStart(c,y) return [b,b+r.text.length] } } I.onfocus = function(){ this.value=N('_'); setTimeout(function(){I.sC(j?i:0)},0) } I.onblur = function(){ this.value = j?N(' '):'' } I.onkeydown = function(e,c){ e = e||event; c = e.keyCode||e.charCode; i = this.gC()[0]; if (c==8||c==46) { G = true; P(c); this.value = N('_'); this.sC(i); return !G } else if (!window.netscape&&(c>34&&c<38||c==39)) P(c) } I.onkeypress = function(e){ if (G) return G=!G; e = e||event; if (P(e.keyCode||e.charCode)) return !G; this.value = N('_'); this.sC(i); return G } if (d.all&&!window.opera) I.onpaste=V; else I.addEventListener('input',V,false) } Вызывается: setMask('i1','99.99.9999'); первый параметр - инпут (или его айди) второй параметр - маска формат маски: a - любая буква 9 - любая цифра * - буква или цифра.
-
а бэкраундом её поместить в боттом?
-
wmode=transparent (это для флэша)
-
http://www.site.ru/2.html#yakor