0

レセプションエリアでキオスクとして稼働するHTAを開発しています。このキオスクは、window.open()メソッドを使用して新しいウィンドウを起動するWebページを表示できます。

私がやりたいのは、HTA内からwindow.open()を処理することです。そのため、Internet Explorerウィンドウを生成する代わりに、新しいウィンドウがHTA内のフローティングiframeに表示されます。

私がこれをどのように行うかについてのアイデアはありますか?

これが理想的なシナリオを示すいくつかの擬似コードです(実際の解決策はおそらくもっと複雑になると思いますが)。

function onWindowDotOpen(obj)
{
   spawnNewIframeTab(obj); // Handle the event in the HTA
   return false; // Stop the default behaviour from firing
}

VBScriptソリューションはありますか?

4

1 に答える 1

0

ロードされたIFRAMEの「window.open」をオーバーライドすることで、特定の問題を解決しました。これは HTA で実行できますが、通常のブラウザーでは機能しません。

<iframe onload="iframe_onload(this)" src="..."...></iframe>
<script type="text/javascript">
iframe_onload = function(obj)
{
    $(obj).contents().get(0)
    frame.frames.window.open = function(url, name, features, replace)
    {
        ...
    }
}
</script>
于 2010-08-19T05:09:12.660 に答える