使用jquery / C#Razor打开一个具有相同会话的新窗口

时间:2014-05-06 14:57:25

标签: c# javascript jquery html razor

我正在尝试使用与当前会话相同的会话打开一个新窗口。我在下面写了一些代码,但它还没有运气。

例如,假设我有一个带有标签(名称),文本框(文本进入的位置)的表单 按下按钮将我带到一个新窗口。

如果按下按钮,它应该打开一个新窗口,如果之前放入了该窗口,则在文本框中使用相同的表单元素和文本。

另请注意,新窗口必须作为浏览器中的新选项卡打开,其状态和元素与之前的浏览器相同。

任何人都有这个想法(使用剃刀视图引擎或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 个答案:

答案 0 :(得分: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元素,因此您可以根据需要添加单独的表单。