chrome插件one-read开发2:细节

阅读我的博客文章:chrome插件one-read开发:细节

前言

manifest文件

这里有详细关于manifest的介绍文档,点击访问

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的属性,如果你不声明的话,你将无法获取到你想要获取的内容

popup页面

popup作为我们唯一加入的页面。这里是我们主要的面向用户的页面,这个页面会被渲染,同时展示在用户面前,因为有“一览”的界面,所以我只做了一点点的改动。关于pop页面,你可以查看这里获取帮助


pop.js

这里是我们的主要pop.js,这里会主要负责我们的主要逻辑,包括ajax实现,xml的解析,小偷程序的实现。

  • 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解析:以煎蛋为例子

点击按钮后的代码

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扩展文档作为支持文档

本文转载于:猿2048chrome插件one-read开发2:细节

原文地址:https://www.cnblogs.com/homehtml/p/12677096.html

时间: 2024-10-13 21:33:45

chrome插件one-read开发2:细节的相关文章

堪称神器的Chrome插件

相信很多人都在使用Chrome浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面,Chrome最大的优势还是其支持众多强大好用的扩展程序(Extensions). 最近为了更好的利用谷歌浏览器,我整理了一些常用的谷歌插件,分享给大家. 正文 闲话不多说,直接上推荐的插件,点击文章最后面左下角的“阅读原文”就可以获取所有插件的下载链接了~ 通用类插件 1.OneTab:将无数Tab合并在一个页面 很多时候我们在一个窗口打开太多的tab,每一个tab太小不容易管理,这时候使用OneTab

Chrome插件(Extensions)开发攻略

目录 为什么需要 为什么是Chrome 需要准备什么 如何开始 Page Action Chrome插件结构 学习资料 我的例子 调试 调试Content Scripts 调试Background 调试Popup 一些问题 总结 为什么需要 简单地说,浏览器插件,可以大大的扩展你的浏览器的功能.包括但不仅限于这些功能:捕捉特定网页的内容,捕捉HTTP报文,捕捉用户浏览动作,改变浏览器地址栏/起始页/书签/Tab等界面元素的行为,与别的站点通信,修改网页内容--给你增加许多想象空间,试想想看,你可

自己开发chrome插件生成二维码

摘要: 最近在开发微信项目时,需要在微信调试,所以经常会在微信中输入本地服务地址,输入起来特别麻烦,所以自己就想了想微信中的扫一扫,然后开发了这款chrome插件,将当前url生成二维码,用微信扫一扫就可以看效果了.在公司里面已经使用起来了,屡试不爽. 代码地址:https://github.com/baixuexiyang/qrcode 欢迎star和fork

Web前端开发人员实用Chrome插件收集

越来越多的前端开发人员喜欢在Chrome里开发调试代码,Chrome有许多优秀的插件可以帮助前端开发人员极大的提高工作效率.尤其Chrome本身是可以登录的,登录后你所有的插件都会自动同步到每一个登录后的Chrome的,非常方便啊. Postman - REST Client Postman是Ajax开发的神器,对于Restful开发方式特别有帮助,可以用来模拟各种请求来测试API的正确性,比如用来模拟Ajax请求.它还支持认证,比如简单的用户名/密码,或者Oauth1.0.Rest Conso

【干货】Chrome插件(扩展)开发全攻略

[干货]Chrome插件(扩展)开发全攻略 http://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html

前端开发中一些好用的chrome插件汇总

下载了很多chrome插件和应用,有些是常用的,有些偶尔用一次,有些是不止开发中用的,现做一下总结: 红色是个人认为比较好用的,排名不分先后 1.AppJump管理应用的插件 安装了许多应用之后肯定是需要工具管理的. AppJump能从工具栏下拉菜单上快速找到并启动应用程序和其他插件.AppJump的一个很酷的功能是能将应用程序和插件组织进入不同组.例如,可以轻松将个人插件同工作插件隔开,以进行更有效的时间管理. 但是管理全部插件会另开页面,这点不太方便. 2.Extensions Manage

使用Vuejs 开发chrome 插件的注意事项

chrome 插件的开发其实并不难,web开发者可以使用 html, css, javascript 轻松的开发实用的 chrome 插件. 一个好的 chrome 插件可以提高我们的开发效率,甚至方便我们的生活.例如 Vue-devtools ,是 Vuejs 的开发者不可或缺的利器,再如最常见的谷歌翻译插件,可以翻译整个网页中的英文内容,可以很方便的帮助我们查阅英文文档. chrome 插件使用前端技术开发,但是提供了一些高级的接口(文件操作,操作USB设备,系统信息等),所以可以开发出一些

iconfont 批量添加购物车 及自开发chrome插件

起因 iconfont非常好用,但是如果要批量的添加icon到自己的购物车简直就是噩梦,一个一个点击太扯蛋,只有自己想办法了. 思路 打开列表详情页,例如随便一个包, 右键-> 开发者工具 -> console 运行如下代码,选取所有icon下的购物车按钮,触发点击. 1 document.querySelectorAll('.icon-gouwuche1').forEach(item=>item.click()); 这里iconfont网站有个bug,超过一定数量(MACPRO chr

chrome插件one-read开发3:提升

阅读我的博客文章:chrome插件one-read开发:提升 前言 点击这里你可以看到one-read "一览" chrome版的使用 代码在这里:github code for one-read coding地址:coding.net for one-read 升级方式分析 通过定制version的方式进行用户通知更新 这种方式是用户手动更新,通过这种方式优点是可以满足用户的喜好,但是缺点就是用户需要卸载原本的程序后再安装 通过ajax调用远程代码方式进行更新 这种方式可以让用户没有