0 votes

Comment obtenir l'url de l'image sélectionnée dans google images ?

J'écris un flux de travail Automator qui attachera une miniature d'image google, pouvant être sélectionnée dans le menu contextuel ou activée par une touche de raccourci.

J'essaie maintenant de déterminer quel type d'objet voit Automator lorsque je fais un clic droit sur une image dans Safari. J'ai essayé le contenu web, l'image, les documents, tout le reste, mais rien ne fonctionne.

J'ai également essayé des actions telles que Get opened safari document + load images from web-content, mais ce n'est pas mon cas.

Est-il possible d'ajouter une option de menu contextuel à Google Image ?

0voto

DevOvercome Points 21

Ok, ma solution est de demander à Safari de faire un javascript qui obtiendra tout ce dont j'ai besoin (je veux dire les urls des images complètes) pour la page actuelle, lorsque l'utilisateur appuie sur le raccourci clavier.

L'astuce est que lorsque vous sélectionnez l'image (hower), vous voyez une boîte noire en bas de la mini-image. Certainement, cela signifie que le HTML a été modifié, donc j'ai juste compris que les changements (la propriété display passe de none à block) et je demande au JS de récupérer tous les blocs avec cette propriété, lorsque l'utilisateur appuie sur la touche.

Voir le code ci-dessous pour plus de détails.

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X