1

Я пытаюсь построить расширение chrome, в котором я должен хранить некоторые данные локально. Ниже приведен код my popup.html, и я не понимаю, почему это не устанавливает значения в локальном хранилище. У моего manifest.json есть разрешение «хранилище» и «вкладки».chrome.storage.local.set не сохраняет данные локально

<script type="text/javascript"> 
function save() { 
    var username = document.getElementById('username').value; 
    var password = document.getElementById('password').value; 
    chrome.storage.local.set({'username': username}, function(){}); 
    chrome.storage.local.set({'password': password}, function(){}); 
} 
</script> 
Roll Number 
<input type="text" name="username" id="username"></input> 
Password 
<input type="password" name="password" id="password"></input> 
<button onclick="save()" type="submit" name="submit">Save</button> 

Это мой файл manifest.json.

{ 
    "manifest_version": 2, 

    "name": "Autologin", 
    "description": "Blah bhla.", 
    "version": "1.0", 
    "permissions": [ 
    "http://xxxxxxxxxxxxx/*", 
    "storage" 
    ], 
    "content_scripts": [ 
    { 
     "matches": ["http://xxxxxxxxxxxxx/*"], 
     "js": ["autologin.js"] 
    } 
    ], 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "autologin.html" 
    } 
} 
+0

Вам нужно будет опубликовать манифест. Chrome вообще не любит запускать javascript в html; вы должны переместить это в отдельный файл. – Teepeemm

+0

Отредактировано. Но in-html javascript работает в chrome. –

+0

Вы должны отредактировать свой вопрос, а не только свой код, потому что, как указано, этот код не будет работать. Как сказал Teepeemm, манифест версии 2 автоматически устанавливает CSP, чтобы запретить встроенный JavaScript: http://developer.chrome.com/extensions/contentSecurityPolicy.html. Предположим, вы уже прочитали консоль и рассмотрели сообщения об ошибках, которые вы видите в CSP. Существуют ли другие ошибки в консоли? – sowbug

ответ

-1

Попробуйте, это работает для меня

var dataObj = {}; dataObj[username] = username; dataObj[password] = password; chrome.storage.local.set(dataObj, function() {});

1

Вы должны переместить часть скрипта из HTML, создавая popup.js и включить его в HTML.

В popup.js

function save() { 
    var username = document.getElementById('username').value; 
    var password = document.getElementById('password').value; 
    chrome.storage.local.set({ 
    'username': username , 
    'password': password 
    }, function(){}); 

} 

document.getElementByName("submit").onclick=save; 

В popup.html

Заменить эту кучу <script>...</script> в <script src=popup.js></script>

В manifest.json

"default_popup": "popup.html" //the name of your popup html file 
Смежные вопросы