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;

なにが問題ですか ?トップオブジェクトでグローバル変数を宣言すると、すべてのフレームからアクセスできるようになると思いました。

更新:top.windowの代わりにparent.myvarを使用しようとしましたが、残念ながら何も変更されていません、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;
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 に答える