日向夏特殊応援部隊

俺様向けメモ

TypeNameでInterface名(もどき)を取得する

はじめに

VBScriptのTypeName()関数は変数はその変数がどんな型なのかを返してくれる関数です。
これはscript要素がtext/vbscriptならば使えるのですが、出来ればJavaScriptで使いたいって話です。

window.execScript()について

実はこんなメソッドがwindowオブジェクトにありました。

window.execScript(sExpression, sLanguage)

こういう感じで使います。

VBScriptJavaScriptで呼び出したり出来る

こんな感じです。

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と共に調べてみると結構面白いです。