如何解决如何从Javascript访问生成的JavascriptScriptObject?
| 我有一个Silverlight应用程序,可以在Silverlight网站上生成许多Google Maps对象。例如,这样创建一个地图:var map = HtmlPage.Window.CreateInstance(@\"google.maps.Map\",container,mapOptions);
var center = (ScriptObject)_map.Invoke(\"getCenter\");
一切正常。但是现在我需要直接从Javascript访问map对象。我认为可以通过将地图属性公开为ScriptableMember并从Javascript使用它来完成。但这有点奇怪,因为地图对象已经存在于浏览器中。但是我该如何访问它呢?
更新资料
只是为了弄清楚我在说什么
假设我已经按照上面的步骤创建了地图。现在,我有一个带有此功能的Javasript文件:
function ReadMapCenter()
{
//Need the map object in Javascript
map.getCenter();
}
如何从Javascript访问现有的地图对象?
解决方法
如果仅将其公开为类型
ScriptObject
,我认为网桥将仅解压缩脚本化对象,而不是为其创建另一层包装。
另类
不要使用CreateInstance
在全球一级的JavaScript中使用:-
var map;
function createMap(container,mapOptions)
{
if (!map)
{
map = new google.maps.Map(container,mapOptions);
}
return map;
}
现在您的JavaScript可以使用map
全局变量了。
在Silverlight中使用:-
var map = HtmlPage.Window.Invoke(\"createMap\",container,mapOptions);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。