2017-07-14 4 views
0

私のシステムはWindows 10、Chrome stable 59です。モバイルChrome(Android)でも問題が発生しています。 https://github.com/f3flight/html-storyboard はここでホスト - - "LOADのA" と「LOAD - http://us.3ft.ru/draw/virtual <input type = "file">要素 - 信頼できないonchangeイベント - なぜですか?

私の現在の問題は、その時々(Android携帯&タブレットとより多くのように、モバイルデバイス上)である

私は、HTML/JSでプロジェクトを持っています"入力要素を作成してプログラム上で"クリック "するボタン https://github.com/f3flight/html-storyboard/blob/master/js.js#L285 https://github.com/f3flight/html-storyboard/blob/master/js.js#L346ブラウザでファイルを選択した後に/アプリケーションが閉じる(「アプリ」と「カメラ」の両方のAndroidアプリをテストすると)アプリ)、 "onchange"イベントは発生しません。このページにはDBGボタンがあり、下部にコンソールを開き、問題が単一の "load_all"または "load"行として監視され、それ以上のデバッグ出力はありません(たくさんあるはずです)。私は問題がAndroid上ではデスクトップ上で発生するように感じるが、私はそれもデスクトップ上に表示されます。

ファイルの選択が完了する前に、仮想の「入力」要素がガベージコレクトされることがありますか(後で手動でクリーンアップしないので、DOMに追加しません)。私はこれを考えなかったが、私はブラウザの内部を知らない。

答えて

0

私はこれを自分で考えました。私は私の前提に正しかった - "input"要素は、onchangeイベントが呼び出される前にメモリから消去されました。つまり、関数を作成してonclickを呼び出す関数の外部に参照を格納したことがない場合です。

モジュールスコープの変数を作成してこれを修正しました。https://github.com/f3flight/html-storyboard/blob/master/board.js#L14 新しい変数を割り当てる代わりにinput要素を作成するときに割り当てます。これで問題を解決できます。

関連する問題