我在除Safari之外的所有瀏覽器中都可以使用某些功能,但我已將問題簡化爲此。在Safari中執行腳本的問題
在我的網頁我在我的身體元素的末尾下面的腳本聲明:
<script type="text/javascript" src="../../Scripts/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-ui-1.8.11.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.ui.autocomplete.html.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.textchange.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.reveal.js"></script>
<script type="text/javascript" src="../../Scripts/mainScript.js"></script>
然後mainScript.js文件裏面,我已經把下面的代碼:
$(function() {
alert("found");
});
在所有其他瀏覽器中,它顯示一個消息框,但在Safari中它什麼都不做。
Safari的javascript調試器列出腳本,並可以看到內容,但由於某種原因,它不包括在內。
我發現這個問題,因爲我試圖從HTML頁面內的內聯腳本調用mainScript.js中的函數(內聯腳本定義在mainScript.js定義下面),並且Safari調試器抱怨函數是找不到任何地方。
我在這裏做了什麼錯,爲什麼Safari沒有包含這個腳本。所有的jQuery腳本都包含在內並且工作正常。
下跌很愚蠢。在長時間觀察這件事之後,發佈了這個問題,我找到了原因。腳本中還有其他的東西給了一個錯誤,所以整個腳本文件被跳過了。代碼'{class:'Test'}'適用於所有瀏覽器,Safari除外。它失敗了,因爲class是一個保留字。所以我想Safari在這裏調用錯誤是正確的,其他瀏覽器只是試圖變得更好:) –