Vue: imgのChromeではevent.targetがnullです

作成日 2017年11月09日  ·  4コメント  ·  ソース: vuejs/vue

バージョン

2.5.3

複製リンク

https://jsbin.com/jafufah/1/edit?html、js、console、output

再現する手順

Chrome(61.0.3163)、場合によってはSafari(11.0.1)でのみ。

  1. jsbinへのリンクを開く
  2. [ JSで実行]をクリックし
  3. コンソールが最初にevent.target参照を出力し、次に同じプロパティに対してnullを出力することを確認してください。

何が期待されますか?

Firefox、Edge、IE11では、 event.targetnullことはありません。

実際に何が起こっているのですか?

イベントが次のティックまで変数に格納されている場合、 event.targetnullです。


これがVue.jsのバグなのかChromeのバグなのかはわかりませんが、この問題にもっと目を向けると明確になると思いました。

これはnuxt.jsアプリケーション内で最初に見ましたが、vue.jsだけで簡単に再現できるため、vueコアまたはChrome(blink / webkit)のいずれかであると思います。

私は<object>ロードハンドラーで同じことをしましたが、これは決して起こりませんでした-それは<img>要素またはロードするファイルのサイズに固有です。

全てのコメント4件

これはバグではありません。イベントが使用された後、非同期コールバックでイベントが有効であるという保証はありません。 したがって、基本的には、必要なもの(この場合はtarget )を保存し、イベント変数の代わりにそれを直接使用する必要があります。

@posvaそのステートメントのドキュメントはありますか? 私はあなたが間違っているとは思いません、私はそれを今まで見たり聞いたりしたことがありません。

見つかりませんでした🙁
しかし、Vueなしでここでそれを見ることができます: https

DOMイベントの存続期間に関するあらゆる種類のドキュメントがある場所を探していましたが、何も見つかりませんでした。 あなたのjsbinは、SOからリンクするための何千もの最高の例になります;)

真剣に、前回この問題が発生したのはTitaniumと呼ばれるハイブリッドVMで、すべての要素がJavaまたはObject-Cのカウンターパーツにマップされており、VMがそれらを未使用と見なすとこれらは消えていました。 ブラウザで表示されるとは思ってもみませんでした。 しかし、今日はその日でした! :tada:💩

このページは役に立ちましたか?
0 / 5 - 0 評価