MDIBrowser Part22

このエントリーをはてなブックマークに追加
378名無しさん@お腹いっぱい。
【クリップボードのテキストをアクティブな要素にコピー】
で、ペーストの方。
理想的にはテキストをカーソル位置に挿入できたり、選択範囲を上書きする
ようにペーストできたりすると最高なのですが、手っ取り早く
完全に置き換えになってます(元のテキストが消えてペーストしたテキストだけになる)。
var temp = range.text;
range.execCommand("Paste");
range.text = temp + range.text;
とやれば「前のテキスト」+「ペーストしたテキスト」程度はできるかな、と思ったのですが
少なくともテストした限りでは無理のようなので…。神降臨!してくれないものでしょうか。
あと、ペーストする先の要素は単にtagNameだけで判定しているので
type="button"なinput要素のテキストも変わったりします。


//クリップボードのテキストをアクティブな要素にコピー

var mdi = new ActiveXObject("MDIBrowser.API");
if (mdi == null){
WScript.Echo("MDIBrowser Object Error.");
WScript.Quit();
}

var doc = mdi.GetDocumentObject(mdi.GetActiveTabIndex());

//FRAMEページだった場合アクティブなFRAMEのドキュメントを取得
if (doc.activeElement.tagName == "FRAME") {
try {
doc = doc.activeElement.contentWindow.document;
}
catch(e) {
mdi.ShowMessage("アクティブなフレームの取得エラーです。\n" + e.description);
doc = null;
mdi = null;
WScript.Quit();
}
}

if (doc.activeElement.tagName.match(/(input|textarea)/i) != null) {
var range = doc.activeElement.createTextRange();
range.execCommand("Paste");
}

mdi = null;