vainquit 2018-05-11 17:00 采纳率: 100%
浏览 1095
已采纳

a.js中executeScript给某tab注入b.js,b.js计算完的值怎么传回a.js中?

好像很多朋友都没有理解我的意思。。。其实我问的是关于executeScript的两个问题。因为executeScript有一个code参数和一个file参数,code是在当前页的js文件直接运行一段代码;而file是注入一个新的js文件,也就是我标题的意思。
1、chrome.tabs.executeScript(tb[0].id,{code:"abc(3)"},null);
……function abc(num){alert(num)}
这属于直接用code来在当前js文件运行一段代码,按照我的期望,它应该运行成功后就弹出窗口上面写个3,。但实际上它没有任何反映。我就很奇怪,code不是执行一段代码吗?为什么我不能执行同在a.js下的一个函数?莫非abc(3)这不能算代码吗?

2、chrome.tabs.executeScript(tb[0].id,{file:"b.js"},null);
这是我在标题问的问题。我在a.js中运行了以上代码,在一个tb[0]的tab插入b.js。而在b.js中计算出了一个变量值(假设为v),那么我如何将v传到a.js呢?要知道这个file:"b.js"仅仅只是注入了一段代码,可它并没有办法传值到b.js上。运用全局变量固然是个办法,可不到万不得已的时候,我不太想用,不知道大家有没有其他的解决办法。

  • 写回答

4条回答

  • Go 旅城通票 2018-05-12 03:40
    关注

    用chrome.tabs.sendMessage和background js交互,具体参考这个:https://blog.csdn.net/summerxiachen/article/details/78698878

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号