HTA内からwindow.open(…)をどのように検出しますか?
-
27-09-2019 - |
質問
レセプションエリアでキオスクとして実行されるHTAを開発しています。このキオスクは、Window.open()メソッドを使用して新しいWindowsを起動するWebページを表示できます。
私がやりたいのは、window.open()をHTA内から処理することです。したがって、インターネットエクスプローラーウィンドウを産む代わりに、新しいウィンドウがHTA内の浮遊iframeに表示されます。
私がこれをどのように行うかについてのアイデアはありますか?
理想的なシナリオを示す擬似コードを以下に示します(ただし、実際の解決策はおそらくより複雑になることを知っています)。
function onWindowDotOpen(obj)
{
spawnNewIframeTab(obj); // Handle the event in the HTA
return false; // Stop the default behaviour from firing
}
VBScriptソリューションはありますか?
解決
ロードされた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>
所属していません StackOverflow