|
Проблемы JS в IE 5.5 и 6
|
|
| Energetik | Дата: 14 Августа 2009, 14:40 | Сообщение # 1 |  ● ● ● ● ● 29 сообщений Статус: Offline | Привет всем, я смотрю много воды утекло с моего последнего визита сюда... Больше не знаю где помощи просить ибо в JS дуб дубом))) вот код Code <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} }
function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; }
function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //-->
function fixPNG(element) {
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) { var src;
if (element.tagName=='IMG') { if (/\.png$/.test(element.src)) { src = element.src; element.src = "/pics/blank.gif"; } } else { src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); if (src) { src = src[1]; element.runtimeStyle.backgroundImage="none"; } } if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; } }
//smthg
function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); Этот код просто вводит в ступор Ie 6 попытался исправить ошибки найденные каким то JS валидатором, но так все и не смог... вот исправленное чуть Code <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) {x.src=x.oSrc;} } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) {d.MM_p=new Array();} var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) {if (a[i].indexOf("#")!==0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} }
function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) {d=document;} if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) {x=d.all[n];} for (i=0;!x&&i<d.forms.length;i++) {x=d.forms[i][n];} for(i=0;!x&&d.layers&&i<d.layers.length;i++) {x=MM_findObj(n,d.layers[i].document);} if(!x && d.getElementById) {x=d.getElementById(n);} return x; }
function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) {if ((x=MM_findObj(a[i]))!==null){document.MM_sr[j++]=x; if(!x.oSrc) {x.oSrc=x.src;} x.src=a[i+2];} } //-->
function fixPNG(element) {
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) { var src;
if (element.tagName=='IMG') { if (/\.png$/.test(element.src)) { src = element.src; element.src = "/pics/blank.gif"; } } else { src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); if (src) { src = src[1]; element.runtimeStyle.backgroundImage="none"; } } if (src) {element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";} } }
//smthg
function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init!==true) {with (navigator) {if ((appName=="Netscape")&&(parseInt("appVersion", 4))) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) {location.reload();} } MM_reloadPage(true);}} ну ессесно там есть ещё часть что в теле пишется, эта фиха смены картинок при наводе с подгрузкой вроде ... ну это не важно... Помогите разобраться. Спасибо | | |
|
| Кронд | Дата: 14 Августа 2009, 16:42 | Сообщение # 2 | ● ● ● ● ● 329 сообщений Статус: Offline | Самый простой выход - забить уже на IE6 (а на 5.5 и подавно), этот ужас веб-разработчиков, тормозящий развитие веба. Разве что если отчаянно нехватает секса любви и ласки... | | |
|
| Energetik | Дата: 14 Августа 2009, 17:25 | Сообщение # 3 |  ● ● ● ● ● 29 сообщений Статус: Offline | Ну не получается забить легче поправить этот код чем править html сайт с 500 страницами... а IE6 это 1/4 доля IE как раз та четверть которая нам и нужна) офисы, непродвинутые в компьютерных делах люди и тп. Поэтому хелпа) | | |
|
| Бармалей | Дата: 14 Августа 2009, 17:47 | Сообщение # 4 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | ИЕ недостоин жизни. А версии ниже семерки и подавно. Повесьте где-нибудь панельку для юзеров осла, подробно описывающую всю говнястость осла и предлагающую скачать Оперу / ФФ / Хром. Про ИЕ забудьте - не мешайте ему умирать, лучше помогите.
 | | |
|
| Energetik | Отредактировал Energetik - Пятница, 14 Августа 2009, 17:55 Дата: 14 Августа 2009, 17:55 | Сообщение # 5 |  ● ● ● ● ● 29 сообщений Статус: Offline | Ребяты, давайте про убогость Осла поговорим в другой теме))) А в этой очень хотелось бы решить проблему, может кто хороший валидатор JS знает? | | |
|
| Бармалей | Дата: 14 Августа 2009, 19:12 | Сообщение # 6 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | JSLint. Но если JS валиден, это еще не значит, что он будет работать в IE.
 | | |
|
| Energetik | Дата: 14 Августа 2009, 20:17 | Сообщение # 7 |  ● ● ● ● ● 29 сообщений Статус: Offline | Бармалей, то-то и оно... даже больше, я немного подправил его так он вобще не заработал))) Короче не знаю... Этот скрипт писался во времена IE 6 он должен работать... но у меня подозрения что написали его криворукие челы... | | |
|
| Vanofuture | Дата: 14 Августа 2009, 20:44 | Сообщение # 8 |  ● ● ● ● ● Все админы едят апельсины 1650 сообщений Статус: Offline | Energetik, а можно увидеть страницу на которой стоит этот скрипт? | | |
|
| Energetik | Дата: 14 Августа 2009, 20:51 | Сообщение # 9 |  ● ● ● ● ● 29 сообщений Статус: Offline | Vanofuture, дело в том что щас там этот код отключен... и сайт работает одинаково везде (ну исключая что в теле страницы остались вызовы функций и при наводки картинки не меняются, но пока жду может скрипт исправлю, тогда не нужно перелопачивать 500 страниц... ) ... А что ты хочешь увидеть? | | |
|
| Vanofuture | Дата: 14 Августа 2009, 21:45 | Сообщение # 10 |  ● ● ● ● ● Все админы едят апельсины 1650 сообщений Статус: Offline | Quote (Energetik) А что ты хочешь увидеть? У моего IE есть мерзкая привычка выдавать малейшие ошибки в большом окне и с указанием строки на которой она произошла.  | | |
|
| Energetik | Дата: 14 Августа 2009, 22:41 | Сообщение # 11 |  ● ● ● ● ● 29 сообщений Статус: Offline | а ошибок то нет... но ссылки не работают формы и прочее не работает, ребят может можно подставить под функции другое рабочее?Добавлено (14 Август 2009, 21:59) --------------------------------------------- так я понял что function fixPNG(element) это творит Добавлено (14 Август 2009, 22:41) --------------------------------------------- Люди подскажите - вот функция такая fixPNG() в css есть FILTER: expression(fixPNG(this)); this убрать из css или и так нормально? | | |
|
| }{0тт@бь)ч | Дата: 15 Августа 2009, 00:27 | Сообщение # 12 | ● ● ● ● ● 1089 сообщений Статус: Offline | Quote (Energetik) IE 5.5 и 6 детко, их никто не юзает. Ну разве что некрофилы-извращенцы. Ты б ещё оптимизировал сайт под ie1. | | |
|
| Energetik | Дата: 15 Августа 2009, 01:24 | Сообщение # 13 |  ● ● ● ● ● 29 сообщений Статус: Offline | Надо будет и оптимизирую, а детко у тебя между ног Всё отбой)) решил проблему, там в css вызывало функцию fixPNG, я просто убрал отовсюду эту функцию и прикрутил другую с работающим бэкграундом (прозрачность, позиции). _http://www.twinhelix.com/css/iepngfix/ (вдруг кому надо, v2.0 Alpha 3) | | |
|