artonです。

やっと動かし方がわかりました。

On Mon, 24 Feb 2003 20:39:24 +0900
"Masakazu Fujimoto" <masakazu / cwo.zaq.ne.jp>さん wrote:

> こういう方法があるんですね。
> 
> ただ、試してみるとコンソールにはエラーメッセージが
> 出ないので、正しく関数Samは呼ばれているようなのですが、
> 相変わらずAssertWindows(?)は出ませんでした。

次の方法で、明示的に呼び出してください。

ie.document.parentWindow.Sam._invoke 0, [],[]

window.JScript関数名
に対して、IEは、JScriptの関数オブジェクトを返してきます。それに対して
VBScriptやJScriptは、デフォルトメソッドを呼び出すようですが、Win32OLEは、
呼び出したスクリプトに対して、該当するオブジェクトを返します。
この動作は、おそらく変更しにくいと思います。

したがって、返送されたオブジェクト(=JScriptの関数オブジェクト)に対して、
_invoke …… OLEメソッドを直接呼ぶためのWin32OLEのメソッド
を、以下の引数で呼び出します。
0 …… デフォルトメソッドを意味する数値(DIPSID)
[]……引数を示す配列(この場合は、空要素)
[]……引数の型を示す配列(この場合は、空要素)

引数を取るJScriptの関数の場合には、適宜、[]内に設定してください。

例)
 <script type="text/javascript">
 <!--
  function Ab(a) {
    window.alert(a);
  }
 // -->
 </script>

を呼ぶのであれば
ie.document.parentWindow.Ab._invoke 0, ['Hello'], [WIN32OLE::VARIANT::VT_BSTR]

-- 
arton <artonx / yahoo.co.jp>

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/