IFrame是否在JavaScript中保留对象?

时间:2015-01-01 19:13:32

标签: javascript html

我正在使用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);
        }

所以它只附加了Body,因此,Head始终是相同的,JavaScript文件及其相关对象也是如此???

所以说我有一个Var例子=“你好”; 如果我从第1页换到第2页,我会保留那个变量???

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

编辑:

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");

    }




}

所以我有这个类Clinica女巫包含一系列Doentes和一个ID。 Doente也是一个班级。 所以在一个iFrame中,我在数组中插入了一堆数据。然后我会做你在CriarDoente看到的警报,仅用于测试目的。然后我去另一个页面(通过iFrame所以我不重新加载)当我检查数组lenght它说它未定义。这就是为什么我认为它不保留数据。 注意:cl是我在这个文件中初始化的类clinica的对象。

1 个答案:

答案 0 :(得分:0)

如果变量'示例'在父文档中声明它在iframe的src更改时仍然可用。如果它在iframe中声明它就不会。我认为解决方案是在父文档中声明它是否需要在页面之间保留。 BTW你是否因任何特殊原因使用iframe?只是问,因为他们现在一般都没有使用过。