IFrame 是否在 JavaScript 中保留对象?

Does IFrames keep objects in JavaScript?

我正在使用 html 和 javascript 编写一个小程序。我正在使用以下代码将我的主页中的 div 与另一个页面的正文交换:

function apresentarPaginaEmDiv(div, url) {
            var iframe;
            iframe = document.createElement('iframe');
            iframe.style.visibility = "hidden";
            iframe.src = url;
            iframe.onload = function () {
                var iFrameBody;
                if (this.contentDocument) { // FF, Safari, Chrome
                    iFrameBody = this.contentDocument.body;
                }
                else if (this.contentWindow) { // IE
                    iFrameBody = this.contentWindow.document.body;
                }
                document.getElementById(div).innerHTML = iFrameBody.innerHTML;
                document.body.removeChild(this);
            }; ;
            document.body.appendChild(iframe);
        }

所以它只附加主体,因此,头部始终相同,JavaScript 文件及其关联对象也是如此吗???

假设我有一个 Var 示例 = "Hello"; 如果我从第 1 页切换到第 2 页,我会保留那个 var ???

我问是因为它与某些功能一起使用而不与其他功能一起使用。我想知道这样做是否正确,是否真的保留了我的变量。

编辑:

function Clinica ()
{
 this.id = 0;
 this.doentes = new Array();


}

Clinica.prototype.criarDoente = function ()
{
    var nome = document.getElementById("nome").value;
    var sexoM = document.getElementById("masculino");
    var sexoF = document.getElementById("feminino");
    var data = document.getElementById("data").value;
    var sexo;
    alert("ID ATUAL " + this.id);

    if (Clinica.verificarCriacaoDoente(nome,sexoM,sexoF,data))
    {
        if (sexoM.checked)
        sexo = "Masculino";
        else
        sexo ="Feminino";

        var d = new Doente(nome, sexo, this.id, data);
        this.id++;
        this.doentes.push(d);

        alert(d.nome);
        alert(this.id);
        alert(d.dataNascimento);
        alert(cl.doentes.length);
        apresentarPaginaEmDiv("conteudo","Doentes.html");

    }




}

所以我有这个 class Clinica witch 包含一组 Doentes 和一个 ID。 Doente 也是 class。 所以在一个 iFrame 中,我在数组中插入了一堆数据。然后我做你在 CriarDoente 中看到的那些警报,只是为了测试目的。然后我转到另一个页面(通过 iFrame,所以我不重新加载),当我检查数组长度时,它说它未定义。这就是为什么我认为它不保留数据。 注意:cl 是我在这个文件上初始化的 class clinica 的一个对象。

如果在父文档中声明了变量 'example',那么当 iframe 的 src 发生变化时它仍然可用。如果它在 iframe 中声明,则不会。我认为解决方案是如果它需要在页面之间保留,则在父文档中声明它。顺便说一句,您是否出于任何特定原因使用 iframe?只是询问,因为这些天通常不使用它们。