有偿请教一个在 chrome 插件里运行 js 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
regicide
V2EX    Javascript

有偿请教一个在 chrome 插件里运行 js 的问题

  •  
  •   regicide 2018-07-19 16:02:14 +08:00 3830 次点击
    这是一个创建于 2726 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:因为最近一个需求要做一个 chrome 插件 其中要用到提取某个网站的 cookie 的需求,本人是搞后端的,几乎没写过 js (勿喷...),但这个插件又要很快上
    问题:现在 cookie 提取后希望赋值到 input 的 value 内,但怎么也赋值不过去(赋值给到 input 栏用来提交表单..)
    代码:

    var ck = { cookies: [] }; function getCookies() { chrome.cookies.getAll({"url": 'https://www.example.com'}, function(cookie) { for(i=0;i<cookie.length;i++) { ck.cookies.push(cookie[i].name+'='+cookie[i].value) } }); document.getElementById('cookies_name').value = ck.cookies.join(';'); } window.Onload= getCookies; 

    会请最先解决问题的喝杯咖啡...或者等值红包

    第 1 条附言    2018-07-19 16:47:32 +08:00
    done
    Exia
        1
    Exia  
       2018-07-19 16:23:43 +08:00
    这个要什么有偿啊,ck.cookies 是个数组,获取里面的内容是应该是 ck.cookies[i].name 吧
    Exia
        2
    Exia  
       2018-07-19 16:31:11 +08:00
    @Exia 搞错了,应该是 ck.cookies[i]
    regicide
        3
    regicide  
    OP
       2018-07-19 16:33:45 +08:00
    @Exia 数据已经转成字符串去赋值了 但据我调试观察 ck.cookies.push 没有报错但也没成功 函数单独运行是提取了的
    torbrowserbridge
        4
    torbrowserbridge  
       2018-07-19 16:35:30 +08:00   1
    document.getElementById('cookies_name').value = ck.cookies.join(';');

    这一行放到回调函数里面去
    kualalumpur
        5
    kualalumpur  
       2018-07-19 16:35:42 +08:00   1
    你的值是的,不 Chrome 插件中的 cookies.getAll 是步的, 所以你:

    (把 document.getElementById('cookies_name').value = ck.cookies.join(';'); 放到回函中去)
    ```
    var ck = {
    cookies: []
    };

    function getCookies()
    {
    chrome.cookies.getAll({"url": 'https://www.example.com'}, function(cookie) {
    for(i=0;i<cookie.length;i++){
    ck.cookies.push(cookie[i].name+'='+cookie[i].value)
    }

    document.getElementById('cookies_name').value = ck.cookies.join(';');
    });
    }
    window.Onload= getCookies;
    ```

    https://paste.ubuntu.com/p/rcyrMrztV5/
    Exia
        6
    Exia  
       2018-07-19 16:38:14 +08:00
    @regicide
    你试试这样写
    chrome.cookies.getAll({"url": 'https://www.example.com'}, function(cookie) {
    for(i=0;i<cookie.length;i++) {
    var str = cookie[i].name+'='+cookie[i].value;
    ck.cookies.push(str);
    }
    });
    Exia
        7
    Exia  
       2018-07-19 16:40:53 +08:00   1
    @regicide 楼上的大佬才是对的,确实是异步了呢。
    regicide
        8
    regicide  
    OP
       2018-07-19 16:40:57 +08:00
    @torbrowserbridge
    @kualalumpur
    感谢 麻烦两位发我下支付地址 或者不方便这里填发我手机号:MTc2MDIxMjkxNjI=
    yulon
        9
    yulon  
       2018-07-19 16:41:33 +08:00   1
    Chrome API 基本都是异步的,所以回调还没运行时,你给 #cookies_name 的当然是空值啦。。。
    regicide
        10
    regicide  
    OP
       2018-07-19 16:47:11 +08:00
    @yulon 问题已解决 谢谢哈
    kualalumpur
        11
    kualalumpur  
       2018-07-19 16:49:46 +08:00
    @regicide 客了,只是注意一下多(不是全部)的 Chrome 插件 API 中 callback 都是步的,所以需要注意一下行序和作用域就好了,可以照官方文:
    https://developer.chrome.com/extensions/cookies
    yulon
        12
    yulon  
       2018-07-19 16:55:47 +08:00
    @regicide 一回复才发现好多人,尴尬_(」∠)_
    regicide
        13
    regicide  
    OP
       2018-07-19 17:01:23 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4080 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 05:27 PVG 13:27 LAX 21:27 JFK 00:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86