Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Нужен совет по верхней плашке :) (https://javascript.ru/forum/dom-window/63231-nuzhen-sovet-po-verkhnejj-plashke.html)

espltd 25.05.2016 09:39

Нужен совет по верхней плашке :)
 
Доброго всем дня! Нужна помощь всезнаек. Пишу расширение для хрома. Суть проста, пользователь при нажатии видит список любимой музыки. Интересует вот что. Как сделать или где можно почитать, чтобы расширение (без нажатия мышкой) вызывало див или модалку и перекрывало сайт с таймаутом? Ну типа прошло 5 минут когда песня закончилось и сайт затемнился подложкой, а модалка всплыла поверх сайта?

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

Как делать модалки и всплывайки - я знаю. Надо, чтобы именно расширение перекрыло сайт модалкой с заданным интервалом времени.

Спасибо.

Dilettante_Pro 25.05.2016 11:42

espltd,
Может, что-то в этом роде?
audio.onended = function() {
setTimeout(function() {
// здесь ваши действия
}, 5000)
}

espltd 25.05.2016 12:13

может это на каком-то апи хрома пишется? Может кто нибудь писал. Просто задумка в том, чтобы на расширение не нажимать. Закончила песенка играть -> внутри самого браузера вылазит всплывайка, которая перекрывает сайт. Не внутри блока самого расширения, а именно как бы затемняет сайт. Блин, не знаю как еще объяснить... Знал бы где найти инфу, было бы проще. Но не понимаю как это правильно называется и что в поисковике вбить.

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

Dilettante_Pro 25.05.2016 12:40

espltd,
У вас блок расширения в iframe?
В этом случае можно скриптом в блоке добраться до элементов родительского окна

espltd 25.05.2016 12:47

нет. я не делал iframe. Сейчас попробую с картинками показать что мне нужно.


Dilettante_Pro 25.05.2016 15:39

espltd,
Возможно, что-то вроде этого подойдет?
chrome.browserAction.onClicked.addListener(function () {
   audio.onended = function() {
     setTimeout(function () {
        chrome.tabs.executeScript({
            code: 'document.body.style.opacity=0.5; alert("This is modal window!"); document.body.style.opacity=1;'
        });
    }, 5000);
  };
});

Вместо модального окна - алерт, но это демонстрация принципа

espltd 25.05.2016 16:01

Dilettante_Pro, почему то у меня этот скрипт не запускается((((

Rise, смотрел там. Но нужного так и не нашел

Dilettante_Pro 25.05.2016 16:18

espltd,
А где вы его запускали?
Я пробовал его, сделав как отдельное приложение.
Правда, вот в таком варианте (файл background.js):
chrome.browserAction.onClicked.addListener(function () {
     setTimeout(function () {
        chrome.tabs.executeScript({
            code: 'document.body.style.opacity=0.5; alert("This is modal window!"); document.body.style.opacity=1;'
        });
    }, 5000);
});

со срабатыванием через 5 секунд после запуска приложения.
с манифестом
{
  "name": "Page Paler",
  "description": "Make the current page pale",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page pale"
  },
  "manifest_version": 2
}

espltd 27.05.2016 08:54

странно, я делаю тоже самое, но у меня не вылазит алерт

Dilettante_Pro 27.05.2016 11:55

espltd,
Ну, не знаю. Вот пример работы расширения, описанного в пост#9


Часовой пояс GMT +3, время: 04:17.