0

我有不同的 javascript 文件和一个带框架的网站。一般来说Javascript.js我写了这个

console.log("BP0 - generalJavaScript.js eingebungen;");
top.window.clickedNewForm = false; 
function setClickedNewForm(booleanobj){
    console.log("BP5 - setClickedNewForm(); top.window.clickedNewForm: " + top.window.clickedNewForm + ";");
    top.window.clickedNewForm = booleanobj;
    console.log("BP6 - top.window.clickedNewForm: " + top.window.clickedNewForm + ";");
}
function getClickedNewForm(){
    console.log("BP7 - getClickedNewForm();");
    return top.window.clickedNewForm;
}

在 Firefox-Console 中,我可以看到如下消息:

Permission denied to access property 'clickedNewForm'
generalJavaScript.js()genera...ript.js (Zeile 11)
[Bei diesem Fehler anhalten]    
top.window.clickedNewForm = false;

怎么了 ?我想如果我在顶级对象上声明了一个全局变量,它将可以从所有帧访问?!

更新:尝试使用 parent.myvar 而不是 top.window,不幸的是没有任何改变,FF-Console:

BP0 - generalJavaScript.js eingebungen;
genera...ript.js (Zeile 10)
Permission denied to access property 'clickedNewForm'
generalJavaScript.js()genera...ript.js (Zeile 12)
[Bei diesem Fehler anhalten]    
parent.clickedNewForm = false;
4

1 回答 1

1

您需要使用父对象从父框架访问值。

console.log("BP0 - generalJavaScript.js eingebungen;");
parent.clickedNewForm = false; 
function setClickedNewForm(booleanobj){
    console.log("BP5 - setClickedNewForm(); parent.clickedNewForm: " + parent.clickedNewForm + ";");
    parent.clickedNewForm = booleanobj;
    console.log("BP6 - parent.clickedNewForm: " + parent.clickedNewForm + ";");
}
function getClickedNewForm(){
    console.log("BP7 - getClickedNewForm();");
    return parent.clickedNewForm;
}
于 2012-06-12T07:23:48.090 回答