TypeNameでInterface名(もどき)を取得する
はじめに
VBScriptのTypeName()関数は変数はその変数がどんな型なのかを返してくれる関数です。
これはscript要素がtext/vbscriptならば使えるのですが、出来ればJavaScriptで使いたいって話です。
window.execScript()について
実はこんなメソッドがwindowオブジェクトにありました。
window.execScript(sExpression, sLanguage)
こういう感じで使います。
VBScriptをJavaScriptで呼び出したり出来る
こんな感じです。
if (window.execScript) { window.execScript('Function xTypeName(x): xTypeName = TypeName(x): End Function', 'VBScript'); }
これをブックマークレットにするならば、
javascript:if(window.execScript){window.execScript('Function xTypeName(x): xTypeName = TypeName(x): End Function', 'VBScript');}
使ってみよう
alert(xTypeName(window)); // HTMLWindow2 alert(xTypeName(document)); //HTMLDocument alert(xTypeName(document.documentElement)); // HTMLHtmlElement alert(xTypeName(document.getElementsByTagName("*"))); // DispHTMLElementCollection alert(xTypeName(document.documentElement.attributes)); // DispHTMLAttributeCollection
と言う感じでオブジェクト名が取れちゃいます。OleViewと共に調べてみると結構面白いです。