PDA

View Full Version : [C#] Il WebBrowser non esegue css e javascript


race2
05-11-2018, 13:44
Salve,
su un progetto WinForm, ho aggiunto il componente WebBrowser, aggiungo l'url su Navigare()....

- Se apro "youtube.com" funziona benissimo
- Se apro "subito.it" mi da un saccco di errori JavaScript che io devo accettare cliccando "SI" ( che può continuare ad eseguirli )

Come posso fare ad aprire tutti quei siti che mi danno errore?
Perchè mi danno errore, manca qualcosa di programmazione per i CSS e JavaScript ??

Vi ringrazio.

Mursey
07-11-2018, 10:27
Il webbrowser si comporta da browser ma se non è avanzato come codifica di pagina può avere problemi.
Probabilmente è meglio optare per CEF che si basa su Chromium, più difficile da usare ma ottimo come resa.

race2
07-11-2018, 13:11
ho risolto tutto con questo:


private void Form1_Load(object sender, EventArgs e)
{
int BrowserVer, RegVal;


// get the installed IE version
using (WebBrowser Wb = new WebBrowser())
BrowserVer = Wb.Version.Major;


// set the appropriate IE version
if (BrowserVer >= 11)
RegVal = 11001;
else if (BrowserVer == 10)
RegVal = 10001;
else if (BrowserVer == 9)
RegVal = 9999;
else if (BrowserVer == 8)
RegVal = 8888;
else
RegVal = 7000;


// set the actual key
using (RegistryKey Key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree))
if (Key.GetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe") == null)
Key.SetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord);

Mursey
08-11-2018, 22:14
Ah ok, imposti la versione del browser.
Buono a sapersi se si vuole continuare ad usare questo componente.

race2
09-11-2018, 06:28
Ah ok, imposti la versione del browser.
Buono a sapersi se si vuole continuare ad usare questo componente.

Si è una forzatura...
Non so se può funzionare facendo girare l'applicazione su un PC dove non sei loggato come amministratore, dato che si agisce nel registro di sistema.

Mursey
10-11-2018, 15:07
Si è una forzatura...
Non so se può funzionare facendo girare l'applicazione su un PC dove non sei loggato come amministratore, dato che si agisce nel registro di sistema.

Già... probabilmente non funziona.