我得到了不同的JavaScript文件和網站的框架。在generalJavascript.js我寫這變量和框架的JavaScript範圍
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;
有什麼不對?我想如果我宣佈頂級對象上的全局變量,它將可以從所有框架訪問?!
UPDATE:試圖用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;
您的所有幀是否都來自同一個域(完全相同的域,包括協議)?如果瀏覽器的同源策略不能阻止訪問這些變量。 – njr101
是的,似乎SOP是問題。 – Jochen