【解決】iPhoneのショートカットで「Webページなし」が出る。Webページが入力として渡されなかったため…って何?

2021-03-25

iPhoneショートカットWebページなし_eyecatch
iPhoneのショートカットアプリを使ってWebページでJavaScriptを実行しようとした時に「Webページなし」と出て実行できない。

説明を見ると「Webページが入力として渡されなかったため、"WebページでJavaScriptを実行"を実行できませんでした。」とある。

そもそもこの説明の入力として渡されなかった理由が分からない。
Safariで開いているページ上で共有シートから読み込んでいるのにダメ。

アップルのユーザーガイドを熟読してもそれらしき解決方法は見当たらず…
読み込むページを変えてみたり、コードを編集したり…3時間ほどハマったのですが無事に解決できたので共有します。

開き方もコードも合っていて、ショートカットの作成が間違っていました。

ショートカットアプリで「Webページなし」が出る

iPhoneのショートカットを使用するとSafariで開いているWebページでJavaScriptを実行することができ、ページのスーパーリロードなど標準の機能ではできないことが出来るようになるので便利そうだと思って使ってみたのが事の始まりでした。

2022.2.16追記

ショートカットアプリのオートメーションでWebページなしが出る時については別の記事当ページ下部にリンクあり)に詳しく書いています。

ショートカットの作成方法

この記事を見て下さっている方はショートカットの作成自体は終わっているはずなので簡単にいきます。

  1. ショートカットアプリを開いて+ボタンをクリック。
  2. +アクションを追加をクリック。
  3. 横にスライドしてWebを選択。
  4. スクロールしWebページでJavaScriptを実行を選択。
  5. 共有シートからショートカットを呼び出すために編集に進む。

WebページでJavaScriptを実行させるにはSafariからショートカットを開く必要があるため、続いてSafariのフッターメニュー(共有シート)にショートカットが表示されるように設定します。

  1. ショートカット名の入力。
  2. 共有シートに表示をON。
  3. 共有シートタイプで「SafariのWebページ」のみを選択する。
  4. 完了を押して作成終了。

以上でショートカットの登録は完了。

もっと詳しくショートカットの作成方法を見たい方は関連記事をご確認下さい。
iPhoneのスーパーリロードを作った時の記事でショートカットの作り方は同じです。

関連記事

iPhone Safariでスーパーリロードする方法!キャッシュクリアの方法~リロード用ショートカットの作成まで。
スーパーリロード用のショートカットを作成するの項目へ

スポンサーリンク

WebページでJavaScriptを実行する

iPhoneショートカットWebページなし6

スクリプトを実行したいサイトを開き、メニュー(共有シート)を開く。

iPhoneショートカットWebページなし7

作成したショートカットを押せばページ上でスクリプトが実行されるらしい。

が、「Webページなし」と出て実行できませんでした。

「Webページが入力として渡されなかったため、"WebページでJavaScriptを実行"を実行できませんでした。」とあるので原因を調べつくしたのですが、有力情報は見つからず…困っている方も多いようです。

何とか解決せねば。と思い早3時間。やっと動かせました。。。

「Webページなし」の解決法

どうもショートカットを作る時「Webページに対してJavaScriptを実行」を選んでいたのが間違いのようです。

これで間違いとは…最近日本語変わった?
ややこしいので画像多めで順番に説明します。

「Webページなし」が出てしまって動かないショートカットを編集します。

iPhoneショートカットWebページなし10

ショートカットの「…」を押す

編集するショートカットのアイコンの右上にある…を押します。

iPhoneショートカットWebページなし11

Webページとなっている場合✕

ここがミソです!
「Webページ」に対してJavaScariptを実行となってる場合、Webページが入力として渡されないようです。

追記

執筆時はiOS14ですが、iOS15では「Webページ」に対してという項目に初めから「SafariのWebページ」という内容が入っており、問題なく動くようです。

Webページとなっている部分を押す。

iPhoneショートカットWebページなし12

ショートカットの入力に変更

「ショートカットの入力」に変更します。

iPhoneショートカットWebページなし13

ショートカットの入力を押す

ショートカットの入力を押す。

iPhoneショートカットWebページなし14

○○としてを変更する

ここが「SafariのWebページ」になっていないと、Webページが入力として渡されず「Webページなし」となるのです。

上の画像のようにショートカットの入力の中身を「SafariのWebページ」にし、
ショートカットの入力が「SafariのWebページとして」になっていればOK!

iPhoneショートカットWebページなし17

やっと動きました…

実行時のアクセス許可について

JavaScriptの初回実行時にはアクセス許可が必要です。

アクセス許可の説明に"機密情報の読み取りも含まれます。"とあるので不安を煽られますが、許可しないと実行できません。こちらは悪意のあるJavaScriptでない限り、許可してもそれほど大きな問題は起こりません。

不安な方は別記事に詳しく書きましたのでご確認下さい↓。

オートメーションでWebページなしが出る時

ショートカットアプリのオートメーションでも同エラー「Webページなし」が出ることがあります。こちらについて詳しくは別の記事に書きました。
ただ色々テストした結果、オートメーションから"WebページでJavaScriptを実行"というアクションは使えないようです。

iOSオートメーション-Webページなし_eyecatch
【iOS】オートメーションからは"WebページでJavaScriptを実行"は実行できない!「Webページなし」が出る…

続きを見る



まとめ

以上、iPhoneのショートカットを使いSafariでJavaScriptを実行した時にWebページなしが出てしまう時の解決策でした。

Webページに対してJavaScriptを実行ではダメ。
ショートカットの入力(SafariのWebページ)に対してJavaScriptを実行が正解。

少し鬼畜すぎやしませんかい?

当サイトのスマホデザインを確認するのにSafariでスーパーリロードが使えればと思ったのが、まさかこんなに時間を食ってしまうとは…なかなか進まないね。

追記

沢山のコメントを頂いております。ありがとうござます。
セキュリティやオートメーションに関する内容を別記事に整理しました。
ただ、別の何かが原因でまだ同じエラーが出る方がおられるようです…
詳しい動作環境とコードをお問い合わせ下されば、力になれるかもしれません。

-スマホ
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku