<强>什么吗 我想能够做一个POST请求(不必是形式的数据)到一个新的窗口,而不使用目标属性(XHTML验证)。

<强>为什么吗 我有在用户选择多个条目来打印的web应用程序(使用jQuery)。每个条目ID应该发送到处理页面,会显示entires的打印版本。我不希望引导用户从web应用程序远离打印,我不能用在弹出的获得,因为进入ID的数量可能会变得太大,不适合在一个URL。

我用Google搜索和阅读几个论坛,大多数人似乎表明无论是目标直接或使用JavaScript将它的属性。我希望避免这两种解决方案。

这甚至可能如果是这样,怎么样?

在预先感谢:)

有帮助吗?

解决方案

在JavaScript中,截取表单提交,填充的是与你想要的值仅隐藏字段第二表格,并提交表单。

其他提示

这是 target 属性是什么。将其设置为“_blank”,打开一个新的窗口。如果您希望您的标记是有效的(这有什么意义呢?我向你保证,你的用户并不十分关心您的标记是否有效!),然后使用Javascript功能来设定目标在页面加载...

window.onload = function() {
  document.forms[0].target = '_blank';
}

有没有其他办法。

要针对当前页面的顶部,并在使用当前爆发任何框架,你会在HTML中使用<a href="page.htm" target="_top">。在Javascript中使用:

top.location.href = 'page.htm';

要定位的当前页面或框架可以在HTML使用<a href="page.htm" target="_self">。在Javascript中使用:

self.location.href = 'page.htm';

要的目标可以在HTML使用<a href="page.htm" target="_parent">父框架。在Javascript中使用:

parent.location.href = 'page.htm';

要的目标可以在HTML使用<a href="page.htm" target="thatframe">框架集内的特定帧。在Javascript中使用:

top.frames['thatframe'].location.href = 'page.htm';

要针对当前页面,您可以在HTML中使用<a href="page.htm" target="thatframe">中的特定的iframe。在Javascript中使用:

self.frames['thatframe'].location.href = 'page.htm'; 

target元素的属性<form>是在XHTML 1.0有效的过渡 ..

如果您使用XHTML 1.1或1.0严格则<iframe>不是首先一个有效的标签..

您可以使用JavaScript window.open“啪”的新窗口,在URL中使用GET参数来传递参数...但IMO它比在过渡的doctype使用目标属性差。

要做到这一点,最好的办法是,由AJAX调用DOM中动态创建并填充本身就是一个“假”的新窗口。这样,你不“破发”的用户体验(打开一个新窗口)。

如果您设置在打开的新窗口(称之为entryIds)从调用页面打开一个新窗口前,可以在像这样打开的页面引用它的页面的一些隐藏字段:

$(function() {
    var $opener = $(window.opener.document);
    var entryIds = $opener.find("#entryIds").val();
    // do something with the ids
});  

这里的缺点是,你现在离开,以显示通过JavaScript您的项目细节,以及。没有必要做一个表格后都没有。

如果你感觉活泼的你总是可以设置在揭幕战网页上的会话cookie的或(通过Web服务调用)条目号你打开新的窗口前,并打开的页面上抢会话,这样就可以在服务器端,而不是建立打印页。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top