您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Javascript操作img如何解決網站提交數據異常問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
使用Javascript巧妙操作img做網站異常提交數據處理
本文要做的功能效果如下:
表單提交數據到服務器A,如果服務器A訪問不了就提交到服務器B
要使用JS實現上面的所講功能,要考慮跨域問題,有使用過ajax的xmlhttp方法檢測遠程文件不存在返回404的方案,這種方案在測試時由于ajax存在跨域問題,所以就不采用了,也使用過img的onerror與onload事件這種方案來處理,但是這種方案會造成提交表單IE會彈窗,瀏覽器又攔截了彈窗,所以又不采用此方案,哪怎么辦呢?搞得挺久,最終還是利用js操作img來處理完成。
也許說了這么多,你還看不懂我所表達的意思,暫不管這些,下面看代碼你就清楚了。
第1步、創建一個test.htm文件,內容如下:
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步:創建getMessage.js文件,內容如下:
Code
functiongetMessage(frm){ varsendtype=frm.SendType; vartitle=frm.title; //創建模擬form表單 varobjfrm=document.createElement("form"); varobjsendtype=document.createElement("input"); varobjtitle=document.createElement("input"); //利用操作img來處理目標接收數據的服務器頁面 varobjImg=document.createElement("img"); objImg.id="TmpSmsImg"; objImg.src="http://www.xueit.com/images/logo.gif";//默認服務器A圖片 document.body.appendChild(objImg); varimgWidth=document.getElementById("TmpSmsImg").width; document.body.removeChild(objImg); if(imgWidth=="210")//如果圖片存在,就可以獲取到寬度等于預定值,默認接收數據的服務器A的頁面 { objfrm.action="http://www.xueit.com/testGet.aspx"; } else//圖片不存在,另一臺接收數據的服務器B的頁面 { 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; } //處理編碼函數 functionUtf2Gb(str) { if(str!=null&&str!="") str=escape(str); returnstr; }
關于“Javascript操作img如何解決網站提交數據異常問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。