我有一个浏览器扩展程序,该程序可以截取可见页面的屏幕截图(使用浏览器的API)。
用户通过注入到网页中的自定义上下文菜单启动该过程。
wrapper.addEventListener("contextmenu", function(e) {
//prevent default context menu
e.preventDefault();
menu.style.display = "block";
});
menu.addEventListener("click", function click(e) {
e.preventDefault();
e.stopPropagation();
//prevent the appearance of the menu in the screenshot
menu.style.display = "none";
capture();
}, false);
问题在于菜单在屏幕截图中仍然可见。有没有一种方法可以检测出何时反映了样式更改?
谢谢。
最佳答案
我通过在父元素上附加一个侦听器解决了这个问题(不知道为什么它起作用了)
wrapper.addEventListener("contextmenu", function(e) {
//prevent default context menu
e.preventDefault();
menu.style.display = "block";
});
wrapper.addEventListener("mousedown", function(e) {
//can't use "display: none" before mouseup
menu.style.opacity = 0;
}, false);
menu.addEventListener("click", function click(e) {
e.preventDefault();
e.stopPropagation();
//prevent the appearance of the menu in the screenshot
menu.style.display = "none";
capture();
}, false);
关于javascript - Javascript-检测何时反射(reflect)样式更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16532435/