@@ -60,10 +60,13 @@ function getComputedBackgroundImages(element, pseudo) {
6060 style . getPropertyValue ( 'background-image' ) ,
6161 style . getPropertyValue ( 'content' ) ,
6262 ] ;
63+ /** @type {Set<string> } */
6364 const images = new Set ( ) ;
6465 for ( const value of values ) {
6566 for ( const [ , url ] of value . matchAll ( / u r l \( " ( .+ ?) " \) / g) ) {
66- images . add ( url . replaceAll ( '\\"' , '"' ) ) ;
67+ if ( url ) {
68+ images . add ( url . replaceAll ( '\\"' , '"' ) ) ;
69+ }
6770 }
6871 }
6972 return images ;
@@ -85,15 +88,22 @@ if (chrome.runtime) {
8588 let x = 0 ;
8689 let y = 0 ;
8790
88- document . addEventListener ( 'contextmenu' , ( event ) => {
89- if ( event . target instanceof Element ) {
90- root = event . target . ownerDocument ;
91- }
92- x = event . clientX ;
93- y = event . clientY ;
94- } ) ;
91+ window . addEventListener (
92+ 'contextmenu' ,
93+ ( event ) => {
94+ if ( event . shiftKey ) {
95+ event . stopPropagation ( ) ;
96+ }
97+ if ( event . target instanceof Element ) {
98+ root = event . target . ownerDocument ;
99+ }
100+ x = event . clientX ;
101+ y = event . clientY ;
102+ } ,
103+ { capture : true } ,
104+ ) ;
95105
96- chrome . runtime . onMessage . addListener ( ( message , sender , sendResponse ) => {
106+ chrome . runtime . onMessage . addListener ( ( _message , _sender , sendResponse ) => {
97107 sendResponse ( [ ...getBackgroundImages ( root , x , y ) ] ) ;
98108 } ) ;
99109}
0 commit comments