如图所示,每次点击打开弹窗,弹窗里面会有一个iframe的地图页面,但是弹窗展示的地图页面坐标值不同,怎么打开弹窗的时候让这个弹窗iframe重新加载呢
如图所示,每次点击打开弹窗,弹窗里面会有一个iframe的地图页面,但是弹窗展示的地图页面坐标值不同,怎么打开弹窗的时候让这个弹窗iframe重新加载呢
你说刷新的话,我理解就是iframe的url参数不变化。那么可以用这个方案:
function setIFrameSrc(idFrame, url) {
var originalFrame = document.getElementById(idFrame);
var newFrame = document.createElement("iframe");
newFrame.id = originalFrame.getAttribute("id");
newFrame.width = originalFrame.getAttribute("width");
newFrame.height = originalFrame.getAttribute("height");
newFrame.src = url;
var parent = originalFrame.parentNode;
parent.replaceChild(newFrame, originalFrame);
}
直接用v-if="dialogShow"切换下;强制重新渲染。
data() {
return {
dialogShow: true,
}
},
方法:
loadIframe(){
this.dialogShow = false
this.$nextTick(function () {
this.dialogShow = true
})
}
iframe 脱离文档流再重新插入就会重新初始化
function reloadIframe(iframe: HTMLIFrameElement) {
const parentElement = iframe.parentElement
if (!parentElement) return;
const nextElementSibling = iframe.nextElementSibling
parentElement.removeChild(iframe)
nextElementSibling ? parentElement.insertBefore(nextElementSibling, iframe) : parentElement.appendChild(iframe)
}
v-if 同理;
如果同源的话可以直接拿到 window
对象操作
iframe.contentWindow?.window.location.reload()
13 回答13.1k 阅读
8 回答3k 阅读
3 回答1.6k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.6k 阅读
7 回答2.3k 阅读
5 回答1.6k 阅读
不能不用iframe么- -!
要不你试试指定带参数的地址吧,比如
search.html?经度=&纬度=
,search.html中取得url中的参数进行后续处理。