我使用 window.open 来填充具有不同内容的新窗口。主要是来自自动化流程的报告和存储的 HTML。
我注意到 Chrome 在 window.open() 方面有一些非常不一致的行为。
我的一些调用将创建一个新选项卡(首选行为),一些调用会导致弹出窗口。
var w = window.open('','_new');
w.document.write(page_content);
page_content 只是来自 AJAX 调用的常规 HTML。报告在标题中包含一些信息,如标题、图标和一些样式表。
在 IE9 中,代码确实会导致出现一个新选项卡而不是弹出窗口,而 Chrome 则断然拒绝在新选项卡中显示相关内容。由于内容是敏感的业务数据,我无法将其发布在这里。如果可以的话我会回答问题。
我知道有些人会说这是用户的行为,但这是一个内部业务平台。我们没有时间培训所有用户如何管理弹出窗口,我们只需要它位于新选项卡中。哎呀,即使是一个新窗口也比弹出窗口更好,因为你无法在 Chrome 中停靠弹出窗口。更不用说任何弹出窗口阻止代码都不会影响它。
欣赏任何见解。
window.open 必须在由用户操作(例如 onclick)触发的回调中调用,以便页面在新选项卡而不是窗口中打开。
Example:
$("a.runReport").click(function(evt) {
// open a popup within the click handler
// this should open in a new tab
var popup = window.open("about:blank", "myPopup");
//do some ajax calls
$.get("/run/the/report", function(result) {
// now write to the popup
popup.document.write(result.page_content);
// or change the location
// popup.location = 'someOtherPage.html';
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)