我正在开发一个Firefox插件,我必须访问书签面板(看它去查看 - >边栏 - >书签),并添加一个菜单项到它的上下文菜单,当菜单项被点击时,获取项目它被点击。如何在Firefox中使用javascript访问书签面板?
Por示例: 您打开书签面板并右键单击Most Visited项并单击我的菜单项,然后我想知道单击了Most Visited项。
我尝试下面的代码,但没有成功:
var bookmarkMenu = document.getElementById('menu_bookmarksSidebar');
var observer = document.createElement('observes'); //Observe when the bookmark panel shows
observer.setAttribute('element','viewBookmarksSidebar');
observer.setAttribute('attribute','checked');
observer.addEventListener('broadcast',function(event){
console.log("Bookmark panel showing " + event.target);
var sidebarWindow = document.getElementById("sidebar").contentWindow;//Try to get the sidebar window
if(sidebarWindow == null){
console.log("NULL");
}
var bar = sidebarWindow.getElementById("placesContext");
if (bar == null){
console.log("NO Sidebar window");
}
});
bookmarkMenu.appendChild(observer);
我知道如何访问浏览器窗口,但我无法访问侧边栏窗口。 根据bookmarkPanel.xul,该面板的上下文菜单的ID是“placeContext”,但我无法访问它。我如何访问右键单击的书签/元素?
event.target总是给我[对象xulElement],我怎么能看到它是什么元素?
我尝试这样做:
var sXML = new XMLSerializer().serializeToString(event.target);
但似乎并没有工作
感谢
可以解决方案基于使用xul覆盖?或者你需要用js来做到这一点? – Kashif
需要使用javascript;它是一个插件。谢谢 – swe87