强制 window.open() 在 chrome 中创建新选项卡
Force window.open() to create new tab in chrome
我使用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)触发的回调中调用,才能在新选项卡而不是窗口中打开页面。
例:
$("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';
});
});
你可以试试这个:
<a href="javascript:openWindow();">open a new tab please</a>
<script>
function openWindow(){
var w = window.open("about:blank");
w.document.write("heheh new page opened");
}
</script>
非常简单,为了强制Chrome在新选项卡中打开,请使用onmouseup事件
onmouseup="switchMenu(event);"
我已经尝试过了,它在 chrome 中工作正常。如果在用户操作(例如鼠标单击)上打开新选项卡,这将正常工作,没有任何问题。但是,如果代码在另一个脚本块中执行,则可能需要在 chrome 中启用弹出窗口。看起来这是为了处理所有点击诱饵网站。
let newTab = window.open('', '_blank');
if (this.viewerTab == null) {
console.log("opening in new tab to work, pop-ups should be enabled.");
return;
}
................
newTab.location.href = viewerUrl;
window.open('page.html', '_newtab');
指定"_newtab"。 这适用于IE和FF,并且应该适用于Chrome。 但是,如果用户将内容配置为不在新选项卡中打开,那么您无能为力。
- 通过js在新选项卡中有条件地打开url
- 新选项卡被弹出窗口阻止程序阻止
- 在新选项卡中打开链接,但不使用_blank方法
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 在同一选项卡中启动下载,而无需在Javascript中打开新选项卡或窗口
- Javascript事件;在新选项卡中打开”;
- jQuery-尝试附加每个要选择的新选项
- 使用Javascript从Drupal打开新选项卡
- 强制 window.open() 在 chrome 中创建新选项卡
- 如何重新创建Chromium/Chrome新选项卡主页
- 如何在新选项卡中打开新创建的图像
- 如何创建 onPageLoad 框,以便用户可以单击在新选项卡中打开链接的图像
- 您如何创建一个链接,单击该链接会将您带到一个页面,并打开一个转到另一个 URL 的新选项卡
- 在jQuery中创建的URL既重定向到又打开一个新选项卡
- 如何在Chrome中使用现有链接自动创建新选项卡
- 如何在Firefox扩展中创建新选项卡并获取选项卡的元素
- 如何打开邮件链接在Chrome与窗口.打开而不创建新选项卡
- 当使用JavaScript时,我如何创建自动单击链接并在新选项卡中打开它的代码?
- IE9在表单提交上打开新选项卡(表单具有target属性,指向动态创建的iframe)
- 无法操作通过chrome.tabs创建的新选项卡的DOM