#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();