Question

J'utilise EmbeddedWB (A extension TWebBrowser) à faire comme un "aperçu en direct" de certains contenus générés dynamiquement.

Je suis en train d'ajouter jQuery dans le mélange, afin que je puisse obtenir des effets de fantaisie en cours, cependant, puisque IE9 demande toujours « Autoriser le contenu bloqué » pour chaque page putain, une dynamique généré un (Webbrowser.LoadFromString) certainement ne vais pas être autorisé à se amuser. Pour faire simple:. Il ne sera pas permettre l'exécution de JavaScript

J'ai essayé d'ajouter un SecurityManager à mon TEmbeddedWB, mais qui ne le font pas non plus. Je l'ai testé mon code dynamique dans Firefox, et IE9, et il fonctionne (bien sûr, dans IE9, je dois permettre d'abord, qui était de savoir comment je l'ai trouvé était un problème de sécurité).

Y at-il un moyen indolore pour contourner ce problème, sans avoir à passer manuellement en quelque chose de IE et tweak? Ou suis-je complètement tort au sujet de la cause du problème?

EDIT : Après avoir essayé méthode de cet article , qui ne représentent pas demander si elle devrait permettre des choses plus, mais mon script est toujours pas en cours d'exécution dans mon TEmbeddedWB / TWebBrowser ..

EDIT 2 :. D'accord, en supprimant le code de jQuery et l'affichage d'une alerte ordinaire, je suis forcé de conclure que JS est maintenant en cours d'exécution, mais jQuery est pas

EDIT 3 : Voici le (dépouillé) le code HTML que mon application génère, où jQuery ne fonctionne pas dans mon contrôle EmbeddedWB / TWebBrowser - mais , il fonctionne dans Internet Explorer 9 lui-même:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <script type="text/javascript" src="file://C:\jQuery.js"></script>
</head>
<body>
    <center>
    <p>
      Some stuff here!
    </p>
    </center>

    <script type="text/javascript" language="javascript">
    $(document).ready(function(){
            alert('I Am jQuery!!!!');
    });
    </script>
</body>
</html>

EDIT4 : J'ai aussi essayé le passage src à un Google Hosted jQuery, et cela ne fonctionne pas non plus. Retrait de la Metatag n'a pas fixé non plus. Il suffit de vous laisser savoir des choses que j'essayé avant de perdre du temps à penser qu'il:)

EDIT5 : En naviguant sur un site qui utilise jQuery (Webbrowser.Navigate) le site fonctionnait comme prévu. Cependant, quand le faire de mon test.html local, ou en faisant .LoadFromString();, il ne fonctionnera pas.

ne fonctionnera pas = le code jQuery ne pas exécuter.

Était-ce utile?

La solution

Il semble fonctionner si vous utilisez URL correcte pour le fichier jquery.js:

<script type="text/javascript" src="file://C:/jQuery.js"></script>
<script type="text/javascript" src="file:///jQuery.js"></script>

ou un chemin relatif, vous pouvez également omettre le protocole file://:

<script type="text/javascript" src="../../jQuery.js"></script>

Les travaux ci-dessus lorsque vous chargez le code HTML à partir d'un fichier. La question est cependant, si le contenu de la mémoire et javascript du système de fichiers n'est pas considéré comme traversant une frontière de contexte de sécurité et a rejeté pour cette raison par le navigateur intégré. Dans ce cas, l'intégration jquery directement dans le contenu HTML (en utilisant la balise <script>) devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top