現在、JavaScript を使用してクリップボードにコピーされたコードを記述する場合、通常はブラウザと互換性がありません。したがって、Flash を使用してレイヤーをシミュレートし、それをコピーして、すべてのブラウザーに適用できるようにします~
swf ファイルと js ファイルをダウンロードする必要があります。この2つのファイルをhtmでまとめます。
アイコン:
サーバー側で使用する必要があります。
アイコン:
JS コード:
ZeroClipboard.js
// シンプル セット クリップボード システム
// 著者: Joseph Huckaby
var ZeroClipboard = {
バージョン: "1.0.7",
クライアント: {}, // ページに登録されたアップロード クライアント。ID によってインデックス付けされます。
moviePath: 'ZeroClipboard.swf', // 映画の URL
nextId: 1, // 次の映画の ID
$: function( thingy) {
// 単純な DOM ルックアップ ユーティリティ関数
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
if (!thingy.addClass) {
// いくつかの便利なメソッドを使用して要素を拡張します
thingy.hide = function() { this.style.display = 'none'; };
thingy.show = function() { this.style.display = ''; };
thingy.addClass = function(name) { this.removeClass(name); this.className = ' ' 名前; };
thingy.removeClass = function(name) {
varclasses = this.className.split(/s /);
var idx = -1;
for (var k = 0; k
}
if (idx > -1) {
classes.splice( idx, 1 );
this.className =classes.join(' ');
}
これを返します;
};
thingy.hasClass = function(name) {
return !!this.className.match( new RegExp("\s*" name "\s*") );
};
}
ものを返します。
},
setMoviePath: function(path) {
// パスを ZeroClipboard.swf に設定します
this.moviePath = path;
},
dispatch: function(id,eventName, args) {
// Flash ムービーからイベントを受信し、クライアントに送信
var client = this.clients[id];
if (クライアント) {
client.receiveEvent(eventName, args);
}
},
register: function(id, client) {
// イベントを受信する新しいクライアントを登録します
this.clients[id] = client;
},
getDOMObjectPosition: function(obj, stopObj) {
// dom 要素の絶対座標を取得
var info = {
left: 0,
top: 0,
幅: obj.width ? obj.width : obj.offsetWidth、
高さ: obj.height ? obj.height : obj.offsetHeight
};
while (obj && (obj != stopObj)) {
info.left = obj.offsetLeft;
info.top = obj.offsetTop;
obj = obj.offsetParent;
}
情報を返します。
},
Client: function(elem) {
// 新しい単純なアップロード クライアントのコンストラクター
this.handlers = {};
// 一意の ID
this.id = ZeroClipboard.nextId ;
this.movieId = 'ZeroClipboardMovie_' this.id;
// クライアントをシングルトンに登録してフラッシュ イベントを受信する
ZeroClipboard.register(this.id, this);
// ムービーを作成します
if (elem) this.glue(elem);
}
};
ZeroClipboard.Client.prototype = {
id: 0, // 弊社の一意の ID
ready: false, // ムービーがイベントを受信する準備ができているかどうか
movie: null, //ムービー オブジェクトへの参照
clipText: '', // クリップボードにコピーするテキスト
handCursorEnabled: true, // ハンド カーソルを表示するか、デフォルトのポインター カーソルを表示するか
cssEffects: true, // CSS マウスを有効にするdom コンテナへの影響
handlers: null, // ユーザー イベント ハンドラー
glue: function(elem, appendElem,stylesToAdd) {
// DOM 要素に接着
// elem は ID または実際の要素にすることができますDOM 要素オブジェクト
this.domElement = ZeroClipboard.$(elem);
// オブジェクトのすぐ上に浮動小数点数、または dom 要素が設定されていない場合は zIndex 99
var zIndex = 99;
if (this.domElement.style.zIndex) {
zIndex = parseInt(this.domElement.style.zIndex, 10) 1;
}
if (typeof(appendElem) == 'string') {
appendElem = ZeroClipboard.$(appendElem);
}
else if (typeof(appendElem) == '未定義') {
appendElem = document.getElementsByTagName('body')[0];
}
// domElement の X/Y 位置を検索します
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
// 要素の上にフローティング DIV を作成します
this.div = document.createElement('div');
var style = this.div.style;
style.position = '絶対';
style.left = '' box.left 'px';
style.top = '' box.top 'px';
style.width = '' box.width 'px';
style.height = '' box.height 'px';
style.zIndex = zIndex;
if (typeof(stylesToAdd) == 'object') {
for (addedStyle instylesToAdd) {
style[addedStyle] =stylesToAdd[addedStyle];
}
}
// style.backgroundColor = '#f00'; // デバッグ
appendElem.appendChild(this.div);
this.div.innerHTML = this.getHTML( box.width, box.height );
},
getHTML: function(width, height) {
// 映画の HTML を返します
var html = '';
var flashvars = 'id=' this.id
'&width=' 幅
'&height=' 高さ;
if (navigator.userAgent.match(/MSIE/)) {
// IE は OBJECT タグを取得します
varprotocol = location.href.match(/^https/i) ? 'https://' : 'http://';
html = '';
}
else {
// 他のすべてのブラウザは EMBED タグを取得します
html = ' ';
}
html を返します。
},
hide: function() {
// フローターを画面外に一時的に非表示にします
if (this.div) {
this.div.style.left = '-2000px';
}
},
show: function() {
// Hide() の呼び出し後に自分自身を表示します
this.reposition();
},
destroy: function() {
// コントロールとフローターを破棄
if (this.domElement && this.div) {
this.hide();
this.div.innerHTML = '';
var body = document.getElementsByTagName('body')[0];
try { body.removeChild( this.div ); catch(e) {;}
this.domElement = null;
this.div = null;
}
},
reposition: function(elem) {
// 浮動 div を再配置します (オプションで新しいコンテナに移動します)
// 警告: コンテナはサイズを変更できません。位置のみ変更できます
if (elem) {
this.domElement = ZeroClipboard.$(elem);
if (!this.domElement) this.hide();
}
if (this.domElement && this.div) {
var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
var style = this.div.style;
style.left = '' box.left 'px';
style.top = '' box.top 'px';
}
},
setText: function(newText) {
// クリップボードにコピーするテキストを設定します
this.clipText = newText;
if (this.ready) this.movie.setText(newText);
},
addEventListener: function(eventName, func) {
// イベントのユーザー イベント リスナーを追加
// イベント タイプ:load、queueStart、fileStart、fileComplete、queueComplete、progress、error、 cancel
eventName =eventName.toString().toLowerCase().replace(/^on/, '');
if (!this.handlers[イベント名]) this.handlers[イベント名] = [];
this.handlers[イベント名].push(func);
},
setHandCursor: function(enabled) {
// ハンド カーソルを有効にする (true)、またはデフォルトの矢印カーソル (false) を有効にします。
this.handCursorEnabled = 有効;
if (this.ready) this.movie.setHandCursor(enabled);
},
setCSSEffects: function(enabled) {
// DOM コンテナの CSS 効果を有効または無効にします
this.cssEffects = !!enabled;
},
receiveEvent: function(eventName, args) {
// フラッシュからイベントを受信
eventName =eventName.toString().toLowerCase().replace(/^on/, '' );
// 特定のイベントに対する特別な動作
switch (eventName) {
case 'load':
// ムービーは準備ができていると主張していますが、IE ではこれが常に当てはまるわけではありません...
// バグ修正: Firefox では EMBED DOM 要素を拡張できません。従来の関数を使用する必要があります。
this.movie = document.getElementById(this.movieId);
if (!this.movie) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 1 );
戻る;
}
// PC 上の Firefox は、特定の場合にこれらを設定するために「キック」が必要です。
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent. match(/Windows/)) {
var self = this;
setTimeout( function() { self.receiveEvent('load', null); }, 100 );
this.ready = true;
戻る;
}
this.ready = true;
this.movie.setText( this.clipText );
this.movie.setHandCursor( this.handCursorEnabled );
休憩;
case 'mouseover':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('hover');
if (this.recoverActive) this.domElement.addClass('active');
}
break;
case 'mouseout':
if (this.domElement && this.cssEffects) {
this.recoverActive = false;
if (this.domElement.hasClass('active')) {
this.domElement.removeClass('active');
this.recoverActive = true;
}
this.domElement.removeClass('hover');
}
break;
case 'mousedown':
if (this.domElement && this.cssEffects) {
this.domElement.addClass('active');
}
break;
case 'mouseup':
if (this.domElement && this.cssEffects) {
this.domElement.removeClass('active');
this.recoverActive = false;
}
break;
} // switch eventName
if (this.handlers[eventName]) {
for (var idx = 0, len = this.handlers[eventName].length; idx var func = this.handlers[eventName][idx];
if (typeof(func) == 'function') {
// actual function reference
func(this, args);
}
else if ((typeof(func) == 'object') && (func.length == 2)) {
// PHP style object method, i.e. [myObject, 'myMethod']
func[0][ func[1] ](this, args);
}
else if (typeof(func) == 'string') {
// name of function
window[func](this, args);
}
} // foreach event handler defined
} // user defined handler for event
}
};
html代码:
a.htm
flash文件请自己到网上下载哈~

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









