私はTWAINイメージを取得するためにXBAPを使用しようとしていますが、それほど遠慮していません。私は、HostInteropHelper.HostScriptを取得して、ホストページのjavascriptに戻ることができないようです。
- 私は、iframe内にXBAPを実行しています。
- 私は(それが要件でなければなりませんが)完全な信頼を試します。
- 私はIE9でテストしています、.NET Frameworkの4.0ます。
- BrowserInteropHelper.HostScriptがnullでない、私は.Close(のような通常のウィンドウ法を使用することができる)。
私のコードは次のようになります:
Index.html:
My cat's breath smells like cat food.
<script type="text/javascript">
function WorkDamnit() {
$('#someP').hide();
}
</script>
<iframe src="@Url.Content("~/XBAPs/WPFBrowserApplication1.xbap")" style="border: none;" width="500" height="500" />
Page1.xaml.cs:
private void Button_Click(object sender, RoutedEventArgs e)
{
if (BrowserInteropHelper.HostScript == null)
throw new ApplicationException("hostscript is null");
else
BrowserInteropHelper.HostScript.WorkDamnit();
}
私は得る:
System.MissingMethodException: Method '[object Window].WorkDamnit' not found.
新しい情報:
このシナリオは、ネットワーク上の他のPCから正常に動作し、その理由がわかりました。 IE9には、デフォルトで「互換性ビューでイントラネットサイトを表示する」という設定が有効になっています。これにより、ページが「IE7モード」でレンダリングされ、javascript関数がXBAPから使用可能になります。ドキュメントモード:(F12開発ツールコンソールの下)をクリックしてIE9モードに切り替えると、上記のように機能しなくなります。自分のPC上では、デフォルトでIE9モードを使用しています(それはすべきです)。手動でIE7モードに切り替えるまで動作しません。