我正在使用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的对象。
答案 0 :(得分:0)
如果变量'示例'在父文档中声明它在iframe的src更改时仍然可用。如果它在iframe中声明它就不会。我认为解决方案是在父文档中声明它是否需要在页面之间保留。 BTW你是否因任何特殊原因使用iframe?只是问,因为他们现在一般都没有使用过。