メモ作成: 2020-01-18
メモ更新: 2024-01-08
かなり前のことで確かではないがRedditで見つけたはずの、この『「WebページでJavascriptを実行」アクションを使わない、Data URIスキームを使ったJavascript実行方法』は、OSのアップデートを乗り越えて現在でも有効そうだ。(2020-01-18現在)
例:
ショートカット「数値文字参照に変換」
https://www.icloud.com/shortcuts/4006803edf294cbc9219826353c2d901
(return〜 の行と、次の {t};`; は表示上2行に分かれているいるだけで実際は一行。)
- HTML内にJavascriptを書き
- Data URIスキームにする。(URLアクションは勝手にURLエンコードしてくれる。)
- Webページの内容を取得アクションでページを取り込み
- そこから、入力からテキストを取得アクションで結果を取り出す。
※上のショートカットでは、出力データの直後に不必要な半角スペースが付いてしまう。それを無くすには、HTMLの最後の部分を
</script></body></html>
と、改行せずに1行にした方が良い。
実際に、作ったショートカットを使ってみる。
はてなブログ(無料版)を使っていると、はてなキーワード(はてなブログ タグ?)の誤リンクによく出会う。
本来、はてなキーワードになるべきなのは「トークン」なのに、「トーク」と中途半端な箇所で切られてはてなキーワードになってしまっている。
この「数値文字参照に変換」ショートカットを実行し、「トーク」と入れる。
クリップボードに変換結果がコピーされる。
はてなの編集画面で、該当部分をコピーされた内容で置き換える。
実際はこんなことをしなくても、[]トーク[]
のようにすればリンクされなくなる。
Javascriptの実行例として書いた。
2024-01-08 最近のiOSのアップデートで、base64エンコードが必要になったのかな?
とうとう何も値が返ってこなくなった。
こうなったら、Actionsアプリの「Transform Text with JavaScript」アクションとかで代用するしかないのかな?
と思ったが、試しにHTMLをbase64エンコードしてから渡すように変更してみたら動いてくれた。 (行区切りなしで) https://www.icloud.com/shortcuts/90db6299c8944d7eac25006d91052996