PNG-fix наболевшая тема в ie6
Столкнулся с проблемой: подключил к сайту fancybox, а у него есть скриптик jquery.pngFix.js . Я понадеялся на него, что он и мои все файлы PNG сделает "правильными" (заставит их отображаться в ie6). Но не тут то было, он просто отключил эти PNG`шки. Посмотрите на это: http://www.derevo96.ru/ Посоветуйте пожалуйста, может вы знаете какой-нибудь другой скрипт решения данной проблемы, чтобы я мог просто заменить файл jquery.pngFix.js
|
Выкинуть нафиг все скрипты а-ля pngfix и прописывать все руками. Это не так сложно как кажется, зато намного гибче. Редко бывает очень много png-шек на странице.
|
подскажите пожалуйста Kolyaj как правильно это делать, просто уже пробовал один способ, ручной, в итоге страница очень долго грузилась. Как это делаете вы?
|
Код:
.class { |
не скажу стоит ли использовать автоматическую коррекцию всех png на страничке. Kolyajб автоматическая заметно медленнее?
А по поводу не автоматической у Лебедева, например, такая же реализация, но при этом надо просто добавить behavior: url('pngfix.htc'); и не надо помнить как именно тот фильтр называется и как его применить |
Цитата:
Цитата:
|
Kolyaj, разница в том, что не надо помнить как применять фильтры, какой фильтр применить и какие нужно задать параметры
кроме того, понятнее, когда у тебя в css написано behavior: url('pngfix.htc'); Но проблема у человека на самом деле в том была, что jquery.pngFix.js меняет картинки на span'ы в качестве альтернативы могу привести такой вариант. Он кроме всего прочего еще должен корректно обрабатывать изменение src картинки |
pngfix.htc это то же самое, что и все остальные скрипты, а не то же самое, что я сказал.
|
Цитата:
|
Они решают проблему за меня, поэтому бесконтрольны.
Вобщем флуд это все :) |
эх... стесняюсь задать вопрос, но задам. А если png у меня не в img а просто допустим у таблицы в стилях задним фоном прписана, тогда что?
|
А я код привел как раз для фона, с img все посложнее.
|
а по поводу img: разве нельзя просто добавить к нему background-image такой же?
|
Цитата:
|
Не удалить, а прозрачную гифку прописать.
|
Цитата:
|
ZoNT, я с Вами полностю согласен, по поводу того, что надо заставлять думать. Но создавая данную тему, я прежде всего хотел, чтобы когда яндекс проиндексирует данную тему, другие пользователи, могли увидеть развернутые МНЕНИЯ, именно мнения других программистов, по данному вопросу. Т.к многие компании, занимающиеся разработкой веб-сайтов, просто "боятся" PNG. А зачастую без них невозможно решить некие задачи.
Ещё вопрос к Цитата:
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(s($){3.1s.1k=s(j){j=3.1a({12:\'1m.1j\'},j);8 k=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 5.5")!=-1);8 l=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 6.0")!=-1);o(3.17.16&&(k||l)){3(2).L("1r[@m$=.M]").z(s(){3(2).7(\'q\',3(2).q());3(2).7(\'p\',3(2).p());8 a=\'\';8 b=\'\';8 c=(3(2).7(\'K\'))?\'K="\'+3(2).7(\'K\')+\'" \':\'\';8 d=(3(2).7(\'A\'))?\'A="\'+3(2).7(\'A\')+\'" \':\'\';8 e=(3(2).7(\'C\'))?\'C="\'+3(2).7(\'C\')+\'" \':\'\';8 f=(3(2).7(\'B\'))?\'B="\'+3(2).7(\'B\')+\'" \':\'\';8 g=(3(2).7(\'R\'))?\'1d:\'+3(2).7(\'R\')+\';\':\'\';8 h=(3(2).1c().7(\'1b\'))?\'19:18;\':\'\';o(2.9.y){a+=\'y:\'+2.9.y+\';\';2.9.y=\'\'}o(2.9.t){a+=\'t:\'+2.9.t+\';\';2.9.t=\'\'}o(2.9.w){a+=\'w:\'+2.9.w+\';\';2.9.w=\'\'}8 i=(2.9.15);b+=\'<x \'+c+d+e+f;b+=\'9="13:11;1q-1p:1o-1n;O:W-V;N:1l;\'+g+h;b+=\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\';b+=\'J:I:H.r.G\'+\'(m=\\\'\'+3(2).7(\'m\')+\'\\\', D=\\\'F\\\');\';b+=i+\'"></x>\';o(a!=\'\'){b=\'<x 9="13:11;O:W-V;\'+a+h+\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\'+\'">\'+b+\'</x>\'}3(2).1i();3(2).1h(b)});3(2).L("*").z(s(){8 a=3(2).T(\'N-S\');o(a.E(".M")!=-1){8 b=a.X(\'1g("\')[1].X(\'")\')[0];3(2).T(\'N-S\',\'1f\');3(2).Q(0).Y.J="I:H.r.G(m=\'"+b+"\',D=\'F\')"}});3(2).L("1e[@m$=.M]").z(s(){8 a=3(2).7(\'m\');3(2).Q(0).Y.J=\'I:H.r.G\'+\'(m=\\\'\'+a+\'\\\', D=\\\'F\\\');\';3(2).7(\'m\',j.12)})}1t 3}})(3);',62,92,'||this|jQuery||||attr|var|style|||||||||||||src|navigator|if|height|width|Microsoft|function|padding|px|appVersion|margin|span|border|each|class|alt|title|sizingMethod|indexOf|scale|AlphaImageLoader|DXImageTransform|progid|filter|id|find|png|background|display|appName|get|align|image|css|parseInt|block|inline|split|runtimeStyle|Explorer|Internet|relative|blankgif|position|MSIE|cssText|msie|browser|hand|cursor|extend|href|parent|float|input|none|url|after|hide|gif|pngFix|transparent|blank|line|pre|space|white|img|fn|return'.split('|'),0,{})) является компилированым кодом? Или что это? просто сжатый код? Какими программаи сжимается так код, а есть вообще программы реализующие обратный эффект "декомпилирования" |
Код сжат при помощи «Packer». Обратное преобразование выполняется при выполнении функцией «eval».
|
а потом можно каким-нибудь javascript beautifier воспользоваться, например этим
|
Цитата:
(function($){jQuery.fn.pngFix=function(j){j=jQuery.extend({blankgif:'blank.gif'},j);var k=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 5.5")!=-1);var l=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 6.0")!=-1);if(jQuery.browser.msie&&(k||l)){jQuery(this).find("img[@src$=.png]").each(function(){jQuery(this).attr('width',jQuery(this).width());jQuery(this).attr('height',jQuery(this).height());var a='';var b='';var c=(jQuery(this).attr('id'))?'id="'+jQuery(this).attr('id')+'" ':'';var d=(jQuery(this).attr('class'))?'class="'+jQuery(this).attr('class')+'" ':'';var e=(jQuery(this).attr('title'))?'title="'+jQuery(this).attr('title')+'" ':'';var f=(jQuery(this).attr('alt'))?'alt="'+jQuery(this).attr('alt')+'" ':'';var g=(jQuery(this).attr('align'))?'float:'+jQuery(this).attr('align')+';':'';var h=(jQuery(this).parent().attr('href'))?'cursor:hand;':'';if(this.style.border){a+='border:'+this.style.border+';';this.style.border=''}if(this.style.padding){a+='padding:'+this.style.padding+';';this.style.padding=''}if(this.style.margin){a+='margin:'+this.style.margin+';';this.style.margin=''}var i=(this.style.cssText);b+='<span '+c+d+e+f;b+='style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+g+h;b+='width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;';b+='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+jQuery(this).attr('src')+'\', sizingMethod=\'scale\');';b+=i+'"></span>';if(a!=''){b='<span style="position:relative;display:inline-block;'+a+h+'width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;'+'">'+b+'</span>'}jQuery(this).hide();jQuery(this).after(b)});jQuery(this).find("*").each(function(){var a=jQuery(this).css('background-image');if(a.indexOf(".png")!=-1){var b=a.split('url("')[1].split('")')[0];jQuery(this).css('background-image','none');jQuery(this).get(0).runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+b+"',sizingMethod='scale')"}});jQuery(this).find("input[@src$=.png]").each(function(){var a=jQuery(this).attr('src');jQuery(this).get(0).runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+a+'\', sizingMethod=\'scale\');';jQuery(this).attr('src',j.blankgif)})}return jQuery}})(jQuery); |
огромное спасибо!
|
Извиняюсь, что поднял такой старый пост.
Сейчас пробую протестить отображение png с помощью IETester, и не могу понять. Вроде всё делаю правильно, но прозрачность не появляется. Пробовал и методом filter и iepngfix.htc. Не выходит. Кто знает, может быть IETester не обрабатывает filter? |
IETester вообще фигово работает (с флешом например), не сильно на него надейся..
|
там написано, что пока только альфа версия - может потом будет лучше
вообще непонятно из-за чего могут быть проблемы. Он же не эмулировать поведение должен, думаю, а использовать реальные движки версий IE *DONT_KNOW* |
Тоже использую PNGfix.
Примерно 5-10 полупрозрачных png на странице, и соотвтетсвенно все это дело "ВЕШАЕТ" IE6 При первой загрузке страницы происходит зависание на 1-2 минуты, при отключении PNGfix - сайт в IE6 просто летает! Подскажите как бороться с этим! |
Я для борьбы с IE6 использую такую конструкцию:
* html img.png { behavior:expression(!this.filterSetFlag ? this.filterSetFlag = (this.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+this.src+'",sizingMethod="image")',this.src = 'null.gif',true) : ''); } Работает довольно быстро и корректно.. |
Добрый день господа.Подскажите у меня в шаблоне сайта очень много скриптов(по моему мнению),может подскажите их функционал например,я только их концовки пропишу:
jdgallery/mootools-1.2.5-core-yc.js" type="text/javascript"></script> jdgallery/mootools-1.2-more.js" type="text/javascript"></script> jd.gallery.js" type="text/javascript"></script> jd.gallery.transitions.js" type="text/javascript"></script> js/pngfix.js"></script> MenuMatic_0.68.3.js" type="text/javascript" charset="utf-8"> |
- фреймворк мутулс, ядро (типа jquery, только с совершенно другим подходом)
- дополнения для мутулз, всякие там локализации, эффекты анимации и прочее - какая-то галерея - какие-то эффекты переходов для галереи - фикс древнего осла (IE) - хренотень какая-то |
Часовой пояс GMT +3, время: 23:23. |