我有一个带有iframe的php文件......
<html>
<head>
</head>
<iframe src="/test.php?id=1" style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; height:100%; width:100%; border: 0px;"></iframe>
在test.php中,单击一个按钮后,我试图让页面更改为verified.php,但不更改父URL或尝试更改iframe src。
有人有什么想法吗?我试图在test.php中打开另一个iframe,但我看不到它,因为原来的iframe仍在那里。
答案 0 :(得分:0)
在iFrame中使用window.top
https://www.w3schools.com/jsref/prop_win_top.asp
当&#34;检查窗口&#34;单击按钮,调用函数check()并检查当前窗口状态。如果最顶层的窗口(window.top)与当前窗口(window.self)不同,则输出&#34;此窗口不是最顶层的窗口!我在一个框架中吗?&#34;。如果最顶层的窗口等于当前窗口,则触发else语句:
所以重定向&#34;父母&#34; iFrame中的页面:
window.top.location.href = 'http://example.com';
我没有得到这个,但你可以替换它。
[没有]尝试更改iframe src
如果您只想替换它,最简单的方法是克隆,更改克隆中的src
,然后替换克隆。
我无法在SO上使用iFrame,但我可以使用简单的p
标记来显示该概念。
$(document).ready(function(){
var clone = $('p').clone();
clone.html("hello");
$('p').replaceWith(clone);
console.log('contains "hello" instead of test, which proves we\'ve replaced it.');
console.log('cloning retains the red color style');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p style="color:red;" >Test</p>
&#13;
而不是你那样做
var clone = $('iframe').clone();
clone.attr("src", "otherPage.html");
$('iframe').replaceWith(clone);
如果您不想更改克隆上的src
,那么只需对iFrame进行硬编码
$('iframe').replaceWith('<iframe src="otherPage" {styles} ></iframe>);
克隆有点好,因为你不会丢失任何应用于iframe的样式或属性。
但是老实说,如果你没有更多关于你目前正在做什么以及你想做什么,除非他们是读者,否则没有人可以回答这个问题。