Jump to content

ZoNT

Expert
  • Posts

    1,474
  • Joined

  • Last visited

Everything posted by ZoNT

  1. и... и... И я тут тоже был...
  2. загружаться в мозг ITшникам и форматить там всё...
  3. можно: надо написать свой браузер, которы в режиме ожидания не меняет курсор на progress
  4. ZoNT

    Xml, Xslt

    XSLT занмается только обработкой XML!!! Поэтому при смене увеличении задачи тебе придётся дописать еще один темплейт + получить нужный xml (а это изменение серверной части). А шаблон cms позволит сделать всего одну операцию, но на выходе ты получишь всегда один и тот же html! XSLT нужен для других целей: мы получаем от серверного скрипта всегда XML и используем его как нам угодно (пишем джава-апплет для мобилок, не имеющих браузера, пишем просто прогу, анпример экранную заставку, которая отображает текущий курс валют) и если нам надо этот XML преобразовать в HTML (а можно и в другой XML - XSLT это тоже делает), то используем XSLT.
  5. Исправлен баг с неправильным подсчётом введёных символов при вставке из буфера. + немного косметических правок... 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) }
  6. ZoNT

    Xml, Xslt

    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-шаблон. И для разных устройств/браузеров можно наделать шаблонов до усраки. А можно наделать шаблонов для одно страницы и хранить идентификатор шаблона в куках. Таким образом один шаблон - один скин для странички .
  7. ZoNT

    Xml, Xslt

    Всё правильно. Надо отдавать кусок xml (только нужный), а не всё-всё... Ты же не отдаёшь все странички на запрос одной и не скрываешь(не отрисовываешь) ненужне. Логика та же. Надо отдавать только то, что просят, а как это отобразится и переконвертится в HTML - это уже будет задача XSLT.
  8. ZoNT

    Xml, Xslt

    Я не использую, но люблю каверзные вопросы. Если не знаю ответа, так хоть поищу (может нового чего узнаю)
  9. ZoNT

    Popup окно

    "неадекватное" - слабовато сказано...
  10. сделай картинкой
  11. Это известная проблема с сеелектами в ИЕ. Ищи поиском по форуму - я уже отвечал раз 10...
  12. Есть, но я по-чукотски не бум-бум...
  13. я в ступоре. Моя твоя непонимай...
  14. Мне тоже в подпись что-ли про телепатов написать? Мы - не телепаты... Пример в студию...
  15. Не серчай, я не со зла...
  16. <img class="xxx" src="img1.gif"> Тогда это будет картинка и бэк ей можно прописать в классе xxx
  17. Написал скрипт для маскированного ввода в инпуты. Потестируйте, если есть какие предложения - тоже высказывайте. 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 - любая цифра * - буква или цифра.
  18. а бэкраундом её поместить в боттом?
  19. wmode=transparent (это для флэша)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy