作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我定义了以下 Silverlight 控件:
<object id="objImageViewer" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="500px">
<param name="source" value="../ClientBin/SomeImageViewer.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<param name="windowless" value="true" />
<param name="initParams"
value="
Username=<%= ImageViewerUsername %>,
Editable=<%= ImageViewerEditable ? "1" : "0" %>,
Align=<%= ImageViewerAlign ? "1" : "0" %>
" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
我在我的 Silverlight 控件 (Page.xaml.cs) 中公开了以下方法以供 Javascript 访问:
[ScriptableMember]
public bool HasPendingUpdates()
{
return btnSave.IsEnabled;
}
然后我的 aspx 页面中有一个 Javascript 测试函数试图用它做一些事情:
var imageViewer = $("#objImageViewer")[0];
if (imageViewer.Content.Page.HasPendingUpdates())
{
alert("Pending Changes Exist!");
}
else
{
alert("NO Pending Changes Exist!");
}
问题是它在 Content
对象之后失败。我测试了以下内容:
var imageViewer = $("#objImageViewer")[0];
imageViewer // Valid
imageViewer.Content // Valid
imageViewer.Content.Page // Invalid
imageViewer.Content.HasPendingUpdates() // Invalid
所以我不确定我做错了什么。如何访问内容中的函数?
我正在使用 IE8、Silverlight 3、ASP.NET。 Silverlight 控件是使用对象标记创建的,因为我认为该控件不是 Silverlight 3+ 中的一个选项。
如有任何帮助,我们将不胜感激。
最佳答案
您需要向 Silverlight HTMLBridge 注册一个标识符以在 Content 属性上公开,并为其提供一个具有一些可编写脚本的入口点的对象。
我倾向于在页面构造函数中这样做:-
public Page()
{
InitializeComponent();
HtmlPage.RegisterScriptableObject("Page", this);
}
现在您的代码应该可以工作了。
关于asp.net - 如何在 Silverlight 3 对象上调用 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2051092/
我是一名优秀的程序员,十分优秀!