Javascript 正文标记末尾的脚本标记能否作用于表单?

Javascript 正文标记末尾的脚本标记能否作用于表单?,javascript,html,Javascript,Html,我的网站需要有一个表格,自动提交,发送用户(后数据)到一个外部网站。以前,我是这样使用HTML的: <html> <head></head> <body onload="document.forms[0].submit()"> <form name='form1' method='post' action='externalwebsite.com'> <input type='hidden' nam

我的网站需要有一个表格,自动提交,发送用户(后数据)到一个外部网站。以前,我是这样使用HTML的:

<html>
  <head></head>  
  <body onload="document.forms[0].submit()">
    <form name='form1' method='post' action='externalwebsite.com'>
      <input type='hidden' name='cartId' value='1337'>
      <input type='hidden' name='currency' value='USD'>
      <input type='hidden' name='amount' value='9'>
    </form>
  </body>
</html>
然而,我不想为这样一个简单的页面包含一个庞大的javascript库。因此,我有以下HTML:

<html>
  <head></head>  
  <body>
    <form name='form1' method='post' action='externalwebsite.com'>
      <input type='hidden' name='cartId' value='1337'>
      <input type='hidden' name='currency' value='USD'>
      <input type='hidden' name='amount' value='9'>
    </form>
    <script type='text/javascript'>document.forms[0].submit()</script>
  </body>
</html>

document.forms[0].提交()

这在所有浏览器中都能正常工作吗?或者我应该使用不同的方法吗?

在关闭body标记之前放置脚本

<html>
  <head></head>  
  <body>
    <form name='form1' method='post' action='externalwebsite.com'>
      <input type='hidden' name='cartId' value='1337'>
      <input type='hidden' name='currency' value='USD'>
      <input type='hidden' name='amount' value='9'>
    </form>
  <script type='text/javascript'>document.forms[0].submit()</script>
  </body>
</html>

document.forms[0].提交()

在关闭body标记之前放置脚本

<html>
  <head></head>  
  <body>
    <form name='form1' method='post' action='externalwebsite.com'>
      <input type='hidden' name='cartId' value='1337'>
      <input type='hidden' name='currency' value='USD'>
      <input type='hidden' name='amount' value='9'>
    </form>
  <script type='text/javascript'>document.forms[0].submit()</script>
  </body>
</html>

document.forms[0].提交()


是的,它将工作(除非禁用JavaScript),并将在HTML加载到浏览器后立即执行。它不会像您的
onload
解决方案那样等待图像、脚本等加载。

是的,它将工作(除非禁用JavaScript),并将在HTML加载到浏览器后立即执行。它不会像您的
onload
解决方案那样等待图像、脚本等加载。

按照您现在的方式,它不会工作。您必须在关闭
元素之前拥有代码,否则在页面完全加载后将无法执行。一旦你做到了这一点,那么是的,它应该可以跨浏览器工作。

现在的方式,它不会工作。您必须在关闭
元素之前拥有代码,否则在页面完全加载后将无法执行。一旦你这样做了,那么是的,它应该可以跨浏览器工作。

哎呀,我的抄写错误——这就是我最初遇到的问题。这会一直有效吗?是的,您可以在任何浏览器中访问文档末尾的dom。但最好在服务器端发布并将完成的表单加载到用户,而不是在页面加载时进行post请求。@如果是向第三方网站发布的帖子,并且用户需要来自第三方的cookie(看起来很可能是购物车系统),则ChamikaSandamal不是一个选项。@ChamikaSandamal感谢您的建议,但这是不可能做到的,因为外部网站相当复杂,并且有自己的页面链。哎呀,我这方面的转录错误——这就是我最初遇到的。这会一直有效吗?是的,您可以在任何浏览器中访问文档末尾的dom。但最好在服务器端发布并将完成的表单加载到用户,而不是在页面加载时进行post请求。@如果是向第三方网站发布的帖子,并且用户需要来自第三方的cookie(看起来很可能是购物车系统),则ChamikaSandamal不是一个选项。@ChamikaSandamal感谢您的建议,但这是不可能做到的,因为外部站点非常复杂,并且有自己的页面链。如果工作正常,只需将脚本标记放在正文中即可。如果您是在单独的页面上执行此操作,我假设用户执行了一些操作,以便发送到此页面并将其发布到下一页?你可以在第一页创建一个表单,然后直接发布,从而消除任何延迟。@MickHansen我在这里发布的示例比实际表单更简单。它适用于将用户发送到外部站点进行支付的支付系统。根据用户的选择和服务器端的设置,表单必须包含许多字段,因此很遗憾,无法按照您的建议直接进入。那么,您目前如何解析表单服务器端?如果你可以在服务器端完成,那么你应该可以在客户端完成:)@MickHansen我可以用javascript在客户端完成,但这会更加复杂,因为我必须根据服务器设置的变化在javascript中插入内容,然后。。。不屑于这么做。:)呵呵,我明白了——虽然用户感觉越平滑,效果就越好,但只需将脚本标记放在主体内即可。如果您是在单独的页面上执行此操作,我假设用户执行了一些操作,以便发送到此页面并将其发布到下一页?你可以在第一页创建一个表单,然后直接发布,从而消除任何延迟。@MickHansen我在这里发布的示例比实际表单更简单。它适用于将用户发送到外部站点进行支付的支付系统。根据用户的选择和服务器端的设置,表单必须包含许多字段,因此很遗憾,无法按照您的建议直接进入。那么,您目前如何解析表单服务器端?如果你可以在服务器端完成,那么你应该可以在客户端完成:)@MickHansen我可以用javascript在客户端完成,但这会更加复杂,因为我必须根据服务器设置的变化在javascript中插入内容,然后。。。不屑于这么做。:)呵呵,我明白了-虽然用户感觉越平滑越好