1. ホーム
  2. js

Javascriptにおけるdocument.execCommand()の使用法

2022-02-12 12:09:51
<パス

図形入力のためのdiv推論モードでの画像挿入 - 例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0,user- scalable=no">
</head>
    <body>
       <! --editor -->
      <div contenteditable id="div"></div> 
      <div style="height:3em;width:100%;background:none;"></div>
      <div class="fixed">
         <div id="img"><input type="button" value="Upload image"/></div>
         <div><a href="#" style="color:#fff;">Next</a></div>
      </div>

    </body>

<script src="js/src/zepto.js"></script>
<script src="js/src/event.js"></script>
<script src="js/src/touch.js"></script>
<script>
  (function(){
    $('#div').css({'min-height':$(window).height()-106})    
             .blur(function () { 
              var that = this; 
              setTimeout(function () { 
                 $(that).focus(); }
                 , 100); 
              }); 
    $('#div img').on('doubleTap',function(){
        $(this).remove();
    })  
    $("#img").on('click',function(){
          document.execCommand("insertimage", false, "images/touxiang.jpg");//fill in the real image address, the image will be inserted into the $('#div') in deduction mode, positioned at the mouse cursor
}) })(); </script> </html>


document.execCommand()メソッドは、以下の共通構文形式のHtmlデータを扱います。
document.execCommand(sCommand[,対話メソッド,動的パラメータ])

ここで、sCommandはコマンドパラメータ("2D-Position" 下の例では)、interactionパラメータはtrueならダイアログを表示し、falseなら表示しない("false "。下の例では、ダイアログを表示しない)、dynamicパラメータは通常利用できる値またはプロパティ値("true"。下の例では)である。

document.execCommand("2D-Position", "false", "true") を実行します。

execCommand()を呼び出すと、ブラウザのメニューでいろいろなことができるようになります。ファイルの保存、新しいファイルのオープン、操作の取り消しややり直し...などなど。このメソッドを使えば、ウェブページにテキストエディターを簡単に実装することができます。

柔軟に使えば、様々なプロジェクトに役立てることができますね。

使い方の一例は以下の通りです。

