Что может быть причиной того, что firefox не загружает JavaScript в iframe

0

У меня есть проблема, которую я нахожу очень сложной для отладки, кажется, что это происходит только в firefox, когда firefox загружает мой код из iframe. Я не очень разбираюсь в различиях браузеров, и для этой работы проблема прерывистая. Я отследил его до этой ошибки в javascript, который я не получаю на хроме.

TypeError: $ (...). Autocomplete (...). Data (...) null

Теперь соответствующий код, который, как мне кажется, вызывается, является функцией автозаполнения javascript, подобной этой.

$("#field").data( "ui-autocomplete" )._renderItem = function( ul, item ) { ... }

Вещь, которая меня сбивает с толку, кажется, это прерывистая ошибка firefox, я не смог воспроизвести ее на хроме. Кто-нибудь знает, что здесь происходит?

NB Я прочитал это, это и несколько подобных, но моя проблема в том, что.data возвращает null, а не что .data("autocomplete") не undefined...

Заранее спасибо.

  • 0
    о, и, конечно, просто дайте мне знать, если я могу добавить больше деталей, я был бы рад.
  • 0
    отправьте ссылку, чтобы проверить проблему, если это возможно.
Показать ещё 2 комментария
Теги:
iframe
firefox
autocomplete

2 ответа

1
Лучший ответ

можете ли вы предоставить jsFiddle или конкретный пример для работы? Трудно сказать, в чем проблема.

В любом случае, возможно, вы сможете решить проблему:

if( $("#field").data() ){
    var fieldAuto = $("#field").data( "ui-autocomplete" );
    if( fieldAuto ){
        fieldAuto._renderItem = function( ul, item ) { ... };
    }
}

ui-autocomplete зависит от версии jQuery, поэтому возможно, что вы должны ее изменить

  • 0
    Спасибо, это хороший момент, я попробую ваше предложение и попытаюсь настроить jsfiddle и запустить его с SSCE, если это не сработает (к сожалению, это тесно связанная система, которую я унаследовал, поэтому это может занять некоторое время.)
  • 0
    Если кому-то интересно, мне удалось выяснить причину проблемы. Javascript запускался на каждой странице и приводил к сбою на страницах, в которых не было необходимых элементов (вызывая ошибку). Это было одно решение, другое решение просто меняло функцию, чтобы она работала только на нужной странице.
1

В зависимости от версии jquery ui, которую вы используете, она будет либо "автозаполненной", либо "ui-autocomplete".

var autoComplete = input.data("ui-autocomplete");
if(typeof(autoComplete) == "undefined")
    autoComplete = input.data("autocomplete");
 autoComplete._renderItem = function(ul, item) {....}

Пожалуйста, проверьте и сообщите мне, в случае дальнейших вопросов.

Приветствия.. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню