我的网站有一个安全的登录表单。在登录过程中,我使用名为form.js
的文件。当我输入用户名和密码时,它会加载但不会将我引导到该页面,但Chrome上的一切正常。我收到此通知(点击图片链接):
这是forms.js代码:
function formhash(form, password) {
// Create a new element input, this will be our hashed password field.
var p = document.createElement("input");
// Add the new element to our form.
form.appendChild(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
// Finally submit the form.
form.submit();
}
对这个问题有任何想法吗?
答案 0 :(得分:3)
在将元素添加到DOM后,Internet Explorer不允许您更改元素的type
属性。您必须在附加节点之前设置此属性。
此外,设置节点属性的正确方法是使用setAttribute()
函数。
这应该有效:
function formhash(form, password) {
// Create a new element input, this will be our hashed password field.
var p = document.createElement("input");
p.setAttribute("name","p");
p.setAttribute("type","hidden");
p.setAttribute("value",hex_sha512(password.value));
// 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();
}