Как сделать так, чтобы расширение Chrome запускалось случайным образом?

Сделал расширение для хрома. Это очень просто. Существует множество комплиментов, и я случайным образом вытаскиваю один, когда кто-то нажимает на расширение и распечатывает его. Я также использую chromes tts (текст в речь), чтобы сказать комплимент вслух. Это очень просто, но....

Я хочу, чтобы он случайным образом делал вам комплименты, и никто не нажимал на расширение Chrome. Это возможно? Я провел некоторые исследования без успеха. Вот мой код:

всплывающее окно.js:

$(document).ready(function() {
  var compliments = ['You are awesome.', 'Looking good.'];

  var randomCompliment = Math.floor(Math.random()*compliments.length);

  $('#compliment').append('<li>' + compliments[randomCompliment] + '</li>');

  chrome.tts.speak(compliments[randomCompliment])
});

манифест.json:

{
  "manifest_version": 2,

  "name": "Complimentor",
  "description": "This extension gives you a compliment.",
  "version": "1.0",

  "browser_action": {
  "default_icon": {
    "19": "icon_19.png",
    "38": "icon_38.png"
  },
    "default_title": "Complimentor",
    "default_popup": "popup.html"
  },
   "permissions": ["tts"]
}

всплывающее окно.html:

<!doctype html>
<html>
<head>
  <script src="jquery.js"></script>
  <script src="popup.js"></script>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="popup">
    <div id="highlight"></div>
    <ul id="compliment"></ul>
  </div>
</body>
</html>

стиль.css:

body { 
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.1))); /* Chrome,Safari4+ */
}

.popup {
  width: 300px;
  font: 14px helvetica-neue, helvetica, sans-serif;
  color: #666;
  position: relative;
  text-align: center;
}

#hightlight {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%, rgba(255,255,255,0))); /* Chrome,Safari4+ */
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.popup ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.popup li { 
  padding: 3px 0;
}

person Josh Robertson    schedule 30.06.2013    source источник
comment
Если вам нужна помощь с этим, не стесняйтесь добавить меня в скайп: zachripper   -  person Zachrip    schedule 01.07.2013
comment
Потрясающе! Большое спасибо, Захрип. Я, вероятно, свяжусь с вами в ближайшее время!   -  person Josh Robertson    schedule 01.07.2013
comment
@Zachrip Я использую Mac, как и мои друзья, поэтому, насколько я понимаю, расширенные уведомления не работают на Mac? Только винда и хромос? Вместо этого мне пришлось бы использовать уведомления Chrome Desktop и фоновые страницы, верно?   -  person Josh Robertson    schedule 01.07.2013
comment
Я думаю, что Rich Notifications — это то же самое. Я не совсем уверен. Вы должны иметь возможность отображать какое-то уведомление.   -  person Zachrip    schedule 01.07.2013


Ответы (1)


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

Справочные ссылки:

Уведомления Chrome на рабочем столе

Расширенные уведомления

Фоновые страницы

person Zachrip    schedule 30.06.2013