Javascript -检测何时反映了样式更改
Javascript - Detect when the style changes are reflected?
我有一个浏览器扩展,可以截取可见页面的屏幕截图(使用浏览器的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);
很可能将对capture
的调用放在具有适当延迟的setTimeout
中会达到目的。
相关文章:
- 检测价格是否高于或低于200.00,然后设置(此)表格行的样式
- 钛:平台检测并相应地改变界面样式
- 如何检测何时使用javascript动态注入了多个样式表
- 检测样式表是否无法加载(在 Firefox 上不起作用)
- 检测使用 javascript 动态分配的 css 样式/属性
- 检测样式是否为用户样式
- 如何设置样式/检测从页面中的浏览器本机搜索生成的突出显示框
- JQuery UI在通过php加载时未检测到CSS样式
- 如何检测浏览器是否支持开始边框样式
- 如何使用jquery检测内联css样式(停止滑块)
- 检测元素.Javascript会改变样式
- 检测用户的操作系统并重新排列/样式下载链接
- 如何使用YUI3检测HTML元素的样式更改
- 检测CSS样式渲染
- 检测CK编辑器样式菜单何时打开
- Javascript -检测何时反映了样式更改
- 检测浏览器类型并应用相关样式
- 是否可以检测元素的样式是浏览器默认的,还是由样式表或内联样式设置的?
- 检测视口单元(使用modernizr或normal js)并提供适当的样式表
- Javascript来检测浏览器并使用特定的样式表