从托管在IFrame中的Silverlight调用JavaScript

本文关键字:Silverlight 调用 JavaScript 中的 IFrame | 更新日期: 2023-09-27 18:18:21

我正在开发一个Silverlight应用程序,它将被托管在另一个应用程序IFrame:

<hgroup class="title">
<h1>@ViewBag.Title.</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
<script type="text/javascript">
    function testMethod() {
        alert(1);
    }       
</script>
<iframe src="URL of the silverlight application" width="750" height="500"/>

这只是一个用于测试目的的虚拟应用程序(我使用默认的MVC 4模板-这实际上是联系人。cshtml文件)

这是我调用JavaScript函数的部分。

HtmlPage.Window.Invoke("testMethod");

有什么建议要做/我做错了什么?

从托管在IFrame中的Silverlight调用JavaScript

尝试:-

ScriptObject parent = HtmlPage.Window.GetProperty("parent") as ScriptObject;
if (parent != null)
{
     parent.Invoke("testMethod");
}

这就是我在这种情况下的工作

HtmlPage.Window.Eval("if(typeof window.parent.testMethod== 'function'){window.parent.testMethod()};");

我知道.Eval应该避免,但它看起来对我来说是唯一的方法:/