Вызов JavaScript из Silverlight, размещенного в IFrame - PullRequest
1 голос
/ 19 декабря 2011

Я занимаюсь разработкой приложения 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 по умолчанию - на самом деле это файл Contacts.cshtml)

Это часть, где я вызываю функцию JavaScript.

HtmlPage.Window.Invoke("testMethod");

Есть предложения, что делать / что я делаю не так?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Попробуйте: -

ScriptObject parent = HtmlPage.Window.GetProperty("parent") as ScriptObject;
if (parent != null)
{
     parent.Invoke("testMethod");
}
0 голосов
/ 20 декабря 2011

Вот что сработало для меня в этом случае

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

Я знаю, что .Eval следует избегать, но, похоже, это единственный способ для меня: /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...