1. すべて選択〗コマンドの実装
[形式]:document.execCommand("selectAll")
[解説】ページのコンテンツ全体を選択します!
[例】間に追加する。
すべて選択

2. 開く〗コマンドの実装
[書式]:document.execCommand("open")
[解説】VBなどのプログラミング設計で、Webブラウザコントロールのコマンドとやや似ているので、こちらも把握できるはずです。
[例] 間を追加する。
開く

3、「名前を付けて保存」コマンドの実装
[形式]:document.execCommand("saveAs")
[説明] このページをこのサイトの別のディレクトリに保存します!
[例】間に追加する。
として保存する

4、〖印刷〗コマンドの実装
[形式]:document.execCommand("print")
[説明] もちろん、プリンターがインストールされている必要があります!
[例】間に追加する。
印刷する

Jsコード コマンドのパラメーターとその意味は次のとおりです。

//ファイルを開くボタンをクリックするのと同じです。
document.execCommand("Open") を実行します。

//現在のページを保存する
document.execCommand("SaveAs") を実行します。

//選択されたテキストをクリップボードにカット&ペーストします。
document.execCommand("Cut", "false",null);

// 選択したテキストを削除します。
document.execCommand("Delete", "false",null) を実行します。

//選択領域のフォントを変更します。
document.execCommand("FontName", "false",sFontName) を実行します。

//選択領域のフォントサイズを変更します。
document.execCommand("FontSize", "false",sSize|iSize) を実行します。

// 前景色を設定します。
document.execCommand("ForeColor", "false",sColor) を実行します。

//絶対位置指定されたオブジェクトを直接ドラッグできるようにする。
document.execCommand("2D-Position", "false", "true") を実行します。

//オブジェクトの位置決めを絶対化する。
document.execCommand("AbsolutePosition", "false", "true") を実行します。

// 背景色を設定します。
document.execCommand("BackColor", "false",sColor) を実行します。

// 選択領域のテキストを太字にする。

document.execCommand("Bold", "false",null) を実行します。

//選択されたテキストをクリップボードにコピーします。
document.execCommand("Copy", "false",null) を実行します。

// 指定したアンカーポイントをブックマークに設定する。
document.execCommand("CreateBookmark", "false",sAnchorName) を実行します。

選択されたテキストをハイパーリンクにします。2番目のパラメータがtrueの場合、パラメータ設定ダイアログが表示されます。
document.execCommand("CreateLink", "false",sLinkURL);

// 現在のブロックのタグ名を設定する。
document.execCommand("FormatBlock", "false",sTagName) を実行します。

//ドキュメントを開くボタンをクリックするのと同じです。
document.execCommand("Open") を実行します。

//現在のページを保存する
document.execCommand("SaveAs") を実行します。

//選択されたテキストをクリップボードにカット&ペーストします。
document.execCommand("Cut", "false",null);

// 選択したテキストを削除します。
document.execCommand("Delete", "false",null) を実行します。

//選択領域のフォントを変更します。
document.execCommand("FontName", "false",sFontName) を実行します。

//選択領域のフォントサイズを変更します。
document.execCommand("FontSize", "false",sSize|iSize) を実行します。

// 前景色を設定します。
document.execCommand("ForeColor", "false",sColor) を実行します。

//絶対位置指定されたオブジェクトを直接ドラッグできるようにする。
document.execCommand("2D-Position", "false", "true") を実行します。

//オブジェクトの位置決めを絶対化する。
document.execCommand("AbsolutePosition", "false", "true") を実行します。

// 背景色を設定します。
document.execCommand("BackColor", "false",sColor) を実行します。

// 選択領域のテキストを太字にする。
document.execCommand("Bold", "false",null) を実行します。

//選択されたテキストをクリップボードにコピーします。
document.execCommand("Copy", "false",null) を実行します。

// 指定したアンカーポイントをブックマークに設定する。
document.execCommand("CreateBookmark", "false",sAnchorName) を実行します。

選択されたテキストをハイパーリンクにします。2番目のパラメータがtrueの場合、パラメータ設定ダイアログが表示されます。
document.execCommand("CreateLink", "false",sLinkURL);

// 現在のブロックのタグ名を設定する。
document.execCommand("FormatBlock", "false",sTagName) を実行します。

ドキュメントオブジェクトのexecCommandは、通常、IEでオンラインのHtmlデータを扱う際に非常に便利で、テキストの太字、色、フォントなどの一連のコマンドを簡単に実装することができます。

D-Positionは、ドラッグ&ドロップで絶対位置決めされたオブジェクトを移動させることができます。
AbsolutePosition は、要素の position 属性を "absolute" に設定します。
BackColor 現在の選択範囲の背景色を設定または取得します。
BlockDirLTR は現在サポートされていません。
BlockDirRTL は現在サポートされていません。
Bold 現在の選択範囲に太字を表示するかどうかをトグルします。
BrowseModeは現在サポートしていません。
コピー 現在の選択部分をクリップボードにコピーします。
CreateBookmark ブックマークアンカーを作成するか、現在の選択範囲または挿入点のブックマークアンカーの名前を取得します。
CreateLink 現在の選択範囲にハイパーリンクを挿入するか、または現在の選択範囲に挿入するハイパーリンクの URL を指定するダイアログボックスを表示します。
カット 現在の選択部分をクリップボードにコピーし、削除します。
Delete 現在の選択部分を削除します。
DirLTR は現在サポートされていません。
DirRTL は現在サポートされていません。
EditModeは現在サポートされていません。
FontName 現在の選択部分のフォントを設定または取得します。
FontSize 現在の選択範囲のフォントサイズを設定または取得します。
ForeColor 現在の選択範囲の前景(テキスト)色を設定または取得します。
FormatBlock 現在のブロックフォーマットラベルを設定します。
インデント 選択したテキストのインデントを増やします。
InlineDirLTR は現在サポートされていません。
InlineDirRTL は現在サポートされていません。
InsertButton 現在の選択範囲をボタンコントロールで上書きします。
InsertFieldset 現在の選択範囲をボックスで上書きする。
InsertHorizontalRule 現在の選択部分を水平線でオーバーレイ表示します。
InsertIFrame 現在の選択部分をインラインフレームでオーバーレイ表示します。
InsertImage 現在の選択部分を画像でオーバーレイ表示します。
InsertInputButton 現在の選択部分をボタンコントロールでオーバーレイ表示します。
InsertInputCheckbox 現在の選択部分をチェックボックスコントロールで上書きします。
InsertInputFileUpload 現在の選択部分をファイルアップロードコントロールで上書きします。
InsertInputHidden 隠しコントロールを挿入して、現在の選択部分を上書きします。
InsertInputImage 現在の選択部分を画像コントロールで上書きします。
InsertInputPassword 現在の選択部分をパスワードコントロールで上書きします。
InsertInputRadio 現在の選択項目をラジオボタンコントロールで上書きします。
InsertInputReset リセットコントロールで現在の選択部分を上書きする。
InsertInputSubmit 現在の選択部分をサブミットコントロールで上書きします。
InsertInputText 現在の選択部分をテキストコントロールで上書きします。
InsertMarquee 現在の選択部分を空のキャプションで上書きします。
InsertOrderedList 現在の選択範囲が番号付きリストであるか、通常のフォーマットされたブロックであるかをトグルします。
InsertParagraph 現在の選択部分を改行で上書きします。
InsertSelectDropdown 現在の選択部分をドロップダウン・ボックス・コントロールでオーバーライドします。
InsertSelectListbox 現在の選択項目をリストボックスコントロールで上書きします。
InsertTextArea 現在の選択部分を複数行のテキスト入力コントロールで上書きします。
InsertUnorderedList 現在の選択項目が箇条書きリストであるか、通常のフォーマットブロックであるかを切り替えます。
イタリック 現在の選択部分をイタリックにするかどうかを切り替えます。
JustifyCenterは、現在の選択部分をフォーマットブロックの中で中央に配置します。
JustifyFullは現在サポートされていません。
JustifyLeft 現在の選択部分があるフォーマットブロックを左揃えにします。
現在、JustifyNone はサポートしていません。
JustifyRightは、現在の選択範囲があるフォーマットブロックを右寄せにします。
LiveResize は、MSHTML エディタが、移動または拡大縮小が完了してからではなく、拡大縮小または移動しながら要素の外観を連続的に更新することを強制します。
MultipleSelectionは、ShiftキーまたはCtrlキーを押しながら、一度に複数のサイト選択可能な要素を選択できるようにするものです。
現在、Openには対応していません。
アウトデント 選択した領域がある書式ブロックのインデントを小さくします。
OverWrite テキストの状態の挿入と上書きを切り替えます。
貼り付け 現在の選択範囲をクリップボードの内容で上書きします。
PlayImageは現在サポートしていません。
印刷ダイアログを開き、現在のページを印刷することができます。
現在、やり直しには対応していません。
Refresh 現在のドキュメントをリフレッシュする。
RemoveFormat 現在の選択範囲から書式タグを削除します。
RemoveParaFormat は現在サポートされていません。
SaveAsは、現在のWebページをファイルとして保存します。
SelectAll ドキュメント全体を選択します。
SizeToControlは現在サポートされていません。
SizeToControlHeightは現在サポートされていません。
SizeToControlWidth 未対応です。
停止 未対応
StopImage は現在サポートされていません。
StrikeThroughは現在サポートされていません。
現在、Subscriptはサポートされていません。
Superscript は現在サポートされていません。
UnBookmark 現在の選択範囲からすべてのブックマークを削除する。
下線 現在の選択範囲に下線を表示するかどうかを切り替えます。
現在、Undoはサポートしていません。
アンリンク 現在の選択範囲からすべてのハイパーリンクを削除します。
選択解除 現在の選択部分の選択状態を解除します。

document.execCommandについて。
編集コマンドを実行するには、document.execCommandを呼び出して、コマンドIDに対応する文字列を渡します。オプションの第2パラメータには、このコマンドを適用できる場合に、ユーザー・インターフェイスを表示するかどうかを指定します。整数値1を渡すとユーザー・インターフェースが表示され、整数値0を渡すと表示されなくなります。このパラメーターは通常、コマンドの編集には使用されません。デフォルト値は0なので、第3パラメータを使用しない場合は、通常そのままでよい(その場合、第2パラメータにも値を渡す必要がある)。第3引数もオプションで、コマンドを適用する際に必要な引数を渡すために使用されます。

PixyのメソッドはIEのキャッシュバグの影響を受け、ちらつきます。あまり明確には書かれていませんが、実はこのバグはIEのキャッシュがデフォルトのAutomaticallyではなく、Every visit to the pageに設定されていることが条件となっています。基本的に、キャッシュを毎回更新チェックするように設定しているのは開発者だけなので、実際のユーザーにはバグは影響しません(キャッシュバグによると winxpsp2のIE6でのテストでは、ネットワークアクセス用のAPIはまだ一度呼ばれているかもしれないが、実際の要求は発生せず、症状としてはマウスには非常に短いジッターが発生するが画像にはフリッカーはないそうです)。さらに、誰かがIEに背景画像をキャッシュさせる非公開の方法を発見しました。
document.execCommand("BackgroundImageCache",false,true)を実行します。

この方法を使用すると、IEのメモリに直接キャッシュされるようで、apiコールを回避することもできます。

IE6での背景画像の設定は、サーバーがキャッシュしていても、本当はキャッシュできないので、キャッシュしたい場合のみ~~~~~。

UI設計・開発をやったことがある人なら知っているはずだが、IE(IE7を含まない)は背景画像をサーバ側からリロードすることが多く、IE(IE7を含まない)の優れたUIインタフェースはこうして翻弄される・・・・・・。

Erikは簡単な解決策を見つけました(IE7以下のIEに有効、実際、IE7ではバグが修正されています)。
プログラムコード プログラムコード

document.execCommand("BackgroundImageCache", false, true)を実行します。

今日、Extのソースコードを読んでいたら、Jack Slocumがこの点を考慮してExt.jsでの実装を施していることがわかりました。他のAjaxフレームワークではまだこのような類似のコードはないはずで、この一点からExt〜の包括性を見ることができます。
プログラムコード プログラムコード

var isIE = ua.indexOf("msie") > -1, isIE7 = ua.indexOf("msie 7″) > -1.isIE7は、ua.indexOf("msie")です。
// cssの画像のちらつきをなくす
if(isIE && !isIE7){。 <未定義
try{ <未定義
document.execCommand("BackgroundImageCache", false, true)を実行します。
}catch(e){}。
}

今日、dreamplayerのソースコードを読んでいたら、MirageもIEのバックグラウンドキャッシュを修正したようですが、IE7ではこの現象はもう存在しないことを考慮していないようで、evmlの関連コードの一部になっています。 js〜(ところで、私は2つの単語をつぶやいた:この男は、JSはセミコロンを追加することはありません書く、それはこのように使用され、今ではまだこのようですので、圧縮を行う方法ああ、汗〜私の習慣に従って、次のコードは、わずか2〜3文の場合でも、セミコロンを追加しました〜)。
プログラムコード プログラムコード

windows.isIE=navigator.appName.indexOf("Microsoft")==0です。
if(isIE){。 <未定義
document.documentElement.addBehavior("#default#userdata") を実行します。
document.execCommand("BackgroundImageCache",false,true) を実行します。

から取得した。 https://www.cnblogs.com/MrZouJian/p/5912884.html