32
Особенности разработки кросс-браузерных расширений Рашитов Сергей [email protected]

#4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

  • Upload
    jsib

  • View
    542

  • Download
    1

Embed Size (px)

Citation preview

Page 1: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Особенности разработки кросс-браузерных расширений

Рашитов Сергей[email protected]

Page 2: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Множество браузеров

Internet Explorer Firefox Google Chrome Safari Opera

Page 3: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Архитектурные различия

Фоноваястраница

Вкладка #1

Вкладка #2

Вкладка #3

Page 4: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Архитектурные различия

XUL Window

XUL Overlay

XUL Tab #1

XUL Browser #1

DOM

XUL Tab #2

XUL Browser #2

DOM

Page 5: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Архитектурные различия

XUL Window

XUL Script

XUL Tab #1

XUL Browser #1

DOM

XUL Tab #2

XUL Browser #2

DOM

bootstrap.js

Page 6: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Архитектурные различия

XUL Window

XUL Script

XUL Tab #1

XUL Browser #1

bootstrap.js

Frame script

DOM

Page 7: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Архитектурные различия

Browser Helper Object(dll)

Вкладка #1

Browser Helper Object(dll)

Вкладка #2

Page 8: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?

Page 9: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?● IE 8 — CSS 2 и JScript (ES 3)

Page 10: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?● IE 8 — CSS 2 и JScript (ES 3)● IE 9 — CSS 3 и ES 5

Page 11: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?● IE 8 — CSS 2 и JScript (ES 3)● IE 9 — CSS 3 и ES 5

● Пишите для корпоративного сектора?

Page 12: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?● IE 8 — CSS 2 и JScript (ES 3)● IE 9 — CSS 3 и ES 5

● Пишите для корпоративного сектора?● IE 8 и Firefox 4 (JavaScript 1.8)

Page 13: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Поддержка технологий

● Хотите ли поддерживать IE?● IE 8 — CSS 2 и JScript (ES 3)● IE 9 — CSS 3 и ES 5

● Пишите для корпоративного сектора?● IE 8 и Firefox 4 (JavaScript 1.8)

● Иначе — зависит от задачи.

Page 14: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

БОЛЬ

Page 15: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8

БОЛЬ

Page 16: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)

БОЛЬ

Page 17: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)● IE 10 + IE 9 CM + IE 8 CM

БОЛЬ

Page 18: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)● IE 10 + IE 9 CM + IE 8 CM● IE 11 …

БОЛЬ

Page 19: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)● IE 10 + IE 9 CM + IE 8 CM● IE 11 …● А еще есть Quirks Mode

БОЛЬ

Page 20: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)● IE 10 + IE 9 CM + IE 8 CM● IE 11 …● А еще есть Quirks Mode● И Doctype

БОЛЬ

Page 21: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● IE 8● IE 9 + IE 8 Compatibility Mode (CM)● IE 10 + IE 9 CM + IE 8 CM● IE 11 …● А еще есть Quirks Mode● И Doctype● И x64

БОЛЬ

Page 22: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Браузероспецифичное

● Какие есть плюшки?

Page 23: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● Какие есть плюшки?● Cross-domain запросы● Постоянное хранилище данных● Доступ к файловой системе● Работа с периферийными устройствами● NPAPI● … и т. д. и т. п.

Браузероспецифичное

Page 24: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Кросс-браузерность

Как быть?

Page 25: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● Писать отдельно под каждый браузер

Как быть?

Кросс-браузерность

Page 26: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● Писать отдельно под каждый браузер● Унифицировать разработку

Как быть?

Кросс-браузерность

Page 27: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

● Писать отдельно под каждый браузер● Унифицировать разработку

● Разделение на Background и Foreground● Greasemonkey● Комбинированный подход

Как быть?

Кросс-браузерность

Page 28: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Greasemonkey

● Greasemonkey — расширение Mozilla Firefox, позволяющее добавить на любую страницу пользовательский JavaScript, записанный в формате этого расширения.

● Пример заголовка:// ==UserScript==// @include http://www.example.com/foo/*// @exclude http://www.example.com/foo/baz// @include /^https?://www\.example\.com/.*$/// ==/UserScript==

Page 29: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Ну вот и все

Что делать новичку?

Page 30: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Ну вот и все

● Написать расширение под любимый браузер● Использовать семейство Greasemonkey● Взять готовый framework

● Kango● BabelExt

● Использовать web решения● сrossrider.com● сrossbrowser.com

Что делать новичку?

Page 31: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов

Вопросы?

WAT?WAT?

Page 32: #4 "Особенности разработки кросс-браузерных расширений" Сергей Рашитов