Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. // This injects a box into the page that moves with the mouse;
  2. // Useful for debugging
  3. async function installMouseHelper(page) {
  4. await page.evaluateOnNewDocument(() => {
  5. // Install mouse helper only for top-level frame.
  6. if (window !== window.parent)
  7. return;
  8. window.addEventListener('DOMContentLoaded', () => {
  9. const box = document.createElement('puppeteer-mouse-pointer');
  10. const styleElement = document.createElement('style');
  11. styleElement.innerHTML = `
  12. puppeteer-mouse-pointer {
  13. pointer-events: none;
  14. position: absolute;
  15. top: 0;
  16. z-index: 10000;
  17. left: 0;
  18. width: 20px;
  19. height: 20px;
  20. background: rgba(0,0,0,.4);
  21. border: 1px solid white;
  22. border-radius: 10px;
  23. margin: -10px 0 0 -10px;
  24. padding: 0;
  25. transition: background .2s, border-radius .2s, border-color .2s;
  26. }
  27. puppeteer-mouse-pointer.button-1 {
  28. transition: none;
  29. background: rgba(0,0,0,0.9);
  30. }
  31. puppeteer-mouse-pointer.button-2 {
  32. transition: none;
  33. border-color: rgba(0,0,255,0.9);
  34. }
  35. puppeteer-mouse-pointer.button-3 {
  36. transition: none;
  37. border-radius: 4px;
  38. }
  39. puppeteer-mouse-pointer.button-4 {
  40. transition: none;
  41. border-color: rgba(255,0,0,0.9);
  42. }
  43. puppeteer-mouse-pointer.button-5 {
  44. transition: none;
  45. border-color: rgba(0,255,0,0.9);
  46. }
  47. `;
  48. document.head.appendChild(styleElement);
  49. document.body.appendChild(box);
  50. document.addEventListener('mousemove', event => {
  51. box.style.left = event.pageX + 'px';
  52. box.style.top = event.pageY + 'px';
  53. updateButtons(event.buttons);
  54. }, true);
  55. document.addEventListener('mousedown', event => {
  56. updateButtons(event.buttons);
  57. box.classList.add('button-' + event.which);
  58. }, true);
  59. document.addEventListener('mouseup', event => {
  60. updateButtons(event.buttons);
  61. box.classList.remove('button-' + event.which);
  62. }, true);
  63. function updateButtons(buttons) {
  64. for (let i = 0; i < 5; i++)
  65. box.classList.toggle('button-' + i, buttons & (1 << i));
  66. }
  67. }, false);
  68. });
  69. };
  70.  
  71. module.exports = {installMouseHelper};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement