2016-04-28 5 views
0

Im using Liferay.Utils.Window, чтобы открыть окно (A), внутри этого окна я открываю другое окно (B), когда я закрываю окно (B), я хочу перезагрузить родительский окно (А). Я не могу использовать Liferay.Portlet.refresh («p_p_id_IdPortlet»), поскольку он не работает ... нормально, нет проблем, я перезагрузил iframe следующим образом:Получить элемент с jquery с помощью окна iframe

$ ('#' + windowId) .find (' iframe '). attr (' src ', function (i, val) {return val;});

Вот где появляется моя проблема, когда я пытаюсь запустить этот код на консоли Chrome я получаю «VM10008: 1 Uncaught TypeError: Не удается прочитать свойство„найти“в нуль (...)»

И странная вещь (действительно странно) заключается в том, что если я проверю элементы html, изменив вкладку внутри элементов chrome, я вернусь к консоли, и я снова запустил тот же код, и он работает ... странно. Я думаю, что когда я проверяю какой-то элемент dom, что-то загружается, что-то, что позволяет мне найти элемент im, ищущий. Любая помощь приветствуется.

С уважением,

EDIT: Я оставляю пример, чтобы понять: На консоли Chrome я пишу

$('.dialog-iframe-node') 
<iframe class=​"dialog-iframe-node " frameborder=​"0" id=​"newAssignmentRoleDialogId_iframe_" name=​"newAssignmentRoleDialogId_iframe_" src=​"http:​/​/​localhost:​8080/​group/​catalogo-de-datos/​manage-people?p_p_auth…e&_assignmentroletoperson_WAR_abecebcatalogportlet_personFirstName=Eduardo" style=​"height:​ 485px;​ width:​ 1218px;​">​#document</iframe>​ 
$('#newAssignmentRoleDialogId_iframe') 
null 

Как видно я искать элемент по классам и основывает его, но он не найдет его id после того, как он сказал мне, что существует элемент

+0

Ваш JS-код может работать по внутреннему документу, чтобы он не отражался. Можете ли вы попробовать использовать родительский документ? что-то вроде window.parent. –

+0

Я пробовал, что он тоже не будет работать, он будет обращаться к window.parent.but, а там он не может найти мои модалы id – Elver

+0

Селектор ошибочен в '$ ('# newAssignmentRoleDialogId_iframe')', поскольку атрибут id iframe является ' newAssignmentRoleDialogId_iframe_'. Последний '_' отсутствует в селекторе jQuery. –

ответ

0

Ваше решение не работает для меня, наконец, я нашел способ. Я использовал: document.location.href=parentURL; где parentURL был передан параметром, чтобы перезагрузить iframe. Спасибо за ваше время

Смежные вопросы