如何在firefox中使用javascript访问书签面板?

时间:2013-10-31 10:59:17

标签: javascript firefox-addon xul firefox-addon-sdk bookmarks

我正在开发一个firefox插件,我必须访问书签面板(看它转到View-> Sidebar->书签)并在其上下文菜单中添加一个菜单项,当点击菜单项时,得到它被点击的项目。

例子: 您打开书签面板并右键单击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总是给我[object xulElement],我怎么看到它是什么元素?

我试过了:

var sXML = new XMLSerializer().serializeToString(event.target);

但似乎不起作用

由于

1 个答案:

答案 0 :(得分:0)

我想改变

var bar = sidebarWindow.getElementById("placesContext");

var bar = sidebarWindow.document.getElementById("placesContext");

会有所作为: - )

相关问题