2011-12-04 115 views
2

我試圖使用iframe來處理登錄,並根據輸出更改父頁。我跟蹤到這裏的javascript:從iframe中更改父頁

function results(status) 
{ 
    req = new XMLHttpRequest(); 
    req.open('GET', '../design/loginbox.php', false); 
    req.send(null); 

    alert(req.responseText); 

    top.document.getElementByID['loginbar'].innerHTML = req.responseText; 
} 

我知道這是不交叉兼容或任何東西,但目前,我只是測試。該警報顯示正確的輸出,但是,父頁面不會更改。任何人都可以看到我要去哪裏嗎?

感謝,Piepieonline

回答

0
top.document.getElementById('loginbar').innerHTML = req.responseText; 

這裏getElementById被一個方法......你必須調用它,而不是像數組一樣使用它。

+0

確實,這是答案。更正的行是: 「top.document.getElementById('loginbar')。innerHTML = req.responseText;」。非常感謝!奇怪的問題 - 在谷歌瀏覽器中,這項工作首次運行,但是如果我註銷並重試,直到我重新打開瀏覽器纔會起作用。 – Thomas

+0

從頭開始,錯誤肯定是在別處。現在一切正常,謝謝。 – Thomas

0

也許這是一個錯字,但你應該有getElementById('loginbar')的 'd' 不應該是國會大廈,你應該使用(),而不是[]

0

我知道通過那種關信息的唯一途徑,是通過使用Base64編碼 base64encode

,你可以這樣做:

window.parent.location = '?loginbar='+Base64.encode('"+req.responseText+"'); 

,你必須在其他窗口解碼:

var loginbar = Base64.decode(this.utils.getUrlVar('loginbar')); 

PD:utils.getUrlVar,循環window.search ...我想這個響應是一個json