2017-01-14 6 views
2

を打ち返すときjavascript関数、私は次のサンプルファイルを持って定義されていません:ファイルアップロード後、私はにリダイレクトしていボタン

<body> 
    success 
</body> 

aa.html

index.htmlを

<body> 
    <input type="file" name="image" onchange="handleUpload()"> 
    <script> 
    function handleUpload() { 
     window.location = 'aa.html'; 
    } 
    </script> 
</body> 

別のページ。 ブラウザの戻るボタンを押すとUncaught ReferenceError: handleUpload is not defined at HTMLInputElement.onchangeと表示されます。

誰かがなぜこれが起こっているのか説明できますか?私はhandleUploadがなぜトリガされるのか理解していますが、なぜそれは未定義ですか?

更新

私のアプリは、より複雑です。 webpackを使用してjsファイルを1つのファイルにバンドルしてから、bodyタグを閉じる前にレイアウトで参照します。 私がしようとしているのは、入力ファイルがいっぱいになると画像のプレビューです。すべてがうまくいきますが、フォームが送信された後に戻るボタンを押すと、そのエラーが発生します。

私はこの問題を避けるため、htmlからonchangeを取り除き、jsファイルのいずれかにイベントリスナーを追加しました。この方法では、ファイル選択ウィンドウを開くのに時間がかかります。ここで

+0

は、あなたが2番目のページであなたのJSファイルを参照しましたあなたの答えは? – GarbageCollector

+0

jsファイルではありませんが、私もそれを試しました。インラインスクリプトです。私は2番目のページにスクリプトを入れてみましたが、問題を解決しません。 – Mirceac21

+0

クロムでローカルにチェックしましたが、問題はありません。どのブラウザを使用していますか? –

答えて

0

<input type="file" name="image" onchange="window.location='aa.html'">

+0

私のアプリはもっと​​複雑です。 webpackを使用してすべてのjsをバンドルし、 ''タグの前に自動的にjsファイルを挿入します。 'onchange'ハンドラはより複雑で、リダイレクトはルータによって行われます。これは、問題を説明するための簡単な例です。 – Mirceac21