V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
lerry
V2EX  ›  JavaScript

请教一个关于Chrome插件开发的问题

  •  
  •   lerry · 2013-07-12 17:55:51 +08:00 · 3996 次点击
    这是一个创建于 4178 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想做一个插件,实现这样的功能,访问QQ音乐电台(fm.qq.com)的时候,在页面上,或者点击插件按钮时显示一个下载按钮,可以下载当前播放的歌曲。

    进展

    我已经知道通过

    $.qPlayer.playList.getSongInfoObj().songurl

    或者

    document.getElementsByTagName('audio')[0].src

    可以获取到url,但是看文档说插件是不能访问其他脚本的变量的,所以就拿不到数据,请教此类问题解决办法。
    恩,后端选手初学js,轻拍。
    11 条回复    1970-01-01 08:00:00 +08:00
    wong2
        1
    wong2  
       2013-07-12 18:24:01 +08:00   ❤️ 1
    插件可以访问DOM啊,于是可以用第二种方法得到那个url吧
    chemhack
        2
    chemhack  
       2013-07-12 18:26:41 +08:00   ❤️ 1
    用content_script, 然后在manifest加上权限即可
    ytzong
        3
    ytzong  
       2013-07-12 19:05:33 +08:00   ❤️ 1
    写了个 userscript http://userscripts.org/scripts/show/88597
    代码有点乱,但是能跑起来
    pubby
        4
    pubby  
       2013-07-12 20:05:19 +08:00   ❤️ 1
    自己用的话没必要写插件吧,

    在书签栏添加网页,地址写上:
    javascript:(function(d,id){var x=d.getElementById(id);if(!x){x=d.createElement('div');x.id=id;d.body.insertBefore(x,d.body.firstChild);} x.innerHTML = $.qPlayer.playList.getSongInfoObj().songurl;})(window.document,'su00');

    就ok了。想看mp3地址直接点一下
    lerry
        5
    lerry  
    OP
       2013-07-12 22:18:58 +08:00
    @pubby 打算给妹子用的...我自己直接用Chrome就看了
    seeker
        6
    seeker  
       2013-07-12 22:57:02 +08:00   ❤️ 1
    用“声海盗”。我写的,http://fm.qq.com/ 这个网址还不支持给文件命名,下个版本做。
    WebStore地址:https://chrome.google.com/webstore/detail/%E5%A3%B0%E6%B5%B7%E7%9B%97/idleenniidjlnmnjkjmmnocnkmjibadd
    miniwade514
        7
    miniwade514  
       2013-07-13 00:32:47 +08:00   ❤️ 1
    给妹子用? 直接装这个好了, 音频、视频、Flash 都抓 ...

    用 content script 是可以和 DOM 交互的。
    jesse_luo
        9
    jesse_luo  
       2013-07-13 01:15:29 +08:00   ❤️ 1
    搞底软的写js路过…别怕…
    问题上面大神们都回答了……
    cyfdecyf
        10
    cyfdecyf  
       2013-07-13 10:34:09 +08:00   ❤️ 1
    可以向特定的页面注入 js,在 Chrome 中这个叫做 Content Scripts http://developer.chrome.com/extensions/content_scripts.html

    Content Scripts 在网页的 DOM 中执行,如果需要跟插件通信需要使用 Message Passing http://developer.chrome.com/extensions/messaging.html
    lerry
        11
    lerry  
    OP
       2013-07-14 01:52:02 +08:00
    @seeker 我当时搜了同类插件,看到的就是这个,没想到在这里能遇到作者啊

    多谢各位的解答
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.