Javascript -remove然后读取iframe元素

时间:2012-03-03 13:49:25

标签: javascript dom

我正在尝试找到一种方法来使用不同的网址重新加载我的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);

此方法被多次调用,但仅在第一个实例中有效,第二次应该打开Goog​​le ...如果“currentMPId!= mpId”为真。

有人可以提供建议吗?

谢谢, 科林。

0 个答案:

没有答案