2016-01-26 2 views
1

У меня возникли проблемы с расширением хром. Когда вы нажимаете значок в своем браузере, он загружает расширение. Это нормально. Но что, если вы хотите, чтобы ваш логотип был там первым?Chrome Extension - Показать div только при загрузке

Как и на устройствах на устройствах iOS, сначала выведите логотип, затем загрузите приложение.

Итак, у меня есть div <div class="loader"></div> в моем popup.html. Этот div делает экран белым с моим логотипом посередине, через 1 секунду он исчезает и отображает содержимое.

Но теперь: Можно ли показать <div class="loader"></div> только тогда, когда он загружается, а не всегда показывает, когда вы загружаете popup.html?

+0

Я не уверен, что вы имеете в виду здесь, когда говорите «только когда он загружается, а не всегда показывает, когда вы загружаете popup.html». Я предполагаю, что вы имеете в виду только показывать всплывающее окно при первом щелчке по нему в сеансе, а не при последующих кликах. Если это так, вы можете установить что-то, чтобы отключить другие действия браузера после начальной загрузки вашего popup.html. Это в этом API [link] (https://developer.chrome.com/extensions/browserAction#method-enable), но я чувствую, что это пока невозможно, без написания собственного кода для управления всеми действиями. – eholder0

+1

@ eholder0 Прежде всего, спасибо за ваш комментарий, я думал, что никто не будет комментировать и оставить это в пыли. Я пытаюсь показать «div», когда они нажимают верхнюю верхнюю кнопку расширения. Затем, когда посетитель переходит на страницу about, например, в расширение и возвращается на индексную страницу, 'div' больше не будет отображаться. «Div» может отображаться только при загрузке расширения, а не когда посетитель уже загрузил расширение и только что вернулся со страницы. Надеюсь, вы понимаете, английский не мой родной язык, и мне трудно объяснить. – Mia

ответ

2

, если я правильно понял, что вы можете сделать:

в фоновой странице:

 
localStorage['onLoadingFirstTime'] = 'true'; 

Таким образом, каждый раз при запуске браузера переменная хранится в LocalStorage со значением «истина». Это означает, что вы впервые.

После в popup.js вы можете написать что-то вроде:

 
document.addEventListener('DOMContentLoaded', function(e) { 
    if (localStorage['onLoadingFirstTime'] == 'true') { 
     document.getElementsByClassName('loader')[0].style.visibility = 'visible'; 
     localStorage['onLoadingFirstTime'] = 'false'; 
    } else { 
     document.getElementsByClassName('loader')[0].style.visibility = 'hidden'; 
    } 
}); 

Таким образом, в popup.js, когда он полностью снабдили вы можете проверить значение переменной, хранящейся в LocalStorage:

если да (означает первый раз), вы установите для этого значения значение false и покажите свой div.

Если нет (означает, что вы повторно нажимали на расширение), вы скрываете div.

Я надеюсь, что это может решить вашу проблему.

+0

Возможно, это сработает, но я бы немного изменил его, если значение ложно или не найдено (не уверен, что это происходит как null или undefined , но можно было бы честно проверить), затем рассмотрим, что первая загрузка и установите значение true. Оттуда, если это правда, ничего не делайте. Выполнение этого так же облегчает необходимость устанавливать что-либо в вашем фоновом скрипте, так что вы можете полностью включить это в логику в popup.js/html. – eholder0

Смежные вопросы