溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Javascript操作img如何解決網(wǎng)站提交數(shù)據(jù)異常問(wèn)題

發(fā)布時(shí)間:2021-11-06 14:40:11 來(lái)源:億速云 閱讀:147 作者:小新 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Javascript操作img如何解決網(wǎng)站提交數(shù)據(jù)異常問(wèn)題,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

使用Javascript巧妙操作img做網(wǎng)站異常提交數(shù)據(jù)處理

本文要做的功能效果如下:

表單提交數(shù)據(jù)到服務(wù)器A,如果服務(wù)器A訪問(wèn)不了就提交到服務(wù)器B

要使用JS實(shí)現(xiàn)上面的所講功能,要考慮跨域問(wèn)題,有使用過(guò)ajax的xmlhttp方法檢測(cè)遠(yuǎn)程文件不存在返回404的方案,這種方案在測(cè)試時(shí)由于ajax存在跨域問(wèn)題,所以就不采用了,也使用過(guò)img的onerror與onload事件這種方案來(lái)處理,但是這種方案會(huì)造成提交表單IE會(huì)彈窗,瀏覽器又?jǐn)r截了彈窗,所以又不采用此方案,哪怎么辦呢?搞得挺久,最終還是利用js操作img來(lái)處理完成。
也許說(shuō)了這么多,你還看不懂我所表達(dá)的意思,暫不管這些,下面看代碼你就清楚了。

第1步、創(chuàng)建一個(gè)test.htm文件,內(nèi)容如下:

Code

<html> <scriptsrcscriptsrc="getMessage.js"></script> <body> <formnameformname="mfrm"> <inputidinputid="SendType"type="hidden"  value="s129"name="SendType"/> <inputidinputid="title"name="title"/> <inputonClickinputonClick="returngetMessage(this.form);"type="button"name="imageField"/> </form> </body> </html>

第2步:創(chuàng)建getMessage.js文件,內(nèi)容如下:

Code

functiongetMessage(frm){  varsendtype=frm.SendType;  vartitle=frm.title;  //創(chuàng)建模擬form表單  varobjfrm=document.createElement("form");  varobjsendtype=document.createElement("input");  varobjtitle=document.createElement("input");  //利用操作img來(lái)處理目標(biāo)接收數(shù)據(jù)的服務(wù)器頁(yè)面  varobjImg=document.createElement("img");  objImg.id="TmpSmsImg";  objImg.src="http://www.xueit.com/images/logo.gif";//默認(rèn)服務(wù)器A圖片  document.body.appendChild(objImg);  varimgWidth=document.getElementById("TmpSmsImg").width;  document.body.removeChild(objImg);   if(imgWidth=="210")//如果圖片存在,就可以獲取到寬度等于預(yù)定值,默認(rèn)接收數(shù)據(jù)的服務(wù)器A的頁(yè)面  {  objfrm.action="http://www.xueit.com/testGet.aspx";  }  else//圖片不存在,另一臺(tái)接收數(shù)據(jù)的服務(wù)器B的頁(yè)面  {  objfrm.action="http://demo.xueit.com/testGet.aspx";  }   //下面是表單的屬性  objfrm.id="TmpForm";  objfrm.name="TmpForm";  objfrm.target="_blank";  objfrm.method="post";  objfrm.style.display="none";   objsendtype.type="hidden";  objsendtype.name="SendType";  objsendtype.value=Utf2Gb(sendtype);   objtitle.type="hidden";  objtitle.name="title";  objtitle.value=Utf2Gb(title);   //附加  objfrm.appendChild(objsendtype);  objfrm.appendChild(objtitle);   //表單提交  document.body.appendChild(objfrm);  objfrm.submit();  document.body.removeChild(objfrm);   //clearobj  objtitle=null;  objsendtype=null;  objfrm=null;   }   //處理編碼函數(shù)  functionUtf2Gb(str)  {  if(str!=null&&str!="")  str=escape(str);  returnstr;  }

關(guān)于“Javascript操作img如何解決網(wǎng)站提交數(shù)據(jù)異常問(wèn)題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI