¿Cómo obtener la url de la imagen seleccionada en las imágenes de Google?

0

Escribo el flujo de trabajo de Automator que adjuntará la miniatura de la imagen de Google, que se puede seleccionar en el menú contextual o la tecla de acceso rápido habilitada.

Ahora estoy tratando de averiguar qué tipo de objeto ve Automator cuando hago clic derecho en la imagen en safari. Probé contenido web, imágenes, documentos, todo lo demás, pero nada funciona.

También intenté acciones como Abrir documento de safari + cargar imágenes desde contenido web, pero no es mi caso.

¿Es posible, en absoluto, agregar la opción del menú contextual a la imagen de Google?

    
pregunta DevOvercome 02.12.2014 - 04:38

1 respuesta

0

De acuerdo, mi forma de hacerlo es pedirle a Safari que haga javascript para obtener todo lo que necesito (me refiero a las URL de las imágenes completas) para la página actual, cuando el usuario presiona las teclas de acceso rápido.

El truco es que cuando seleccionas (acorralar) la imagen, ves un cuadro negro en la parte inferior de la mini-imagen. Seguramente, significa que se ha cambiado el HTML, así que simplemente me di cuenta de los cambios (mostrar la propiedad cambia de ninguno a bloquear) y le pido a JS que obtenga cualquier bloque con esa propiedad, cuando el usuario presiona la tecla.

Vea el código a continuación para más detalles.

tell application "Safari"
set result to (do JavaScript " 
               function f() 
               { 
                   var imageHolderElements =  document.getElementsByClassName('_aOd rg_ilm'); 
                   for (var i = 0; i < imageHolderElements.length; i++) 
                   { 
                       var style = getComputedStyle(imageHolderElements[i], null); 
                       var display = style.getPropertyValue('display'); 
                       if (display == 'block') 
                       { 
                           var src = imageHolderElements[i].parentNode.getAttribute('href'); 
                           var parameter = 'imgurl='; 
                           var index = src.indexOf(parameter) + parameter.length; 
                           console.log(index); 
                           var result = src.substring(index, src.length); 
                           console.log(result); 
                           var paramDelim = result.indexOf('&'); 
                           if (paramDelim > 0){ 
                                var result_result = ''; 
                               result_result = result.substring(0, paramDelim); 
                           } 
                           console.log(result_result); 
                           return result_result; 
                       } 
                   }
               } 
                var x = 1; 
               var x = '' + f(); x" in current tab of first window) as string
return result
end tell
    
respondido por el DevOvercome 12.12.2014 - 13:19

Lea otras preguntas en las etiquetas