首页 > 解决方案 > 在 chrome 中打开包含特定内容的新标签页

问题描述

我需要在浏览器中打开新选项卡,在其中为用户指定基本说明(可能是 html 字符串?)(我没有网站)。

我从w3schools得到的最接近的是:

var myWindow = window.open("", "MsgWindow", "width=200,height=100");
myWindow.document.write("<p>This is 'MsgWindow'. I am 200px wide and 100px tall!</p>");

但是我有问题:

  1. 打开新窗口(我真的更喜欢新标签) -这里的评论说取决于用户浏览器设置(所以也许解决了)
  2. 在 Chrome 中不起作用(我测试了 86.0.4240.198) - 在 FF 中成功测试

标签: javascript

解决方案


只需打开一个网站

//tab spawner
var myWindow=window.open("chrome://newtab");
myWindow.onload=function(){this.document.write('textHere')}

问题是,你需要有一个来源,例如我的,chrome://newtab但是一旦你做到了,""它就行不通了

但是,您可以在源代码中使用简单的点来使其工作。例如

//window spawner
var myWindow=window.open("...", "MsgWindow", "width=200,height=100");
myWindow.onload=function(){this.document.write("<p>This is 'MsgWindow'. I am 200px wide and 100px tall!</p>")}

请注意,这将chrome://newtab-page/...作为它的源打开,然后你用任何东西覆盖它。在最后一个示例中,我将向您展示如何从新选项卡执行 javascript 的 2 种方法

//window spawner
var myWindow=window.open("javascript:alert('this message comes from url source')", "MsgWindow", "width=200,height=100");
myWindow.onload=function(){
  this.document.write("<p>This is 'MsgWindow'. I am 200px wide and 100px tall!</p>")
  this.window.eval(`alert('this message comes from the tab or window')`)
}

推荐阅读