それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

EmEditorからIEのDOMを使う。

IEのDOMが使い慣れてる。マクロでもIEのDOMを使いたい。


prototype.jsもマクロで使いたい。



回りくどいけど、ActiveXオブジェクト使えば出来るはず。


これも1分ほどで考えてみた。

/**
* EmEditorのマクロ
* EmEditor内で、IEのDOM実装を使う。
* IEのDOM部分は'MSXML.DOMDocument'だろうけど、
* 調べるのが面倒だったので
* 召還魔法でIEを召還することにする
* @author takuya_1st
* @version 1.0
* @modified 2006/10/01
*/
var ie = new ActiveXObject("InternetExplorer.Application");
ie.visible =false;  
ie.navigate("about:blank");
doc = ie.document;

//IEにhogeと書いてみる
doc.writeln("<script type='text/javascritp'>');
doc.writeln("document.write('hoge')");
doc.writeln("</script>");
//ScriptタグをObjectとして受け取る
var scripts = doc.getElementsByTagName("script");

これで、おっけ。

これでEmEditorマクロでHTMLエスケープが簡単にできる。
正規表現使わなくても良い。

prototype.jsがやってるやり方でHTMLのエスケープが出来る。


(と思う。試してない。)

    var div = doc.createElement('div');
    var text = document.createTextNode(this);
    div.appendChild(text);
    return div.innerHTML;

あとでこれを試す。

追記:
というか試さなくてもいいや。
Ruby Magazineに実例が出てる。Rubyで出来るなら大丈夫

http://jp.rubyist.net/magazine/?0003-Win32OLE#l4

EmEditorのDocumentがcHTMLViewで出来てればよかったのに。。。そうすれば、CSSで色分けスタイル指定とか、フォント指定とか出来て便利なのにな。