2008-12-29 86 views

回答

1

你說彈出窗口和主ASP.NET頁面之間的「溝通」。首先,我假設彈出窗口也是一個ASP.NET頁面,所以從主頁面到彈出窗口的通信與在一系列頁面中從一個頁面到另一個頁面的通信沒有什麼不同。也就是說,您可以在會話中存儲並使用數據(如果數據在加載主頁面時可用),通過查詢字符串等。除非數據是敏感的,否則最簡單的方法是將變量包含在對適當參數取代的彈出窗口的調用。以下是一個示例圖像鏈接:

<img style='cursor:hand;' alt="Open Note" onclick="javascript:window.open('NoteEdit.aspx?T=3&UID=<%#NoteUID%>', 'Note', 'HEIGHT=400,WIDTH=420');" src="images/Note.gif" /> 

請注意「NoteUID」替換參數。

更有趣的問題是如何將信息傳回彈出窗口的窗口。要做到這一點,開始與這個JavaScript:

<script type="text/javascript"> 
    function OpenHRAResults() 
    { 
     opener.location.href="<%#DestName%>"; 
     window.close(); 
    } 
</script> 

這是從代碼,我重新打開一個特定的頁面中獲得,但,你可以猜到,你可以做各種各樣的事情用「開門紅」窗口(彈出窗口彈出)。

希望這有助於...

+0

將彈出信息發佈回頁面怎麼樣?這將如何工作? – 2008-12-29 15:38:58

1

如果你正在談論一個實際的彈出頁面,你使用JavaScript中的window.open。你有querystring和Javascript作爲唯一真正可用的選項來傳遞信息。

至於這個「安全」。用戶可以通過查詢字符串查看任何內容,但JavaScript可以移動值,但它們會存在於其他頁面上。但是你可以通過一些特別的東西來使事情更安全。

0

的幾種方法

  • 查詢字符串(window.open( '/用戶/ 123' ..)
  • 的Javascript(window.opener)
  • HTTP POST(通過JavaScript打開一個彈出,設置窗體目標它的名字作爲目標和崗位)
  • 會議或其他服務器端方法

在回答安全考慮我會說,查詢字符串與服務器端安全性結合在一起是一種可行的方法。打開通過查詢字符串傳遞信息的彈出窗口,然後驗證登錄用戶是否有權訪問該用戶。一些特定的要求會要求加密查詢字符串數據。

對於刪除操作,我可能會使用回傳來避免像「我的索引蜘蛛刪除所有用戶」這樣的問題。

+0

例如查詢字符串看起來不太安全。導致用戶可以看到該信息。例如,我可能有一個頁面顯示一些用戶的信息。當我想刪除它時,我重定向到另一個頁面。將信息傳遞到該頁面的最佳方式是什麼? – 2008-12-29 15:30:01

0

你並不需要發送的真實數據,以彈出窗口。只需在opener頁面上創建一個GUID即可。 在asp中創建一個類。它代表你需要在彈出頁面和開啓者頁面之間發送的所有數據。例如popupdata 將序列化的類存儲在以GUID作爲名稱的會話中Session [Guid] =類對象 Session [Guid] = popupdata;

用f.i打開彈出窗口。 〜/ popupwindow.aspx?PAGEID =的Guid 檢索會話對象與調用會議[的Guid]再次(GUID是來自PAGEID查詢字符串的到來。

所以,在彈出的頁面調用popupdata數據=(popupdata)會議[的Guid ];

然後爲所欲爲宥喜歡的任意不等階數據

如果數據被改變的popupwindow您可以再次將其存儲在會話變量 ,並將其發送回揭幕戰...

。因爲沒有數據發送到客戶端,所以非常安全