web相容匯總

來源:互聯網
上載者:User

1,

IE6/7/8表單submit按鈕如果指令碼中對其隱藏再顯示,結果會是第一次單擊提交按鈕,不會有任何提交表單,必須再單擊一次才會提交。原因未知,有人說是渲染,試過手動觸發渲染,沒解決問題。

 <form id="formFace" runat="server" name="formFace" enctype="multipart/form-data"        method="post" target="hidden_frame" action="Default1.aspx?Action=face">      <input type="file" id="fileFace" name="face" title="提交頭像" value="更換頭像" />      <a id="btnFace" href="javascript:uploadFace();" class="btn" title="提交頭像">更換頭像</a>      <input type="submit" name="submit" style="display:none" class="btn" id="btnPost" value="確定上傳" title="提交頭像"/>  </form> <iframe name='hidden_frame' id="hidden_frame" class="hidden"></iframe> 

*這裡希望修改上傳按鈕的樣式,所以隱藏了submit按鈕,用<a id="btnFace">更新頭像替換,uploadFace()中就是手動觸發<input type="file"的單擊事件,彈出檔案選擇對話方塊,使用者選擇完檔案,同時隱藏<a id="btnFace"更新頭像按鈕,顯示submit確定上傳按鈕。這時候使用者ie6/7/8使用者第一次單擊確定上傳按鈕會沒有反應,但是如果確定上傳按鈕有綁定onclick事件,會被相應執行,唯獨<form id="formFace"表單不會被提交,只有單擊第二次submit才會被提交。試過不隱藏submit,將<a
id="btnFace"更新頭像按鈕通過絕對位置到確定上傳按鈕之上,即覆蓋確定上傳按鈕,選中完頭像,再將更換頭像按鈕隱藏,結果還是一樣。

我的方法是,input type='file'外包一層div或其他,然後file為透明,大小為按鈕大小,div的背景圖片為按鈕背景圖片,文字用absolute,定位到中間,使用者單擊div提交按鈕,會觸發input的單擊事件。在代碼中用js觸發file的 click事件會導致這個問題。

                            <div id="btnFace" href="#" class="btn" title="提交頭像">                            更換頭像<input type="file" id="fileFace" name="face" title="提交頭像"/>                            </div>

2,

相容ie6/7/8圖片預覽和其他瀏覽器的區別,ie下的png圖片需要使用濾鏡來顯示,否則在ie6下透明部分會是黑色,用濾鏡可以解決,然後圖片的src='這裡我們指定一個透明的gif',這樣圖片不會出現一個紅叉叉,效果完美了。

  imgFace.setAttribute("src", "../images/opacity.gif");  //圖片源賦一個透明的gif,ie6下可以用gif透明  imgFace.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";    imgFace.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;  //圖片濾鏡源設定為png圖片

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.