【问题标题】:javascript function not defined when hit back button点击返回按钮时未定义javascript函数
【发布时间】:2017-01-14 11:12:58
【问题描述】:

我有以下示例文件:

index.html

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

aa.html

<body>
  success
</body>

文件上传后,我被重定向到另一个页面。 当我点击浏览器后退按钮时,我得到Uncaught ReferenceError: handleUpload is not defined at HTMLInputElement.onchange

有人可以解释为什么会这样吗?我明白为什么会触发handleUpload,但为什么它是未定义的?

更新

我的应用更复杂。我使用 webpack 将我的 js 文件捆绑到一个文件中,然后在关闭 body 标签之前在布局中引用它。 我想要做的是填充输入文件时的图像预览。一切正常,但如果我在提交表单后点击返回按钮,我会收到该错误。

我设法通过从 html 中删除 onchange 并在其中一个 js 文件中添加事件侦听器来避免此问题。这种方法在打开选择文件窗口时会有延迟。

【问题讨论】:

  • 第二页引用你的js文件了吗?
  • 它不是一个 js 文件(但我也试过)它是一个内联脚本。我尝试将脚本放在第二页,但没有解决问题。
  • 我在本地用chrome检查过,没有问题。你用什么浏览器?
  • Chrome 版本 55.0.2883.95(64 位)。我觉得是浏览器的问题。它不会在 Firefox 中发生。
  • 我有相同的版本(但 32 位),你确定你测试这两个文件正确吗?

标签: javascript html url-redirection


【解决方案1】:

这是你的答案

    &lt;input type="file" name="image" onchange="window.location='aa.html'"&gt;

【讨论】:

  • 我的应用更复杂。我使用 webpack 来捆绑我所有的 js 并在 &lt;/body&gt; 标签之前自动注入 js 文件。 onchange 处理程序更复杂,并且重定向是由路由器进行的。这是一个简单的例子来说明问题。
猜你喜欢
  • 2015-06-22
  • 2016-02-19
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 2013-07-23
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多