2009-01-30 86 views
0

我正在寫一個Intranet應用程序,並且正在考慮使用彈出式窗口。你對此有什麼想法? 我不擔心可訪問性,因爲它是一個Intranet應用程序。Asp。網絡和Javascript彈出窗口

的情況是這樣的,因爲我需要能夠有相同的代碼在服務器頁面,以及在過程中使用;這就是爲什麼我決定在這個過程當中使用它的原因,最好是將它作爲彈出式窗口用於屏幕上的不動產。

對此有何看法?我猶豫是否使用彈出式窗口,因爲我通常只用它來顯示錯誤消息。 在此先感謝。

回答

0

針對彈出式窗口的常用參數是它們不可靠。用戶可能已禁用腳本啓動的彈出窗口,我知道我有。
在一個受控的環境中,比如一個inranet,你可能能夠保證不是這種情況,但即便如此,爲什麼冒這個險,還有一個選擇。
而是彈出一個新窗口只需插入一個新的,絕對定位< DIV>到文檔中,然後插入你的內容將是使用Ajax,甚至是< IFRAME>的。網絡上有很多示例/庫。例如,用於jQuery的
Thickbox。當然有些腳本不需要庫。

1

我不完全理解你想要做什麼,但我想如果用戶的瀏覽器自動攔截彈出窗口的彈出窗口可能是一個問題的一些。此外,如果您嘗試在彈出窗口中運行進程,用戶可能會關閉它,並且無法再檢查進程。

是否可以使用Ajax回調到一個Web服務,提供有關過程的頁面信息?您可以爲用戶提供一種方法來進行Ajax調用,以檢查進程的狀態,或者讓它持續在後臺進行輪詢。

編輯:

你說你不太熟悉Ajax。大多數情況下,有圖書館可以處理所有的硬件細節。我會推薦jQuery因爲這是我一段時間以來一直在使用的。

如果你去阿賈克斯路線,你就可以包含一個網頁上的所有內容,使您需要的時候Ajax調用成功更新。根據你編寫代碼的方式,如果你做得對,它應該是可重用的。這實際上取決於您在每個頁面上的具體需求。

儘管看看jQuery文檔。它可能有你需要的東西。否則,其他人可能會提出一些原因,爲什麼他們最喜歡的JavaScript庫可以更好地適用於您正在嘗試執行的操作。

0

我試圖避免AJAX,僅僅是因爲我從來沒有使用過,並沒有時間框架,現在去學習它。但是,我並不完全反對。

總之,我需要做的是彈出窗口與頁面進行交互。 想象一下,我正在構建鏈的鏈接。每個鏈接都有獨特的屬性。當用戶點擊「添加鏈接」按鈕時,我想有一個小窗體和一個保存按鈕的彈出窗口。 唯一的問題是,彈出窗口需要與頁面進行交互......我們需要知道何時已保存或未保存。

同一頁面上的div是單向的。彈出是另一種方式。 另一個問題是,這個代碼(添加新鏈接)需要可重用,因爲我也將有一個只創建新鏈接的頁面。 有沒有可能沒有Ajax? 我想這個場景之前已經完成了。

1

我想你可能想要做這樣的事情:

裏面的父頁面:

<input id="btnShowModal" runat="server" type="button" value='Show Modal' onclick="ShowModal()" /> 

function ShowModal() 
{ 
    var retVal = window.showModalDialog("MyPopup.aspx?param1=value","","center=yes;dialogWidth=200px;dialogHeight=200px;status:0;help:0") 

    if(retVal != "" && retVal != undefined) 
    { 
     //This code will be executed when the modal popup is closed, retVal will contain the value assigned to window.returnValue    
    } 
} 

裏面的模式彈出的:

<input id="btnSave" runat="server" type="button" value='Save' onclick="Save()" /> 

function Save() 
{ 
    window.returnValue = "Whatever you want returned to the parent here" 
    window.close() 
} 
+0

請注意,showModalDialog()是IE專用。 – 2009-01-30 20:10:36

+0

我知道,他正在開發一個內聯網應用程序,所以他可能對用戶環境有一些控制權。 – Phaedrus 2009-01-30 20:16:09

0

謝謝,我會看進去。有一點需要提及:這是一個受控制的環境,目前的Intranet站點嚴重依賴Javascript,所以這不是問題 - 它始終處於開啓狀態。

那麼你是說它不可能將一個值從彈出窗口傳遞迴頁面?因爲這將是最簡單的方法,無需查看任何文檔即可完成。

0

我一般使用帶有z-index和絕對定位的div; .show()可以根據需要編寫和調用,它會有一個按鈕用於.close(),並且AJAX可以使其看起來像模態,因此如果您願意,它必須單擊以關閉。然後再次,我討厭messageboxes。

0

我是她:) 就IE..hmmmm而言,我們不支持FF官方,但我不喜歡編寫不適用於FF的應用程序,因爲我是FF用戶。但無論如何,在這種情況下,我可能只是使用window.showModalDialog