首页 > 解决方案 > 没有错误显示,但 Chrome.Storage.Sync。Get 没有收到我在 Chrome.Storage.Sync.Set 中设置的内容

问题描述

我正在尝试使用我的扩展程序的选项部分作为用户编写网站的一种方式,这些网站稍后将在后台脚本中用于创建这些网站的新选项卡。没有错误,但是当我尝试运行扩展程序时,他们放入的网站都没有真正打开。我不确定这是否与我编写 chrome.storage.sync.set API 的方式或我编写 chrome.storage.sync.get API 的方式或完全不同的方式有关。

这是我的 options.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <script src="options.js"></script>
    <meta charset="utf-8">
    <title>Choose Website</title>
  </head>
  <body>
    <h1>Choose Websites Here</h1>
    <h4> <i>Please Put the full URL</i></h4>
    <h4><i>Example: "https://www.google.com"</i></h4>
    <h2>Website #1: <input type="text" id="website1"></h2>
    <h2>Website #2: <input type="text" id="website2"></h2>
    <h2>Website #3: <input type="text" id="website3"></h2>
    <button type="button" name="Save Changes" id="savechanges">Save Changes</button>
  </body>
</html>

选项.js

function WebsiteChoosing (){
  $('#savechanges').click(function(){
    var website1 = $('#website1').val();
    var website2 = $('#website2').val();
    var website3 = $('#website3').val
    if(website1){
      chrome.storage.sync.set({'website1' : website1})
    }
    if(website2){
      chrome.storage.sync.set({'website1' : website1})
    }
    if(website3){
      chrome.storage.sync.set({'website1' : website1})
  }
})

  };

backround.js(仅相关)

chrome.browserAction.onClicked.addListener(buttonClicked)

function buttonClicked () {

chrome.storage.sync.get(['website1', 'website2', 'website3'], data => {
  if (data.website1) chrome.tabs.create({url: data.website1});
  if (data.website2) chrome.tabs.create({url: data.website2});
  if (data.website3) chrome.tabs.create({url: data.website3});
});

Manifest.json(仅相关)

 "background" : {
      "scripts" : ["background.js"]
  },

  "options_page": "options.html",
  "permissions": [

  "history",
  "storage",
  "activeTab",
  "tabs"

标签: javascriptjavahtmlgoogle-chromegoogle-chrome-extension

解决方案


推荐阅读