2011-06-20 275 views
1

在一個提交按鈕點擊,我想開一個子窗口和父窗口重定向到另一個位置。軌打開的子窗口,並打開父窗口

爲了做到這一點,我已經使用的代碼打開子窗口:

<button class="btnBg" onclick="window.open('<%= url_for(:action=>"index") %>', '', 'toolbars=0')"> 

能否請你告訴我如何父窗口重定向到所需的位置?

回答

3

最簡單的方法就是在你的JavaScript分配的東西window.location(但一定要做到這一點打開新窗口):

<script type="text/javascript"> 
    function open_and_redirect() { 
     window.open('<%= url_for(:action=>"index") %>', '', 'toolbars=0'); 
     window.location = 'the new location for the parent window'; 
    } 
</script> 
<button class="btnBg" onclick="open_and_redirect()"> 

你並不需要,雖然使用一個單獨的函數,我只是這樣做,使其更容易閱讀。

+0

非常感謝設置父窗口的位置,我還有一個問題,是有可能通過Ruby代碼,即關閉的孩子。點擊完成btn後,子窗口中將重定向到一個動作,並從該動作中,我想關閉子窗口 – lamrin

+0

@lamrin:不,Ruby代碼運行在你的服務器上,但你想在客戶端上做些什麼,你必須爲此使用JavaScript。 ()# –

+0

這是我的代碼\t「$('#finishBtn')。click(function(){ ').attr(' 動作」,目標); $( '#class_form')提交(); });「在這裏,當我點擊完成按鈕就會重定向到行動被稱爲 」計算「,什麼我需要的是,重定向到calculate_path後,應該關閉子窗口..請告訴我如何做到這一點,謝謝 – lamrin

2

在你的子窗口,通過事件或定時器觸發以下代碼:

opener.location = "http://example.com" 
window.close(); 
+0

非常感謝,我還有一個問題,是否可以通過ruby代碼關閉孩子,即。點擊完成在子窗口中的btn後,它將重定向到一個動作,並從該動作中我想關閉子窗口 – lamrin

1

它可以通過兩種方式來完成:

  1. 追加要重定向到onclick事件的網址,正如其他帖子所示。
  2. 用彈出與window.parent.location = 'some url'
+0

非常感謝,我有另一個問題,是否有可能通過紅寶石代碼關閉孩子,即。在點擊子窗口中的完成btn之後,它會重定向到一個動作,並從該動作中我想關閉子窗口 – lamrin