首页 > 解决方案 > Javascript 弹出,焦点在关闭后不再打开

问题描述

我正在使用带有 window.open 弹出窗口的 onclick 功能,弹出窗口以相同的按钮出现在前面,但关闭后它不再打开

<Button hideLabel aria-label={zxxxx "}
    className = {styles.button}
    icon = "plus"
    color = "danger"
    size = "lg"
    circle
    onClick = {
      () => {
        if (!this.state.isOpened) {
          this.setState({
            isOpened: true
          })
          var mywin = window.open("https://app.mural.co", "MsgWindow", "width=1366,height=768")
          mywin.addEventListener("beforeunload", function(e) {
            this.setState({
              isOpened: true
            })
          }, false)
          this.setState({
              windows: mywin
            }

            this.setState(mywin)
          }
          else {
            const window = this.state.windows;
            if (window) {
              window.focus();
            }

          }
        }
      }/>

标签: javascriptreactjsreact-native

解决方案


你的代码有问题。请参阅注释行。


     if (!this.state.isOpened) {
          this.setState({
            isOpened: true
          })
          var mywin = window.open("https://app.mural.co", "MsgWindow", "width=1366,height=768")
          mywin.addEventListener("beforeunload", function(e) {
            this.setState({
              isOpened: true
            })
          }, false)
          this.setState({ // there is no closing parenthesis for this
              windows: mywin
            }

            this.setState(mywin)
          }
          else {
            const window = this.state.windows;
            if (window) {
              window.focus();
            }

          }
        }

而且aria-label={zxxxx "}还缺了点什么。我强烈推荐一个为您指出这些错误的代码编辑器。


推荐阅读