「選択文字列を強調」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
スペースからタブに変更
MSY-07 (トーク | 投稿記録)
with文を使用しないソースコードに修正
10行目: 10行目:


// 何も選択してない場合は単語を選択
// 何も選択してない場合は単語を選択
with (document.selection) {
var sel = document.selection;
var s = Text;
var s = sel.Text;
if (s.length == 0) {
if (s.length == 0) {
SelectWord();
sel.SelectWord();
}
s = Text;
}
}
s = sel.Text;
// 選択範囲が空ではない場合
// 選択範囲が空ではない場合
if (s.length > 0) {
if (s.length > 0) {
with (document.selection) {
// カーソル位置を保存
// カーソル位置を保存
var ax = sel.GetActivePointX(mePosView);
var ax = GetActivePointX(mePosView);
var ay = sel.GetActivePointY(mePosView);
var ay = GetActivePointY(mePosView);
// 選択開始位置を保存
// 選択開始位置を保存
var tx = sel.GetTopPointX(mePosView);
var tx = GetTopPointX(mePosView);
var ty = sel.GetTopPointY(mePosView);
var ty = GetTopPointY(mePosView);
// 選択終了位置を保存
// 選択終了位置を保存
var bx = sel.GetBottomPointX(mePosView);
var bx = GetBottomPointX(mePosView);
var by = sel.GetBottomPointY(mePosView);
var by = GetBottomPointY(mePosView);
// 選択開始位置に移動
// 選択開始位置に移動
sel.SetActivePoint(mePosView, tx, ty, false);
SetActivePoint(mePosView, tx, ty, false);
// 1回検索することでハイライト表示させる
// 1回検索することでハイライト表示させる
sel.Find(s, meFindNext);
Find(s, meFindNext);
// 選択開始位置、終了位置を復元
// 選択開始位置、終了位置を復元
if (ax == bx && ay == by) {
if (ax == bx && ay == by) {
sel.SetActivePoint(mePosView, tx, ty, false);
SetActivePoint(mePosView, tx, ty, false);
sel.SetActivePoint(mePosView, bx, by, true);
SetActivePoint(mePosView, bx, by, true);
}
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>

2024年12月30日 (月) 02:55時点における版

選択文字列を強調(ハイライト表示)します。

// -----------------------------------------------------------------------------
// 選択文字列を強調
//
// Copyright (c) Kuro. All Rights Reserved.
// www:    https://www.haijin-boys.com/
// -----------------------------------------------------------------------------

// 何も選択してない場合は単語を選択
var sel = document.selection;
var s = sel.Text;
if (s.length == 0) {
	sel.SelectWord();
}
s = sel.Text;
// 選択範囲が空ではない場合
if (s.length > 0) {
	// カーソル位置を保存
	var ax = sel.GetActivePointX(mePosView);
	var ay = sel.GetActivePointY(mePosView);
	// 選択開始位置を保存
	var tx = sel.GetTopPointX(mePosView);
	var ty = sel.GetTopPointY(mePosView);
	// 選択終了位置を保存
	var bx = sel.GetBottomPointX(mePosView);
	var by = sel.GetBottomPointY(mePosView);
	// 選択開始位置に移動
	sel.SetActivePoint(mePosView, tx, ty, false);
	// 1回検索することでハイライト表示させる
	sel.Find(s, meFindNext);
	// 選択開始位置、終了位置を復元
	if (ax == bx && ay == by) {
		sel.SetActivePoint(mePosView, tx, ty, false);
		sel.SetActivePoint(mePosView, bx, by, true);
	}
}
スポンサーリンク