Я создаю элемент управления Silverlight с помощью Silverlight.js примерно так:
var properties = {
width: '640px',
height: '480px',
background: 'black',
version: '2.0.0.0'
};
var events = {
onError: function() { alert('eek!'); },
onLoad: function(sender, args) { sender.content.Page.foo(); }
};
Silverlight.createObject(
'/beta/ClientBin/DeepZoomProject.xap', // source
container, // parent element
'slPlugin', // id for generated object element
properties,
events,
'',
'context' // context helper for onLoad handler.
);
Внутри элемента управления Silverlight я сделал все, чтобы сделать его доступным для сценариев:
[ScriptableType]
public partial class Page : UserControl {
public Page() {
InitializeComponent();
HtmlPage.RegisterScriptableObject("Page", this);
}
[ScriptableMember]
public void foo() {
// doing something here
}
}
... и на самом деле он отлично работает в IE8, Firefox, Safari и Chrome в Windows, а также Safari и Chrome на Mac Однако он не работает в Firefox (3.6) на Mac. В Firefox sender.content не имеет страницы (или страницы, если на то пошло). У него есть рут, но я не знаю, куда идти дальше.
Есть мысли о том, что я могу попробовать дальше?