Làm cách nào để nhúng tập lệnh apple trong một liên kết trong HTML?


2

Tôi đã cố gắng nhúng tập lệnh apple trong một liên kết trong HTML, nhưng tất cả những gì nó làm được đưa lên Ứng dụng Apple Script Editor với tập lệnh được lược tả trong đó.

Tôi muốn nó thực thi sau khi tôi nhấp vào liên kết - vì vậy tôi không phải nhấn nút phát .

Ai đó có thể giúp tôi khắc phục điều này thực sự nhanh chóng?

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>

Kết quả:

nhập mô tả hình ảnh ở đây


Điều này được thực hiện vì lý do bảo mật vì mọi thứ trong trình duyệt của bạn chỉ có thể mở URL, có nghĩa là nó có thể chạy mã tùy ý.
0942v8653

Bạn đang nói rằng những gì tôi đang cố gắng làm là không thể? chính xác ?
iori

Thực tế là không thể, chỉ là một ý tưởng tồi :) Bạn phải tạo sơ đồ url của riêng mình để chạy nó.
0942v8653

Tôi hoàn toàn với bạn. Tôi nhận thức được 100% về điều đó, nhưng vì lợi ích của việc này, bạn có biết làm thế nào để thực hiện công việc này không? : D
iori

1
Chắc chắn có một ứng dụng cho phép bạn làm điều này, nhưng tôi không thể tìm thấy nó ...
0942v8653

Câu trả lời:


1

Ứng dụng này được gọi là LinCastor . (Nó cũng có thể được cài đặt với thùng homebrew nếu bạn có nó.)

Đầu tiên, nhấp vào "thêm lược đồ mới" ở dưới cùng bên trái của cửa sổ chính, sau đó thay đổi tiêu đề thành bất cứ thứ gì bạn thích và "lược đồ" thành x-applescript-runner.

Thay đổi "trình xử lý" bên dưới từ AppleScript thành Shell và dán mã này vào:

#!/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])

Nhấn "Lưu và kích hoạt", sau đó kiểm tra nó bằng url này:

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

Rõ ràng là bạn sẽ muốn thay đổi mật khẩu từ secretmột cái gì đó tốt hơn như V2VkIEZlYiAxMSAyMjo0MjozOSBFU1QgMjAxNQo=(nhưng cũng không phải vậy!). Mật khẩu sẽ làm cho nó an toàn hơn một chút, nhưng tất nhiên bất cứ ai nhìn thấy URL của bạn vẫn có thể chạy bất cứ thứ gì họ muốn với một URL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.