Javascript 在IE9中提交表单之前哈希密码

Javascript 在IE9中提交表单之前哈希密码,javascript,hash,internet-explorer-9,Javascript,Hash,Internet Explorer 9,我已经为我的一个网站实现了本文中给出的示例: 在IE9用户开始报告他们无法登录到该站点之前,一切都很顺利。用户已经启用了javascript,但我仍然无法理解为什么会发生这种情况。同样的用户可以使用其他浏览器登录,因此也不会忘记密码(我非常怀疑!) formhash函数的编写与文章中的完全相同(从图像复制它非常烦人!) 提交时不会报告任何错误,因此IE9似乎不支持任何错误。那么这个散列函数出了什么问题 结果表明IE9不喜欢修改表单输入,因此必须在将元素添加到DOM之前设置值 function

我已经为我的一个网站实现了本文中给出的示例:

在IE9用户开始报告他们无法登录到该站点之前,一切都很顺利。用户已经启用了javascript,但我仍然无法理解为什么会发生这种情况。同样的用户可以使用其他浏览器登录,因此也不会忘记密码(我非常怀疑!)

formhash函数的编写与文章中的完全相同(从图像复制它非常烦人!)


提交时不会报告任何错误,因此IE9似乎不支持任何错误。那么这个散列函数出了什么问题

结果表明IE9不喜欢修改表单输入,因此必须在将元素添加到DOM之前设置值

function formhash(form, password) {
  console.log("Hashing form");
  // Create a new element input, this will be our hashed password field.
  var p = document.createElement("input");
  p.name = "p";
  p.type = "hidden"
  p.value = hex_sha512(password.value);

  // NOW, add the new element to our form.
  form.appendChild(p);

  // Make sure the plaintext password doesn't get sent.
  password.value = "";
  // Finally submit the form.
  form.submit();
}

要归功于谁遇到了我的确切问题

这不是你要问的问题,但是如果你担心通过网络发送密码,为什么不使用SSL呢?
function formhash(form, password) {
  console.log("Hashing form");
  // Create a new element input, this will be our hashed password field.
  var p = document.createElement("input");
  p.name = "p";
  p.type = "hidden"
  p.value = hex_sha512(password.value);

  // NOW, add the new element to our form.
  form.appendChild(p);

  // Make sure the plaintext password doesn't get sent.
  password.value = "";
  // Finally submit the form.
  form.submit();
}