2010-02-22 3 views
0

У меня возникли проблемы с jQuery после загрузки страницы через iframe.jQuery iframe issue

Вот как это работает. Mainpage.php имеет iframe внутри него, который я использую для загрузки фотографий/файлов. На Mainpage.php есть div, который я использую для отображения фотографий/файлов. Div заполняется вызовом ajax, который извлекает HTML и помещает его в div. Все работает нормально, когда я прихожу на Mainpage.php и нажимаю ссылку на фотографии, которая запускает Ajax и загружает фотографии/файлы.

Проблема: у меня есть «новая» кнопка, отображающая iframe. Внутри страницы iframe я использую загрузку формы для загрузки фотографий на сервер, а затем в случае успеха я повторяю строку javascript, которая запускает один и тот же код Ajax для отображения фотографии в соответствующем div. Все работает, и он обновляет div на Mainpage.php. Однако фотографии отображаются, но функциональность jQuery больше не работает, поэтому моя функция tablesorter перестает работать (ошибка: document is null), а фотографии не отображаются с их границей (я использую css, привязанный к классу, который jQuery применяется к элементам для отображения границы). Я использую visuallightbox для своей фотогалереи, а JavaScript jQuery, используемый для показа изображений, больше не работает. Ошибка, которую я получаю при загрузке фотографий: "uncaught exception.....NS_ERROR_INVALID_POINTER".

Любые идеи, как исправить/обойти это, будут оценены. Благодарю.

ответ

0

Трудно сказать, что именно вы говорите, но я подозреваю, что проблема может быть связана с тем, что код работает в вашем iframe (код, который работает в ответе от POST) находится на другой странице с другим основным объектом jQuery, чем код на родительской странице.

Попробуйте настроить параметры так, чтобы код iframe вызывал родителя, чтобы передать ему информацию. Имейте в виду, что (особенно в IE) вы действительно не хотите создавать объекты в своем iframe, а затем передавать их в родительское окно. Как только iframe будет собрано мусором, IE начнет волноваться, когда вы ссылаетесь на эти объекты из родительского окна.

Помните, что вы можете перейти к объекту jQuery родительского окна из iframe как window.parent.$.

+0

Thanks Pointy. Я понял, что проблема связана с файлом .js, который был написан третьей стороной, которая использует jquery. Я добрался до родительского div как и предложил, а затем нашел, что единственный способ, которым я мог бы показать, что нужно показывать, - это разместить гиперссылку и перезагрузить html. – Ronedog