2012-02-29 46 views
1

我有一个jsp page并点击submit button时,一个新的页面在同一页中打开,但我想那是什么new page(window)应该打开inside same page但其尺寸更小的,就像您已经在很多网站上看到过。 after clicking submit button a new page will be opened in a less size,我该如何使用jquery/javascript小尺寸打开同一个页面内一个新的窗口

index.jsp 

<form action="newwindow.jsp" target="_self"> 
<input type="submit value="click here"/> 
</form> 

任何想法,请

+0

“新页面(窗口)”是否意味着模态窗口? – 2012-02-29 11:56:53

+0

亚模态窗口会好的 – Tom 2012-02-29 12:00:56

回答

2

我绝对不知道,如果我明白你的问题,但也许这将帮助你?

<a class=".openWin" href="_#">click here</a> 

$('.openWin').click(function(ev){ 
    window.open('/newwindow.jsp','Title','width=200,height=400'); 
    ev.preventDefault(); 
    return false; 
}); 

如果这不是你想到的,我建议看看jquery dialog plugin。评论后

编辑:

也许你正在尝试做一些事情,并不需要打服务器。如果你只需要打开一个包含表单值的“窗口”。您可以访问任何像这样的表单字段值...

var formFieldVal = $('input[name="myInput"]).val(); 

现在你可以(也用jQuery),创建一个“窗口”是这样的:

var divWindow = $('<div class="overlay"><div>' + formFieldVal + '</div></div>'); 

,并把它添加到您的文档

$(body).append(divWindow); 

现在风格的动态添加的div像这样(CSS),和你有一个窗口的外观:

.overlay { 
    visibility: hidden; 
    position: absolute; 
    left: 0px; 
    top: 0px; 
    width:100%; 
    height:100%; 
    text-align:center; 
    z-index: 1000; 
} 

.overlay div { 
    width:300px; 
    margin: 100px auto; 
    background-color: #fff; 
    border:1px solid #000; 
    padding:15px; 
    text-align:center; 
} 
+0

是'form'中工作的东西吗? – 2012-02-29 12:00:37

+0

你绝对可以使它工作,只是想告诉你,你可以调用'window.open'来打开一个新窗口。 – mindandmedia 2012-02-29 12:01:17

+0

是表单参数值,也可以像调用它一样调用它。 – 2012-02-29 12:04:21

3

下面应该使用你的示例代码,认为你正在寻找target =“_ blank”,而不是_self,因为_self是同一个窗口,并且具有相同的没有目标值的效果。另外,不要以为目标=“_ blank”这些天受到鼓励,再加上带有标签的浏览器,它只会在新标签页中打开,而不会被重新调整大小。

希望下面的帮助基于试图居中弹出

<form target="popup" action="google.com" onsubmit="window.open('', this.target, 'width=300,height=300,resizable,scrollbars=yes'); return true;"> 
<input type="submit" value="click here"/> 
</form> 

新的示例代码。

我认为quesiton令人困惑,因为它不清楚弹出窗口是否访问服务器端的东西,如果它需要访问表单内容。针对这个问题提供的其他答案也可以根据您的情况适合您。下面是我修改后的代码,希望这会有帮助,但不会100%确定,因为上下文有点令人困惑

<script> 
function openWindow(h, w, url) { 
    leftOffset = (screen.width/2) - w/2; 
    topOffset = (screen.height/2) - h/2; 
    window.open(url, this.target, 'left=' + leftOffset + ',top=' + topOffset + ',width=' + w + ',height=' + h + ',resizable,scrollbars=yes'); 

} 
</script> 
<form name="form2" id="form2" method="post" action="google.com" onsubmit="openWindow(300, 300, 'google.com');"> 
<input type="submit" value="click here"/> 
</form> 
+0

+1:欢迎来到stackoverflow! – mindandmedia 2012-02-29 12:06:53

+0

+1为你的答案,但我怎样才能通过指定它的位置,使窗口在中间位置? – Tom 2012-02-29 12:13:47

+0

感谢mindandmedia。 @tom放在window.open上,你可以指定你想要的浏览器的大小/ 2减去弹出窗口大小的一半,即(browser-width/2) - (popup-width/2)。左边和上边的指定方式与我的示例中的宽度参数相同。 screen.width和screen.height应该得到浏览器分辨率 – ChrisM 2012-02-29 12:24:55