Как включить расширение кнопки панели инструментов Safari только в том случае, если URL-адрес соответствует определенным критериям (проверка «проверить»)?

У меня есть расширение для Safari, которое размещает простую кнопку на панели инструментов. Сейчас он отлично работает, но я хочу обработать событие «проверить» следующим образом:

1. Button is grey/disabled
2. Listen for 'validate' event (already done)
3. Check URL to see if last four letters are .gif (can implement)
4. Enable button

Я работаю с файлом Global.html и новичок в JS и Safari.


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


Ответы (1)


Внутри вашего обработчика событий validate свойство target события будет ссылаться на элемент пользовательского интерфейса, который генерирует событие — в вашем случае на кнопку панели инструментов. Кнопки панели инструментов (экземпляры SafariExtensionToolbarItem) имеют свойство disabled, для которого можно установить значение true или false.

Пример:

safari.application.addEventListener('validate', function (evt) {
    if (evt.command == 'myToolbarItemCommand') {
        // `toolbarButtonShouldBeEnabled` stands for some test
        if (toolbarButtonShouldBeEnabled) {
            evt.target.disabled = false;
        } else {
            evt.target.disabled = true;
        }
    }
}, false);
person chulster    schedule 22.06.2014
comment
И убедитесь, что это есть в вашем глобальном html-файле. - person Dan Woodward; 26.01.2017