在制作網頁的時候,大家不免要用到script,也即是腳本,主要是VBScript以及JavaScript。那么時常遇到這樣的情況:
在本地雙擊打開html文件時,如果是IE的話,會出現提示框(如下圖):
造成這種困擾的原因:IE保護機制,默認安全級別較高,當然可以修改自己的IE瀏覽器來解決。
方法:打開IE——工具——Internet選項——高級標簽——安全——勾選“允許活動內容在我的計算機上的文件中運行”
以下情況不會發生這種現象:
1,使用360瀏覽器、遨游瀏覽器、搜狗瀏覽器等瀏覽器瀏覽。
2,使用服務器瀏覽網頁。使用Apache或IIS搭建個人web服務器,將網頁文件放在對應目錄里面,使用http://localhost/……地址訪問。
也就是說造成這種現象的原因有二,一是並未通過服務器解析進行瀏覽,而是使用我們常用的雙擊打開在瀏覽器里瀏覽,而是使用的是IE瀏覽器瀏覽,如果換用360或者搜狗瀏覽器的話就不會出現這種情況。
如果我們考慮到網頁兼容性測試有必要使用多個IE版版本進行測試,而且覺得是用地址瀏覽不如雙擊瀏覽方便,那么就需要尋找解決方法解決這個讓人不舒服的tips。
因為這種現象很常見,於是有很多人在知道或者問問上發帖求助,於是在CSDN上一位博主發表一篇原創文章,專門為解決這個問題。由於原文已被刪除,但由於大家覺得他的解答很受用,紛紛轉載、抄襲。
詳細瀏覽后發現隨讓題目不一,但方法如出一轍。例如,這篇http://blog.dormforce.net/est/archives/109
流傳中的方法:
在 html 文件 !DOCTYPE 下面那行加上
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
就行了
我一向反對抄襲,所以對評價是否抄襲很謹慎,說是抄襲的很簡單,在這個方法中有一個地址http://blog.csdn.net/electroniXtar/,顯然這個地址是原創者留下防“借鑒不留出處”的人。而如果你百度搜索這個地址,會發現大量結果與“IE已限制此網頁運行可以訪問計算機的腳本或 ActiveX 控件”這十幾個關鍵字掛鈎。顯然抄襲這個成果的人絕不在少數,甚至百度知道上很多人也用這個回答,而且答案被采納。
其實我在上面也說了,這個問題很小,因為在實際開發中,網站必須借助服務器,因為在運營的網站上,不會出現這個提示,即使是IE也不會,出現這種問題的朋友們根本不用太擔心,這只是一個很小的問題。
我要說的是原創者的想法和轉載者的盲目,以致部分人受到錯誤引導。
首先,原創者也許知道這個問題在服務器上不會發生,但是他卻並未告訴我們這一點,因為如果大家知道這一點的話,她的文件價值就無法體現了,這似乎有私心。
其次,原創者使用自己blog地址目的無可厚非,但做一個網站,里面放着別人的鏈接,而且還是在使用者看起來很重要的屏蔽錯誤的鏈接。在脫機瀏覽的時候,不能鏈接到這個博客,豈不還會出現提示?當然也許這個地址只是個幌子,根本不會連接上去,有待詳細驗證。不過個人測試對於某些地址可以使用,某些不行,那么這個方法就體現出了它的局限性。
最后,也是最重要的一點,按照
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
<html xmlns="http://www.w3.org/1999/xhtml">
寫出來的代碼,產生的效果是:的確不顯示tips了,但很少人發現這個網頁不是腳本提示被屏蔽了,而是網頁中的腳本不執行了。我並不十分清楚其中緣由,前幾個月測試發現原來腳本不能執行了,今天發現這種方法不能用了,提示依舊。如果說造成腳本不執行了,那么這就是一個嚴重的問題,這樣的方法用了反而起反作用,如果不加這個代碼,在服務器上一放,就沒什么問題,這樣一加導致腳本失效,對於大一點的網站,絕對是災難性的錯誤。當然具體情況在服務器上是否會阻止腳本執行,並未測試。但這種只是去掉提示而並未解決根本的腳本被IE阻止的問題,無異於飲鴆止渴,隱藏錯誤,失去了發現錯誤的機會。
另外是轉載抄襲者的盲目,由於很多人並未意識到腳本被阻止了,並未有提示,所以因此盲目轉載吹噓的人太多,以至於這種錯誤方法泛濫。
那么在這里,本來這個問題不大,為了一些人的需要,提供以下方法
即在<html>和<head>標簽中間加上<!-- saved from url=(0014)about:internet -->代碼,或許我也可以在這行代碼中加點什么,或者我的博客地址的什么,但是我覺得對於網站代碼,是給大家用的,不是給自己做廣告的。html代碼有些太過的修改會影響到使用者,相信如果一個站長網里面js代碼都有些替換不掉的原網網址的話,也不會有人用的。
為接受大家測試。寫出這個方法的測試代碼,建議每次測試前清除掉IE緩存。可使用IE9以下任何版本
代碼(1)
<HTML>
<HEAD>
<TITLE>測試</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>
按照流傳的方法
代碼(2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!– saved From url=(0022)http://blog.csdn.net/electroniXtar/ –>
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>測試</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>
加<!-- saved from url=(0014)about:internet -->后的代碼
代碼(3)
<HTML>
<!-- saved from url=(0014)about:internet -->
<HEAD>
<TITLE>測試</TITLE>
</HEAD>
<BODY>
<script language="javaScript">
<!--
now = new Date(),hour = now.getHours()
if(hour < 6){document.write("凌晨好!")}
else if (hour < 9){document.write("早上好!")}
else if (hour < 12){document.write("上午好!")}
else if (hour < 14){document.write("中午好!")}
else if (hour < 17){document.write("下午好!")}
else if (hour < 19){document.write("傍晚好!")}
else if (hour < 22){document.write("晚上好!")}
else {document.write("夜里好!")}
// -->
</script>
</BODY>
</HTML>
測試結果:在IE8.0中,分別雙擊打開三個代碼。代碼(1)和代碼(2)都提示tips,代碼(3)正常執行腳本命令,有顯示結果。
代碼(3)即是本文所提供的這種方法,文章有不當之處,萬望大家指正。