Как перезагрузить главную страницу из iFrame
В моем сценарии у меня есть кнопка в разделе iframe моей страницы, которая выполняет некоторую обработку базы данных.
Что мне в основном нужно, так это средство выполнения обновления страницы главной страницы, когда нажимается эта кнопка внутри фрейма.
Был бы признателен за JavaScript, который я могу запустить в iframe, который перезагрузит главное окно, содержащее iframe.
Благодарю. Тони.
8 ответов
Если родительский и дочерний домены iframe будут отличаться, вы получите ошибку безопасности в разных окнах, в этом случае вы можете попробовать использовать следующее:
window.parent.location = document.referrer;
Мы можем легко достичь поставленной цели, установив 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>");