
ユーザースクリプトは、Webページを開いたときに自分で用意したJavaScriptを動かす仕組みです。 表示を見やすく整える、繰り返す操作を補助する、といった使い方ができます。
一方で、実行対象にしたページの内容を読み取り、書き換えられるコードでもあります。 仕組みを理解せず、出所が分からないスクリプトを貼り付けるのは危険です。
この記事では、2026年9月6日時点でiPhone・iPadから使える主な方法を比較します。 後半では、プライベートブラウザ「ポルン」に安全なサンプルを登録し、検証、有効化、実行、停止まで確認します。
この記事の結論
- 普段のSafariに追加したいなら、Safari拡張機能のUserscriptsまたはTampermonkeyが候補です。
- プライベートな用途をSafariから分けたいなら、ポルンのユーザースクリプトを使えます。
- どの方法でも、配布元とコードの内容を確認できないスクリプトは実行しないでください。
ポルンはGreasemonkey 3.xやTampermonkeyの一部と似たmetadataを読み取れますが、完全互換ではありません。 GM APIや外部コードの読み込みを使うスクリプトは、そのままでは動きません。
iPhone・iPadで使える三つの方法を比較
三つともiPhone・iPadで利用できますが、実行されるブラウザと互換範囲が異なります。
| 方法 | 実行される場所 | 互換性の考え方 | 費用 | 向いている人 |
|---|---|---|---|---|
| Userscripts | Safari |
| 無料 | 無料でSafariに追加したい人 |
| Tampermonkey | Safari | ユーザースクリプトの管理機能を持つSafari拡張。使うスクリプトの要件は個別に確認 | 500円 | Safariで専用の管理画面を使いたい人 |
| ポルン | ポルン内のWebページ | Greasemonkey 3.x・Tampermonkeyの一部互換。GM APIには未対応 | 有効化と実行はプレミアム機能 | Safariと用途や履歴を分けたい人 |
価格と対応環境は2026年9月6日に日本のApp Storeで確認したものです。 購入前に最新の表示を確認してください。
ポルンのユーザースクリプトは、ポルンで表示したWebページだけに作用します。 Safariやほかのアプリで開いたページは変わりません。
先に知っておきたい安全上の注意
ユーザースクリプトは便利ですが、対象ページ内で動くプログラムです。 悪意のあるコードなら、ページに表示された情報を読み取ったり、入力やボタン操作を変更したりできます。
登録前に、少なくとも次の点を確認してください。
- 配布元と作者を確認できる
- 自分または信頼できる人がコードを読める
@matchや@includeの対象が必要なページだけに絞られている- 不要な通信、入力監視、ストレージ操作、クリップボード操作、動的なコード実行がない
- 停止方法と削除方法が分かる
「便利そうだから」という理由だけで、SNSや掲示板に貼られたコードをそのまま実行しないでください。 特にログイン、決済、個人情報の入力を扱うページでは、必要性を慎重に判断してください。
安全な動作確認用サンプル
この記事では、ポルン公式サイトのトップページだけに「ユーザースクリプトが動作しました」というラベルを追加します。
このサンプルは、次のように対象と動作を限定しています。
@matchはポルン公式サイトのトップページだけ@grant noneでGM APIを要求しない- ページ内に短いラベルを一つ追加するだけ
- 通信、入力監視、ストレージ、クリップボード、動的なコード実行を使わない
- 同じページで二重にラベルを追加しない
// ==UserScript==
// @name ポルン動作確認
// @namespace https://www.privatebrowser.jp/
// @version 1.0.0
// @description ポルン公式サイトに動作確認ラベルを追加します
// @match https://www.privatebrowser.jp/
// @grant none
// @run-at document-end
// @noframes
// ==/UserScript==
(function () {
"use strict";
var noticeID = "porun-userscript-demo";
if (document.getElementById(noticeID)) {
return;
}
var notice = document.createElement("p");
notice.id = noticeID;
notice.setAttribute("role", "status");
notice.textContent = "ユーザースクリプトが動作しました";
Object.assign(notice.style, {
margin: "16px",
padding: "12px 16px",
border: "2px solid #7c3aed",
borderRadius: "12px",
background: "#f5f3ff",
color: "#4c1d95",
font: "600 16px/1.5 -apple-system, BlinkMacSystemFont, sans-serif",
textAlign: "center",
});
var target = document.querySelector("main") || document.body;
target.prepend(notice);
})();サンプルを.user.jsファイルでダウンロード
サンプルの内容と実行結果は、2026年8月10日にiPhone 17 Pro(iOS 26.5)のSimulatorで確認しました。
ポルンに登録して実行する手順
ユーザースクリプトの有効化と実行には、プレミアムサービスの購読、または新規インストール後のフルアクセス期間が必要です。 利用条件を満たしていない場合もコードは保存できますが、新規登録時は無効で保存され、実行されません。
1. 新しいスクリプトを開く
- ポルンのスタートページから「設定」を開く
- 「ユーザースクリプト」を開く
- 右上の「+」をタップする
- コード欄の初期サンプルをすべて選び、この記事のサンプルに置き換える
2. 検証結果を確認する
コードを入力すると、ポルンがmetadataとJavaScript構文を検証します。 保存する前に、少なくとも次の表示を確認してください。
- スクリプト名が「ポルン動作確認」
- JavaScript構文が「OK」
- 実行タイミングが
document-end - 実行worldが
page - 権限が
none - 実行対象が
https://www.privatebrowser.jp/


エラーが表示された場合は保存せず、metadata block、@match、JavaScriptの記述を見直してください。
未知のmetadataは無視されるため、「保存できた」ことだけでは、その機能が使える証明になりません。
3. 有効にして保存する
- 画面上部の「有効」をONにする
- 右上の「保存」をタップする
- 一覧で「ポルン動作確認」が「有効」になっていることを確認する
「ショートカットを表示」をONにすると、アドレスバー横から、現在のページに一致するスクリプトを確認できます。
4. 対象ページで結果を確認する
ポルンでポルン公式サイトを開きます。 ページ上部に紫色の「ユーザースクリプトが動作しました」というラベルが追加されれば成功です。

表示されない場合は、一覧で有効になっているか、https://www.privatebrowser.jp/のトップページを開いているかを確認してから再読み込みしてください。
停止・削除する方法
動作確認が終わったら、スクリプトを無効にできます。
- 「設定」→「ユーザースクリプト」で「ポルン動作確認」を開く
- 「有効」をOFFにする
- 「保存」をタップする
- 対象ページを再読み込みする
同じSimulatorで無効化したところ、再読み込み後に追加したラベルが消えることを確認しました。
完全に削除する場合は、編集画面下部の「ユーザースクリプトを削除」を使います。 一覧で項目をスワイプして削除することもできます。
ポルンが対応しているmetadata
ポルンは次のmetadataを読み取ります。
@matchまたは@includeを一つ以上指定しないと保存できません。
| metadata | ポルンでの扱い |
|---|---|
@name | スクリプト名 |
@namespace | 名前空間 |
@version | バージョン |
@description | 説明 |
@match |
|
@include | ワイルドカードまたは/正規表現/ |
@exclude | 実行対象から除外 |
@run-at |
|
@grant |
|
@sandbox | raw、JavaScript、DOM |
@noframes | メインフレームだけで実行 |
未知のmetadataはエラーにならず、無視されます。
未指定の@sandboxはrawとして扱われます。
実行タイミング
document-start: ページの読み込み開始時document-end: DOMの読み込み後document-idle: ポルンではdocument-endと同じタイミング。通信やページの処理が落ち着くまで待つ指定ではありません
ページの要素を変更するサンプルでは、対象を探しやすいdocument-endを使っています。
page worldとisolated world
ポルンは、metadataから次のように実行worldを選びます。
@sandbox raw、@sandbox JavaScript、@grant none、@grant unsafeWindow、または@sandbox未指定:page@sandbox DOM:isolated
@grant noneまたは@grant unsafeWindowがある場合は、@sandbox DOMよりもpageの指定が優先されます。
pageは、ページ本体のJavaScriptと同じworldで実行されます。
ページのグローバル変数に触れられる一方、ページ側のコードと影響し合う範囲も広くなります。
isolatedはDOMを操作できますが、ページ本体のJavaScriptグローバルには直接干渉しません。
ただし、どちらのworldでもGM APIは提供されません。
未対応のAPIと機能
ポルンはGreasemonkeyやTampermonkeyとの完全互換を目指した実装ではありません。 次の機能には対応していません。
GM_info、GM_getValue、GM_setValueなどのGM APIGM_xmlhttpRequest、GM_registerMenuCommand、GM_openInTabGM_download、GM_notification、GM_setClipboardGM_getResourceText、GM_getResourceURLunsafeWindow変数@require、@resource、@connectによる実行機能@downloadURL、@updateURLによる自動更新
@grant unsafeWindowはpage worldを選ぶ指定としてだけ扱われ、unsafeWindow変数は作られません。
スクリプト本体は、ファイルアプリから見えるDocuments/UserScripts/*.user.jsに保存されます。
ファイルアプリ経由で追加された未登録のスクリプトは、安全のため初期状態では無効です。
Safariで使うならUserscriptsかTampermonkey
Safariを使い続けたい場合は、Safari拡張機能としてユーザースクリプトを管理できます。
Userscripts
Userscriptsは、iPhone、iPad、Macに対応する無料のSafari拡張機能です。
iPhoneはiOS 15.0以降、iPadはiPadOS 15.0以降、MacはmacOS 12.0以降が必要です。
公式リポジトリでは、.user.jsファイルの作成・保存とSafari拡張の設定方法、バージョンごとの対応APIが案内されています。
対応APIは更新で変わるため、使いたいスクリプトの要件と現在の公式資料を照らし合わせてください。
Tampermonkey
Tampermonkeyも、iPhone、iPad、MacのSafariに対応しています。 2026年9月6日に日本のApp Storeで確認した価格は500円でした。 iPhoneはiOS 15.0以降、iPadはiPadOS 15.0以降、MacはmacOS 11.0以降が必要です。
インストール後は、Appleの案内に沿ってSafari拡張機能を有効にします。 配布されているスクリプトがすべてiPhone版Safariで動くとは限らないため、必要なmetadataとAPIを確認してから追加してください。
まとめ
iPhone・iPadでユーザースクリプトを使う方法は、普段のSafariに追加するか、用途を分けたブラウザで実行するかで選べます。
- 無料のSafari拡張ならUserscripts
- Safariで専用の管理機能を使うならTampermonkey
- プライベートな閲覧と分けて使うならポルン
ポルンでは、登録時にmetadataとJavaScript構文、実行world、対象URLを確認できます。 ただし、検証が通ることと、コードが安全であることは別です。 自分で内容を確認でき、対象を必要なページだけに絞ったスクリプトから試してください。


