背景:我在共享点 Web 部件中有一个 Silverlight 控件,它公开了一些可编写脚本的方法。我使用这些方法来调用 Web 服务并获取一系列菜单选项。然后将这些菜单选项注入到单击列表中的项目时出现的 Sharepoint ECB 菜单中。
我遇到的问题是能够在 Javascript 中获取 silverlight 控件的 clientID,因此我可以使用它来调用可编写脚本的方法。这将出现的页面可能具有相同silverlight控件的多个实例,并且控件层次结构可能不同......
这是我目前拥有的客户端JS代码,其中clientID是硬编码的......
function TestQueryMenu() {
var plugin = document.getElementById('ctl02_IntuitionModelBrowserControl');
var contextUri = document.getElementById('TestUri').value;
var key = contextUri;
plugin.Content.ModelBrowser.GetContextMenuOptionsCompleted = MenuItemsReceived;
plugin.Content.ModelBrowser.GetContextMenuOptionsAsync(key, contextUri);
}