您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(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)把它分享出去讓更多的人看到。
免責(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)容。