「Mery本体のバージョンチェック」の版間の差分
ナビゲーションに移動
検索に移動
<source>タグを<syntaxhighlight>タグに置き換え |
空行の除去 |
||
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
Mery のバージョンがマクロの要件以上かチェックします。<br> | Mery のバージョンがマクロの要件以上かチェックします。<br> | ||
Mery の更新状態を確認([[最新版を確認]])するマクロではありません。<br> | Mery の更新状態を確認([[最新版を確認]])するマクロではありません。<br> | ||
用途として、「ベータ版」で新設されたメソッドやプロパティを使用するさいに「正式版」や古いベータ版などでのエラー回避を想定したものです。 | 用途として、「ベータ版」で新設されたメソッドやプロパティを使用するさいに「正式版」や古いベータ版などでのエラー回避を想定したものです。 | ||
== VersionCheck() 関数 == | == VersionCheck() 関数 == | ||
;組み込み関数 VersionCheck() | ;組み込み関数 VersionCheck() | ||
マクロを動作させるうえでの必要条件として Mery 本体のバージョンチェックをおこないます。<br> | マクロを動作させるうえでの必要条件として Mery 本体のバージョンチェックをおこないます。<br> | ||
| 13行目: | 10行目: | ||
組み込み関数本体 を任意のマクロのソースコード内にペーストして使用します。<br> | 組み込み関数本体 を任意のマクロのソースコード内にペーストして使用します。<br> | ||
使い方は [[#使い方|使用例]] を参考にしてください。 | 使い方は [[#使い方|使用例]] を参考にしてください。 | ||
== ソースコード == | == ソースコード == | ||
| 34行目: | 30行目: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 使い方 == | == 使い方 == | ||
| 46行目: | 41行目: | ||
*/ | */ | ||
// '''例1''' Begin/EndUndoGroup() メソッドを使えるのは Ver 2.7.0 以降 | |||
// '''例1''' Begin/EndUndoGroup() メソッドを使えるのは | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
| 71行目: | 65行目: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
// Begin/EndUndoGroup() のみを囲うだけでもよいが、古いバージョンでマクロを実行するとアンドゥするとき面倒なことに… | // Begin/EndUndoGroup() のみを囲うだけでもよいが、古いバージョンでマクロを実行するとアンドゥするとき面倒なことに… | ||
| 79行目: | 72行目: | ||
} | } | ||
// '''例2''' ChangeCase() メソッドで定数 meCaseCapitalize を使えるのは Ver 2.6.10 以降 | |||
// '''例2''' ChangeCase() メソッドで定数 meCaseCapitalize を使えるのは | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
2024年9月9日 (月) 04:42時点における最新版
Mery のバージョンがマクロの要件以上かチェックします。
Mery の更新状態を確認(最新版を確認)するマクロではありません。
用途として、「ベータ版」で新設されたメソッドやプロパティを使用するさいに「正式版」や古いベータ版などでのエラー回避を想定したものです。
VersionCheck() 関数[編集]
- 組み込み関数 VersionCheck()
マクロを動作させるうえでの必要条件として Mery 本体のバージョンチェックをおこないます。
要件以上のバージョンであれば true、要件を満たさなければ false を返します。
組み込み関数本体 を任意のマクロのソースコード内にペーストして使用します。
使い方は 使用例 を参考にしてください。
ソースコード[編集]
// #title = "Mery のバージョンチェック" /** * 組み込み関数 VersionCheck( versionStr ) * Mery 本体が引数で指定したバージョン以上かチェックする( e.g. "2.7.0" ) * 戻り値は、真偽値 true/false */
function VersionCheck( versionStr ) {
var Pad2 = function( string ) {
return string.replace( /[0-9]+/g , function( $0 ) {
return $0.length < 2 ? "0" + $0 : $0;
} );
}
var editorVer = Number( Pad2( editor.Version ).replace( /\./g, "" ).slice( 0, 6 ) );
var requirement = Number( Pad2( versionStr ).replace( /\./g, "" ).slice( 0, 6 ) );
return ( editorVer >= requirement );
}
使い方[編集]
/** * 【使い方】 * * 要件以上のバージョンであればメインのコードを実行し * 要件未満のバージョンであれば別のコードを実行する * * ※引数に指定するバージョンNo.は "ダブルクオート" で囲うこと */
// 例1 Begin/EndUndoGroup() メソッドを使えるのは Ver 2.7.0 以降
// 文書の先頭/末尾に <html> </html> 、改行部分に <br/> を挿入する
if ( VersionCheck( "2.7.0" ) ) {
// ブックマーク設定を維持して置換
BeginUndoGroup();
document.selection.Replace( "\n", "<br/>\n", meFindReplaceRegExp + meReplaceAll );
document.selection.StartOfDocument();
document.selection.Text = "<html>\n";
document.selection.EndOfDocument();
document.selection.Text = "\n</html>";
EndUndoGroup();
}
else {
var confirmStr = "Mery 2.7.0 以上でないとブックマーク設定がふっ飛びます。"
+ "\n\n実行しますか?";
if ( Confirm( confirmStr ) ) {
// ブックマーク設定を無視して一括置換
document.Text = "<html>\n" + document.Text.replace( /$/gm, "<br/>" ) + "\n</html>";
}
}
// Begin/EndUndoGroup() のみを囲うだけでもよいが、古いバージョンでマクロを実行するとアンドゥするとき面倒なことに…
if ( VersionCheck( "2.7.0" ) ) {
BeginUndoGroup();
}
// 例2 ChangeCase() メソッドで定数 meCaseCapitalize を使えるのは Ver 2.6.10 以降
if ( document.Selection.IsEmpty ) {
document.selection.SelectLine();
}
if ( VersionCheck( "2.6.10" ) ) {
// 単語の最初の文字を大文字に変換
document.selection.ChangeCase( meCaseCapitalize );
}
else {
// 小文字に変換
document.selection.ChangeCase( meCaseLowerCase );
Status = "小文字でごめん。";
}
スポンサーリンク