Удалить из dom на ipad

#javascript #html #ipad

#javascript #HTML #iPad

Вопрос:

Я работаю над проектом, в котором страница загружается через объект, который динамически генерируется с помощью jquery. Это проект для iPad.

Когда пользователь заканчивает работу со страницей, появляется вызов для удаления объекта из dom. Используя что-то вроде $(‘#objectName’).remove(); сбой safari на ipad. Этого не происходит в настольных браузерах. Я пытался использовать iframe, но результат тот же.

Как я могу удалить объект без сбоя iPad?

Я попытался обернуть объект в div и удалить или скрыть этот div, но со странными результатами. Он все равно выходит из строя, когда я удаляю div, и скрытие div по-прежнему оставляет объект видимым.

Спасибо за всю помощь!

Комментарии:

1. Вы пробовали использовать jQuery empty() или detatch(), чтобы посмотреть, имеет ли это какое-либо значение?

2. Да, эти методы дают тот же результат. Кажется, что удаление объекта из dom приводит к сбою ipad.

Ответ №1:

Я знаю, что это довольно старая тема, но для людей, которые сталкиваются с этим, у меня есть решение проблемы:

Для меня проблема возникла только тогда, когда я пытался удалить объект из DOM с iframe в нем.

Чтобы исправить это, я сначала попытался установить src iframe на nothing, прежде чем (!) удалять элемент из DOM следующим образом:

 $('div.lightbox iframe').attr('src',''); 
  

Это не устранило проблему полностью, это сработало, но когда было так, что содержимое iframe все еще загружалось, когда я удалял элемент из DOM (я загружал содержимое в элемент лайтбокса и закрывал лайтбокс (таким образом, удаляя элемент из DOM), он все равно приводил к сбою браузера.

Я полностью устранил проблему, установив для HTML элемента, подлежащего удалению, значение nothing, снова перед (!) удалением элемента из DOM следующим образом:

 $('div.lightbox').html(''); 
  

Итак, окончательное решение:

 $("div.lightbox").fadeOut(500, function(){

    $('div.lightbox iframe').attr('src',''); 
    $('div.lightbox').html(''); 

}).remove();