#iframe #asp-classic
Вопрос:
У меня есть веб-страница (скажем www.example.com/a.asp) .. У меня на этой странице есть iframe, который загружает страницу с другого веб-сайта (www.example.net/b.asp)… Этот b.asp задает несколько вопросов пользователю, и результаты публикуются на c.asp на моем веб-сайте (www.example.com/c.asp). Эта страница (www.example.com/c.asp) загружается в iframe. Есть ли какой-либо способ, чтобы я мог перезагрузить всю веб-страницу и перенаправить ее на другую страницу wb, когда получу ответ от www.example.net. Извините, если этот вопрос сбивает с толку, любые вопросы, пожалуйста, дайте мне знать.
Ответ №1:
Как упоминалось выше, вы можете использовать «_top» в целевой форме или использовать некоторый JavaScript на странице результатов, чтобы проверить, является ли она «верхней» страницей. При прочих равных условиях вам лучше избегать JavaScript, так как он не будет работать, если у клиента отключены сценарии.
Ответ №2:
Если я правильно понимаю, я думаю, что вы могли бы установить цель для сообщения в c.asp как «_top». Это должно перезагрузить всю страницу, чтобы вывести вас из iframe. Ваша страница c.asp должна будет обрабатывать перенаправление, которое вам требуется.
В качестве альтернативы перенаправление, которое необходимо выполнить на странице c.asp, может быть нацелено на саму «_top», в случае, если вы не можете изменить страницу, на которой публикуются данные.
Комментарии:
1. Спасибо, но у меня нет контроля над страницей в www.abc.com .. Я хотел бы использовать response.redirect, а не любую функцию javascript.
2. ааа, хорошо. Я не очень знаком с asp, поэтому я не знаю о вариантах использования response.redirect
3. после быстрого осмотра вокруг выясняется, что с asp это невозможно. Он обрабатывается на сервере, поэтому он не знает о кадрах на стороне клиента. Я думаю, что вы можете застрять, используя опцию javascript на самой странице.
Ответ №3:
Ммм, не уверен, что правильно тебя понял. Вы действительно имеете в виду, когда получили ответ от abc.com вместо вашего собственного веб-сайта?
Тег формы в HTML, по-видимому, имеет атрибут target для загрузки ответа на указанную (например, _top) цель после отправки данных:
http://de.selfhtml.org/html/referenz/attribute.htm#form (Немецкий)
Не уверен, что я действительно ответил на ваш вопрос. Неужели я?
Твое здоровье, Матиас
Ответ №4:
Если у вас нет контроля над ресурсом, загруженным во фрейм, вы не можете перенаправить его с помощью HTTP, поэтому вы придерживаетесь JavaScript.
Учитывая ту же политику происхождения, я думаю, что лучшее, что вы можете сделать, — это определить, когда новый документ загружается в iframe.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<title>test of iframe</title>
<iframe width="500" height="400" src="http://example.net/">
<p><a href="http://example.net/">See The Example Site</a></p>
</iframe>
<script type="text/javascript">
window.onload = function () {
document.getElementsByTagName('iframe')[0].onload = function () {
window.alert('Document loaded in frame');
}
}
</script>
Затем вы можете установить окно.местоположение (возможно, после подсчета количества срабатываний события)