2010-10-20 4 views
1

У меня есть проблемы со следующей HTML:Предотвращения Javascript работает в HREF

<a href="javascript:document.formName.submit();" target="iframe"> 

Где FORMNAME это имя формы внутри фрейма. Я бы хотел, чтобы браузер перешел на страницу «javascript: ...» в iframe, поэтому он выполняет javascript на текущей странице в iframe. Моя проблема в том, что браузер попытается выполнить функцию и использовать возвращаемый результат в качестве URL-адреса. Конечно, на текущей странице нет формы, поэтому я просто получаю сообщение об ошибке.

+3

Является iframe в том же домене, что и в соседней странице? –

+0

Нет, это находится в отдельном домене. –

ответ

2

Междоменные iframe не являются зонами летания, вы не сможете ничего делать с DOM внутри фрейма в другом домене. Даже если пользователь нажал кнопку отправки внутри фрейма, ваша страница не сможет вернуть новый URL-адрес из фрейма.

0

В этом случае, вы можете сделать это, достигнув внутри фрейма:

<a href="javascript:window.frames[N].contentDocument.FORMNAME.submit()"> 

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

РЕДАКТИРОВАТЬ: Нет НИКАКИХ способов сделать эту работу кросс-доменом. Это нарушение правил безопасности браузера.

+0

Я пробовал этот метод, и он работает в большинстве браузеров, если iframe находится в одном домене, однако большинство браузеров ограничивают доступ к содержимому iframe, если оно находится в отдельном домене. –

+0

Если iframe находится в отдельном домене, ничего не может сделать OP, который будет работать. Поэтому я принял такую ​​же область. – zwol

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