文章目錄
- 解決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後 點 自訂層級 --》找到“允許狀態列通過指令碼更新”,將預設的禁用改為啟用就行了。
我特地截了張圖。
附件: 您所在的使用者組無法下載或查看附件
以上三個雖然是小問題,但如果不明白是瀏覽器引起的話,很多朋友估計會花很多時間偵錯工具,但程式是沒有問題的。
所以我把它們寫在這,希望對大家有所協助。