Javascript:如何重新加载整个frameset onload()事件,包括调用Javascript的帧

时间:2020-03-06 14:46:27  来源:igfitidea点击:

有没有一种方法可以使用Javascript onload()事件重新加载整个框架集?

function logout() {
    /* ... */
    // reload entire frame
    top.location.reload();
}

<body onload="logout()">

这将导致所有框架重新加载,但是调用该框架的URL并未更改为框架集中指定的URL。

解决方案

据我了解,我们想使用<frame src =" ...">中所述的原始URL重新加载框架集中的每个框架。

这个小功能可以做到这一点(将其放入拥有框架集的文档中):

this.reloadChildFrames = function()
{
    var allFrames = document.getElementsByTagName("frame");
    for (var i = 0; i < allFrames.length; i++)
    {
        var f = allFrames[i];
        f.contentDocument.location = f.src;
    }
}

然后,我们可以从任何子框架中调用该函数:

top.reloadChildFrames()

当然,仅当所有帧都来自同一原点时,此方法才有效。