Как получить прозрачность PNG, работающую в браузерах, которые исходно не поддерживают ее?

Chrome Исправлены проблемы безопасности на версии 36.0.1985.125

Chrome 36.0.1985.125 СРЕДА, 16 ИЮЛЯ 2014 Примечание к выпуску

Из моего наблюдения, это обновление устранило проблему при использовании window.close(), чтобы закрыть всплывающее окно. Вы увидите это на консоли, когда оно не получится: «Скрипты могут закрывать только открытые им окна». Это означает, что хакерские обходные пути (ответ Брок Адамса) могут не работать в последней версии.

Таким образом, в предыдущих выпусках, выпущенных Chrome, приведенный ниже блок кода может работать, но не с этим обновлением.

window.open('', '_self', '');
window.close();

Для этого обновления вам необходимо обновить свой код, чтобы закрыть всплывающее окно. Одним из решений является захват идентификатора всплывающего окна и использование метода

chrome.windows.remove(integer windowId, function callback)

для его удаления. API расширений Chrome API можно найти на странице chrome.windows .

На самом деле мое расширение chrome MarkView столкнулось с этой проблемой, и мне пришлось обновить свой код, чтобы он работал для этого обновления Chrome. Кстати, MarkView - это инструмент для чтения и записи Awesome Markdown Files, он предоставляет функции, включая Content Outline, Sortable Tables и подсветку синтаксиса блока кода с номером строки.

Я также создал этот пост , любые комментарии приветствуются.

12
задан James A. Rosen 23 August 2008 в 16:21
поделиться

12 ответов

Вот большая статья, которая объясняет и показывает, как обработать прозрачность PNG в более старых браузерах: http://www.alistapart.com/stories/pngopacity/

12
ответ дан 2 December 2019 в 05:16
поделиться

Я нашел то, что надеется быть очень хорошим решением здесь: Интерактивная Единица-> Labs-> Единица PNG Фиксирует

обновите Единицу, PNG также показан в списке PNG, закрепляют опции на NETTUTS

Вот выделения с их веб-сайта:

  • Очень компактный JavaScript: менее чем 1 КБ!
  • Решает некоторые проблемы интерактивности, вызванные атрибутом фильтра IE.
  • Работы над объектами img и атрибутами фонового изображения.
  • Выполнения автоматически. Вы не должны определять классы или вызывать функции.
  • Допускает автоматическую ширину и автоматические элементы высоты.
  • Супер простой развернуться.
5
ответ дан 2 December 2019 в 05:16
поделиться

IE7.js окажет поддержку для PNGs (включая прозрачность) в IE6.

2
ответ дан 2 December 2019 в 05:16
поделиться

Также paletted, 8-разрядный PNG с полной альфа-прозрачностью существует, вопреки тому, какой Photoshop и GIMP могут убедить Вам, и они ухудшаются лучше в IE6 – это просто сокращает прозрачность к 1-разрядному. Используйте pngquant для генерации таких файлов от 24-разрядного PNGs.

5
ответ дан 2 December 2019 в 05:16
поделиться

Я смешал с попыткой сделать сайт с .pngs, и это просто не стоит того. Сайт становится медленным, и Вы используете взломы, которые не работают 100%. Вот хорошая статья о некоторых опциях, но мой совет состоит в том, чтобы найти способ заставить gifs работать, пока Вы не должны поддерживать IE6. Или просто дайте IE6 ухудшенный опыт.

2
ответ дан 2 December 2019 в 05:16
поделиться

Используя PNGs в IE6 является едва больше трудным, чем какой-либо другой браузер. Можно поддерживать все это в CSS без JavaScript. Я видел этот взлом, показанный прежде...

div.theImage {
    background  : url(smile.png) top left no-repeat;
    height      : 100px;
    width       : 100px;
}

* html div.theImage {
    background  : none;     
    progid:DXImageTransform.Microsoft.AlphaImageLoader(src="layout/smile.png", sizingMethod="scale");
}

