刷新iframe而不重定向父页面

时间:2015-01-13 10:28:43

标签: javascript html iframe sandbox

我有网站A,我在网站B上嵌入了iframe。网站A有一个下拉菜单,可以从中更改网站的语言。

问题:当我从iframe内部的下拉菜单中更改语言时,整个父窗口重定向到网站A.我希望iframe刷新并更改语言,但不要让父窗口重定向。这是html当前嵌入iframe的方式:

<iframe  src="xxx" scrolling="no" frameborder="no" align="center" height = "600" width = "940">
</iframe>

我尝试使用iframe沙箱属性,但结果如下:

sandbox =“allow-forms allow-scripts” - 父页面未重定向,iframe在点击下拉菜单后显示空白页面

sandbox =“allow-forms allow-scripts allow-same-origin” - 与上面相同

sandbox =“allow-forms allow-scripts allow-same-origin allow-top-navigation” - 页面重定向为没有沙箱属性

对于前两个我也从控制台注意到我收到了这条消息:

不安全的JavaScript尝试从具有URL“yyy”的帧启动具有URL“xxx”的帧的导航。尝试导航顶层窗口的框架是沙箱,但未设置“允许顶部导航”标记。

这是否意味着为了解决这个问题,我必须更改iframe内部页面上的内容,而不是父页面?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

更改选择值时,您是否尝试将target属性设置为_self

...即 第A页:

VARS: <script>document.write(document.location.search)</script><br>
<br>
<form name="f" target="_self">
    <select id="langSelect" name="langSelect" onChange="document.f.submit()">
        <option value="">...please select...</option>
        <option value="en">English</option>
        <option value="es">Spanish</option>
    </select>
</form>

Page B:

This if page B...<br>
<br>
This is iframe A:<br>
<iframe src="A.html"></iframe>