我有一个iframe
,我想在按下按钮时重新加载当前显示的页面。
HTML:
<iframe id="webView"></iframe>
JS:
function reloadPage()
{
var webView = document.getElementById("webView");
//CODE
}
在reloadPage()
方法中,我尝试了不同的解决方案:
webView.contentWindow.location.reload();
这不起作用,因为iframe中加载的页面来自与主页面不同的域。
webView.src = wevView.src;
它提供了错误的结果,因为它包含我设置为iframe的初始网址,而不是当前网址。
webView.contentWindow.location = webView.contentWindow.location
我原以为它不能使用来自不同域的网址(与调用reload()相同),但实际上它可以正常工作并且也能提供良好的结果。
好但不完美:location
对象保存当前网址但删除任何参数。
例如,如果框架当前正在显示以下网址:
http://www.myserver.com/thatsite/?page_id=11
location
对象包含此网址:
http://www.myserver.com/thatsite/
只要网址中没有参数,这个就可以正常工作。
我非常依赖带参数的网址(主要是WordPress安装),所以我需要一种方法来重新加载它们。
有人知道解决方案吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
由于设置位置有效,您可以使用location.search检索GET参数并以此方式重新构建URL。
示例:
webView.contentWindow.location = webView.contentWindow.location + webView.contentWindow.location.search