2009-02-25 2 views
1

Я хочу отобразить iframe на странице .aspx, а источник iframes должен быть одной и той же страницей.Как сделать iframe, отображающий родительскую страницу

Мне нужно использовать относительный uri.

Какое значение следует придавать атрибуту 'src'?

Я понимаю, что это немного необычно - страница будет отображаться в разных состояниях в зависимости от переданных параметров, поэтому iframe не будет отображаться внутри себя.

ответ

2

Буквальная относительная траектория должна работать. IE: MyPage.aspx

Вот пример ASP.NET ...

Показалось работать нормально для меня следующее ...

Markup:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <iframe runat="server" id="myFrame" src="Default.aspx?message=Hello%20World"></iframe> 
    <div id="myDiv" runat="server"></div> 
    </div> 
    </form> 
</body> 
</html> 

Код Behind :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication2 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      string message = Request.QueryString["message"]; 
      if (null != message) 
      { 
       myDiv.InnerText = message; 
       myFrame.Visible = false; 
      } 
      else 
      { 
       myDiv.Visible = false; 
      } 
     } 
    } 
} 
+0

Я пробовал - по какой-то причине это не работает, iframe остается пустым. – Sophia

+0

Хм, что странно, это относительно того, где вы находитесь, вы уверены, что не ставите, как /MyPage.aspx? .. в качестве примера попробуйте создать папку с 2 html-файлами: одну с iframe с именем main.html установите источник iframe в sub.html и сообщите sub.html тело подстранице. Пример должен работать. –

+0

Я тоже должен спросить, Filename.aspx - это буквальный относительный путь к текущей исполняемой странице? Он не находится в подкаталоге или альтернативном пути к каталогу? –

3

Если вы сделаете это, вы получите бесконечный цикл ... процесс будет «никогда не заканчиваться». может быть, поэтому он белый? это действительно обработка страниц .. - это то, что вы хотите? если вы, например, хотите всего лишь 2-3 страницы в глубину, вы можете выполнить querystring и, например, отключить iframe, когда количество запросов увеличивается до 3. MyPage.aspx? depth = 1 --MyPage.aspx? depth = 2 - MyPage.aspx? Depth = 3 и т. Д.

+1

Собственно, то, что он получает, - это бесконечная рекурсия. Поэтому он должен установить предельное условие и быть в состоянии проверить это на своей серверной обработке - то, что вы сказали, только лучше. – dar7yl

1

Короткий ответ src = "localfilename.aspx" в теге iframe. Веб-стандарт, свободно применяемый, говорит, что все, что не было выполнено «/», относится к местоположению текущей страницы. Иногда src = "" может даже работать для замены текущего имени файла (на уровне браузера)

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

  • Нет связанных вопросов^_^