質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

1275閲覧

任意のWEBページ内ではコピペできるが、そのページ外の場所にはペースト出来なくしたい

onushinosenzo

総合スコア22

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2019/08/28 03:23

やりたいこと

任意のWEBページ内(想定ブラウザはChrome)では、文字列に対してコピー、ペースト共にでき、
WEBページ外(例えば、Wordやメモ帳)では、ペースト出来ないようにしたいです。

要は、任意のWEBページの文字列を、そのページ外にペーストできなくしたいです。

現状

現状は、とりあえずjavascriptとCSSから簡易的にコピーを出来なくしているだけです。

ご回答よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

本質的にはOS側でそういうアプリケーションを開発/インストールする以外には実現する方法はありません。
(=不特定多数のサイト訪問者に強制することは出来ません)

別の方向性としては、OSのクリップボードにコピーするのではなく、コピー/ペーストをサーバサイドと連携するような形で実装するか、(yambejpさんの回答にあるように)JavaScriptの変数を利用する形でJavaScript内に疑似クリップボードを実装すれば可能になるかとは思います。
(これらの実装が正常に動作した場合は、OSのクリップボードにはコピーしたい内容はコピーされないため他のアプリケーションにペーストすることは出来ません)

が、それでもJavaScriptやCSSをブラウザ側で制御してしまえば無視できるので、苦労して実装する価値は無いと思います。

投稿2019/08/28 03:30

編集2019/08/28 06:49
tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onushinosenzo

2019/08/28 10:30

丁寧なご回答ありがとうございます。文字列を記入する場所もcanvas上のjavascript上なので、javascript制御された場合、全て見えなくなります。 なので、疑似クリップボードを実装してみようと思います。
guest

0

文字列ということであれば、ほんとにコピーするのではなく
疑似コピーで変数に取っておいて、疑似ペーストでそれを
呼び出せばいいでしょう

ただそれするとブラウザ外でコピーしたものがブラウザにペーストできなく
なるような気がしますが、ほんとにそんな仕様で大丈夫なのでしょうか?

投稿2019/08/28 03:44

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onushinosenzo

2019/08/28 10:30

ご回答ありがとうございました。疑似クリップボードを実装してみようと思います。
guest

0

完全には不可能です。そもそも、ブラウザにデータを送信した時点でユーザー側でどうとでもできます。(PHPにパスワードを書いてもいいのはPHPがサーバーの言語だから+セキュリティ対策がされているから)

投稿2019/08/28 04:20

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onushinosenzo

2019/08/28 10:32

ご回答ありがとうございました。勉強になりました。
guest

0

できないこともないような気がしますが、pasteイベントではclipboardData.setData()が使えないため、copyイベントを起こす必要があり、いちいちユーザーアクションが必要になると思います。
たとえば、ペーストをする度に「本当にコピペしますか?」のような確認モーダルを出すとか。

投稿2019/08/28 04:06

Lhankor_Mhy

総合スコア35865

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onushinosenzo

2019/08/28 10:32

丁寧なご回答ありがとうございました。勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問