我正在嘗試在 mousedown(單擊)上設定延遲,它將 newWin.focus 集中在下面的代碼中:所以簡而言之,下面的代碼可以正常作業。如果彈出視窗是打開的,當用戶點擊頁面上的任意位置時,它會重新聚焦(將其放回前面)。
當用戶點擊頁面時,我希望有 2 秒的延遲,然后讓它重新關注新視窗。
我花了幾個小時試圖解決這個問題,但無濟于事,在這里和那里使用各種 settimeout。所以,我想我會展示我所擁有的東西,并希望有人可以解釋我的需求是如何實作的。
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>
uj5u.com熱心網友回復:
您可以將setTimeout添加到 mousedown 處理程式:
document.onmousedown = () => setTimeout(focusPopup, 2000);
uj5u.com熱心網友回復:
<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>
uj5u.com熱心網友回復:
只需使用setTimeout來添加延遲。
全域 setTimeout() 方法設定一個計時器,一旦計時器到期,該計時器就會執行一個函式或指定的一段代碼。
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();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/408013.html
標籤:
