Как перезагрузить главную страницу из iFrame

В моем сценарии у меня есть кнопка в разделе iframe моей страницы, которая выполняет некоторую обработку базы данных.

Что мне в основном нужно, так это средство выполнения обновления страницы главной страницы, когда нажимается эта кнопка внутри фрейма.

Был бы признателен за JavaScript, который я могу запустить в iframe, который перезагрузит главное окно, содержащее iframe.

Благодарю. Тони.

8 ответов

Решение
window.top.location.reload();

Если родительский и дочерний домены iframe будут отличаться, вы получите ошибку безопасности в разных окнах, в этом случае вы можете попробовать использовать следующее:

window.parent.location = document.referrer;
window.parent.location.reload();

Мы можем легко достичь поставленной цели, установив target="_parent" на ссылки внутри iframe.

Так же, как следующие демонстрационные шоу:

<!--ParentPage.htm-->
<!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>
    <title></title>
</head>
<body>
Parent Page
<iframe src="FramePage.htm"></iframe>
</body>
</html>


<!--FramePage.htm-->
<!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>
<title></title>
</head>
<body>
<a href="http://www.g.cn" target="_parent">hello</a>
</body>
</html>

Определите переменную allFrame в вашем верхнем фрейме:

var allFrame=1

и на всех ваших кадрах проверьте эту функцию

if(top.allFrame === undefined)
{
    window.parent.location = "your website top frame";
}

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

Мы можем легко достичь поставленной цели, установив target="_parent" для ссылок внутри iframe.

Точно так же, как следующие демонстрационные шоу:

      <!--ParentPage.htm-->
<!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>
    <title></title>
</head>
<body>
Parent Page
<iframe src="FramePage.htm"></iframe>
</body>
</html>


<!--FramePage.htm-->
<!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>
<title></title>
</head>
<body>
<a href="http://www.g.cn" target="_parent">hello</a>
</body>
</html>

Если вы кодируете страницу с помощью aspx C#, вы можете просмотреть код:

ClientScript.RegisterStartupScript(this.GetType(), "LoadParent", "<script language=javascript>window.parent.location.reload();</script>");
window.opener.top.location.reload();
Другие вопросы по тегам