我有一个具有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?
谢谢
答案 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");