被jQuery折騰得半死,揭秘為何jQuery為何在IE/Firefox下均無法使用
更新時間:2010年01月22日 16:38:50 作者:
某學(xué)員前日實施一個Web項目實施發(fā)生了悲劇,找到我求解決,把我也折騰個半死。
其所用項目由Asp.Net技術(shù)開發(fā),仍然使用的Webform作為前端處理,但某些功能包含了jQuery的功能,他遇到的問題就是無論用IE還是Firefox,包含jQuery的那部分頁面功能都無法正常使用。
搜索Google后,結(jié)果可以歸納為3種:
沒有啟用FSO功能
IE安全設(shè)置級別過高
沒有安裝MSXML
但針對現(xiàn)在項目檢查后,以上均不是問題所在,在項目中帶有個測試頁面,可以檢查服務(wù)器端是否能正常運行jQuery,內(nèi)容和jQuery官方網(wǎng)站的內(nèi)容一樣:
代碼
<html>
<head>
<script type="text/javascript" src="js/jquery.js" />
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
</script>
</head>
<body>
<a href="#">Link</a>
</body>
</html>
可無論如何就是不能在IE或火狐中看到j(luò)Query彈出的"OK"提示,我就囧了……于是我執(zhí)行以下步驟:
下載最新的jQuery腳本替換掉項目中帶有的版本
檢查每行javascript代碼
檢查 IE安全設(shè)置,設(shè)置為最低
…………
均沒有見到效果,直到今天突然才發(fā)現(xiàn),該頁面調(diào)用jQuery 的引用行是這樣書寫的
<script type="text/javascript" src="js/jquery.js" />
我改成
<script type="text/javascript" src="js/jquery.js" ></script>
“OK”終于彈出來了……
但問題還沒有結(jié)束,項目開發(fā)者是在母版頁中包含了jQuery, 源碼如下
代碼
<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Scripts>
<asp:ScriptReference Path="~/js/jquery.js" />
</Scripts>
</asp:ScriptManager>
查閱ASP.NET官方論壇可以看到答案http://forums.asp.net/t/1377657.aspx,我將Script控件屬性添加EnablePartialRendering="true" 和 EnableScriptGlobalization="false" 后,一切正常,至此問題全部解決,項目成功部署。
總結(jié):感謝樓下花時間看完我這篇文章,但我查閱了W3C關(guān)于html中引用<script>腳本的規(guī)范http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2.3,也未找到<script />這樣寫法是不符合規(guī)范的定義,只看到了提倡盡可能不用閉合標(biāo)記">"而是用"<"比較好(如“ y < x”比"x > y"好)。
又見留言,再度感謝。但我想表達的意思是,這種寫法僅在asp.net環(huán)境下會出現(xiàn)問題,如果在php中這樣書寫<script src='.....' type='text/javascript' />,在apache環(huán)境下可以正常運行并得到結(jié)果。
搜索Google后,結(jié)果可以歸納為3種:
沒有啟用FSO功能
IE安全設(shè)置級別過高
沒有安裝MSXML
但針對現(xiàn)在項目檢查后,以上均不是問題所在,在項目中帶有個測試頁面,可以檢查服務(wù)器端是否能正常運行jQuery,內(nèi)容和jQuery官方網(wǎng)站的內(nèi)容一樣:
代碼
復(fù)制代碼 代碼如下:
<html>
<head>
<script type="text/javascript" src="js/jquery.js" />
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
</script>
</head>
<body>
<a href="#">Link</a>
</body>
</html>
可無論如何就是不能在IE或火狐中看到j(luò)Query彈出的"OK"提示,我就囧了……于是我執(zhí)行以下步驟:
下載最新的jQuery腳本替換掉項目中帶有的版本
檢查每行javascript代碼
檢查 IE安全設(shè)置,設(shè)置為最低
…………
均沒有見到效果,直到今天突然才發(fā)現(xiàn),該頁面調(diào)用jQuery 的引用行是這樣書寫的
<script type="text/javascript" src="js/jquery.js" />
我改成
<script type="text/javascript" src="js/jquery.js" ></script>
“OK”終于彈出來了……
但問題還沒有結(jié)束,項目開發(fā)者是在母版頁中包含了jQuery, 源碼如下
代碼
復(fù)制代碼 代碼如下:
<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Scripts>
<asp:ScriptReference Path="~/js/jquery.js" />
</Scripts>
</asp:ScriptManager>
查閱ASP.NET官方論壇可以看到答案http://forums.asp.net/t/1377657.aspx,我將Script控件屬性添加EnablePartialRendering="true" 和 EnableScriptGlobalization="false" 后,一切正常,至此問題全部解決,項目成功部署。
總結(jié):感謝樓下花時間看完我這篇文章,但我查閱了W3C關(guān)于html中引用<script>腳本的規(guī)范http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2.3,也未找到<script />這樣寫法是不符合規(guī)范的定義,只看到了提倡盡可能不用閉合標(biāo)記">"而是用"<"比較好(如“ y < x”比"x > y"好)。
又見留言,再度感謝。但我想表達的意思是,這種寫法僅在asp.net環(huán)境下會出現(xiàn)問題,如果在php中這樣書寫<script src='.....' type='text/javascript' />,在apache環(huán)境下可以正常運行并得到結(jié)果。
相關(guān)文章
JS新標(biāo)簽頁打開的方法大全(讓你的網(wǎng)站訪問更加便捷)
在開發(fā)Web應(yīng)用中我們常常需要在當(dāng)前頁面打開一個鏈接,但又不希望離開當(dāng)前頁面,這篇文章主要給大家介紹了關(guān)于JS新標(biāo)簽頁打開的方法大全,通過這些方法可以讓你的網(wǎng)站訪問更加便捷,需要的朋友可以參考下2023-10-10