Javascript 将内容写入空白选项卡,然后在该空白选项卡中提交表单

Javascript 将内容写入空白选项卡,然后在该空白选项卡中提交表单,javascript,browser,tabs,Javascript,Browser,Tabs,这有点难以解释,但我会尽力的 我的网页显示一个“事物”的报告,每个事物旁边都有一个图标,单击该图标时,会打开一个新的选项卡,将用户带到第三方网站,并向他们显示有关该特定事物的分析 在单击图标时,我的javascript对我的soap服务进行ajax调用以构造此url(需要我的后端执行跨域ajax调用)。返回需要20-40秒(对此我无能为力) 我想做的是,单击图标后立即让javascript打开一个新选项卡(必须是新选项卡,而不是新窗口)。在这个新标签中,我想显示一条简单的消息,告诉用户他们很快就

这有点难以解释,但我会尽力的

我的网页显示一个“事物”的报告,每个事物旁边都有一个图标,单击该图标时,会打开一个新的选项卡,将用户带到第三方网站,并向他们显示有关该特定事物的分析

在单击图标时,我的javascript对我的soap服务进行ajax调用以构造此url(需要我的后端执行跨域ajax调用)。返回需要20-40秒(对此我无能为力)

我想做的是,单击图标后立即让javascript打开一个新选项卡(必须是新选项卡,而不是新窗口)。在这个新标签中,我想显示一条简单的消息,告诉用户他们很快就会被重定向。然后发送ajax调用,成功后,选项卡重定向到该url

我写的代码除了在打开时向用户显示消息外,完成了我需要的一切。有人能告诉我如何将内容写入这个空白选项卡吗?或者我是否需要创建自己的页面,在页面上显示消息并发布,而不是关于:blank

我的代码是这样的:

var form = document.forms['form'];
form = document.createElement('form');
form.setAttribute('name', 'form');
form.setAttribute('method', 'post');
form.setAttribute('target', _blank);
form.setAttribute('id', 'uniqueID');
form.setAttribute('action', 'about:blank');

document.body.appendChild(form);
form.submit();

$.ajax({
  // call to my soap service that returns an URL, this part all works correctly
  // only the success handler is worth showing
  success: function(resultObj) {
    form.setAttribute('action', resultObj.URL);
    form.submit();
  }
});

我要做的是创建一个重定向页面,获取从表单构建URL所需的任何信息。在“新建”选项卡中打开此页。如果碰巧您构建URL的服务和您当前的网页在同一台服务器上,您可能不再需要进行ajax调用。。只需使用服务器语言重定向即可。您的要求
(必须是新选项卡,而不是新窗口)
是不可能的。您无法控制,因为这是在浏览器中设置的用户首选项,由用户控制……。但您可以做的是创建自己的“选项卡式”解决方案,其中每个选项卡使用
iframe
来显示外部结果。“有人能告诉我如何将内容写入此空白选项卡吗?”-您不能,因为你一开始没有提到它。它不是由脚本打开的,而是由于提交的表单而自动打开的。“或者我是否需要创建自己的页面,其中包含消息并发布该消息,而不是关于:blank?”-是,除非您愿意使用window.open先打开新的窗口实例。(正如@LGSon所提到的,无论这会给你带来一个标签还是一个“弹出窗口”,都不在你的管辖范围之内。)谢谢大家。我有一个错误的印象,表单append和submit导致了新选项卡(而不是新窗口)。现在我看到它已经超出了我的控制范围,使用window.open肯定是有意义的,因为它返回一个指向窗口的指针以及写入窗口的方法。