将Firefox书签更改为标题案例(将每个单词大写)

时间:2014-06-06 00:46:12

标签: javascript firefox title-case

这个我的第一个问题在堆栈溢出中听到,我希望得到我期待的帮助..

我正在寻找改变所有Firefox书签标题的方法 到#TitleSase'

我已经找到了一种使用fierfox Dev将其更改为UPPERCase的完美技术。工具 叫"便笺簿"在浏览器环境中。

这里是它的步骤: -

  1. open about:config
  2. 将devtools.chrome.enabled设置为true
  3. 工具> web开发人员>暂存器
  4. 环境>浏览器
  5. 编辑>粘贴(即下面的复制和粘贴代码)
  6. 执行>运行
  7. 代码。

        function getChildIds(aRootNode, aChildIds) {
      for (var i = 0; i < aRootNode.childCount; i++) {
        var node = aRootNode.getChild(i);
        aChildIds.push(node.itemId);
        if (node.type == node.RESULT_TYPE_FOLDER) {
          node.QueryInterface(Ci.nsINavHistoryContainerResultNode);
          var oldContainerOpen = node.containerOpen;
          node.containerOpen = true;
          getChildIds(node, aChildIds);
          node.containerOpen = oldContainerOpen;
        }
      }
    }
    var bs = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].
      getService(Ci.nsINavBookmarksService);
    var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
      getService(Ci.nsINavHistoryService);
    var query = hs.getNewQuery();
    var options = hs.getNewQueryOptions();
    options.queryType = options.QUERY_TYPE_BOOKMARKS;
    var folders = new Array();
    folders.push(bs.bookmarksMenuFolder);    // Bookmarks Menu
    folders.push(bs.toolbarFolder);          // Bookmarks Toolbar
    folders.push(bs.unfiledBookmarksFolder); // Unsorted Bookmarks
    var childIds = new Array();
    for (var i = 0; i < folders.length; i++) {
      query.setFolders(folders.slice(i, i + 1), 1);
      var result = hs.executeQuery(query, options);
      var rootNode = result.root;
      rootNode.containerOpen = true;
      getChildIds(rootNode, childIds); // recursive function
      rootNode.containerOpen = false;
    }
    bs.runInBatchMode({
      runBatched: function () {
        for (var i = 0; i < childIds.length; i++) {
          var type = bs.getItemType(childIds[i]);
          if (type == bs.TYPE_BOOKMARK || type == bs.TYPE_FOLDER) {
            var title = bs.getItemTitle(childIds[i]);
            if (title) {
              bs.setItemTitle(childIds[i], title.toUpperCase());
            }
          }
        }
      }
    }, null);
    

    所以,我的问题是,如何修改该代码以便更改书签&#39;标题 到TitleCase(大写每个单词)?

    提前致谢...

1 个答案:

答案 0 :(得分:0)

查看此网站: http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase(v=vs.110).aspx

您可以使用TextInfo类中的方法ToTitleCase将字符串更改为标题大小写。 (确保title变量是一个字符串。)然后,而不是使用title.toUpperCase使用title.ToTitleCase

我希望这有帮助,

圣地亚哥