2014-05-06 86 views
1

我試圖打開一個與當前會話相同的新窗口。我在下面寫了一些代碼,但它還沒有運氣。使用jquery/C#剃刀打開一個新窗口使用jQuery/C#剃鬚刀

例如讓我說我有一個標籤(名稱),文本框(文本進入) 的窗體和一個按鈕時,我需要一個新的窗口。

如果我按下按鈕,它應該打開一個新的窗口,如果它放在之前,它將在文本框中具有相同的表單元素和文本。

另請注意,新窗口必須作爲瀏覽器中的新選項卡打開,並具有與先前瀏覽器中相同的狀態和元素。

任何人都有這個想法(使用剃鬚刀視圖引擎或jQuery/JavaScript)?提前致謝。

<label for="Name">Name</label> 
    <input type="textbox" value="nothing" id="text" /> 
    <input type="button" value="press me" id="submitButton" />  


    $(document).ready(function() 
    {      
    $('#submitButton').click(function() 
    { 
     var currentUrl=document.URL; 
     window.open(currentUrl,"newWindow",300); 
     event.preventDefault(); 
    }); 
    }); 

回答

1

您可能可以通過使用模態而不是彈出窗口來實現此目的。 Jquery UI內置了模態支持:http://jqueryui.com/dialog/

這種方法的優點是不需要將數據傳遞到單獨的頁面。使用jQuery Dialog,你的模態代碼看起來就像這樣。這將走在同一頁上爲您的初始投入:

<div id="dialog" title="Basic dialog"> 
    <input type="text" id="popupText" name="popupText" /> 
</div> 

和點擊事件將修改後的更新模態的輸入和顯示模式:

$(document).ready(function(event) 
{      
    $('#submitButton').click(function() 
    { 
    $("#popupText").val($("#text").val()); 
    $("#dialog").dialog(); 
    event.preventDefault(); 
}); 

});

這絕對可以清理,但我相信它會做你需要的很簡單。該對話框可以包含任何html元素,所以如果需要,您可以添加一個單獨的表單。

+1

忘了提及這種方法的另一個優點是它對平板電腦和手機更友好 - iPad不喜歡彈出窗口,大多數現代瀏覽器也不喜歡。 –

+0

嗨布倫特。感謝您的回答,我明白您的意思,我會毫不猶豫地考慮。然而,我的業務需求是,新窗口應該在瀏覽器中以相同設置作爲新選項卡打開。這是我的目標。 – Sike12

+1

感謝您的澄清。我建議加入這個問題。 –