chrome插件one-read開發2:細節

閱讀個人博客文章:chrome插件one-read開發:細節javascript

前言

manifest文件

這裏有詳細關於manifest的介紹文檔,點擊訪問java

json{
    // 必須的字段
      "name": "one-read",
      "version": "0.1",
      "manifest_version": 2,
      // 建議提供的字段
      "description": "內容聚合",
      "icons": { 
        "16": "icons/icon16.png",             
        "48": "icons/icon48.png",            
        "128": "icons/icon128.png" 
      },
      "browser_action": {
        "default_icon": "icons/StatusIcon.png", // optional 
        "default_title": "一覽",   // optional; shown in tooltip 
        "default_popup": "popup.html",       // optional 
        "scripts": ["js/jquery.min.js","js/bootstrap.min.js","js/pop/popup.js"]
      },



      "permissions": [
        "http://*/",
        "http://jandan.net/feed",
        "http://xueqiu.com/hots/topic/rss",
        "http://mindstore.io/",
        "http://segmentfault.com/blogs",
        "http://www.zhihu.com/explore",
        "http://solidot.org.feedsportal.com/c/33236/f/556826/index.rss",
        "http://www.jianshu.com/",
        "http://next.36kr.com/posts"
      ]
    }

着重介紹下permissions的屬性,若是你不聲明的話,你將沒法獲取到你想要獲取的內容jquery

popup頁面

popup做爲咱們惟一加入的頁面。這裏是咱們主要的面向用戶的頁面,這個頁面會被渲染,同時展現在用戶面前,由於有「一覽」的界面,因此我只作了一點點的改動。關於pop頁面,你能夠查看這裏獲取幫助git

原始
個人

pop.js

這裏是咱們的主要pop.js,這裏會主要負責咱們的主要邏輯,包括ajax實現,xml的解析,小偷程序的實現。github

  • ajax的實現我作了少許的改動
javascript// common function
    //ajax發送執行的公共函數
    function commonAjaxFn(ajaxType, ajaxUrl, ajaxDataType, successFn){
        $.ajax({
                type: ajaxType,
                url: ajaxUrl,
                dataType: ajaxDataType,
                beforeSend: ajaxBeforeFn,
                success: function(data){successFn(data)},
                error: ajaxErrorFn,
                complete: ajaxCompleteFn
        });
    }
    function ajaxFn(data){

    }

    //ajax執行前的公共函數
    function ajaxBeforeFn(){
        $(".pop-div").show();
        $(".net-ok").hide();
        $(".spinner").show();       
    }

    //ajax執行完成後的公共函數
    function ajaxCompleteFn(){
        $(".spinner").hide();
        $(".net-ok").show();
        $(".pop-div").hide();
    }

    //ajax執行後錯誤的公共函數
    function ajaxErrorFn(){

    }
  • xml解析:以煎蛋爲例子

點擊按鈕後的代碼ajax

javascript//jianshu
    $("#jianshu-btn").on('click',function(){
        $("#nowDot").css({'left':'166px'});
        $("#jianshu-page").html("");
        commonAjaxFn("GET","http://www.jianshu.com/","html",jianshuFn);
        return false;
    });
{% endhighlight %}

或許執行的代碼,解析xml
{% highlight javascript %}
    //煎蛋函數
    function jandanFn(data){
        var ulHtml="";

        $(data).find("channel").find("item").each(function(index, ele) {
            if (index > 9) { return false};
            var title = $(ele).find("title").text();
            var link = $(ele).find("link").text();
            var  des = $(ele).find("description").text();
            var commentNum = $(ele).find("slashComments").text();
            var liHtml = '<li><a target="_blank" href="'+link
                        +'" title="'+title+'" "><p class="page-title">'+title
                        +'</p>'
                        +'<p class="page-brief">'+commentNum+' 條評論 | '+des+'</p></a></li>';
            ulHtml += liHtml;
        });

        $(".cat-list ul").hide();
        $("#jandan-page").html(ulHtml).show();
    }
  • 「小偷程序」的實現(針對沒有xml)
javascript//mindstoreFn
    function mindstoreFn(data){
        var ulHtml="";

        $(data).find("#mind-list").find("ul").eq(0).find("li").each(function(index, ele) {
            if (index > 9) { return false};
            var title = $(ele).find(".mind-title>a").text();
            var link = $(ele).find(".mind-title>a").attr("href");

            var  itemString = $(ele).html();
            var zanNum = $(ele).find(".vote-total").text();
            var mindDes = $(ele).find(".mind-des").text();

            var liHtml = '<li><a target="_blank" href="'+link
                        +'" title="'+title+'" "><p class="page-title">'+title
                        +'</p>'
                        +'<p class="page-brief">'+zanNum+' 條支持 | '+mindDes+'</p></a></li>';
            ulHtml += liHtml;
        });

        $(".cat-list ul").hide();
        $("#mindstore-page").html(ulHtml).show();

    }

總體

  • bootstrap做爲前端框架
  • jquery做爲js框架
  • 360擴展文檔做爲支持文檔
相關文章
相關標籤/搜索