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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

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

2019-09-23 10:33asp.net教程網(wǎng) ASP.NET教程

ASP.NET頁面借助IFrame提交表單數(shù)據(jù)所遇到問題的解決方法分享,碰到同樣問題的朋友可以參考下。

首先看下面的代碼片段,我們希望用戶在點(diǎn)擊頁面上的Button時首先將數(shù)據(jù)提交到指定的第三方頁面,然后再執(zhí)行后臺的Page_Load事件。 

復(fù)制代碼代碼如下:


<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事件在頁面被提交時觸發(fā),此時首先執(zhí)行WebGatewayDoubleSubmission腳本方法,在該方法中,將當(dāng)前Form的action,onsubmit,target,method緩存到指定的變量中,然后將Form的action和target指向另一個頁面進(jìn)行提交,此時頁面上的數(shù)據(jù)被Post到第三方頁面。然后再使用頁面上隱藏的IFrame來調(diào)用submitPostIframeSubmission方法,并將原先的Form進(jìn)行提交。這里有一個問題,在上面的代碼中有一行被注釋掉了,原因就是直接使用IFrame的onload方法并不能觸發(fā)該事件,從而導(dǎo)致submitPostIframeSubmission方法不能執(zhí)行,頁面的第二次提交不成功!使用eventPush方法可以有效地解決該問題。 
同時,在服務(wù)端的Page_Load事件中,需要使用IsPostBack來判斷頁面是否被提交了: 

復(fù)制代碼代碼如下:


protected void Page_Load(object sender, EventArgs e) 

if (Page.IsPostBack) 

//TODO: 

 

相關(guān)資料:
http://www.4ucode.com/Study/Topic/1087401 
http://wiki.operamasks.org/pages/viewpage.action?pageId=1835020

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚欧成人一区二区 | 粗又长好猛好爽视频 | 蹭蹭妈妈的朋友小说 | 九九热在线观看视频 | 国产精品久久国产三级国电话系列 | 999导航| 91短视频版高清在线观看免费 | 免费看3d小舞被躁视频网站 | 亚洲国产成人在人网站天堂 | 无人在线视频高清免费观看动漫 | 十八女下面流水不遮免费 | 免费视频大全 | 精品视频在线免费观看 | 亚洲成人免费观看 | 午夜AV内射一区二区三区红桃视 | anal22日本人视频 | 深夜在线观看网站 | 奶茶视频有容乃大 | 国产综合欧美日韩视频一区 | 亚洲 日本 天堂 国产 在线 | 精品国产品香蕉在线观看 | 美女张开腿让男人桶的 视频 | 亚洲AV 无码AV 中文字幕 | 4455在线| 免费国产在线视频 | 热剧库| 亚洲mv国产精品mv日本mv | 白白国产永久免费视频 | 日本色淫 | 国产精品99在线观看 | 亚洲激情网| 午夜小视频免费观看 | 久久成人永久免费播放 | 日产乱码2021永久手机版 | 天天色视频 | 亚洲第一二三四区 | 无人影院在线播放视频 | beeg日本高清xxxx18 | 极品主播的慰在线播放 | 日韩成人在线免费视频 | 四虎播放器|