【问题标题】:Do the HtmlWindow returned from the HtmlPage.PopupWindow can .Invoke or .Eval javascript从 HtmlPage.PopupWindow 返回的 HtmlWindow 可以 .Invoke 或 .Eval javascript
【发布时间】:2010-05-11 18:08:16
【问题描述】:

创建一个单独的 PopupWindow 来打开另一个 Web 浏览器会给我一个 HtmlWindow 对象作为返回值,该对象与 silverlight 项目的静态“HtmlPage.Window”的对象类型相同。该对象类型提供“Invoke”和“Eval”方法。

我想评估一个 javascript,它可以位于我的 Silverlight 代码中的字符串值 (Eval) 或我弹出的 uri (Invoke) 中。

我使用的 Nomather 脚本执行方法,它失败了。 对于 eval,它给了我一个带有“Eval failed”的 InvalidOperationException。信息。 对于 Invoke,它给了我一个 InvalidOperationException 和“调用失败:TalkToJavaScript”。消息。

有没有办法在 PopupWindow 上执行 javascript。

这里的代码是一个简单的测试。我第一次按下按钮时,它会在新的 webbrowser 实例中弹出 uri。我第二次单击时,它会尝试在目标 uri 窗口上执行 javascript。它在 ** "m_window.Invoke("TalkToJavaScript", "pute");" 处失败

HTML代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
    function TalkToJavaScript(data) {
        alert("Message received from Silverlight: " + data);
    }  

</script>
</head>
<body>
    <div id="content" />
</body>
</html>

银光代码

    private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        if (m_window == null)
        {
            HtmlPopupWindowOptions options = new HtmlPopupWindowOptions();

            options.Left = 0;
            options.Top = 0;
            options.Width = 800;
            options.Height = 600;
            m_window = HtmlPage.PopupWindow(new Uri("http://www.visionwww.com/tests/ContentInjectionTest.html"),
                                            "new", options);
        }
        else
        {
            m_window.Invoke("TalkToJavaScript", "test");
            //m_window.Eval("alert(\"Message received from Silverlight\");");
        }
    }

【问题讨论】:

    标签: javascript html silverlight popupwindow


    【解决方案1】:

    您的不是 XAP 也由“http://www.visionwww.com/”提供服务。因此,当您尝试使用 Invoke 操作它时,出于安全原因,该尝试会被阻止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多