AntonioPelleriti.it [aka z9]

I code, therefore I am

NAVIGATION - SEARCH

Windows Phone: WebBrowser e Javascript non vanno d'accordo?

Windows Phone fornisce un controllo WebBrowser utilizzabile nelle proprie app, per esempio per visualizzare pagine e siti internet, o per creare applicazioni ibride, con un misto di interfaccia XAML ed il resto appunto HTML/Javascript.

Il controllo WebBrowser ha delle limitazioni rispetto a quello di sistema, ed inoltre le funzionalità supportate dipendono anche dalla versione del sistema opeativo. 

In Windows Phone 7.1 è basato su Internet Explorer 9, mentre il controllo per Windows Phone 8 si basa su Internet Explorer 10, ed in Windows Phone 8.1 abbiamo infine il supporto di Internet Explorer 11.

A causa di queste differenze anche il contenuto visualizzato al suo interno può variare fra le differenti versioni dei sistemi operativi.

Il controllo permette anche di renderizzare contenuto che fa uso di javascript (Jquery & co sono ormai omnipresenti...), in questo caso però è necessario impostare a true l'apposita proprietà IsScriptEnabled, da code behind o direttamente da XAML.

webBrowser.IsScriptenabled=true;

 

In genere questo è sufficiente.

Purtroppo nella pratica mi è capitato di aver a che fare con una pagina html di un cliente, che faceva largo uso di Javascript, e che sul controllo WebBrowser non aveva intenzione di funzionare come funzionava su un normale browser.

Dopo vari googlamenti, tentativi, ricerche su StackOverflow e forum vari, ho scoperto che aggiungendo alla pagina HTML in questione la dichiarazione doctype di HTML 5, il tutto funzionava a meraviglia:

<!DOCTYPE html>
<html>
...

Quindi se vi capita, provate a risolvere così.