我有网站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内部页面上的内容,而不是父页面?有什么想法吗?
答案 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>