2011-04-19 84 views
8

我的問題是,我需要一個colorbox來重新加載父頁關閉。Colorbox重新加載父頁關閉

這是我有:

$(".example").colorbox({ 
    onClosed:function(){ 
     parent.location.reload(); 
    } 
}); 

彩盒加載罰款,但不會刷新關閉父頁面。有任何想法嗎?

+0

不要忘了接受的答案。 – 2012-08-16 17:52:45

回答

13

使用window.location.reload();window.location = window.location;代替parent.location.reload();

+1

謝謝+1!這對我有用;) – 2011-07-22 19:51:09

1

或者只是使用

<input type="submit" onclick="parent.location.reload()" value="Save" name="submit"/> 

我喜歡這一個了盧卡斯的解決方案,因爲你也可以輕鬆地創建

<input type="button" onclick="javascript:parent.$.colorbox.close()" value="Cancel" /> 

沒有它重裝整個頁面。

-1
function __colorbox_onClose(e) { 
    $.fn.colorbox.close(); 
    return false; 
} 
$.fn.colorbox.close(); - Closes colorbox manually 

return false; - reloads/Autopostbac's form from which you called colorbox 
3

有點延遲,但我有另一個答案。您可以將代碼發送到在colorbox中加載的目標頁面上的重新加載窗口。

我正在使用colorbox登錄/ how_it_works/faqs &其他幾個功能。我只希望我的父頁面在「登錄」的情況下重新加載。因此,在回覆登錄表單時,我發送了以下代碼:

<script type="text/javascript"> 
window.parent.location.reload(); 
</script> 

'窗口'是colorbox窗口。我要求其父(瀏覽器窗口)重新加載。

0

這裏是我的通用顏色框開啓功能:

它可以:

  • 刷新頁面關閉
  • 刷新其自(+使用一些自定義的Ajax URL)後
  • 加載另一個HTML
  • 重要 - >當您手動關閉彩盒時,會發生以下操作:
    • 適當地設置全局變量
    • $ .colorbox.close();

另外:

  • 福克斯自定義HTML元素加載後

主要的一點是,你應該有(當然,如果你知道自己在做什麼)一些全球性的JavaScript變量,就是這樣。

function showActionForColorBox(
    _url, 
    _forFocus 
    ) { 
    _url = fixURLWithMasterServerPrefix(_url); 
    $.colorbox(
     { 
      scrolling: false, 
      href: _url, 
      onLoad: function() { 
       idColorboxAjaxIndect1.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect2.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect3.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect4.appendTo($('#cboxOverlay')); 
       return; 
      }, 
      onComplete: function() { 
       if (_forFocus) { 
        var c = $('#' + _forFocus); 
        if (c.length) { 
        c.focus(); 
        } 
       } 
       return; 
      }, 
      onCleanup: function() { 
       // TODO: ? 
       return; 
      }, 
      onClosed: function() { 
       abortAllAsyncAjaxRequests(); 

       if (shouldReloadPageAfterColorBoxAction) { 
        shouldReloadPageAfterColorBoxAction = false; // NOTE: To be sure: Reset. 
        reloadWholePage(); 
       } 
       else if (cbEBillsActionReloadPopup) { 
        cbEBillsActionReloadPopup = false; 
        // NOTE: WE HAVE AN OPTION TO RELOAD COLORBOX WITH CUSTOM URL ! 
        showActionForColorBox((cbActionReloadPopupCustomURL !== '' ? cbActionReloadPopupCustomURL : _url)); 
        cbActionReloadPopupCustomURL = ''; 
       } 
       else if (cbShouldLoadAnotherContentAfterClosed) { 
        cbShouldLoadAnotherContentAfterClosed = false; 
        $.colorbox({ html: setupContentForcbShouldLoadAnotherContentAfterClosed }); 
        setupContentForcbShouldLoadAnotherContentAfterClosed = ''; 
       } 
       return; 
      } 
     } 
     ); 

    return; 
} 
0
$(document).bind('cbox_closed', function(){ 
    location.reload(); 
}); 

上面的代碼是用於顏色框默認關閉(X)按鈕。

如果你有那麼你自己的關閉按鈕嘗試這樣的:

$('#id').click(function(){ 
    location.reload(); 
}); 
相關問題