我正在使用Fancybox和Zend。希望以下明確。從iframe中重新加載頁面
在www.example.com/template/edit/id/3我有jQuery UI選項卡。他們可以通過錨點直接到達。例如。 www.example.com/template/edit/id/3#taps-2
關於#tabs-2我有一些元素,無關緊要。您可以創建或編輯它們。這個元素有一個自己的控制器,所以爲了編輯它們,你可以調用/ elements/edit/id/44。目前,我正在使用Fancybox進行圖層操作。我正在使用Fancybox的Iframe功能。因此,如果您在/ template/edit上,並且您單擊某個元素的編輯按鈕,則會打開一個包含加載/元素/編輯的iframe的圖層。
因此,如果您現在更改元素並單擊保存,我希望圖層自動關閉並重新加載。
Fancybox提供了一個選項來指定它在關閉時應該做些什麼。目前,我得到它是這樣的:
'onClosed' : function() {window.location.reload();}
這實際上重新加載頂部窗口,而不是iframe。此外,有可能通過JS關閉Fancybox。我這樣做,通過設置觸發這個視圖變量,如:
<?php if($this->close): ?>
<script type="text/javascript">
parent.$.fancybox.close();
</script>
<?php endif ?>
所以,如果儲蓄是成功我設置$這個 - >查看 - >關閉= TRUE,並得到clsoed層觸發我的JS。
這工作正常。我現在的問題是在我的網址中使用#tabs-2進行重新加載。
當然,我可以得到的URL,從其他錨點清理它我的用戶輸入等,並建立我的網址,我設置窗口的位置,但不知何故,我認爲,必須有一個更簡單的解決方案。
E.g.將瀏覽器的網址設置爲#tabs-2而無需重新加載,但這聽起來不是很好。重裝很容易,但有一個非常棘手的錨點。
你嘗試'window.location.href = window.location.href'? – Mottie 2012-01-18 14:25:19
這與reload()相同。重新加載的工作實際上是,但如果你在第二個選項卡上,編輯一些東西,保存它,你想在重新加載後保留在第二個選項卡上,而不是回到第一個選項卡上。第一個選項卡默認沒有錨點。 – xotix 2012-01-18 14:48:12