マウスの中ボタンを押すと、1秒後にコンソールで "1秒後"と表示されます。それは大丈夫です、私が必要とするものです。しかし、マウスの中ボタン(mouseup listener)を離した場合、1秒の遅延を止めたいと思っています。しかし今は 'wait'関数が 'mouseup'を実行している間にリスナーは 'delay'変数をfalseに変更しません(1秒後のみ)。しかし、MBは私がそれを行うことができる方法はありますか?更新getTimeで動作する割り込み/割り込み関数の実行
function wait(ms){
var start = new Date().getTime();
var end = start;
while((end < start + ms) && delay == true) {
end = new Date().getTime();
}
}
var delay = false;
document.addEventListener("mousedown", function(e) {
if (e.button == 1) { // 1 - middle mouse button
delay = true;
wait(1000); // delay 1 sec
console.log("after 1 sec");
}
});
document.addEventListener("mouseup", function(e) {
if (e.button == 1) {
delay = false;
}
});
を(それがのmouseup真ん中のボタンではなく、1秒に0.5秒遅れたときなど、「待機」関数を停止する):私はdocument.execCommand("copy");
でconsole.log("after 1 sec");
を交換するつもりです 、我々はにコピーを遅らせることができますクリップボードsetTimeout()
FUNCを使ってChromeブラウザでの1秒間の最大が、それはsetTimeout()
とFirefoxで動作しますが、Firefoxの(許可される999ミリ秒の最大値)のためのwait(999); document.execCommand('copy');
作品ではないでしょう
私は本当にしたいことを言及していたはずです。私は、 'console.log(" after 1 sec ");を' document.execCommand( "copy"); 'に置き換えようとしています。' setTimeout() 'funcですが、' setTimeout() 'でFirefoxでは動作しませんが、' wait(999); document.execCommand( 'copy'); 'はFirefox(最大999ミリ秒)で動作します。 – user25
setTimeout()からクリップボードをコピーできない場合は、解決策はありません。ビジー待機は常にマウスアップイベントをブロックします。 –