从外部源/文件填充Chrome上下文菜单

时间:2011-06-28 03:14:55

标签: javascript xml google-chrome google-chrome-extension

我目前正在撰写Chrome扩展程序,其基本功能是作为快速选择工具。这意味着我正在使用通过ASP.NET网站实现的文件分类界面,我必须在上传时选择描述特定文件的特定值(例如日期,描述,标签等)。因此,我决定使用Chrome的开发工具来构建一个易于使用的上下文菜单(您只需右键单击页面),该菜单提供了一个预定义规则列表,点击后填写所有相应字段(文本框,下拉列表等自动在页面上。

事情是,有很多这些预定义的规则,它们很容易改变,大多数都有子节点(例如:规则1包含1.1,1.2等),这有点难以编码直接以脚本形式。因此,我的想法是将定义包含在单独的文件中,如XML文档,并简单地使用提取的数据填充上下文菜单。只有我尝试了许多不同的方法,但没有一种方法有效。是不是可以将此XML文件放在扩展文件夹中并只是访问它?如果是这样,代码调用它会是什么样子?我是否可以在Chrome扩展程序中与此类本地资源进行互动?欢迎任何意见。

示例:

// This is the parent "general" section
var general = chrome.contextMenus.create({ "title": "General" });

 // Here, there would be a loop iterating through the "general" division of the XML,
 // creating the sub-menus (general_item1, general_item2, etc).

1 个答案:

答案 0 :(得分:0)

您可以通过XMLHttpRequest加载它并使用jquery解析它,例如:

$.ajax({
    url: "include.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find("entry").each(function(){
            //loop through children
            $(this).children("subentry").each(function(){
                console.log($(this).attr("param"));
            });
        });
    }
});

但是我会选择Jim Schubert在评论中建议的内容 - 只包含js文件,其中包含可以使用的某种对象中的所有设置。如果您可以将所有内容存储为javascript对象,则无需将XML转换为javascript。