Silverlight 3 - 刷新IFrame

时间:2010-04-29 16:49:29

标签: silverlight

我有一个具有DIV和IFRAME的ASP.NET应用程序。 DIV托管我的Silverlight应用程序。 IFRAME指向我网站上的另一个页面。当用户单击Silverlight应用程序中的按钮时,我正在尝试在IFRAME页面的隐藏字段中设置值并提交页面。

目前,我正在托管Silverlight应用程序的页面中调用JavaScript函数。我正在尝试使用JavaScript函数,然后通过HTML DOM与IFRAME中的页面进行交互。奇怪的是,每当我访问FRAME对象上的document元素时,都会将一条消息传递回我的Silverlight应用程序,该应用程序说:

“类型'slBridge'不存在。参数名称:typeName”

以下是在我的Silverlight应用程序中调用JavaScript函数的代码。

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

这是我的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;
      }
    }                                
  }     

是否有一些我不知道的安全问题?如果是这样,我如何从SL应用程序访问IFrame?

谢谢

2 个答案:

答案 0 :(得分:2)

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

从SL

更改dom中的iframe的示例

答案 1 :(得分:0)

我不确定您使用CreateInstance的原因。要调用函数,请使用Invoke: -

 HtmlPage.Window.Invoke("slBridge");