カスタムイベントで追加データを渡す方法はありますか?
2023-07-21 07:29:21
質問
私は2つの自律的なユーザスクリプトの間でデータを渡す必要があります。
unsafeWindow
オブジェクトに触れることなく - そして、カスタム イベントを使用するのが良い方法だと思いました。私はこのようなものを考えました (例の目的のために MSIE モデルを無視することにしましょう)。
addEventListener("customEvent", function(e) {
alert(e.data);
});
var custom = document.createEvent("HTMLEvents");
custom.initEvent("customEvent", true, true);
custom.data = "Some data...";
dispatchEvent(custom);
これは標準的なJavascript環境と1つのユーザースクリプト内ではうまく動作しますが、ユーザースクリプトで発生したイベントがその外や別のユーザースクリプト内でキャッチされると
data
プロパティは
undefined
をChromiumで使用しています。渡されたデータを保存すればいいんだろうけど
sessionStorage
に保存することもできますが、シームレスとは程遠いです。他のエレガントなソリューションがありますか?完璧が必要であり、達成することができる、私はそれを感じることができます。
どのように解決するのですか?
そうです。
MessageEvent
または
CustomEvent
.
使用例です。
//Listen for the event
window.addEventListener("MyEventType", function(evt) {
alert(evt.detail);
}, false);
//Dispatch an event
var evt = new CustomEvent("MyEventType", {detail: "Any Object Here"});
window.dispatchEvent(evt);
関連
-
[解決済み] HTML5を使用したカスタムデータ属性のjQueryセレクタ
-
[解決済み] ブラウザのウィンドウが現在アクティブでないことを検出する方法はありますか?
-
[解決済み] ブートストラップ・モーダルにデータを渡す
-
[解決済み] AngularJS で $http.get リクエストにデータを渡す
-
[解決済み】jQueryでキー押下イベントをトリガーする決定的な方法
-
[解決済み] JavaScriptで定期的に関数を呼び出す方法はありますか?
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?