#c# #asp.net #iframe #code-behind #detect
#c# #asp.net #iframe #code-behind #обнаружить
Вопрос:
Мне нужно понять, вызывается ли страница внутри iframe или нет в коде. Возможно ли это?
Мне нужно определить это в коде главной страницы.
asp.net 4,0, C#
Ответ №1:
В общем, нет.
Конечно, вы можете создать клиентский скрипт, который обнаруживает iframe и перезагружает страницу, например, с помощью строки запроса.
Ответ №2:
Это невозможно. Однако есть обходной путь. Вы можете использовать строку запроса и проверять загрузку страницы, если эта строка запроса содержит значение, например:
<iframe src="Default.aspx?iframe=true" />
В вашем Default.aspx.cs
файле:
protected void Page_Load(object sender, EventArgs e)
{
if(!string.IsNullOrEmpty(Request.QueryString["iframe"]))
{
if(Convert.ToBoolean(Request.QueryString["iframe"])
{
// this page is loaded in an iframe
}
}
}
Комментарии:
1. Как устанавливается этот параметр строки запроса?
2. Это пример того, как создать iframe, а не как его обнаружить. Как бы вы установили это значение, если код iframe не был вашим собственным, и вам нужно было определить, что ваша страница находится в этом iframe?
3. ну, дело не в том, что код iframe не мой. Вопрос в том, можно ли проверить, загружена ли страница внутри iframe или нет, никаких других ограничений нет.
4. Я согласен, что требование неоднозначно, но я решил прочитать его по-другому. Итак, ваш ответ в порядке, я просто хотел бы увидеть код для этой части 🙂 Джо, похоже, подразумевает, что можно написать сценарий на стороне клиента для обнаружения…
5. на самом деле вопрос для других людей, не сгенерированных мной iframe 🙂