ストレージを使用している chrome 拡張機能があり、1 回のエンター クリックでストレージから値を取得できません。
入力フィールドは 1 つです。ユーザーが値を入力して Enter キーを押すと、拡張機能はストレージから値を取得し、ユーザーの入力をこの値に追加する必要があります。最初の Enter キーは機能しませんが、ユーザーが 2 回目に Enter キーを押すと、保存された値が表示されます。
問題は関数の順序にあると思いますが、どこが正確かわかりません。
正しい順序でコード化:
var repo, moduleCodes, url;
// Third process
function getStoredUrl() {
chrome.storage.sync.get(function (item) {
url = item.savedUrl;
});
}
// Fourth process
function setVariables() {
repo = document.getElementById("repo").value.toLowerCase();
moduleCodes = {
admin: "EHEALTHADM"
};
}
// Second process
function openGraph() {
getStoredUrl();
setVariables();
if (moduleCodes[repo] !== undefined) {
// ERROR: field "test" doesn't have value url, but should to have
document.getElementById("test").value = url;
//window.open(url + moduleCodes[repo]);
} else {
returnError("Can't find repo " + repo, "repo");
}
}
var enter = 13;
// First process
function inputRepoListener(e) {
"use strict";
if (e.keyCode === enter) {
openGraph();
}
}
コード全体は gitHub リポジトリで見ることができます: https://github.com/iriiiina/fisheyeGraph