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上。运用全局变量固然是个办法,可不到万不得已的时候,我不太想用,不知道大家有没有其他的解决办法。

1

4个回答

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

3

你可以在一个页面引这两个JS,然后a.js获取到的数据放在一个公共变量里面b.js就可以获取到或者直接吧这个值当做参数传递个b.js的方法。

2
vainquit
vainquit 这问题就是如何把值当做参数传给b.js的方法。。。因为excuteScript的file:"b.js"并没有传值的功能的,仅仅只是注入b.js吧?
8 个月之前 回复

比方说如果你想看到在网站http://www.example.com里面的一个警告框,那么首先在地址栏输入URL(www.example.com),当页面加载完之后,清空URL并输入javascrit:alert("Hello World")作为一个新的URL.这样将弹出一个警告框显示Hello World.可是,一些人会用这个技巧改变页面内的几乎任何内容

1

使用方式:{code:abc(3)}
b.js 加个return 啊 把结果直接return返回 那样 abc(3) 直接就是结果了

1
vainquit
vainquit 可是注入b.js的代码不是file:"b.js"嘛。。这样就无法引用函数了
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jquery a.js调用b.js的方法
在a.js中加入  $(function () {     //引入 b.js文件     var js_element = document.createElement("script"); //这句是创建一个script标签     js_element.setAttribute("type", "text/javascript"); //脚本用的是javascript     js
一个B.js获取另一个A.js的方法,只要将在html页面中的载入顺序将A.js放在B.js前即可
-
使用gulp-concat合并js文件
1.安装nodejs、构建目录、初始化项目搭建gulp项目2.安装gulp-concat插件在项目目录下打开命令提示符工具按下 ctrl+r --> 输入 cmd安装gulp-concatnpm install gulp-concat --save-dev可能会比较慢,等待一段时间。完成安装3.如何使用 首先在 项目根目录下的 gulpfile.js文件中间中 引入 gulp插件和gulp-con
我写了两个js,a.js,b.js,其中a.js中每个函数,要调用b.js中的另一个函数,在a.js中如何导入才能b.js中的函数在a.js中可见?
我写了两个js,a.js,b.js,其中a.js中每个函数,要调用b.js中的另一个函数,在a.js中如何导入才能b.js中的函数在a.js中可见?
解决requirejs循环依赖问题
一.问题:A依赖B(即A引用B且调用B中的方法),B也依赖A,这即为循环依赖,那么,当B调用A中的方法时,会发现A为undefined,这就是循环依赖导致的问题。 二.解决循环依赖的方法: 1.用scope模式传参方式; 2.用pubsub解耦; 3.用require(“A”)的方式: 3.1.enterlib-controller.js(即为A)中引用了enterlib-view.js(
a.js调用b.js里面的方法
在调用之前,引入如下4行代码即可new_element=document.createElement("script"); new_element.setAttribute("type","text/javascript"); new_element.setAttribute("src","b.js");document.body.appendChild(new_element); 分析:利用do
JS中跨页面调用变量和函数(例如a.js 和 b.js中互相调用)
在项目开发过程中,也许你会遇这样的情况。在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能。我们知道,在html中,利用引入的两个js是不可以相互调用的。那么该如何解决呢?当然,你可以将代码通通copy过来,也许你并不喜欢这样。    例如有这样一个html,里面有一个按钮,当按下时调用b.js文件
我想在a.js文件中再引入b.js文件的内容
我想在a.js文件中再引入b.js文件的内容rnrna.js文件内容如下rnrndocument.write("我的网");rndocument.write("版权所有");rnrnb.js文件内容如下:rn rnrna.js文件主要是用来输入每个页面的底部信息,而b.js文件则主要用来计数的功能。其实应该可以把这两个文件分别写在每个页面中,但由于已经有很多文件了,因此,这样改起来不方便,不知还有没有其他的办法啊??????、
nodejs中的相互引用
有个a.js和b.js两个文件,它们在同个文件夹里: a.jsvar b = require('./b'); console.log(b); module.exports = 'a';b.jsvar a = require('./a'); console.log(a); module.exports = 'b'; 当我们在命令行中 node b,会是什么结果 答案是 {}
webpack常见问题
ERROR in ./webpac/js/a.js Module not found: Error: a dependency to an entry point is not allolled @ ./webpack/js/a.js 7:9-26 找不到模块:错误:不允许对入口点的依赖原因:a.js和b.js都是entry切入点文件,同时a.js文件中引入了b.js的原因报错了;
页面传值不交互:JS存储数据之LocalStorage用法
本人的需求是一个页面传值给另外一个页面,但是不需要交互: A页面设置LocalStorage:     if(!window.localStorage){             alert("浏览器不支持localstorage");      }else{             var storage=window.localStorage;             loca
ext从a.js访问b.js(从a中的按钮给b中的grid,加mask)
怎么可以实现从a中的按钮给b中的grid,加maskn就在a中有一个search按钮,点击后,b的grid会出现maskn求大神帮助!!!n下面是自己写的,可是出错了,求指导(这部分是写在search的listeners里面的click)n(var gridPanel = Ext.ComponentQuery.query('suppressionGridPanel');n gridPanel.getView().mask();)
使用require出现循环依赖模块报错的问题
当前文件是b.js文件,如果a.js文件与b.js相互依赖,这样写获取到的a就是underfined。define([ '../A' ],function(A){ 'use strict'; var B = function(){ console.log(A) // underfined } })应该写成如下的形式,才能使用A.js:define([
cocos2d-js使用的对象
1、把A对象添加到B对象中:B对象.addchild(A对象) 2、数组中变量名后面不需要维度[] 3、定义变量对象时使用类型符var 4、精灵cc.Sprite、层cc.Layer、Menu按钮cc.MenuItemLabel、文字显示cc.LabelTTF、菜单cc.Menu、精灵按钮cc.MenuItemSprite、图片按钮cc.MenuItemImage、开关按钮cc.MenuIt
a.js文件要调用b.js文件中的一个函数怎么调用?
如题 谢谢!~
一个js调用另一个js
例如b.js中的方法要调用a.js中的方法 1,需要在html中实现。首先在html中引入b.js,要记得放在body的下方 如: .......   2 然后在b.js中写上语句,意思就是将a.js增加到html中 如:var script=document.createElement("script"); script.setAttribute("type","text/j
a.js和b.js有同名方法,有不同方法,怎么在一个页面分别引入,分别使用?
就是百度地图的API,怎么分别引入1.1的和1.2的
spring boot-拦截器和过滤器
拦截器与过滤器的区别: 1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。  如下图:    2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业...
Chrome扩展及应用开发 入门笔记(六)进阶(网络请求,脚本注入)
1.   har规范 http://weizhifeng.net/har-12-spec-chinese-edtion.html HAR(HTTP Archive),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON。 这个格式的出现可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR的HTTP分析工具(包括Firebug,h
如何动态的引入js文件,即一定条件用引入a.js,其他条件调用b.js
如何动态的引入js文件,即一定条件用引入a.js,其他条件调用b.jsrn由于部分js文件比较大,不想每次都引入,想在一定条件下,引入,有什么办法吗
【apache配置】能否通过配置,把http请求a.js返回的是b.js或者其他一个CGI
我最近在做一些测试,先请教下,能否实现通过配置,比如http.conf修改达到一下目的:rnrn 用户通过http请求 /js/a.js,rn 而我通过修改配置,apache返回 /cgi-bin/b_cgirn 然后通过 b_cgi读出一个JS文件返回应答rnrn从WebServer原理上来说是可以这样做的,但是我不知道如何通过修改配置来完成这个目的rnrn如果apache不支持,请问nginx支持吗?请知道的大神回复下,十分感谢。
这样的a.js怎样反编译?
-
请问JavaScript是不是有限制:在动态加载的脚本中不可以再动态加载另一个脚本了?也就是说不可以连环动态加载(a.js加载b.js,b.js加载c.js)?
主脚本文件:a.jsrn[code=javascript]rnvar script = document.createElement("script");rnscript.onload = function() rn alert("加载脚本b成功!"); //这里可以看到弹出成功提示。rnrnscript.src = "b.js";rndocument.getElementsByTagName("head")[0].appendChild(script);rn[/code]rnrn子脚本文件:b.jsrn[code=javascript]rnvar script = document.createElement("script");rnscript.onload = function() rn alert("加载脚本c成功!"); //这里永远都看不到弹出成功加载的提示!rnrnscript.src = "c.js";rndocument.getElementsByTagName("head")[0].appendChild(script);rn[/code]rn这是为什么呢?rnrn另外还有一个疑惑:[code=javascript]document.getElementsByTagName("head")[0].appendChild(script);[/code]不能写作:[code=javascript]document.body.appendChild(script);[/code]rn否则浏览器(Chrome)报错:rnrn[color=#FF0000]Uncaught TypeError: Cannot read property 'appendChild' of null[/color]rnrn可按道理,写成 document.body 不是应该可以的吗???(连圣经书上也都是这么写的)document.body 是一种传统写法(不像 document.head 是一种新写法),应该也不存在最新版本浏览器可能才支持的问题呀?rnrn
Java脚本引擎执行js代码以及动态编译
Java脚本引擎执行js代码 一、概述 JAVA脚本引擎是从JDK6.0之后添加的新功能。 使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从 而达到在 Java 平台上调用各种脚本语言的目的。 Java 脚本 API 是连通 Java 平台和脚本语言的桥梁。 可以把一些复杂易变的业务逻辑交给脚本语言处理,这又大大提高了 开发效率。 二、使用示例 //获得脚本引擎对象,...
b.jsp文件中包含了 a.js文件,如何在a.js文件中捕获 b.jsp的document对象
如题
bundle-loader实现按需加载
前言如果我们不进行按需加载, 把所有js加载到一个文件里面,会造成首屏加载慢的问题,毕竟把当前页面不需要的js也加载进来,因此我们要进行按需加载操作。在react-router4之前,按需加载使用的是require.ensure的方法,异步加载组件。在react-router4,官方推荐使用webpack的bundle-loader进行按需加载。bundle-loader原理npm i --sav...
从前端传回json数据注入实体的方法
前置条件:1,前端发送到后台的数据是json格式的数据;//例如{pridId:"1100";siteId:"1000";companyId:"1010"}                 2,json数据中的name的值(例如siteId)必须是将要注入的实体的属性 ;涉及到的知识:泛型,反射,数据类型的转换;调用方法:例如:Product product=(product)getInstanc...
向html中加入指定的javascript "src"的perl脚本
命令adjssrc: 用一个简单的命令向html文档中加入你指定的javascript源,比如在命令行中运行adjsscr a.html b.js, 在html文档的<head>标签的下一行就会自动加入<script type="text/javascript" charset="utf-8" src="b.js"></script>这个标签。此命令适用于Unix-like系统,将该文件放入你的$PATH路径中即可使用。<script>中的type charset src不能制定,我上传0.2版修改这个问题。
Vue挖坑指南: 如何在main.js中修改vuex中的值?
直接上图吧~好 总结 就是这么任性~嘻嘻(*^__^*) 嘻嘻……
js动态计算table某列值的总和
/**   *    * @tableId 表格id   * @numId 显示张数id   * @index 列数   * @first 首次标识   * @obj checkbox对象   */  function countNum(tableId, numId, index, first,obj) {       var sumStr = document.getElementById(numId);       //当前行进行加减       if (null != obj) {          
求大神【当a页面载入a.js就触发让b页面的b.js重新载入】怎么写?
一个很懵逼的问题:rna页面是个缓存页,它会每隔一段时间就自动生成一次,现在给它加个a.js,rn让每一次载入a.js都让在b页面里的b.js重新载入一次,rn简单来说,就是a页面更新了,处于打开状态的b页面会通知说:a页面那货更新了!rna.js要怎么写?b.js要怎么写?大神出招吧rn要用a通知b的方式,不能用不停刷新的轮询方式哦
webpack系列之打包js
使用webpack打包js有两种方法: 1,直接使用webpack 入口文件js 例如: 在a.js中使用了b.js的方法。 import sum from './b' console.log(&quot;2+3=&quot;,sum(2,3)); 那么,如果在命令行中执行 webpack a.js 则就会把a.js和b.js打包到一起 但是呢,这种方法几乎不会用到。 2.使用配置文件 在项...
为什么不能调用a.js文件
a.htm 中的内容rn rna.js 中的内容rndocument.write(" ……")rn我在a.htm 中调用a.js时。当“document.write(" ……")”不在同一行时。在a.htm中就不能显示a.js 中的内容。不知道是为什么?rnrn
Java属性值注入的三种方式
-
etl工具nifi使用系列(六):使用ExecuteScript执行脚本(1)
介绍本文介绍了如何使用NiFi处理器ExecuteScript完成特定任务的各种方法,并给出了Groovy,Jython,Javascript(Nashorn)和JRuby中给出的示例。 第1部分 - 介绍NiFi API和FlowFiles 从传入队列获取流文件 创建新的流文件 使用流文件属性 传输流文件 记录 第2部分 - FlowFile I / O和错误处理从流文件中读取 写入流文件 从流
JavaScript实现获取table中某一列的值
1、实现源码 JavaScript实现获取table中某一列的值 function getTdValue() { var tableId = document.getElementById("tab"); var str = ""; for(var i=1;i<tableId.rows.length;i++) { alert(tableId.row
spring中如何给集合元素注入值(第四篇)
如果是数组的话,例如private String [] name,需要如下配置bean > 小明 小刚 如果类型是List的话则需如下配置 > 如果类型是Set类型的集合的话则把上面配置中的改为即可 配置Map类型的集合稍微有些麻烦,见如下 通过for循环输出: f
关于文本编辑器设置值和获取值
这个是详细讲解怎么获取文本编辑器中的值 以怎么将值赋值给文本编辑器
java方法的传值方式
java方法对于简单数据类型传值,对类等复杂数据类型传引用(地址) 但当方法中对传入参数变量完全改变时,java方法的行为会表现得像传值,因为完全改变值时,对方法中的局部变量新划分了内存块并指向。 对于map,key value,即使value完全改变,仍为传引用
easyui 行编辑, 改变相邻列的值
部分代码如下: {title:'品名',field:'goodsName',width:100,align:'center',         editor:{                  type:'combobox',                  options:{                       valueField: 'eq_name',
文章热词 卷积计算 双目视觉平行计算 Pandas索引计算 PCA降维算法计算 ROC曲线AUC值
相关热词 c++中怎么计算工作时间 c# 事件中注入类 c# 文本中tab python中价格的计算 python+计算iv值+教程

相似问题

4
a.js中executeScript给某tab注入b.js,b.js计算完的值怎么传回a.js中?
1
如何在ASP表单中自动检测输入框字符后自动提交表单
5
js这里的for in 循环怎么引用到属性名
2
关于JS中如何将if切换成function
8
怎么在javascript里使用数组呢,var[] arr这样定义不行?
4
三个关于javascript的问题,在线急等,回答得好,c币要多少给多少
8
js怎么实现一个倒计时,这个方法没有实现,该怎么在这个代码上修改
3
这个里面的else不加 。为什么点击完以后页面就奔溃了,逻辑没想明白
6
我在session里面存了一个验证码,js里面怎么输出呀
10
HTML中使用JS函数通过id调用div,但一直显示()is not a function
0
js仿猫眼订票系统,不知道怎么修改着座位信息显示不出来了,代码如下
1
求助!!在微信浏览器中打开一个页面,需要记录用户在这个页面的访问时长。
3
悬赏20:给java.class文件添加一个可以随时修改参数的前端
2
jQuery中"animate()"自定义动画方法对“filter:blur()”的参数没有效果
4
为什么在某些情况下用jQuery中的"attr()"方法设置样式却没有效果?
0
TV20.JS中显示不了子目录
6
javaweb项目中,如何通过js获取src下的xml文件
3
一个简单的JS计算总价
6
在html文件中引用vue.js和直接创建.vue文件有什么差别??
5
js,为什么我在移除对象数组中的每一个对象的click事件时,只有最后一个对象移除成功?下有详细