Як вбудувати яблучний сценарій у посилання в HTML?


2

Я спробував вбудувати яблучний скрипт у посилання на HTML, але все, що він робить, виховується у програмі Apple Script Editor Application із профільованим сценарієм.

Я хочу, щоб він виконувався після натискання на посилання - тому мені не потрібно натискати кнопку відтворення .

Чи може хтось допомогти мені виправити це реально швидко?

link.html

<a href = " 

applescript://com.apple.scripteditor?
action=new&script=

tell application %22Safari%22%0D%09
make new document with properties {URL:%22https://www.google.com%22}%0D%09 

end tell "> 

Click me to run the script ! 

</a>

Результат:

введіть тут опис зображення


Це робиться з міркувань безпеки, оскільки будь-що у вашому браузері може просто відкрити URL-адресу, а це означає, що він може запускати довільний код.
0942v8653

Ви говорите, що те, що я намагаюся зробити, неможливо? правильно?
іорі

Насправді це неможливо, лише погана ідея :) Щоб запустити його, вам доведеться скласти власну URL-схему.
0942v8653

Я цілком з тобою. Я на це 100% усвідомлюю, але заради того, щоб випрацювали це, чи знаєте ви, як зробити цю роботу? : D
іорі

1
Однозначно був додаток, який дозволив вам це зробити, але я не можу його знайти ...
0942v8653

Відповіді:


1

Додаток називається LinCastor . (Він також може бути встановлений за допомогою домашнього бочка, якщо у вас є.)

Спочатку натисніть "Додати нову схему" в нижньому лівому куті головного вікна, потім змініть назву на те, що вам подобається, і "схему (схеми)" на x-applescript-runner.

Змініть "обробник" нижче від AppleScript на Shell і вставте цей код у:

#!/usr/bin/env python

THE_PASSWORD = 'secret'

import os
import urlparse
import subprocess

params = urlparse.parse_qs(os.environ["URL_QUERY"].lstrip('?'))

password = params['password'][0]
script = params['script'][0]

if password == THE_PASSWORD:
    subprocess.call(['osascript', '-e', script])

Натисніть "Зберегти та активувати", а потім протестуйте його за допомогою цього URL-адреси:

x-applescript-runner://?password=secret&script=display%20dialog%20%22hello%22%0A

Очевидно, ви захочете змінити пароль secretна щось краще V2VkIEZlYiAxMSAyMjo0MjozOSBFU1QgMjAxNQo=(але не те!). Пароль повинен зробити його більш безпечним, але, звичайно, кожен, хто бачить вашу URL-адресу, все одно зможе запускати все, що хоче, з URL-адресою.

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