2012-10-30 43 views
0

我一直在使用KineticJS項目工作數週,沒有問題。就在幾分鐘前,當我構建和調試我的頁面時,它開始拋出錯誤。KineticJS和VS2012

這是錯誤:在行2258 未處理的異常,列13 /scripts/kinetic-v4.0.3.js

0x800a01b6 - 微軟JScript運行時錯誤:對象不支持屬性或方法「的indexOf 「

我不知道發生了什麼事情,它發生在任何項目KineticJS任何頁面上...

我可以在Firefox中打開網頁了staright出來的文件夾,並evrything工作正常。

任何想法?

回答

3

您使用的是舊版IE瀏覽器嗎? indexOf方法在IE6或IE7中不受支持(兩者均不是畫布)

+0

不,所有最新版本的...我不知道發生了什麼事情,我可能無意中更改了VS 2012中的設置或其他...請注意,這是一個JScript錯誤,而不是Javascript ... – robtown

+0

聽起來像是VS的問題,因爲indexOf方法在現代瀏覽器(支持所有瀏覽器帆布至少) –

+0

我注意到我在IE9中也失去了我的CSS3樣式。我昨天下午試圖追查發生了什麼,但什麼都沒發現。系統還原修復了它。但這是最後的措施。這是我第二次遇到與VS2012和IE9有關的問題。如果我不使用跨域JSON調用,我可能會繼續使用chrome或firefox進行調試,但情況並非如此,因此我必須找到修復程序。 – robtown

2

微軟最大的Internet Explorer客戶羣是企業。企業已經投入了無數個美元和數小時的時間,爲較舊版本的IE創建內聯網應用程序,這些應用程序將在更新/更符合標準的版本下打破。因此,對於在本地Intranet區域中檢測到的網站,IE將默認爲兼容模式,以使IE9的行爲與IE7類似。

默認情況下,Localhost恰好是本地Intranet。這很可能是爲什麼當使用Visual Studio進行F5調試時,儘管使用IE9,但新的JavaScript對象和方法都不可用。

幸運的是,您可以做一些事情。最簡單的應用開發是剛剛在頁面中包含標題,告訴IE忽略兼容模式渲染頁面時,meta標籤:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 

首選的方法很可能是在Web服務器包含這個頭在該Web應用程序的每個HTTP響應中。無論是配置IIS做,或包含在web.config以下(IIS7爲+,我相信):

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <remove name="X-UA-Compatible"/> 
     <add name="X-UA-Compatible" value="IE=Edge" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 
+0

+1傑森!非常深入。非常高興有MS老師幫助我們:) –