можно ли в коде понять, вызывается ли страница внутри iframe или нет

#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 🙂