2010-04-29 4 views
2

J'ai une application ASP.NET qui a un DIV et un IFRAME. Le DIV héberge mon application Silverlight. L'IFRAME pointe vers une autre page sur mon site. Lorsqu'un utilisateur clique sur un bouton dans mon application Silverlight, j'essaie de définir une valeur dans un champ masqué sur la page dans l'IFRAME et de soumettre la page.Silverlight 3 - Actualiser un IFrame

Actuellement, j'appelle une fonction JavaScript dans la page qui héberge mon application Silverlight. J'essaie d'utiliser la fonction JavaScript pour ensuite interagir avec la page dans l'IFRAME via le DOM HTML. Bizarrement, chaque fois que j'accéder à l'élément de document sur l'objet cadre, un message est renvoyé à mon application Silverlight qui dit:

« Type « slBridge »n'existe pas Nom du paramètre:. TypeName »

Voici le code appelant la fonction JavaScript dans mon application Silverlight.

HtmlPage.Window.CreateInstance("slBridge", new string[] { }); 

Voici mon code JavaScript:

function slBridge() { 
    alert("Getting to execute JS"); 
     for (i = 0; i < window.frames.length; i++) { 
     if (window.frames[i].name == "bridgeIFrame") { 
     alert(windows.frames[i].document.title);  // If I remove this line it works. I can print the value of "i" as well 
     break; 
     } 
    }         
    }  

Y at-il quelque chose de sécurité que je ne suis pas au courant? Si oui, comment puis-je accéder à un IFrame depuis mon application SL?

Merci

Répondre

0

Je ne sais pas pourquoi vous utilisez CreateInstance. Pour invoquer une utilisation de la fonction Invoke: -

HtmlPage.Window.Invoke("slBridge"); 
+0

J'ai essayé cette approche. Cependant, je rencontre toujours le même problème. Y a-t-il une restriction de sécurité? – user70192

+0

Il n'y aura une restriction de sécurité que si le fichier Silverlight XAP provient d'un site différent de celui de la page qui l'héberge. – AnthonyWJones

2
Dim domelement As HtmlElement = System.Windows.Browser.HtmlPage.Document.GetElementById("iframe") 
    If domelement.GetStyleAttribute("visibility") = "visible" Then 
     domelement.SetStyleAttribute("zIndex", "3") 
    End If 

exemple de changement iframe dom de SL