Несовместимость Chrome и Firefox - PullRequest
3 голосов
/ 29 мая 2011

У меня есть два кадра, выражение выполняется в первом кадре и вызывает функцию 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: Свойство« highlightElement »изobject [objectDOMWindow] не является функцией ".

Как изменить выражение, чтобы оно работало в Chrome?Спасибо

1 Ответ

1 голос
/ 29 мая 2011

Убедитесь, что оба фрейма находятся в одном домене и протоколе.Chome блокирует доступ к JavaScript из фреймов в другой, если домены / протоколы не совпадают.Если вы работаете локально, а не в локальном домене (т. Е. URL-адрес похож на file: /// C: /etc/etc.html), он также не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...