2014-02-27 151 views
0

這可能聽起來含糊不清,我對此表示歉意。但我似乎無法找到任何或任何正在嘗試與我一樣的人。打開前一頁的jQuery對話框

雖然,我剛剛看到How to trigger open a jQuery UI dialog from a separate page?,但我不確定那會嚴格工作。

我有一個簡單的頁面供成員使用由XML提要驅動的數據。在配置文件頁面上是一個打開jQuery對話框的鏈接。這工作正常。

在網站上的其他地方,是另一個頁面,它根據過濾器生成成員列表,並指向該用戶個人資料的鏈接。在另一個頁面上,成員列表也是jQuery對話框的重複鏈接。

我該如何使這個重複鏈接轉到配置文件頁面並自動激發jQuery對話框打開?

回答

0

我的方式做,這是使用URL

的散列部例如你的URL從其他個人資料網頁應該是這樣的

profile#showdlg 

,並在個人資料頁

var hash = window.location.hash.substr(1); 
       if(hash == "showdlg"){ 
        //Show dialog here 
       } 

而這應該是竅門

0

你不能(不應該)直接觸發一些s在一個頁面中的動作「將在未來加載」。相反,觸發器應該是頁面本身的一部分。

因此,如果以動態方式生成該配置文件頁面,則一種方法是實現添加此類觸發器的條件功能(如使用jquery在dom樹就緒時觸發對話框,則會有數百萬個示例)。條件是配置文件頁面是否通過這樣一個特殊的引用被調用。您可以通過查看HTTP-REFERER來檢測。所以它歸結爲:如果以特定方式調用,那麼在最初觸發對話的配置文件頁面中添加一個2行代碼觸發器。

要回答以下這裏您的評論的一些更詳細的描述:

沒有太多參與編碼。鏈接引用用戶個人資料頁面。配置文件頁面是由我假設的PHP生成的。因此,所有你需要補充一個細節:PHP檢查,如果當前處理的要求有一定的內部引用者是從提出:

<?php .... if ('other_page.php'==$_SERVER[HTTP_REFERER]) { ... } ... ?> 

如果是這樣,你知道的個人資料頁是從其他頁面,而不是所謂的正常的情況,所以你想讓UI對話框自己觸發。爲此,您添加一個微小的JavaScript來生成的網頁,其中只要在頁面加載的伎倆:

<script>$(document).ready(function(){$('#mydialog').raise();})</script> 

細節顯然取決於什麼類型的對話以及它是如何提出的。但你應該明白我的建議...

+0

這聽起來很像我以後。你能打破這一切嗎?在編碼的例子? – Lee