2010-09-29 5 views
3

Я могу успешно запустить событие click в кнопке в родительском окне из всплывающего окна в FF и Chrome ... однако ничего не происходит в IE. Есть идеи?Пожарить событие click в родительском окне из всплывающего окна

window.opener.document.getElementById(Client ID Of Button).click(); 
+0

вы можете показать нам код, который открыл всплывающее окно? window.open ... –

+0

Это обычно работает во всех браузерах для меня, можете ли вы разместить код? Предпочтительно только код, о котором идет речь, как от открывателя, так и от всплывающего окна. –

ответ

1

Я думаю, что в IE, вы должны написать: « self.opener»

Я предполагаю, что проблема заключается в функции window.open, который открыл это всплывающее окно, чтобы убедиться, что нет места в странице имя и имя окна.

+0

Хммм ... Я дал это, но, к сожалению, это не сработало. – Paul

0

Я думаю, что будет работать, но обратите внимание: elementID должно быть в кавычках, а дом указывает, что событие живет в OnClick()

window.opener.document.getElementById («Client ID Баттона») .по щелчку();

Вы можете также использовать self.opener

или window.parent или self.parent

Надеемся, что эти идеи помогут

+0

Спасибо за совет, но, к сожалению, ни один из этих параметров не работал в IE, и многие перестали работать в FF и Chrome. – Paul

+0

возможно, мы могли бы увидеть больше источника? –

1

это работает в FF $(parent.document.getElementById('clientId')).trigger('click');

+0

Действительно, но это необходимо для работы в Internet Explorer :) – Paul

+0

ok Я никогда не тестировал его в IE, но вам понадобятся две версии, но все, что вам нужно сделать, это: .trigger ('click'), который должен быть скорректированным в вашем коде –

1

Стандартный ответ здесь в нормальном GUI-код должен сказать, что если у вас есть .click-событие, вызывается именованный метод и имеет весь ваш фактический код внутри этого метода, то гораздо проще иметь вызов внешнего объекта, который назвал метод, чем он должен иметьон пытается запустить событие click.

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

+0

Lol, я полностью согласен, однако я прибегаю к этому подходу, потому что я не могу иначе активировать требуемый родительский метод из всплывающего окна. – Paul

1
window.opener.document.getElementById(Client ID Of Button).click(); 

Из приведенного выше кода просто удалите «окно». и попробуй еще раз. Его работа для меня в IE.

Исправлено: opener.document.getElementById(Client ID Of Button).click();

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