2017-10-18 5 views
1

Ich versuche, Eingangswert zu erhalten und es in Var zu machen, um Webseitenwert zu ändern. Ich weiß nicht, ob es der richtige Weg ist, es zu tun, aber soweit ich weiß, ist es:/Ich muss irgendwie AutoFill machen, die Seite von meinen Erweiterungen füllt. Ich habe versucht, es zu tun, wenn es direkt nach meinem input.value sucht, aber es zeigt immer seine null, und ich versuchte auch, meine Eingabe in localStorage zu speichern ... Aber es funktioniert nicht :(Ich werde alles veröffentlichen, wenn ich es versuchte ., wenn ich meine Eingabe in localstorage speichern Sorry, wenn dies eine dumme Frage, aber ich kann es nicht nur an die Arbeit :(Chrome Extension - Kann Eingabewert nicht erhalten

Manifest-Datei:

{ 
"manifest_version" : 2, 
"name": "sAVING iNPUT", 
"version": "1.0", 
"description" : "Click something pls", 
"version" : "1.0", 
"permissions" : ["<all_urls>"], 

"browser_action" : { 
    "default_popup" : "popup.html" 

} 
} 

Popup.html Datei:

<!DOCTYPE html> 
<html> 
<head><title> activity</title></head> 
<body> 
<div> 
    <div> 
     E-Pasts 
     <input type="text" name="epasts" id="epasts"></input> 
    </div> 
    <button id="ielogoties" aonClick="saveInput()" > login </button> 
</div> 
    <script src="popup.js"> 
    function saveInput(){ 
     localStorage.setItem("epastss", document.getElementById("epasts")); 
    } 
    </script> 
</body> 
</html> 

Popup.js-Datei:

function injectTheScript() { 
chrome.tabs.query({active : true, currentWindow:true},function(tabs){ 
    chrome.tabs.executeScript(tabs[0].id,{file: "content_script.js"}); 
}); 

} 
document.getElementById("ielogoties").addEventListener 
("click",injectTheScript); 

content_script.js Datei:

var drepasts = document.getElementById("email"); 
var epasts = localStorage.getItem("epastss") 


drepasts.value= epasts; 
alert("hehejr"); 
localStorage.removeItem("epasts"); 

Jetzt bin ich diesen Fehler, wenn ich Taste drücken:

Refused Inline-Event-Handler auszuführen, da es die folgenden Content Security Policy Richtlinie verletzt: " script-src 'self' blob: Dateisystem: chrome-extension-resource: ". Entweder das Schlüsselwort 'unsafe-inline', ein Hash ('sha256 -...') oder ein Nonce ('nonce -...') ist erforderlich, um die Inline-Ausführung zu ermöglichen.

Antwort

0

Sie müssen die storage Berechtigung in Ihrer Manifestdatei deklarieren, um auf localStorage zugreifen zu können.

Ihr permissions Abschnitt sollte wie folgt aussehen:

"permissions" : ["<all_urls>", "storage"], 

Oder:

"permissions": [ 
    "<all_urls>", 
    "storage" 
], 

die chrome.storage documentation für weitere Informationen.


Auch ich vermute, dies ist nur ein Tippfehler in Ihrem Beitrag, aber aonClickonclick sein sollte:

<button id="ielogoties" aonClick="saveInput()" > login </button> 

Die Art und Weise Ihren Code jetzt ist, es greifen die <input> Element selbst und das Speichern in localStorage, dann den Wert abrufen und versuchen, es in das Element mit der ID "E-Mail" einzufügen. Das könnte der Grund sein, warum Sie null bekommen.

Um den Eingangswert anstelle des Eingangselementes zu erhalten, Ihre setItem Anweisung dies ändern:

localStorage.setItem("epastss", document.getElementById("epasts").value); 
+1

Sein ein dummer Fehler von mir, aber es zeigt immer noch als null bis :( – TheProfesor

+0

@TheProfesor Sie versuchen, Um das Eingabeelement oder dessen Wert zu speichern, müssen Sie den 'setItem'-Wert in' document.getElementById ("epast") ändern. – freginold