Связь между страницей параметров и фоновой страницей в Google Chrome - PullRequest
11 голосов
/ 25 декабря 2009

Я испытываю простое расширение Google Chrome, в котором мне нужно установить связь между страницей параметров и фоновой страницей для получения / настройки параметров.

Я пробовал chrome.extension.sendRequest (..) и chrome.extension.onRequest.addListener (..), но без успеха!

Я что-то упустил? Или я должен опубликовать свой код?

Ответы [ 2 ]

16 голосов
/ 26 декабря 2009

В вашем background.html может быть что-то вроде этого:

<html>
<script>
  settings = {
    get foo() {
      return localStorage['foo'];
    },
    set foo(val) {
      localStorage['foo'] = val;
    }
  }
</script>
</html>

Теперь на странице настроек вы можете просто использовать chrome.extensions.getBackgroundPage . Например, в файле options.html:

<html>
<head>
  <script>
  var bkg = chrome.extension.getBackgroundPage();
  function saveOptions() {
    bkg.settings.foo = 'bar';
  }
  function restoreOptions() {
    document.getElementById('foo').value = bkg.settings.foo;
  }
  </script>
</head>
<body onload="restoreOptions()"> 
  <form onsubmit="return false;">
    <input id="foo" type="text" />
    <button onclick="saveOptions();">Save</button>
  </form>
</body>
</html>

Запомни одно: руководство разработчика - твой лучший друг :) http://developer.chrome.com/extensions/devguide

0 голосов
/ 15 октября 2013

да, это не сработает:

<!--
  - JavaScript and HTML must be in separate files: see our Content Security
  - Policy  http://developer.chrome.com/extensions/contentSecurityPolicy.html
 -->
...