14.04.2013, 13:04
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Есть ли готовая либа для прозрачный работы с вендорами в javascript?
ну вы поняли о чем я
типа
window.requestAnimationFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.wozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
function(callback){
return setTimeout(callback, 1000/60)
}
тока на ВСЕ вендорные свойства и еще чтобы баги фиксила браузерные автоматом и новые методы в массив старых браузеров добавляла сразу) и кофе заваривала, ну короче такой browserfix.js уже есть готовый?
Последний раз редактировалось megaupload, 14.04.2013 в 13:10.
|
|
16.04.2013, 04:14
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Хочешь чтобы было заебись - сделай это сам.
Суть такая что можно использовать все новые вендорные штуки как обычные. При попытке использовать такую штуку там где она не подерживается сработает событие о том что браузер устарел.
алгоритм такой - если свойства нет, то ищутся свойства с префиксами, если и их нет то пытаемся использовать альтернативную реализацию, если и её не удается использовать, то срабатывает событие устаревшего браузера.
Скрипт бережно предупреждает пользователей ишаков ниже 9 о том что у них устарелый браузер и выдает конфирм на скачку хромфрейма.
это версия 0.0 так что пока реализовано только удаление префиксов в window, завтра добавлю удаление префиксов в
element.style.webkitBlablabla
Последний раз редактировалось megaupload, 17.04.2013 в 21:52.
|
|
16.04.2013, 20:59
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Для подстановки CSS-префиксов и имплментации новых свойств есть либа, на сколько хорошая не знаю, можешь проверить )
|
|
16.04.2013, 22:33
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
monolithed,
лол, в соседнем топике её обсуждали))
не, моя либа лучше, так как она работает с JS частью добавляя прозрачную кроссбраузерность. Седня добавил прокси свойства,
чтобы например
element.style.animation перенаправляло на mozAnimation ))
или
event.movementY перенаправляло на event.webkitMovementY
суть такова: скрипт смотрит есть ли уже такое свойство, если есть то не трогает его, если нет, то ищет его вендорные аналоги и копирует в это свойство, если вендорные аналоги не найдены то смотрит какую альтернативную реализацию оставил пользователь (ну там можно за место bull писать альтернативную реализацию) если и альтернативной реализации нет, то тогда вешается геттер который при попытке обратиться к свойству вызовет событие browserOldWarning
которое принимает разные параметры о браузере и о свойстве которое запрашивалось, можно обработать это событие и вывести окошко например с предложением обновить браузер)
Обычно прокси вешаются на прототипы CSSStyleDeclaration.prototype (для стилей например)
А обычные заглушки вешаются на обычные обьекты например на window.URL или window.Worker или window.Proxy
IE8 СРАЗУ детектится так как в нем не работает ДАЖЕ этот скрипт и СРАЗУ срабатывает событие о том что браузер устарел. Так как он действительно устарел что в нем "ДАЖЕ МОЙ СКРИПТ ДЛЯ ДЕТЕКТИРОВАНИЯ СТАРЫХ БРАУЗЕРОВ И СООБЩЕНИЯ ЧЕЛОВЕКУ ЧТО ЕМУ НУЖНО ОБНОВИТЬ БРАУЗЕР" - не работает))
Разумеется становится очевидно что человеку нужно обновить браузер, при чем срочно)
Не забывайте, перед этим мы сделали все что смогли... но наш сайт в браузере работать НЕ БУДЕТ... И лучше обьяснить человеку причину.
Последний раз редактировалось megaupload, 16.04.2013 в 22:46.
|
|
16.04.2013, 22:47
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
в будущем надо будет разделить предупреждения на варнинги и ерроры.
так как обращение даже к style.boxReflect например вызывает еррор событие
|
|
17.04.2013, 05:25
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от megaupload
|
Разумеется становится очевидно что человеку нужно обновить браузер, при чем срочно)
|
О да, неработающий скрипт от javascript-юзера megaupload - это крайне веская причина обновить браузер. Прямо таки фатальный недостаток )
|
|
17.04.2013, 09:48
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Сообщение от danik.js
|
О да, неработающий скрипт от javascript-юзера megaupload - это крайне веская причина обновить браузер.
|
веская причина обновить браузер это то что он устарел, я лишь сообщаю об этом.
danik.js,
хорошо, ты видимо не понял суть, ты В ЛЮБОМ СЛУЧАЕ ЭТО ДЕЛАЕШЬ я это лишь автоматизирую. ты можешь не вешать обработчик на событие "браузер устарел" и твои скрипты просто перестанут работать без какого либо предупреждения.. все возможные и невозможные альтернативные реализации того что ты делаешь я УЖЕ впичкаю в этот скрипт. Тут ТО ЖЕ САМОЕ что люди делают каждый раз только прозрачно и автоматизированно. Как тебе еще то обьяснть))
объясню по русски: "этот скрипт - НЕ ЯВЛЯЕТСЯ заглушкой на IE и установив этот скрипт люди не будут покидать твой сайт из за предупреждения обновить браузер"
- носом тыкнул
|
|
17.04.2013, 12:18
|
|
Профессор
|
|
Регистрация: 05.06.2009
Сообщений: 1,703
|
|
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
|
|
17.04.2013, 12:26
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Tim,
я вот и думал кстати на него ссылку давать если ишак старый.
или выдавать тупо конфирм типа требуется плагин
(ни чо , вон флеш люди все качали ручками, так и тут)
но я оставлю это уже человеку на усмотрение, в событие будет передаваться версия браузера и свойство которое он не смог обработать а человек уже будет решать чо делать
|
|
17.04.2013, 21:57
|
|
Профессор
|
|
Регистрация: 18.01.2013
Сообщений: 1,098
|
|
Например события движения мышки в новых браузерах поддерживают такое свойство как movementX, но с префиксами.
Мы просто можем добавить прокси заглушки на прототип событий мыши.
И эта прокси заглушка автоматически будет перенаправлять все взаимодействия с ней на вендорное свойство.
fix.addProxyCap({
target: MouseEvent.prototype,
caps: {
movementX: null,
movementY: null
}
});
БАБАХ, и все работает)
e.movementX в событиях становятся доступными ))
А за место null можно написать альтернативную реализацию.
При обращении к свойству ищутся вендорные аналоги, если не находятся то применяется алььтернативная реализация, если и её нет, то ПРИ ОБРАЩЕНИИ к этому свойству события) срабатывает событие "устарелый браузер"
п.с. по скольку прокси мы вешаем на прототип, то если в самом обьекте event появится БЕЗПРЕФИКСНОЕ это свойство, то запрос до нашей прокси так и не дойдет)))
|
|
|
|