Silverlight onLoad 事件不会在 Firefox 或 Safari 中触发

Silverlight onLoad event doesn't fire in Firefox or Safari

我正在努力处理 Firefox/Safari 中的 Silverlight onLoad 事件。在 IE 中,它们会按应有的方式触发,但在 FF/Safari 中它们不会。

我从 JavaScript 创建 Silverlight 对象,提供必要的参数,包括 onError 和 onLoad 事件。为了便于阅读,我省略了下面代码的某些部分。

我是否遗漏了什么或者我是否需要一些解决方法来使 onLoad 事件在 IE 以外的其他浏览器中启动?

提前致谢!

Silverlight.createObject(
    "silverlight/MediaPlayer.xap?verison=16012013",
    _container,
    "silverlightControl",
    params,
    {
        onError: onSilverlightError,
        onLoad: onSilverlightLoaded
    },
    {},
    context
);

var onSilverlightLoaded = function (sender, context, slObject) {
    var slHost = slObject.getHost();
    // Do stuff
};

var onSilverlightError = function (sender, args) {
    console.debug("Oups...");
};

好的,所以错误是我自己的。 createObject 方法的 initParams 参数必须是一个字符串,而不是 Silverlight 插件的对象才能在 Firefox 和 Safari 中正确初始化(见下文)。 IE 似乎不在乎。

Silverlight.createObject(
    "silverlight/MediaPlayer.xap?verison=16012013",
    _container,
    "silverlightControl",
    params,
    {
        onError: onSilverlightError,
        onLoad: onSilverlightLoaded
    },
    "",
    context
);

var onSilverlightLoaded = function (sender, context, slObject) {
    var slHost = slObject.getHost();
    // Do stuff
};

var onSilverlightError = function (sender, args) {
    console.debug("Oups...");
};