gpt4 book ai didi

ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

首先看下面的代码片段,我们希望用户在点击页面上的Button时首先将数据提交到指定的第三方页面,然后再执行后台的Page_Load事件。  。

复制代码代码如下

<body>  <iframe id="WebGatewaySubmissionProcessor_IFrame" name="WebGatewaySubmissionProcessor_IFrame" style="display: none;"></iframe>  <form onsubmit="javascript:if (typeof WebGatewayDoubleSubmission != 'undefined') {WebGatewayDoubleSubmission(this);}" id="Form1" runat="server">  <div id="page">  <asp:Button ID="BtnClientSend" runat="server" />  </div>  <script type="text/javascript" id="WebGatewayScript">  WebGatewayDoubleSubmission = function(o) {  var oldAction = o.action;  var oldOnSubmit = o.onsubmit;  var oldTarget = o.target;  var oldMethod = o.method;  var iframeSubmisionTarget = document.getElementById("WebGatewaySubmissionProcessor_IFrame");  var submitPostIframeSubmission = function() {  o.action = oldAction;  o.target = oldTarget;  o.method = oldMethod;  o.onsubmit = oldOnSubmit;  o.submit();  };  /*iframeSubmisionTarget.onload = submitPostIframeSubmission;*/  eventPush(iframeSubmisionTarget, 'load', submitPostIframeSubmission);  o.action = "http://webgateway.hostedmscrm.com/V2/formprocessor.aspx";  o.target = "WebGatewaySubmissionProcessor_IFrame";  o.onsubmit = null;  o.method = "POST";  o.submit();  };  WebGatewaySubmission = function(o) {  o.action = "http://webgateway.hostedmscrm.com/V2/formprocessor.aspx";  o.method = "POST";  };  function eventPush(obj, event, handler) {  if (obj.addEventListener) {  obj.addEventListener(event, handler, false);  } else if (obj.attachEvent) {  obj.attachEvent('on' + event, handler);  }  }  </script>  </form>  </body>  。

Form中的onsubmit事件在页面被提交时触发,此时首先执行WebGatewayDoubleSubmission脚本方法,在该方法中,将当前Form的action,onsubmit,target,method缓存到指定的变量中,然后将Form的action和target指向另一个页面进行提交,此时页面上的数据被Post到第三方页面。然后再使用页面上隐藏的IFrame来调用submitPostIframeSubmission方法,并将原先的Form进行提交。这里有一个问题,在上面的代码中有一行被注释掉了,原因就是直接使用IFrame的onload方法并不能触发该事件,从而导致submitPostIframeSubmission方法不能执行,页面的第二次提交不成功!使用eventPush方法可以有效地解决该问题。  同时,在服务端的Page_Load事件中,需要使用IsPostBack来判断页面是否被提交了:  。

复制代码代码如下

protected void Page_Load(object sender, EventArgs e)  {  if (Page.IsPostBack)  {  //TODO:  }  }  。

  。

相关资料: http://www.4ucode.com/Study/Topic/1087401  http://wiki.operamasks.org/pages/viewpage.action?pageId=1835020 。

最后此篇关于ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享的文章就讲到这里了,如果你想了解更多关于ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com