在我的Firefox插件中,我正在寻找一种安全的方法让内容代码检测插件本身的存在。 理想情况下,我最终希望通过执行以下内容来允许内容代码查询我的插件的存在:
if (window.navigator.my_addon) {
// the addon is present
} else {
// the addon is not present
}
有任何建议/指示吗?
答案 0 :(得分:2)
改编自here(但使用getter将my_addon值设为只读)
// contentWindow is the window object of a contentDocument being displayed
var s = new Components.utils.Sandbox(contentWindow);
s.window = contentWindow;
Components.utils.evalInSandbox("
window.wrappedJSObject.navigator.__defineGetter__('my_addon', function(){
return true; // or whatever we want its value to be
// (note: this is unprivileged code!)
});",
s
);