2

我正在尝试获取新打开的选项卡的引用并在同一功能中使用它来关闭选项卡并重新打开,以获取更多详细信息:我想创建一个 Java 脚本按钮

  1. 第一次点击打开一个新标签
  2. 在第二次单击同一按钮时关闭选项卡并重新打开同一选项卡

var Window; 
// Function that open the new Window 
function windowOpen() { 
  Window = window.open( "https://www.google.com/", "_blank", "width=400, height=450"); 

  // if (window.opener) {
  //     window.opener.announceWindow( window );
  // }
}
// function announceWindow( win ) {
//     window.close();
// }
<button onclick="windowOpen()" target=_blank> 
    Open Window
</button> 

4

2 回答 2

2

你可以使用这样的东西:

let google;
let open = false;
function toggleWindow() {
    open = !open;
    if (open) {
        google = window.open("https://www.google.com/", "_blank", "width=400, height=450");
    } else {
        google.close();
    }
}
于 2019-08-26T19:42:28.733 回答
2

你可以这样做:

var Window = window.open('https://www.google.com');
function windowOpen() {
  if(Window !== null){
      alert("Window alreay open");
      Window.close();
      Window = null;
  }else {
    Window = window.open('https://www.google.com');
  }
}
<button onclick="windowOpen()">
  Open Window
</button>

open()函数打开一个新选项卡。默认情况下,它的name属性具有_blank值。但是,如果您手动关闭选项卡,那么您必须刷新页面才能使 JS 正常工作,否则即使在关闭选项卡后您也会收到“窗口已打开”的警报。

于 2019-08-26T20:08:06.700 回答