【问题标题】:Automatically Submit a form in new window在新窗口中自动提交表单
【发布时间】:2012-01-04 13:19:51
【问题描述】:

我已经为此工作了大约 2 个小时,但似乎找不到解决方案。我知道你可以这样做:

<form target="_blank"

这仅在用户提交时有效。问题是,这个表单是使用 javascript 提交的。它是自动提交的。所以当我做 document.formname.submit();并且表单具有 attrivute target="_blank" 它给了我以下错误:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (ns_error_failure) [nsidomhtmlformelement.submit]" nsresult: "0x80004005 (ns_error_failure)" location: "JS frame :: [lazyjhunting.com...] :: <TOP_LEVEL> :: line 95" data: no]

那么没有人知道如何自动提交表单并在新窗口中打开结果吗?

非常感谢任何帮助。非常感谢。

【问题讨论】:

标签: java php javascript magento


【解决方案1】:

我认为您不能这样做,因为在没有用户交互的情况下打开新窗口将被浏览器的弹出窗口阻止程序阻止,类似于阻止弹出窗口的方式。例如,您必须将其绑定到单击事件。

【讨论】:

    【解决方案2】:

    可以做到..请检查以下代码:

        window1.jsp
        -----------------
    
            <script type="text/javascript">
            function formSubmit(){
                document.forms['myform'].submit();
            }
            </script>
    
            <form action="window2.jsp" method="get" name="myform">
            <input type="text" name="name">
            <input type="button" name="clickMe" value="clickMe" onclick="formSubmit();">
            </form>
    
    
    
            window2.jsp
            -----------------
            <body>
            <%= (String)request.getParameter("name")%>
            </body>
    

    document.forms['myform'].submit()可以任意执行,我只是用简单的按钮调用函数formSubmit执行document.forms['myform'].submit()

    【讨论】:

    • 感谢您的回复,我想在新窗口中自动提交表单。
    • 对不起,我没有完全理解你。 “在新窗口中自动提交表单”是什么意思
    • 表示例如正文 onload 事件。我想在没有用户交互的情况下提交它。
    • 我的表单在 window1 中,当我通过 document.form.submit() 提交我的表单时,它应该在新窗口上提交意味着将打开一个新窗口并且所有发布的值都将是显示在上面。明白了吗??
    【解决方案3】:

    你当然可以。这是基本代码

    <html>
    <head>
    </head>
    <body onload="document.f.submit();">
    <form target="_blank" id='f' name='f' method='POST' action="http://www.yahoo.com">
    
    </form>
    
    <input type='button' name='btn' value='Submit' onclick='document.f.submit();' />
    </body>
    </html>
    

    问题是(也许这只是一个不好的例子)为什么要在加载事件时提交表单?如果页面刚刚加载,用户还没有机会输入任何内容。因此,发布了什么用户输入。如果它是您从数据库加载的内容,为什么要立即发布它,而不是在提供原始页面之前在服务器上执行您需要的任何操作。

    如果您要将数据发布到刚刚从 db 加载的另一个窗口,为什么不打开一个单独的窗口并直接从数据库加载该数据?也许我只是错过了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多