プラグインmechanizmを作成したいと思います。つまり、このプラグインが実行するように設定されている(実行中として切り替えられている)ときに、自分のWebサイトにjsファイルをロードし、js "プラグイン"(関数)を実行できます。jsファイルに関する情報をlocalStorageに保存する
これはすべてサーバーなしでやりたいことです。
つまり、localstorage jsファイルまたはこのファイルへのパスを保持したいと思います。
jsが簡単にファイルパスにアクセスできないため、やりにくいようです。
は私が<input type="file"/>
でファイルを扱うと私はのonchangeイベントに反応します。 URL.createObjectURL(event.srcElement.files[0])
そして、私はのlocalStorageでそのURLを保存しようとしたが、このURLは一時的なものである:私は私がすることにより、そのオブジェクトのURLを作成することができるものとevent.srcElement.files[0]
でファイルを選択見つけることができるイベントを取得します。 また、イベント全体を保存するか、ファイル(event.srcElement.files[0]
)だけを保存しようとしました。
しかし、私は機能.setItem
にそれを置きたい場合、私はそれから文字列を作成する必要があります。
localStorage.setItem("functionURL", JSON.stringify(this.functionURL));
.toString()
は[Object Event/File]
JSON.stringify()
を作成し、{}
ので
[Object Event/File]
からを作成し、多分あります何らかのサーバーなしで関数として使用できるファイルを何とか思い出す方法がありますか?
I種類のこのアイデアのように、よくそれを盗むことがあります。 :-)確かに、人々はGreaseMonkeyやTamperMonkeyを代わりに使うことができるのですが...。 –
@TJCrowderはこれにしばらく取り組んでいましたが、最終的に[Web Component](https://jsfiddle.net/patrob10114/rekyegxk/show /)は 'localStorage'または' sessionStorage'を使って選択したファイルを覚えているファイルセレクタとして機能します。もう一つのすばらしいことは、文字列のUTF-16コードポイントを使用してFileオブジェクトのバイナリデータを 'Storage'にパックすることです。ファイルの2バイトがUTF-16でエンコードされた文字列の1文字に順番に対応するようにしますStorage APIに割り当てられた5MBの制限付きメモリを効率的に使用できます。 –