IE7中的幾個問題

來源:互聯網
上載者:User
文章目錄
  • 解決IE7下window.status不顯示的問題 上傳圖片時無法預覽 js關閉視窗時老提示
解決IE7下window.status不顯示的問題 上傳圖片時無法預覽 js關閉視窗時老提示

遇到了幾個在IE7有問題,但在IE6中使用正常的問題,共三個:
1、js關閉視窗時老提示的問題。
2、上傳圖片時無法預覽的問題。
3、window.status 無效的問題。

關於第一個,以前在IE6下關閉視窗是這樣的,window.opener = null;window.close();在IE7中,這樣是不行的,仍然會彈出提示,必須在中間加一句,window.open("","_self");  像下面的形式就行了。
window.opener = null;
window.open("","_self");    //這是IE7中必需的
window.close();

二、上傳圖片時的預覽

在IE6中可以這樣,非常方便。
<input type="file" /> <img id="imgPreview" />
<script type="text/javascript">
function Preview(file){
  document.getElementById("imgPreview").src = this.value;
}
</script>

但是在IE7中,這樣無效,那天我這樣測試的時候我用的是 GreenBrowser(綠色瀏覽器),發現競然也能預覽,但在 MS IE7中就不行,我就納悶了,我去看了百度相簿,他的上傳相片預覽也是使用這種方式,我是用綠色瀏覽器看百度相簿,用MSIE看我的程式,百度相簿上傳時能預覽,我的程式就是不行.結果我一直在懷疑是不是程式哪裡搞錯了,上網查了好多資料.硬是沒搞定,後來我用MS IE 進百度相簿,才發現,原來百度相簿也不能預覽了.原來是綠色瀏覽器惹的禍,怪吧,這可是個IE核心的瀏覽器哦,以後大家記住,測試程式時一定要用微軟的IE7,用其它IE核心的瀏覽器可能會有意想來到的問題.
那在IE7下怎麼實現預覽呢?答案是:用濾鏡,請看下面:

請選擇要上傳的相片:<input type="file"  /><br />
<div id="imgPreview" style="filter:progidXImageTransform.Microsoft.
AlphaImageLoader(sizingMethod=scale);width:400px;height:200px;"></div>
function Preview(imgFile)
{
document.getElementById("imgPreview").filters.
item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
}

關於AlphaImageLoader濾鏡,我順便也轉過來。

文法:
filter: progid: DXImageTransform.Microsoft.AlphaImageLoader( enabled=bEnabled, sizingMethod=sSize, src=sURL)
屬性:
enabled : 可選項。布爾值(Boolean)。設定或檢索濾鏡是否啟用。true | false
  true : 預設值。濾鏡啟用。
  false : 濾鏡被禁止。
sizingMethod : 可選項。字串(String)。設定或檢索濾鏡作用的對象的圖片在對象容器邊界內的顯示方式。 crop : 剪下圖片以適應對象尺寸。
  image : 預設值。增大或減小對象的尺寸邊界以適應圖片的尺寸。
  scale : 縮放圖片以適應對象的尺寸邊界。PS:自己的體會是,如果padding 和margin的大小不適中的的話,那麼背景圖片會被撐大。這個縮放還是挺好用的,就相當於那個background-repeat。       
src : 必選項。字串(String)。使用絕對或相對 url 地址指定背景映像。假如忽略此參數,濾鏡將不會作用。
說明:
在對象容器邊界內,在對象的背景和內容之間顯示一張圖片,並提供對此圖片的剪下和改變尺寸的操作。如果載入的是PNG(Portable Network Graphics)格式,則0%-100%的透明度也被提供。
PNG(Portable Network Graphics)格式的圖片的透明度不妨礙你選擇文本。也就是說,你可以選擇顯示在PNG(Portable Network Graphics)格式的圖片完全透明地區後面的內容。

三、window.status 不顯示的問題

在ie6中,使用window.status =" 歡迎光臨我的部落格!!!",就能在狀態列顯示這麼一行字,但在IE7中,
本機測試的時候很正常,能顯示,但傳的伺服器上去以後就是不顯示,程式運行也沒有錯誤,開始我懷疑是伺服器的安全設定問題,後來才發現,又是IE7的問題,IE7的安全性設定中,預設是不能許指令碼更新狀態列的。真是可惜了,又少了一塊可利用的地區。
如果是自己的電腦的話,可以自己更改設定,使IE7也能顯示。
方法是:工具--》Internet 選項--》安全 -- 選中Internet後 點 自訂層級 --》找到“允許狀態列通過指令碼更新”,將預設的禁用改為啟用就行了。
我特地截了張圖。

 附件: 您所在的使用者組無法下載或查看附件

以上三個雖然是小問題,但如果不明白是瀏覽器引起的話,很多朋友估計會花很多時間偵錯工具,但程式是沒有問題的。
所以我把它們寫在這,希望對大家有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.