Chrome和Firefox不兼容

时间:2011-05-28 21:10:06

标签: javascript firefox google-chrome

我有两个框架,表达式在第一帧中运行,并在另一个框架中调用highlightElements函数。这个表达式在Firefox中运行良好:

parent.frames[0].highlightElements(lineNumbers, stringObj);

highlightElements功能(只是肯定):

function highlightElements(lineNumbers, stringObj) {
  // run through the cycle and highlight them
  //for (var ln in lineNumbers) {
  var length = lineNumbers.length;
  for (var ln=0; ln<length; ln++) {
    var elements = $('.no');
    //for (var i in elements) {
    var el_length = elements.length;
    for (var i=0; i<el_length; i++) {
      if (parseInt(elements[i].innerHTML) == lineNumbers[ln]) {
        var badThing = "yes";
        for (var nextElement = elements[i].next();
             nextElement.className != '.no'; nextElement = elements[i].next()) {
          if (nextElement.innerHTML == stringObj) {
            badThing = "no";
            nextElement.effect('highlight', {}, 'slow');
            scrollIntoView(nextElement);
          }
        }
        if (badThing == "yes") alert("Didn't find the object");
      }
    }
  }
}

但是在Chrome中它会产生错误“Uncaught TypeError:对象[objectDOMWindow]的属性'highlightElement'不是函数”。

如何更改表达式以使其在Chrome中可运行?感谢

1 个答案:

答案 0 :(得分:1)

确保两个帧都在相同的域和协议下。如果域/协议不匹配,Chome会阻止从帧到另一个的javascript访问。如果您在本地工作,而不是在本地域(即url类似于file:/// C:/etc/etc.html),那么它也无法工作。