所以我有一个 Silverlight 控件,我使用 ActiveX 对象表示法将它添加到 ASP.NET Web 窗体页面,如下所示:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="500" height="48">
<param name="source" value="/ClientBin/FileUpload.xap?t=<%=DateTime.Now.ToUniversalTime() %>"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40818.0" />
<param name="autoUpgrade" value="true" />
<asp:Literal ID="SilverlightInitParams" runat="server" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
<img src="https://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
在控件中,有一个按钮。单击按钮时,我希望调用 JavaScript 脚本。要查看我是否可以让它工作,它应该调用一个确实存在的 JavaScript 函数。然而,什么也没有发生。
Silverlight 代码如下所示:
public partial class FileUploadControl : UserControl
{
...
public FileUploadControl(IDictionary<string,string> parameters)
{
...
HtmlPage.RegisterScriptableObject("Page", this);
InitializeComponent();
}
private void chooseFileButton_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Invoke("showStatus");
...
}
...
}
这是 JavaScript 方法:
function showStatus() {
alert('Test from Silverlight.');
}
有任何想法吗?