[解決済み] ChromeとFirefoxでクリップボードにコピーするJavaScriptの秘密の機能?
2022-04-23 09:15:34
質問
更新情報
見た目は ブラウザはJSでネイティブにコピーをサポートし始めています。
MacのChromeとFirefoxの両方のコンソールウィンドウで、以下を実行することができます。
copy("party in your clipboard!");
と表示され、テキストがクリップボードにコピーされます。SOやGoogleで検索してみましたが、これに関するものは見つからないようです。
- これは各ブラウザ固有のものですか?
- の詳細については、どこで確認できますか? これらのJavaScriptの関数について教えてください。
ブラウザのバージョン
copy'実行時にChromeコンソールから返されるJavaScript
function (object)
{
if (injectedScript._type(object) === "node") {
var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false);
InjectedScriptHost.copyNode(nodeId);
} else
InjectedScriptHost.copyText(object);
}
- このコードはどういう意味ですか?
以下は、すべてのクローム拡張機能を無効にして、クロームのコンソールでコピー関数を実行した2つのスクリーンショットです。
解決方法は?
これらは、あらかじめ定義されたFirebugのコンソール関数であると思います - 少なくともFirebugの場合はそうであると思われます。もし、あなたが
window.copy
例えば、function not definedという警告が出るので、ブラウザの関数でないことは確かで、通常のJavaScriptファイルでは使えません。以下の関数も、少し弄ってみたところ、JavaScriptコンソールで動作するようです。
-
clear()
-
profile()
Chrome コンソールでこれらを実行すると、Webkit コンソールでこれらの関数の背後にあるソースが表示されます。
> profile
function ()
{
return console.profile.apply(console, arguments)
}
> clear
function ()
{
InjectedScriptHost.clearConsoleMessages();
}
> copy
function (object)
{
if (injectedScript._type(object) === "node")
object = object.outerHTML;
InjectedScriptHost.copyText(object);
}
一方 Firebugのソース も関数のリストを定義しています。
this.clear = function() // no web page interaction
{
Firebug.Console.clear(context);
};
this.inspect = function(obj, panelName) // no web page interaction
{
Firebug.chrome.select(obj, panelName);
};
this.keys = function(o)
{
return FBL.keys(o); // the object is from the page, unwrapped
};
this.values = function(o)
{
return FBL.values(o); // the object is from the page, unwrapped
};
// etc...
関連
-
jQueryのコピーオブジェクトの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] Safari、Chrome、IE、Firefox、Operaのブラウザを検出する方法は?
-
[解決済み] vimでシステムのクリップボードからペースト(とコピー)するには?
-
[解決済み] Vimでクリップボードにコピーする方法は?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
要素ツリー制御によるvueTreeテーブル
-
jsを使った簡単な照明スイッチのコード
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vue ディレクティブ v-html と v-text
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。