2013-10-03 31 views
0

下面的代碼一直在噴出這個錯誤。我無法弄清楚爲什麼。Javascript - 事件處理程序中的錯誤

錯誤事件處理程序:類型錯誤:無法讀取空

// Generated by CoffeeScript 1.6.3 
(function() { 
jQuery(function($) { 
var eventMethod, eventer, frame, messageEvent; 
frame = $("#cf-iframe"); 
alert(frame.length); 
if (frame.length > 0) { 
    console.log("somehow"); 
    eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 
    eventer = window[eventMethod]; 
    messageEvent = eventMethod === "attachEvent" ? "onmessage" : "message"; 
    return eventer(messageEvent, function(e) { 
    var newHeight; 
    newHeight = e.data; 
    if (!isNaN(newHeight && frame === true)) { 
     return frame.css("height", newHeight + "px"); 
    } 
    }, false); 
} 
}); 

}).call(this); 
+2

不能在代碼中看到任何「狀態」,我認爲它的一半代碼! – Neel

+0

我認爲它來自其他地方。這是有道理的。這段代碼對我來說很好。 – David

+0

@NeelBhatt我同意你的觀點,在這裏粘貼的代碼中沒有提到狀態變量 – nax83

回答

1

你的代碼是好的,但似乎的錯誤是從otside ...

的特性「狀態」檢查你的腳本

0

它看起來像你的代碼中跳過了「onmessage」和「消息」。我在Chrome上試了這個。並沒有錯誤。您也不需要jQuery(function($))中的'$'。

(function() { 
    jQuery(function() { 
    var eventMethod, eventer, frame, messageEvent; 
    frame = $("#cf-iframe"); 

    if (frame.length > 0) { 

     eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 

     eventer = window[eventMethod]; 

     messageEvent = eventMethod === "attachEvent" ? "message" : "onmessage"; 

     return eventer(messageEvent, function(e) { 
     var newHeight; 
     newHeight = e.data; 
     if (!isNaN(newHeight && frame === true)) { 
      return frame.css("height", newHeight + "px"); 
     } 
     }, false); 
    } 
    }); 

}).call(this);