日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Javascript操作img解決網(wǎng)站提交數(shù)據(jù)異常問題

本文和大家重點(diǎn)討論一下使用Javascript巧妙操作img做網(wǎng)站異常提交數(shù)據(jù)處理,通過兩步就可以實(shí)現(xiàn)表單提交數(shù)據(jù)到服務(wù)器A,如果服務(wù)器A訪問不了就提交到服務(wù)器B功能,具體內(nèi)容請(qǐng)看下文詳細(xì)介紹。

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

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

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

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

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

Code

 
 
 
  1. value="s129"name="SendType"/>
  2. type="button"name="imageField"/>

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

Code

 
 
 
  1. functiongetMessage(frm){
  2. varsendtype=frm.SendType;
  3. vartitle=frm.title;
  4. //創(chuàng)建模擬form表單
  5. varobjfrm=document.createElement("form");
  6. varobjsendtype=document.createElement("input");
  7. varobjtitle=document.createElement("input");
  8. //利用操作img來處理目標(biāo)接收數(shù)據(jù)的服務(wù)器頁面
  9. varobjImg=document.createElement("img");
  10. objImg.id="TmpSmsImg";
  11. objImg.src="http://www.xueit.com/images/logo.gif";
  12. //默認(rèn)服務(wù)器A圖片
  13. document.body.appendChild(objImg);
  14. varimgWidth=document.getElementById("TmpSmsImg").width;
  15. document.body.removeChild(objImg);
  16. if(imgWidth=="210")//如果圖片存在,
  17. 就可以獲取到寬度等于預(yù)定值,默認(rèn)接收數(shù)據(jù)的服務(wù)器A的頁面
  18. {
  19. objfrm.action="http://www.xueit.com/testGet.aspx";
  20. }
  21. else//圖片不存在,另一臺(tái)接收數(shù)據(jù)的服務(wù)器B的頁面
  22. {
  23. objfrm.action="http://demo.xueit.com/testGet.aspx";
  24. }
  25. //下面是表單的屬性
  26. objfrm.id="TmpForm";
  27. objfrm.name="TmpForm";
  28. objfrm.target="_blank";
  29. objfrm.method="post";
  30. objfrm.style.display="none";
  31. objsendtype.type="hidden";
  32. objsendtype.name="SendType";
  33. objsendtype.value=Utf2Gb(sendtype);
  34. objtitle.type="hidden";
  35. objtitle.name="title";
  36. objtitle.value=Utf2Gb(title);
  37. //附加
  38. objfrm.appendChild(objsendtype);
  39. objfrm.appendChild(objtitle);
  40. //表單提交
  41. document.body.appendChild(objfrm);
  42. objfrm.submit();
  43. document.body.removeChild(objfrm);
  44. //clearobj
  45. objtitle=null;
  46. objsendtype=null;
  47. objfrm=null;
  48. }
  49. //處理編碼函數(shù)
  50. functionUtf2Gb(str)
  51. {
  52. if(str!=null&&str!="")
  53. str=escape(str);
  54. returnstr;
  55. }

 以上代碼主要是利用img圖片,如果圖片所在服務(wù)器正常運(yùn)行的話,圖片會(huì)加載到當(dāng)前頁面的body區(qū)域中,所以再獲取這個(gè)img圖片的寬度,如果寬度等于你知道的預(yù)定值,就代表默認(rèn)服務(wù)器正常,否則代碼服務(wù)器A不正常,就把數(shù)據(jù)提交到服務(wù)器B處理。


分享名稱:Javascript操作img解決網(wǎng)站提交數(shù)據(jù)異常問題
URL分享:http://www.5511xx.com/article/coojhdc.html