在从onsubmit调用的函数中使用window.location时出现问题

时间:2010-08-18 06:37:50

标签: javascript html

我目前正在使用HTML和JavaScript在我的主页上创建一个非常小的表单。我遇到了一个问题,我很确定我可以以某种方式避开(虽然可能以一种非常丑陋的方式),但我对这个错误出现的原因感兴趣。

我的页面上有一个表单,我用以下方式指定:

<FORM name="form1" onsubmit="submitTheScript()">

函数“submitTheScript()”放在标题中并显示:

setCookie("F_GivenSum", GivenSum);
window.location="LastScreen.html";

“setCookie()”是一个基本上只是创建一个cookie的函数:)。

现在,问题出现在最后一行代码中。在设置cookie之后,我正在尝试将用户发送到另一个页面(我正在做一些控件,输入值没问题,但我在这里跳过了那部分)但是FireFox给了我以下错误:< / p>

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命令中那样调用这个函数,但是,我不明白为什么。

1 个答案:

答案 0 :(得分:1)

好的,我做了一个快速测试,发现你需要通过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带来任何错误。