Как в расширении Safari проверить, что открытая страница является файлом определенного формата?

Я новичок в HTML/JS и впервые делаю расширение для Safari. Я хочу включить кнопку на панели инструментов только тогда, когда на текущей странице открыт .gif. Как мне написать свою функцию проверки для этого?

Кроме того, запускается ли событие "validate" каждый раз при перезагрузке страницы? Есть ли другие триггеры для этого?


person Antrikshy    schedule 21.06.2014    source источник


Ответы (1)


Вы не можете быть уверены, что содержимое текущей страницы является GIF, но вы можете проверить, заканчивается ли URL-адрес текущей вкладки на «.gif». В сценарии глобальной страницы используйте safari.application.activeBrowserWindow.activeTab.url для получения текущего URL-адреса.

Кроме того, вы можете использовать внедренный скрипт для проверки DOM страницы. В Safari, если тело документа имеет один узел, и этот узел является <img>, то ресурс, расположенный по URL-адресу вкладки, вероятно, является изображением. Используйте document.body.childNodes, чтобы проверить содержимое тела.

События проверки происходят всякий раз, когда Safari считает, что вы можете обновить элемент расширения (например, кнопку на панели инструментов). Это включает в себя, когда вкладка открыта, закрыта, сфокусирована или размыта; при изменении его URL-адреса; и когда его содержимое перезагружается. Кстати, фокус табуляции и размытие происходят также, когда сам Safari сфокусирован или размыт, а не только при переключении вкладок.

person chulster    schedule 22.06.2014