我正在尝试找到一种方法来使用不同的网址重新加载我的iframe。代码是跨域的,因为它是添加到第三方站点的脚本。我已经看过各种技术来重新加载iframe,但这些技术都不起作用。
我认为我的第二种方法可行,删除iframe元素,使用新网址创建一个新元素,然后将其添加回dom。然而它似乎没有再次添加到dom,不确定它是否是一个指针问题?这是我的代码的大致轮廓:
var currentMPId = 0;
function createWindow(mpId) {
var theIframe = document.createElement("iframe");
theIframe.setAttribute("id", "main-iframe");
theIframe.setAttribute("frameborder", "0");
if ((document.getElementById("main-iframe") !== null) && (document.getElementById("main-iframe").src !== "")) { /* don't change the iframe src as it's already been loaded */
if (currentMPId != mpId) { /* if a different id then recreate the iframe */
var d = document.getElementById('container');
var oldframe = document.getElementById("main-iframe");
d.removeChild(oldframe);
theIframe = document.createElement("iframe");
theIframe.setAttribute("id", "main-iframe");
theIframe.setAttribute("src", "http://google.co.uk/");
d.appendChild(theIframe);
}
}
else {
theIframe.setAttribute("src", "http://bing.com");
}
theIframe.style.width = "300px";
theIframe.style.height = "200px";
theIframe.style.position = "absolute";
theIframe.style.top = "0px";
theIframe.frameBorder = 0;
var containerDiv = document.getElementById('container');
containerDiv.appendChild(theIframe);
}
createWindow(10);
此方法被多次调用,但仅在第一个实例中有效,第二次应该打开Google ...如果“currentMPId!= mpId”为真。
有人可以提供建议吗?
谢谢, 科林。