3
本題で述べたように、私はエクセルテーブルとしてローカルで利用可能なデータを使用してウェブフォームを記入する必要があります。私はすでにpythonとautohotkeyの組み合わせでそれを作っていますが、ロード時間と条件を正しく処理するには、ある程度のJavaScriptコントロールが必要です。 Web開発初心者の方は、フォームがあるWebサイトをローカルiframeで制御できると思ったのですが、すぐにそのようなハッキングを許可しないXSSのことを発見しました。私はサーバーにアクセスできない。Firefoxのwebextensionからローカルファイルを読み込むには?
私の経験の最後の繰り返しは、Firefox WebExtensionsを使って行いました。これは、フォームを埋め込むためにjsコードを書いたローカルファイル(html5ファイル入力ウィジェットを使用して)を開くことを望みました。しかし、明らかにここにも限界があり、私が見ている文書を理解することはできません。私のコードは、そのように、現在、次のとおりです。
popup.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input type="file" id="liquida-file" name="liquida">
<br>
<script src="background-script.js"></script>
</body>
</html>
背景-script.js
function handleFiles() {
var fileList = this.files; /* now you can work with the file list */
var myFile = fileList[0]
var reader = new FileReader();
reader.onloadend = function(evt){
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
var filedata = evt.target.result;
console.error("Analyzing file data")
console.error(filedata)
var data = JSON.parse(filedata)
console.error(data)
}
};
reader.readAsText(myFile)
}
var inputElement = document.getElementById("liquida-file");
inputElement.addEventListener("change", handleFiles, false);
これは、スタンドアロンのファイルとしてではなく、ポップアップとして動作します。私のwebextensionのhtmlファイル。この場合、console.error行に到達することはありません。ところで、ここに私のmanifest.jsonを次のとおりです。
{
"manifest_version": 2,
"name": "My extension",
"version": "1.0",
"description": "Retrieve local data.",
"homepage_url": "http://Nonefornow",
"icons": {
"48": "icons/beautiful-icon.png"
},
"permissions": [
"activeTab"
],
"browser_action": {
"browser_style": true,
"default_icon": "icons/icon.png",
"default_title": "My Ext",
"default_popup": "popup.html"
}
}
manifest.jsonを私がやっている何をすべきかいずれかの簡単な方法はありますか?私はこのようなことが一般的な必要性であると期待していましたが、間違っていますか?そして、なぜ私のコードは動作しませんか?