Javascript onclick=window.open() 函数会在我每次刷新页面时打开一个新页面吗?
Javascript Onclick=window.open() function will open a new page every time I refresh the page?
所以我有一个 DIV 元素,当按下它时,我想在另一个 window 中打开一个新选项卡。唯一的问题是,每当刷新页面或按下任何其他 div 元素时,该功能也会启动并在另一个 window 中打开页面。我将在下面包含我的代码,但我不确定为什么会这样,因为我正在使用 onClick={window.open("https://www.thechinesewriter.com")
就像我说的,我只想在 div 时打开一个新选项卡按下,而不是在单击页面上的任何其他项目时,甚至在刷新页面本身时。
import React from "react";
import "./Column1.css";
class Column1 extends React.Component {
render() {
return(
<React.Fragment>
<div className="rectImage">
<img className="imagePost" src={this.props.image} />
</div>
<div onClick={window.open("https://www.thechinesewriter.com")} className="downloadBut1">
<h2>
Source
</h2>
</div>
<div className="downloadBut2">
<h2>
Repository
</h2>
</div>
</React.Fragment>
)
}
}
export default Column1;
你使用了一个表达式,它会在每次渲染组件时执行。
<div onClick={window.open("https://www.thechinesewriter.com")} className="downloadBut1">
您可能是想使用函数
<div onClick={() => window.open("https://www.thechinesewriter.com")} className="downloadBut1">
您需要像这样将函数作为回调来调用。
<div onClick={() => window.open("https://www.thechinesewriter.com")} className="downloadBut1">
否则每次渲染组件时都会调用它。
所以我有一个 DIV 元素,当按下它时,我想在另一个 window 中打开一个新选项卡。唯一的问题是,每当刷新页面或按下任何其他 div 元素时,该功能也会启动并在另一个 window 中打开页面。我将在下面包含我的代码,但我不确定为什么会这样,因为我正在使用 onClick={window.open("https://www.thechinesewriter.com")
就像我说的,我只想在 div 时打开一个新选项卡按下,而不是在单击页面上的任何其他项目时,甚至在刷新页面本身时。
import React from "react";
import "./Column1.css";
class Column1 extends React.Component {
render() {
return(
<React.Fragment>
<div className="rectImage">
<img className="imagePost" src={this.props.image} />
</div>
<div onClick={window.open("https://www.thechinesewriter.com")} className="downloadBut1">
<h2>
Source
</h2>
</div>
<div className="downloadBut2">
<h2>
Repository
</h2>
</div>
</React.Fragment>
)
}
}
export default Column1;
你使用了一个表达式,它会在每次渲染组件时执行。
<div onClick={window.open("https://www.thechinesewriter.com")} className="downloadBut1">
您可能是想使用函数
<div onClick={() => window.open("https://www.thechinesewriter.com")} className="downloadBut1">
您需要像这样将函数作为回调来调用。
<div onClick={() => window.open("https://www.thechinesewriter.com")} className="downloadBut1">
否则每次渲染组件时都会调用它。