av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Javascript巧妙解決img做網站異常提交問題

本文向大家描述一下使用javascript巧妙操作img做網站異常提交,表如果要實現單提交數據到服務器A,如果服務器A訪問不了就提交到服務器B,利用js操作img來處理完成是個不錯的選擇。

目前成都創(chuàng)新互聯已為上1000+的企業(yè)提供了網站建設、域名、虛擬空間、網站托管、企業(yè)網站設計、北海網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發(fā)展。

使用javascript巧妙操作img做網站異常提交

如果要實現表單提交數據到服務器A,如果服務器A訪問不了就提交到服務器B,使用JS實現上面的所講功能,要考慮跨域問題,有使用過ajax的xmlhttp方法檢測遠程文件不存在返回404的方案,這種方案在測試時由于ajax存在跨域問題,所以就不采用了,也使用過img的onerror與onload事件這種方案來處理,但是這種方案會造成提交表單IE會彈窗,瀏覽器又攔截了彈窗,所以又不采用此方案,哪怎么辦呢?搞得挺久,最終還是利用js操作img來處理完成,下面是具體步驟。

第1步、創(chuàng)建一個test.htm文件

內容如下:

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

第2步:創(chuàng)建getMessage.js文件

內容如下:

 
 
 
  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來處理目標接收數據的服務器頁面
  9. varobjImg=document.createElement("img");
  10. objImg.id="TmpSmsImg";
  11. objImg.src="http://www.xueit.com/images/logo.gif";
  12. //默認服務器A圖片
  13. document.body.appendChild(objImg);
  14. varimgWidth=document.getElementById("TmpSmsImg").width;
  15. document.body.removeChild(objImg);
  16. if(imgWidth=="210")
  17. //如果圖片存在,就可以獲取到寬度等于預定值,
  18. 默認接收數據的服務器A的頁面
  19. {
  20. objfrm.action="http://www.xueit.com/testGet.aspx";
  21. }
  22. else//圖片不存在,另一臺接收數據的服務器B的頁面
  23. {
  24. objfrm.action="http://demo.xueit.com/testGet.aspx";
  25. }

#p# 下面是表單的屬性

 
 
 
  1. objfrm.id="TmpForm";
  2. objfrm.name="TmpForm";
  3. objfrm.target="_blank";
  4. objfrm.method="post";
  5. objfrm.style.display="none";
  6. objsendtype.type="hidden";
  7. objsendtype.name="SendType";
  8. objsendtype.value=Utf2Gb(sendtype);
  9. objtitle.type="hidden";
  10. objtitle.name="title";
  11. objtitle.value=Utf2Gb(title);
  12. //附加
  13. objfrm.appendChild(objsendtype);
  14. objfrm.appendChild(objtitle);
  15. //表單提交
  16. document.body.appendChild(objfrm);
  17. objfrm.submit();
  18. document.body.removeChild(objfrm);
  19. //clearobj
  20. objtitle=null;
  21. objsendtype=null;
  22. objfrm=null;
  23. }
  24. //處理編碼函數
  25. functionUtf2Gb(str)
  26. {
  27. if(str!=null&&str!="")
  28. str=escape(str);
  29. returnstr;
  30. }

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


網頁題目:Javascript巧妙解決img做網站異常提交問題
標題路徑:http://uogjgqi.cn/article/dhepiis.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流