アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptで
クリップボードのデータのURLかテキストを
変数に格納する方法を教えて下さい。

Windows10 CHromeを使っています。

console.log( data ) ;

質問者からの補足コメント

  • へこむわー

    ### html
    <iframe frameborder="0"></iframe>

    ### js
    var pasteText = document.getElementsByTagName("iframe")[0];
    pasteText.focus();
    document.execCommand("paste");
    console.log(pasteText);
    console.log(pasteText.textContent);

    ### 結果
    エラーは出ないが
    console.logも出力されない

      補足日時:2020/08/08 21:25
  • へこむわー

    ### js
    document.execCommand("copy")

    ### 結果
    クリップボードへ格納するプログラムは成功しているが
    使用する関数は固執していない

    ### MDN
    クリップボードとのやりとり
    https://developer.mozilla.org/ja/docs/Mozilla/Ad …

      補足日時:2020/08/08 21:31

A 回答 (3件)

とりあえずGoogleなどで「JavaScript クリップボード 取得」といった簡単なキーワードで検索されてみてはいかがでしょう。


まず間違いなく多くの解説ページがヒットするはずです。

参考まで。
    • good
    • 0
この回答へのお礼

こんにちわ

すでにいくつか試したものばかりで理解はすすみません。

セキュリティ上の問題で難しいのでしょうね。
いろいろ試してみます。

お礼日時:2020/08/09 00:24

こんにちは



今、テスト環境がないので、ご質問文を見ただけの印象ですが・・・

iframeを利用してテストなさっているようですが、iframeは他の要素とは違い、別のドキュメントなので、扱いが同じではありません。
アクセス方法を修正しても良いですが、手っ取り早いのは、inputやtextaria要素等の一般的なものに変えてテストしてみたらどうなるでしょうか?

focusメソッドが対応しているのは入力要素とされているみたいですので。
https://developer.mozilla.org/ja/docs/Web/API/HT …
どうしても他の要素(iframeではなくdivなど) にしたい場合は、contenteditableにしておけば可能になるかも知れません。

また、ご参照のページにもありますけれど、ペースト処理は「ユーザー操作に対するイベントハンドラー」内で実行する必要がありますが、ご提示のスクリプトではそのようになってはいないようですので、キャンセルされている可能性があるように思われますがいかがでしょうか?
    • good
    • 0

No.1です。



> すでにいくつか試したものばかりで理解はすすみません。

なるほどそうでしたか。。。
ご質問には以下としか書かれていませんでしたのでいろいろ試されているとは存じませんでしたため、無駄な事を申しまして大変失礼をばいたしました。
では頑張ってください。

> > JavaScriptで
> > クリップボードのデータのURLかテキストを
> > 変数に格納する方法を教えて下さい。
> >
> > Windows10 CHromeを使っています。

ちなみにJavaScriptはインターネットセキュリティーを考慮して設計されていますため、JavaScriptが置かれているコンテンツ上の変数以外・・・特にWebブラウザが稼働しているローカルマシン上の情報の取り扱いに関しては基本的に厳しいです。
どのような必要性があってそうされたいのかわかりませんが、Webページにクリップボード経由で情報を渡すという仕様を見直された方が懸命のように思います。
理由は利用者のセキュリティー設定の状況によって動作が異なるためです。それが逆の見方をすると「提供する機能を使うためには利用者が必要とする(あるいは好む)セキュリティー設定とは異なる設定を必要とする」ことになるためです。
ある画面にある値を表示中のWeb画面の入力エリアに持って行きたい・・・というのであれば、利用者がCtrl+c、Ctrl+vと操作すればよいように思います。
そういう場面ではないのですかね。
これまた余計な事を申しました。(_ _)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

Ctrl+c、Ctrl+vの操作を省略するための
クリップボードのやりとりになります。
乱文になりつつありますし、言語を変えるなど方法を変えようと思います。

お礼日時:2020/08/09 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!