2

dans mon application silverlight J'utilise le contrôle webBrowser.Silverlight window.external.notify() securityproblem?

J'appelle la fonction javascript suivante sur la page vers laquelle je navigue.

function notify() { 
     window.external.notify("Close"); 
    } 

Le fait étrange est que cela ne fonctionne que lorsque je navigue à la page en utilisant:

this.Browser.Source = new Uri("http://localhost/TestOutOfBrowser.Web/HTMLPage1.htm"); 

Quand je navigue à l'aide du nom réel du serveur:

  this.Browser.Source = new Uri("http://testServerName/TestOutOfBrowser.Web/HTMLPage1.htm"); 

Je reçois une exception javascript ('Erreur non spécifiée.') Lors de l'exécution de window.external.notify ("Close"); ligne.

Ceci est très probablement liés à la sécurité, mais je n'ai pas la moindre idée comment résoudre ce problème ..

Comment puis-je obtenir ce travail?

+0

Où hébergez-vous votre fichier xap? – Denis

+0

J'utilise IIS 7.5 pour héberger l'application. Je suis juste en train de tester localement. (VS 2010, Silverlight 4) – Stephane

Répondre

2

Pour toute personne face au problème identique ou similaire:

Appearantly c'est un problème de sécurité de script inter-domaines. Le contrôle du navigateur ne l'exécutera pas si le domaine de l'application Silverlight et la page (vous naviguez vers) sont différents. (! even 127.0.0.1 et localhost sont évalués comme des domaines 'différents')

J'ai fini par utiliser une adresse URI relative pour naviguer jusqu'à la page et cela a résolu mon problème.

Grtz