Як отримати URL обраного зображення в зображеннях Google?


0

Я пишу Automator workflow, який додасть мініатюру google image, який можна буде вибрати в контекстному меню або з включеною гарячою клавішею.

Тепер я намагаюся з'ясувати, який тип об'єкта бачить Automator, коли я натискаю правою кнопкою миші на зображенні в сафарі. Я спробував веб-контент, зображення, документи, все інше, але нічого не працює.

Також я спробував дії, такі як Отримати відкритий сафарі документ + завантажити зображення з веб-контенту, але це не мій випадок.

Чи можна взагалі додати пункт контекстного меню до образу Google?

Відповіді:


0

Добре, мій шлях полягає в тому, щоб попросити Safari зробити JavaScript, який отримає все те, що мені потрібно (я маю на увазі URL-адреси повноцінних зображень) для поточної сторінки, коли користувач натискає гарячу клавішу.

Хитрість полягає в тому, що, коли ви вибираєте (hower) зображення, ви бачите чорний ящик у нижній частині міні-зображення. Це означає, що HTML змінився, тому я просто зрозумів, що зміни (відображаються зміни властивостей від жодного до блоку) і запитають JS отримати будь-які блоки з цим властивістю, коли користувач натискає клавішу.

Докладніше див.

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

Ви впевнені, що вставлений код правильний, в тому числі після котирувань tell application?
nohillside

1
ну, це працює під NSAppleScript Я просто копію-вставляю звідти скрипт-частина. Гаразд, я хотів би видалити ці символи, якщо вони такі незрозумілі. Я все. Він був скомпільований у редакторі AppleScript, і він працює відмінно
DevOvercome
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.