Chrome和Firefox不兼容性问题

3

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

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

高亮元素函数(仅为确保):
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: Property 'highlightElement' of object[objectDOMWindow] is not a function”。

如何更改表达式使其能在Chrome中运行?谢谢。


2
你能同时发布函数本身吗? - GolezTrol
你是如何声明该函数的?作为框架的属性(例如 window.highlightElements = function() { ... };)还是仅作为函数(例如 function highlightElements() { ... })? - Karl Nicoll
给GolezTrol:我更新了我的答案。给Karl Nicoll:是的,就像函数一样。 - megas
1个回答

1

确保两个框架在相同的域和协议下。如果域名/协议不匹配,则Chome会阻止从一个框架到另一个框架的JavaScript访问。如果您正在本地工作,并且没有在本地域下(即URL类似于file:///C:/etc/etc.html),那么它也无法工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接