我目前正在使用 HTML 和 JavaScript 在主页上创建一个非常小的表单。我遇到了一个问题,我很确定我可以以某种方式规避(尽管可能以一种非常丑陋的方式),但我对为什么会出现此错误感兴趣。
我的页面上有一个表单,我通过以下方式指定:
<FORM name="form1" onsubmit="submitTheScript()">
函数“submitTheScript()”被放置在标题中并读取:
setCookie("F_GivenSum", GivenSum);
window.location="LastScreen.html";
“setCookie()”是一个基本上只是创建 cookie 的函数:)。
现在,问题出现在最后一行代码上。在设置 cookie 后,我试图将用户发送到另一个页面(我正在执行一些控制以确保输入值正常,但我在这里跳过了该部分),但 FireFox 给了我以下错误:
uncaught exception: [Exception... "Cannot modify properties of a WrappedNative" nsresult: "0x80570034 (NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN)" location: "JS frame :: chrome://global/content/bindings/autocomplete.xml :: onxblpopuphiding :: line 827" data: no]
我想我不能像我那样从 onsubmit 命令中调用这个函数,但是,我不明白为什么。
最佳答案
好吧,我做了一个快速测试,发现您需要通过 JavaScript 分配 onsubmit 事件处理程序,如下所示:
document.getElementById("myform").onsubmit = doSubmit;
function doSubmit() {
document.cookie = "F_GivenSum=200";
window.setTimeout(function() {
window.location = ('test2.html');
}, 20);
return false;
}
这在 FF 中没有给出任何错误。
关于javascript - 在 onsubmit 调用的函数中使用 window.location 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3509521/