Я не так уверен, что это - действительный CSS, но в зависимости от сайта, он не может иметь значения так.

(стоит отметить, что URL для первого изображения основан на каталоге таблицы стилей, где второе основано на каталоге просмотренной страницы - таким образом, почему они не соответствуют),

2
ответ дан 2 December 2019 в 05:16
поделиться

@Hboss

это все великолепно, если Вы знаете точно все файлы (и размеры каждого), что Вы собираетесь быть отображением - это была бы королевская боль для поддержания того файла CSS, но я предполагаю, что это было бы возможно. Когда Вы хотите начать использовать прозрачный PNGs для некоторых очень общих целей: a) несущественная графика, такая как значки (возможно, отличающегося размера), которые работают над любым фоном и b) повторение фонов; затем Вы завинчены. Каждое обходное решение, которое я попробовал, совершило нападки, камень преткновения в какой-то момент (не может выбрать текст, когда фон прозрачен, иногда изображения отображены в дурацких размерах, и т.д. и т.д.), и я нашел, что для максимальной надежности должен буду вернуться к gifs.

Мой совет состоит в том, чтобы дать взлому прозрачности PNG выстрел, но в то же время понять, что это определенно не прекрасно - и просто помните, Вы наклоняетесь назад для пользователей браузера, которому более чем 7 лет. Что я делаю в эти дни, дают пользователям IE6 всплывающее окно во время их первого визита в сайт, с дружественным напоминанием, что их браузер устарел и не предлагает функции, требуемые современными веб-сайтами, и, хотя мы будем стараться изо всех сил давать Вам лучшее, Вы получите лучший опыт от нашего сайта и Интернета в целом, если Вы ЧЕРТОВСКИ ХОРОШО ОБНОВИЛИ.

2
ответ дан 2 December 2019 в 05:16
поделиться

Одной вещью думать о являются Почтовые клиенты. Вы часто хотите прозрачность PNG-24, но в Outlook 2003 с машиной с помощью IE6. Почтовые клиенты не позволят приемы JS или CSS.

Вот хороший способ обработать это. http://commadot.com/png-8-that-acts-like-png-24-without-fireworks/

0
ответ дан 2 December 2019 в 05:16
поделиться

Я полагаю, что все браузеры поддерживают PNG-8. Не смешанная альфа, но это действительно имеет прозрачные фоны.

0
ответ дан 2 December 2019 в 05:16
поделиться

Если вы экспортируете изображения в формате PNG-8 из Fireworks, они будут действовать так же, как изображения GIF. Таким образом, они не будут выглядеть дерьмово и серо, прозрачность будет прозрачностью, но они не будут обладать полной 24-битной прелестью, которую делают другие браузеры.

Возможно, это не полностью решит вашу проблему, но, по крайней мере, вы можете получить часть пути, просто реэкспортируя их.

0
ответ дан 2 December 2019 в 05:16
поделиться

Я мог бы ошибиться, но я - вполне уверенный IE6, и менее справедливый не делают прозрачности с файлами PNG.

Вы сортируете, и Вы сортируете, не.

IE6 не имеет никакой поддержки исходно их.

Однако IE имеет поддержку сумасшедшего пользовательского javascript/css и COM-объектов (который является, как они первоначально реализовали XmlHttpRequest),

Все эти взломы в основном делают это:

  • Найдите все изображения png
  • Используйте фильтр изображения directx, чтобы загрузить их и произвести прозрачное изображение в некотором формате, который понимает IE
  • Замените изображения фильтрованной копией.
0
ответ дан 2 December 2019 в 05:16
поделиться

Я мог бы ошибиться, но я - вполне уверенный IE6, и менее справедливый не делают прозрачности с файлами PNG.

У меня есть два "решения", которые я использую. Или создайте файлы GIF с прозрачностью и используйте их везде или просто используйте их для IE 6 и более старый с листами условного стиля. Второе действительно только работает, если Вы используете их в качестве фонов и т.д.

-1
ответ дан 2 December 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: