iframe でのダウンロードをブロックまたは検出する
P粉819533564
2023-08-31 21:35:46
<p>私にとって非常に一般的な問題に遭遇しましたが、正しい解決策が見つかりませんでした。 </p>
<p>iframe 経由で表示されるドキュメントがあります。上部にはツールバーがあり、エンドユーザーはここからドキュメントをダウンロードできます。次に、ダウンロードに関する情報をログに記録するか (いくつかのイベントが必要になる可能性があります)、ダウンロード オプションを無効にします。 </p>
<p>#toolbar=0 を追加することでツールバー全体を無効にできることはわかっていますが、エンド ユーザーは自分で変更でき、ドキュメントをログに記録せずにダウンロードできるため、これは私にとって適切な解決策ではありません。 </p>
iframe
iframe を使用する場合、ダウンロード機能を無効にしたい場合は、ブラウザー固有の設定になる可能性があります。これは、ブラウザーが異なれば iframe を異なる要素に変換して実際に PDF をレンダリングするためです。扱っているブラウザが正確にわかっている場合は、ダウンロード ボタンからリスナーのバインドを解除してみてください。これは私が Chrome でテストした解決策であり、機能するようです:に興味がない場合は、
embedまたは
objectタグを使用して、そのようなツールバーが表示されないようにすることができます。
リーリー
リスナーの削除に関するこの質問に対する Ben D の回答に感謝します。ロギング ルートをたどる場合は、cloneNode および replaceChild ステップを addEventListener に置き換えることができます。これは、PDF をダウンロードできるほど精通した/決意のあるユーザーにとっては、依然として問題を引き起こすと思います (この投稿の追加情報を参照してください: https://www.w3docs.com/snippets/html/how-to) -embed-pdf -in-html.html) なので、最終目標に応じて、PDF の静的画像プレビューをゲスト ユーザーに表示し、完全なビューアはログイン ユーザーに制限される可能性があることをお勧めします。 。