Ik probeer een XBAP te gebruiken om TWAIN-afbeeldingen te verkrijgen, maar ik kom niet eens zover. Ik kan het BrowserInteropHelper.HostScript schijnbaar niet krijgen om me in staat te stellen terug te praten met het JavaScript op de hostpagina.
- Ik gebruik de XBAP in een iframe.
- Ik heb geprobeerd volledig te vertrouwen (hoewel dat een vereiste zou moeten zijn).
- Ik test op IE9, .NET Framework 4.0
- Het BrowserInteropHelper.HostScript is niet leeg, ik kan de normale venstermethoden gebruiken, zoals .Close ().
Mijn code ziet er als volgt uit:
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();
}
Ik krijg:
System.MissingMethodException: Method '[object Window].WorkDamnit' not found.
Nieuwe informatie:
Dit scenario werkt goed vanaf andere pc's in het netwerk en ik ontdekte waarom. IE9 heeft standaard een instelling ingeschakeld met de naam "Intranet-sites weergeven in compatibiliteitsweergave". Hierdoor wordt de pagina weergegeven in "IE7-modus" en is de JavaScript-functie beschikbaar vanaf XBAP. Als ik op Document Mode: klik (onder de console F12 Developer Tools) en schakel over naar IE9-modus, dan werkt het niet meer (zoals hierboven). Op mijn eigen pc gebruikt het standaard de IE9-modus (zoals het hoort) en het werkt niet, tenzij ik handmatig overschakel naar de IE7-modus.