如何为 onmousedown 添加延迟
How to add a delay to onmousedown
我正在尝试在 mousedown(单击)上设置延迟,这会在下面的代码中聚焦 newWin.focus:
所以简而言之,下面的代码工作正常。如果弹出窗口 window 处于打开状态,当用户单击页面上的任意位置时,它会重新聚焦于它(将其置于最前面)。
我想在用户点击页面时延迟 2 秒,然后让它重新聚焦到新的 window。
我花了好几个小时尝试使用各种设置超时来解决这个问题,但都无济于事。所以,我想我会展示我的作品,希望有人能解释我的需求是如何实现的。
PS:我仍在学习 javascript 并且绝不认为自己在该主题上知识渊博。
提前致谢!!
<script type="text/javascript">
var newWin;
function openPopup()
{
newWin=window.open('https://www.somesite/url.php','window','width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown=focusPopup;
document.onkeyup=focusPopup;
document.onmousemove=focusPopup;
}
function focusPopup(){
if(!newWin.closed){
newWin.focus();
}
}
</script>
只需使用setTimeout添加延迟。
The global setTimeout() method sets a timer which executes a function or specified piece of code once the timer expires.
var newWin;
function openPopup() {
newWin = window.open('https://www.somesite/url.php', 'window', 'width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown = function() {
setTimeout(focusPopup, 2000);
};
document.onkeyup = focusPopup;
document.onmousemove = focusPopup;
}
function focusPopup() {
if (!newWin.closed) {
newWin.focus();
}
}
<script type="text/javascript">
var newWin;
function openPopup()
{
newWin=window.open('https://www.somesite/url.php','window','width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown=()=>{
setTimeout(focusPopup,2000)
};
document.onkeyup=focusPopup;
document.onmousemove=focusPopup;
}
function focusPopup(){
if(!newWin.closed){
newWin.focus();
}
}
</script>
您可以将 setTimeout 添加到您的 mousedown 处理程序:
document.onmousedown = () => setTimeout(focusPopup, 2000);
我正在尝试在 mousedown(单击)上设置延迟,这会在下面的代码中聚焦 newWin.focus: 所以简而言之,下面的代码工作正常。如果弹出窗口 window 处于打开状态,当用户单击页面上的任意位置时,它会重新聚焦于它(将其置于最前面)。
我想在用户点击页面时延迟 2 秒,然后让它重新聚焦到新的 window。
我花了好几个小时尝试使用各种设置超时来解决这个问题,但都无济于事。所以,我想我会展示我的作品,希望有人能解释我的需求是如何实现的。
PS:我仍在学习 javascript 并且绝不认为自己在该主题上知识渊博。
提前致谢!!
<script type="text/javascript">
var newWin;
function openPopup()
{
newWin=window.open('https://www.somesite/url.php','window','width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown=focusPopup;
document.onkeyup=focusPopup;
document.onmousemove=focusPopup;
}
function focusPopup(){
if(!newWin.closed){
newWin.focus();
}
}
</script>
只需使用setTimeout添加延迟。
The global setTimeout() method sets a timer which executes a function or specified piece of code once the timer expires.
var newWin;
function openPopup() {
newWin = window.open('https://www.somesite/url.php', 'window', 'width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown = function() {
setTimeout(focusPopup, 2000);
};
document.onkeyup = focusPopup;
document.onmousemove = focusPopup;
}
function focusPopup() {
if (!newWin.closed) {
newWin.focus();
}
}
<script type="text/javascript">
var newWin;
function openPopup()
{
newWin=window.open('https://www.somesite/url.php','window','width=400,height=600,scrollbars=0,resizable=1,top=300,left=300');
document.onmousedown=()=>{
setTimeout(focusPopup,2000)
};
document.onkeyup=focusPopup;
document.onmousemove=focusPopup;
}
function focusPopup(){
if(!newWin.closed){
newWin.focus();
}
}
</script>
您可以将 setTimeout 添加到您的 mousedown 处理程序:
document.onmousedown = () => setTimeout(focusPopup, 2000);