2010-06-22 17 views
0

我正在運行Google網站優化工具,其正在執行的客戶端cookie會檢查以僅顯示一次內容。JavaScript問題是否會破壞瀏覽器?

然而,當他們煮熟時,我得到一個JavaScript錯誤,不SEEM致命,但我已經讀了1 js錯誤足以完全打破Internet Explorer。

有問題的代碼行是 <script>utmx_section("Blah")</script>

這條線是由谷歌直接提供的,但我得到的是沒有定義的錯誤。現在,它運行在頁面的最底部,所以最糟糕的情況是GA不運行。

但是有什麼危害?


編輯:我沒有直接問調試我的JS,因爲這個問題是深奧的,它是可能的由於錯誤或錯誤的假設。問題是忽視問題是否是危險的。

我得到的錯誤是:「utmx_section沒有定義」,即使提供相關函數的JavaScript已被正確包含,並且它確實會拋出錯誤的頁面與它所做的錯誤之間的唯一區別這並不是說一些額外的JQuery在不會拋出錯誤的頁面上運行(由於檢查cookie的條件)。

進一步編輯:有一個PHP條件執行utmx行只有當它需要(即,未煮熟的用戶)周圍的問題。

回答

2

大部分用戶都關閉了JavaScript通知,所以他們看不到錯誤。在你的情況下,錯誤不會「破壞瀏覽器」如果它確實是打破該功能後續調用和腳本塊內的調用之後的任何代碼:

utmx_section("Blah"); 
// later: 
utmx_section("Correct"); <-- will not fire 

和:

utmx_section("Blah"); 
var a = b; <-- will not fire 
doStuff(); <-- will not fire 

在PHP修復這是做硬盤的方式。只需添加一個條件。當您查看全局變量是否存在時,您必須使用「窗口」:

if(window.utmx_section){ 
    utmx_section("Blah"); 
} 
0

我不完全確定你的意思是「當他們煮熟時」
然而,是的,一段JavaScript通常會導致進一步的javascript處理停止。

無論如何,您應該調試問題。谷歌分析代碼適用於大量的網站,所以我猜你實際上在其他地方有問題。無論你是如何複製代碼,依賴關係,還是在某些正在過濾的你的代碼中。

+0

應該更清楚:破損的代碼是Google網站優化工具;在問題發生之後運行的唯一代碼是Google Analytics代碼。 – Yahel 2010-06-22 14:37:25

2

要嚴格回答標題爲「JavaScript問題是否會破壞瀏覽器?」的問題,有些人會這樣做。

考慮以下幾點:

<script type="text/javascript"> 
    function doSomething() { 
    //some stuff here 
    }  
    for (;;) { 
    doSomething(); 
    } 

</script> 

並非所有的瀏覽器有足夠的智慧來檢測這種問題。這將掛起你的瀏覽器,所以你必須殺死它的過程。

較新的瀏覽器檢測到它並顯示一條通知,允許您在瀏覽器中終止腳本,但正如我所說的,並非所有的腳本都足夠智能。

至於你的問題的主體,不知道<script>utmx_section("Blah")</script>是什麼問題。你能提供更多細節嗎?

+0

在我的編輯中提供了一些更多詳細信息。感謝(患者)回答! :) – Yahel 2010-06-22 14:27:00