Javascript - 事件处理程序中的错误

时间:2013-10-03 11:26:12

标签: javascript jquery coffeescript

以下代码继续喷出此错误。我无法理解为什么。

事件处理程序出错:TypeError:无法读取null的属性'state'

// 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 个答案:

答案 0 :(得分:1)

您的代码没问题,但似乎错误来自外部... 检查您的脚本

答案 1 :(得分:0)

您的代码中会跳过“onmessage”和“message”。我在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);