IE 6 и PNG 24

простите, может где и поднималась тема, но у меня какие проблемы с поиском по сайту. В общем суть проблемы, старой как мир.
В Эксплорере 6м картинки формата png24 отображаются с каим-то серым фоном вместо прозрачности. Это, разумеется, меня не устроило и я решил найти решение проблемы в интернете. перепробовал с десяток всяких способов, плюс плагин для вородпреса, но все без толку.
Думаю, что в WP есть какие-то ньюансы, которые я не учел. Может сталкивался кто с этой проблемой и знает верное решение? Прошу помощи!

Скорее всего, что-то напутали с путями к скриптам/картинкам. Поищите по форуму, это, кажется, обсуждалось.

http://labs.unitinteractive.com/unitpngfix.php – на мой взгляд самое лучшее решение из всех изученных. или почти 🙂

простите, может где и поднималась тема, но у меня какие проблемы с поиском по сайту. В общем суть проблемы, старой как мир. 
В Эксплорере 6м картинки формата png24 отображаются с каим-то серым фоном вместо прозрачности. Это, разумеется, меня не устроило и я решил найти решение проблемы в интернете. перепробовал с десяток всяких способов, плюс плагин для вородпреса, но все без толку. 
Думаю, что в WP есть какие-то ньюансы, которые я не учел. Может сталкивался кто с этой проблемой и знает верное решение?  Прошу помощи!

помощь пришла

 
между тегами <head></head> впиши вот это:

<script type="text/javascript">
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function fixPNG(myImage) {
if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
var imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' "
var imgStyle = "display:inline-block;" + myImage.style.cssText
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
myImage.outerHTML = strNewHTML    }
}
</script>

применяется вот так

[quote]<img src="imgs/foto.png" width="856" height="207" onLoad="fixPNG(this);"/>[/quote]
вот и все…. во все файлах где хочешь применить это впиши onLoad="fixPNG(this); и все!!!

вот и все.... во все файлах где хочешь применить это впиши onLoad="fixPNG(this); и все!!!

эх если бы было все…. код вставил, но при загрузке в IE6 картинка просто исчезает. Пустое место остается. Разумеется в остальных браузерах все ок.

А нет, я извиняюсь. Все заработало! Спасибо, ozono! ))

И спасибо всем за подсказки!

Тоже решил попробывать этот чудо способ. Все здорово, вот только картинка на которую поставлена ссылка в IE 6 перестала быть кликабельна.

Дадада, у меня тоже самое… хммм… Кто-нибудь знает, как решить эту проблему с помощью скрипта, который указал ozono?

Ребят! Этот чудо скрипт оч хорошо работает и действительно спасает, но как быть, если картинки – это фон, который прописывается в css?
ну, такого вида к примеру:

.post{
    margin: 10px 0 0;
    padding: 15px;
    background: url(images/bg_post.png) no-repeat;
}

Как можно вставсть сюда onload?

Можт есть какой js который будет автоматом сразу применяться ко всем png?? я оч долго ищу но так и не смог его найти)

Ну так напишите свой, если не находится ничего. Должно получиться что-то типа
var images = document.getElementsByTagName(‘img’);
for (var i=0; i<images.length; i++){
// images[i] проверить на png и обработать
}

Ммм.. Я не силен в js 🙁 но, если логически рассуждать должно получиться примерно так: (я решил все объединить в один скрипт)

<script language="javascript">
var images = document.getElementsByTagName(‘img’); // Определяем расширение
for (var i=0; i<images.length; i++){ // не совсем понял значение этой строки
// images[i] проверить на png и обработать
if (images = png){ // если перед нами пнг – кромсаем
<script type="text/javascript">
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function fixPNG(myImage) {
if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
var imgID = (myImage.id) ? "id=’" + myImage.id + "’ " : ""
var imgClass = (myImage.className) ? "class=’" + myImage.className + "’ " : ""
var imgTitle = (myImage.title) ? "title=’" + myImage.title + "’ " : "title=’" + myImage.alt + "’ "
var imgStyle = "display:inline-block;" + myImage.style.cssText
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\’" + myImage.src + "\’, sizingMethod=’scale’);\"></span>"
myImage.outerHTML = strNewHTML }
}
}
}
</script>

Уважаемый Ю.Б.! Покажите пожалуйста, что я опять сделал не так

Всё не так 🙁 Начиная с синтаксиса. Или разбирайтесь с жабаскриптингом, или ждите, пока кому-то захочется сделать для Вас скрипт.

Все! Разобрался!
Вот очень удобный пример фикса: http://www.twinhelix.com/css/iepngfix

http://wordpress.org/extend/plugins/wp-unitpngfix/

http://wordpress.org/extend/plugins/wp-unitpngfix/

Странно.. не работает… хотя есть выход установить пнгфикс от твинхеликс + этот плагин, тогда не надо заморачиваться с рисунками(пнгфикс не действует в том случае если не указаны размеры рисунка(поля) или position равно relative или absolute) т.е. твинхеликс все подправляет(коряво конечно, но для начала сгодится:))) ) а скрипт приведенный Смертником все подправляет…
Если все установить и чуть-чуть поработать ручками все идеально! Спасибо всем!!

Anonymous
Отправить
Ответ на: