JavaScript变量和框架的作用域

JavaScript变量和框架的作用域,javascript,scope,frames,Javascript,Scope,Frames,我得到了不同的javascript文件和一个带有框架的网站。在generalJavascript.js中,我写了这个 console.log("BP0 - generalJavaScript.js eingebungen;"); top.window.clickedNewForm = false; function setClickedNewForm(booleanobj){ console.log("BP5 - setClickedNewForm(); top.window.clic

我得到了不同的javascript文件和一个带有框架的网站。在generalJavascript.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控制台中,我可以看到如下消息:

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控制台:

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;

您需要使用父对象从父帧访问值

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;
}

还是一样。。。请参阅更新。generalJavaScript.js(Zeile 12)BP0-generalJavaScript.js-eingebungen;我想说的是,确保你没有跨域脚本编写。我一直使用这些访问器发布二进制表单,并在处理到父帧时接收回这些表单。如果您使用的是crossdomain(例如从domain.com访问的myscripts.domain.com将失败),那么这将失败。您的帧是否都来自同一个域(完全相同的域,包括协议)?如果不是,浏览器的同源策略将阻止访问变量。是的,似乎SOP是问题所在。