這裏是我的場景:我有一個父網頁,在我的JavaScript代碼中,我打開一個新窗口。這個新窗口是一個服務器端的aspx頁面。這個子頁面需要在數據庫中保存一些數據,保存後返回一個ID。現在,我需要將此ID從子級服務器頁面傳遞給父級的JavaScript。將值從子窗口傳遞給父項
基本上我所需要的子服務器代碼觸發: 1)的值返回 父頁面2的javascript代碼)關閉本身
會是怎樣做到這一點的可以接受的方式?
這裏是我的場景:我有一個父網頁,在我的JavaScript代碼中,我打開一個新窗口。這個新窗口是一個服務器端的aspx頁面。這個子頁面需要在數據庫中保存一些數據,保存後返回一個ID。現在,我需要將此ID從子級服務器頁面傳遞給父級的JavaScript。將值從子窗口傳遞給父項
基本上我所需要的子服務器代碼觸發: 1)的值返回 父頁面2的javascript代碼)關閉本身
會是怎樣做到這一點的可以接受的方式?
設置父頁面的變量:
var dbID;
當從DB調用返回打開的窗口,將其放置在打開的窗口的加載事件(或使用jQuery或其他框架的就緒事件)中:
window.opener.dbID = <%= newID %>
// or whatever your framework's technique is for this :-)
window.close();
您也可以使用相同的技術在父級上調用全局函數。
在「父」頁面:
function handleNewDBID(dbID) { alert("lookit me, i got an ID! " + dbID); }
而打開的窗口:
window.opener.handleNewDBID(<%=newID%>);
如果您在子窗口,並假設你的父窗口有反對childResult:
window.opener.childResult = "yourIdHere";
我如何區分「當從打開的窗口中DB調用返回」 jQuery的?當然,我可以通過各種方式檢查newID是否爲null ..這就是你的意思? – sarsnake 2009-11-13 00:45:57
修改了使用全局函數顯示的答案。你的JQuery代碼可以住在裏面。 (我認爲沒有一個更簡單的方法來做到這一點,而不使全局函數。) – roufamatic 2009-11-13 21:43:00