2009-11-12 7 views
1

Voici mon scénario:chargement jQuery dans le contrôle WebBrowser du système de fichiers

J'utilise le contrôle WebBrowser dans une application WinForms pour afficher les données. Le HTML est servi via la propriété DocumentText et je veux utiliser jQuery pour interagir avec le contenu. Chargement jQuery à partir du Web (API Google) fonctionne:

html réelle à l'intérieur DocumentText, bloc de tête:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"> 
// jquery specific functions... 
</script> 

Je veux charger le fichier jQuery à partir du système de fichiers, comme ceci:

<script type="text/javascript" src="file:///E:/path/to/jquery.js"></script> 

Mais cela échoue. Je pense qu'il est bloqué par les paramètres de la zone de sécurité IE (à propos de: vide n'importe qui?). J'ai essayé d'utiliser MotW mais cela ne fonctionne pas non plus. Comment est-ce que je fais cela correctement?

Répondre

2

fix rapide # 49: créer des fichiers html temporaires Path.GetTempPath() et accédez à eux. De cette façon, il y a moins de restrictions, donc les ressources locales comme les scripts sont autorisés à fonctionner. Nettoyage en sortie

Bonus: Mise en cache automatique.

+0

Salut! Pourriez-vous nous en dire plus à ce sujet? –

3

Vous pourriez envisager d'intégrer un simple serveur HTTP dans votre application exécutée sur son propre thread. Peut-être ne pas être parfait mais peut faire ce que vous voulez. Voir Embedded .NET HTTP Server ou Simple HTTP Server Skeleton in C# comme deux exemples. Si cette architecture vous convient, c'est une autre histoire, mais elle peut vous permettre de server du contenu statique localement sans avoir à vous soucier des restrictions de sécurité de votre contrôle. Vous pouvez avoir quelques problèmes de pare-feu mais je dirais que cela devrait être minime car vos connexions sont partout sur le bouclage.

Hope this offre quelque chose à penser de toute façon ....

+0

C'est intéressant en effet, merci. Toujours à la recherche d'une "solution miracle", mais en tout cas c'est ce que je vais essayer pour le moment. –

0

Utilisez awesomium 1 contrôle webbrowser. Il prend en charge jquery sur Winforms et WPF. C'est gratuit pour les applications non-commerciales. Je prévois de le recommander pour certaines de mes applications patrimoniales d'employeurs qui causent des maux de tête avec le support IE8.

Questions connexes