一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET頁面借助IFrame提交表單數據所遇到問題的解決方法分享

ASP.NET頁面借助IFrame提交表單數據所遇到問題的解決方法分享

2019-09-23 10:33asp.net教程網 ASP.NET教程

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产短视频精品一区二区三区 | 久久久免费热线精品频 | sex5·性屋娱乐 | 免费精品国产在线观看 | 国产偷窥女洗浴在线观看亚洲 | 国产精品永久免费视频 | 色久天| 三体动漫在线观看免费完整版2022 | 99午夜| 免费精品一区二区三区在线观看 | 久草热8精品视频在线观看 久草草在线视视频 | 亚洲精品私拍国产福利在线 | 99热这里只有精品久久免费 | 日本丰满大乳乳奶 | 超级碰碰青草免费视频92 | 久久视频在线视频观看天天看视频 | 国产精品亚洲综合第一区 | 小寡妇好紧进去了好大看视频 | 国产成人cao在线 | 99色在线播放 | 免费高清在线视频色yeye | 午夜一区二区免费视频 | 喜欢老头吃我奶躁我的动图 | 三上悠亚国产精品一区 | 免费高清资源黄网站在线观看 | 精品久久综合一区二区 | 四虎精品视频在线永久免费观看 | 欧美男同video | 国产自在自线午夜精品之la | 视频一区二区三区欧美日韩 | 成人夜视频寂寞在线观看 | 免费网站国产 | 消息称老熟妇乱视频一区二区 | 国产视频久久久 | 国产激情视频 | 国产精品乱码高清在线观看 | 天堂69亚洲精品中文字幕 | 亚洲天堂伦理 | 欧美 国产 日韩 第一页 | 日本男男漫画 | 精品国产欧美一区二区五十路 |