Как реализовать жесткую перезагрузку на расширении Chrome [дубликат]

Я столкнулся с этим сегодня, с модальным position: fixed, который я использовал повторно. Я не смог сохранить его display: none, а затем оживить его, поскольку он просто вскочил на внешний вид, а также z-index (отрицательные значения и т. Д.) Тоже сделали странные вещи.

Я также использовал height: 0 до height: 100%, но он работал только тогда, когда появился модальный. Это то же самое, что если вы использовали left: -100% или что-то в этом роде.

Тогда мне показалось, что был простой ответ. Et voila:

Во-первых, ваш скрытый модальный. Обратите внимание, что height есть 0, и проверьте декларацию height в переходах ... у него есть 500ms, , который длиннее моего opacity перехода . Помните, что это влияет на переход к постепенному исчезновению: возвращение модального состояния в состояние по умолчанию.

#modal-overlay {
    background: #999;
    background: rgba(33,33,33,.2);
    display: block;
    overflow: hidden;
    height: 0;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    z-index: 1;
    -webkit-transition: height 0s 500ms, opacity 300ms ease-in-out;
       -moz-transition: height 0s 500ms, opacity 300ms ease-in-out;
            -ms-transition: height 0s 500ms, opacity 300ms ease-in-out;
         -o-transition: height 0s 500ms, opacity 300ms ease-in-out;
        transition: height 0s 500ms, opacity 300ms ease-in-out;
}

Во-вторых, ваш видимый модальный. Предположим, вы устанавливаете .modal-active на body. Теперь height - 100%, и мой переход также изменился. Я хочу, чтобы height был немедленно изменен, а opacity - 300ms.

.modal-active #modal-overlay {
    height: 100%;
    opacity: 1;
    z-index: 90000;
    -webkit-transition: height 0s, opacity 300ms ease-in-out;
       -moz-transition: height 0s, opacity 300ms ease-in-out;
        -ms-transition: height 0s, opacity 300ms ease-in-out;
         -o-transition: height 0s, opacity 300ms ease-in-out;
            transition: height 0s, opacity 300ms ease-in-out;
}

Вот и все, это работает как прелесть.

14
задан Ilya Kurnosov 10 October 2015 в 16:23
поделиться

5 ответов

Я думаю, что вы ищете:

chrome.tabs.reload(integer tabId, object reloadProperties, function callback)

За дополнительной информацией обратитесь к вкладкам API () документации .

29
ответ дан crates_barrels 24 August 2018 в 23:14
поделиться

В частности:

chrome.tabs.getSelected(null, function(tab) {
    chrome.tabs.reload(tab.id);
});
6
ответ дан Jude Osborn 24 August 2018 в 23:14
поделиться

API для chrome.tabs.getSelected (), который использует принятый ответ, устарел. Вместо этого вы должны получить текущую вкладку и перезагрузить ее, используя следующее:

chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
    var code = 'window.location.reload();';
    chrome.tabs.executeScript(arrayOfTabs[0].id, {code: code});
});

Или, возможно:

chrome.tabs.query({active: true, currentWindow: true}, function (arrayOfTabs) {
    chrome.tabs.reload(arrayOfTabs[0].id);
});

Мне не повезло со второй версией, хотя другие ответы, похоже, подсказывают, что это должно сработать. API, похоже, тоже предлагает это.

24
ответ дан Michael Oryl 24 August 2018 в 23:14
поделиться

вы также можете использовать это:

chrome.tabs.reload (function () {});

параметры перезагрузки params: integer tabId, object reloadProperties, обратный вызов функции

ссылка: http://developer.chrome.com/extensions/tabs.html#method-reload

2
ответ дан Selman Kahya 24 August 2018 в 23:14
поделиться

, если вы хотите перезагрузить все вкладки, которые полностью загружены и активны в своем окне

chrome.tabs.query({status:'complete'}, (tabs)=>{
tabs.forEach((tab)=>{
    if(tab.url){
        chrome.tabs.update(tab.id,{url: tab.url});
     }
    });
});

, вы можете изменить объект параметра, чтобы извлекать только активные вкладки, как {status:'complete', active: true} ссылаются на запрос api chrome extensions

Причина не использования chrome.tabs.reload:

Если свойства вкладки, особенно tab.url, не имеют изменено, вкладка не перезагружается. Если вы хотите принудительно перезагружать каждый раз, лучше обновить URL-адрес вкладки со своей вкладкой tab.url, которая отправляет событие изменения свойства и вкладка автоматически перезагружается.

0
ответ дан Sheikh_Irshad 24 August 2018 в 23:14
поделиться
Другие вопросы по тегам:

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