簡體   English   中英

IE 拋出 JavaScript 錯誤:屬性 'googleMapsQuery' 的值為 null 或未定義,不是函數對象(適用於其他瀏覽器)

[英]IE throws JavaScript Error: The value of the property 'googleMapsQuery' is null or undefined, not a Function object (works in other browsers)

我在 IE 9 中遇到了 JavaScript 范圍的真正問題。

這是在我的文檔正文中(是的,我意識到腳本應該放在正確的 HTML 中,但我以前從未讓它破壞過腳本)。 該腳本在正文中,因為我不想弄亂一個僅與此頁面相關的腳本的共享標題頁面:

<script type="text/javascript">
function googleMapsQuery(accountNum) {
    // function code is here (omitted for brevity)
}
</script>

這是在td塊內的tr塊內的tbody塊內的table塊內的form塊內的body

<button id="google-422111" onclick="googleMapsQuery(422111)" type="button">Google This!</button>

我什至將腳本塊移到表單上方,以防腳本函數聲明的順序相關(不是)。

該腳本在 FireFox 和 Chrome 中完美運行,但在 IE 9(打開或不打開兼容性視圖)中,我收到此錯誤:

SCRIPT5007:屬性“googleMapsQuery”的值為 null 或未定義,不是 Function 對象

我研究了 JavaScript 范圍,但我無法弄清楚為什么 IE 認為 'googleMapsQuery' 是一個屬性,以及為什么它是未定義的。 這是一個函數,我定義了它!

我遇到了類似的問題,屬性為空或未定義。

這最終導致 IE 的文檔模式被默認為 IE7 標准。 這是因為兼容模式被自動設置為用於所有 Intranet 站點(工具>兼容性視圖設置>在兼容性視圖中顯示 Intranet 站點)。

我找到了答案,盡管我報告了什么,但它不是特定於瀏覽器的。 該錯誤在我的函數代碼中,並且會在任何瀏覽器中發生。 歸結為這一點。 我的代碼中有兩行是特定於 FireFox/FireBug 的。 他們使用了console.log。 在 IE 中,他們拋出了一個錯誤,所以我將它們注釋掉了(或者我是這么認為的)。 我做了一個糟糕的工作來評論它們,並打破了我函數中的括號。

原始代碼(包含 console.log):

if (sxti.length <= 50) console.log('sxti=' + sxti);
if (sxph.length <= 50) console.log('sxph=' + sxph);

損壞的代碼(注釋中括號錯位):

if (sxti.length <= 50) { //console.log('sxti=' + sxti); }
if (sxph.length <= 50) { //console.log('sxph=' + sxph); }

固定代碼(注釋外的固定括號):

if (sxti.length <= 50) { }//console.log('sxti=' + sxti);
if (sxph.length <= 50) { }//console.log('sxph=' + sxph);

所以,這是我自己草率的編碼。 該函數確實沒有定義,因為語法錯誤使其無法關閉。

哦,生活和學習。 ;)

您是否嘗試將分號添加到onclick="googleMapsQuery(422111);" . 我沒有足夠的代碼來測試缺少的分號是否會導致錯誤,但是 ie 對語法更加挑剔。

在我的特殊情況下,我在我的組織中使用的舊網站上遇到了類似的錯誤。 為了解決這個問題,我不得不將網站列為“受信任的站點”。

這樣做:

  • 單擊工具按鈕,然后單擊 Internet 選項。
  • 轉到“安全”選項卡。
  • 單擊受信任的站點,然后單擊站點按鈕。
  • 輸入網站的 url,然后單擊Add

我把這個放在遠程案例中,它會幫助某人。

所以我遇到了類似的情況,也有同樣的錯誤。 我忘了我在我的開發機器上更改了兼容模式,我的 javascript 中也有一個 console.log 命令。 我在 IE 中更改了兼容模式,並刪除了 console.log 命令。 沒有更多的問題。

就在幾分鍾前,我面臨着同樣的問題。 我遇到的問題是在放置 jQuery 后啟動其他 jQuery 腳本。 畢竟它會正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM