2016-06-22 5 views
0

My manfiest.json это.Хотите получить доступ к локальному хранилищу расширения Chrome

{ 
    "manifest_version": 2, 

    "name": "GTmetrix Analyzer Plugin", 
    "description": "This extension will analyze a page using GTmetrix", 
    "version": "2.1", 
    "options_page": "options.html", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    }, 
    "background": { 
    "scripts": ["background.js"], 
    "persistent": false 
    }, 
    "permissions": ["tabs", "storage"], 
    "content_scripts": [ 
     { 
      "matches": ["http://ticketchest.geekschicagolabs.com/admin/orderHistory"], 
      "css": ["mystyles.css"], 
      "js": ["jqueryui-min.js", "content-script.js"] 
     } 
    ] 
} 

и мой popup.html является

<!doctype html> 
<html> 
    <head> 
    <title>Ticket chest</title> 
    <script src="popup.js"></script> 
    </head> 
    <body> 
    <h1>Ticket chest extension</h1> 
    <a href="options.html">Settings</a> 
    <!-- <button id="checkPage">Check this page now!</button> --> 
    </body> 
</html> 

и background.js является

chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){ 
localStorage['privateKeyy'] = response; 
}); 

Теперь я хочу, что пользователь вводит в текстовой области будет также сохранить в локальном хранилище web с локальным хранилищем extenison, он сохраняется в локальном хранилище extenstion, но не на веб-странице.

и это код сценария содержание

window.onload = function() { 

    document.getElementById('save').onclick = function(){ 
    var privateKey = document.getElementById("textarea").value; 

    chrome.storage.sync.set({'privateKey':privateKey}, function(){ 
    //document.getElementById('privateKey').value = privateKey; 
    //chrome.browserAction.setBadgeBackgroundColor({color:[200, 0, 0, 100]}); 
    //chrome.tabs.sendMessage(privateKey); 
    chrome.storage.local.set({'privateKeyy':privateKey}); 
    localStorage.setItem("lastname", "Smith"); 
    alert('save successfully'); 
    }); 
    //syncStorage["privateKey"] = privateKey; 
    } 

    document.getElementById('erase').onclick = function(){ 
    chrome.storage.sync.remove('privateKey', function(){ 
    alert('erase successfully'); 
    }); 
    } 

    document.getElementById('get').onclick = function(){ 
    chrome.storage.sync.get('privateKey', function(data){ 
    alert(data.privateKey); 
    console.log(data.privateKey); 
    }); 
    } 

} 
+3

Как это связано с PHP? – Farkie

+0

https://developer.chrome.com/extensions/storage – Farkie

+0

@Farkie я следую этой ссылке, но могу би получить неправильный ключ не хранить в локальном хранилище веб-страницы ... – hu7sy

ответ

2

Если вы хотите хранить данные в локальном хранилище на веб-страницы переместить код сценария контента (вместо выполнения кода (только) в фоновом скрипте внутренней линии) , См. Также здесь: https://stackoverflow.com/a/23082216/4419582

+0

все еще сохраняет ключ в локальном хранилище расширения – hu7sy

+0

Можете ли вы предоставить больше кода, особенно ваш 'content-script.js'? Я просто выполнил «localStorage.setItem» («ключ», «значение»); «в своем сценарии содержимого, и теперь я могу видеть, как они хранятся (с помощью инструментов разработчика Chromium) в локальном хранилище моей открытой в настоящее время веб-страницы - и в локальном хранилище расширения нет данных. – jengeb

+0

Я обновил код js, но я переместил его в скрипт контента, как вы говорите ... – hu7sy