閱讀個人博客文章:chrome插件one-read開發:細節javascript
代碼在這裏:github code for one-readhtml
coding地址:coding.net for one-read前端
這裏有詳細關於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做爲咱們惟一加入的頁面。這裏是咱們主要的面向用戶的頁面,這個頁面會被渲染,同時展現在用戶面前,由於有「一覽」的界面,因此我只作了一點點的改動。關於pop頁面,你能夠查看這裏獲取幫助git
這裏是咱們的主要pop.js,這裏會主要負責咱們的主要邏輯,包括ajax實現,xml的解析,小偷程序的實現。github
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(){ }
點擊按鈕後的代碼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(); }
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(); }