- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何将参数传递给使用以下方式注入(inject)的内容脚本文件中的 JavaScript:
chrome.tabs.executeScript(tab.id, {file: "content.js"});
最佳答案
没有“将参数传递给文件”这样的事情。
您可以做的是在执行文件之前插入内容脚本,或者在插入文件之后发送消息。我将在下面展示这些不同方法的示例。
如果想在插入文件前定义一些变量,嵌套chrome.tabs.executeScript
即可调用:
chrome.tabs.executeScript(tab.id, {
code: 'var config = 1;'
}, function() {
chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});
如果你的变量不是那么简单,那么我建议使用 JSON.stringify
在字符串中转换一个对象:
var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
code: 'var config = ' + JSON.stringify(config)
}, function() {
chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});
使用前面的方法,可以通过以下方式在 content.js
中使用变量:
// content.js
alert('Example:' + config);
JS文件后可以使用前面的方法设置参数。您可以使用 message passing API 而不是直接在全局范围内定义变量传递参数:
chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});
在内容脚本 (content.js
) 中,您可以使用 chrome.runtime.onMessage
监听这些消息事件,并处理消息:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
// Handle message.
// In this example, message === 'whatever value; String, object, whatever'
});
关于javascript - 将参数传递给使用 chrome.tabs.executeScript() 注入(inject)的内容脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17567624/
我的问题是关于脚本文件运行的顺序(顺序)。 我调用一个名为“aaa.js”的脚本文件,并作为 executeScript 的回调,我有文件脚本“bbb.js”,如下所示是以下草图代码: chrome.
我正在使用 Ionic 和 ngCordova 创建构建混合应用程序。在应用程序登录工作流程中,我将一个页面从服务器返回到 InAppBrowser 插件。我需要从 Ionic 应用程序的返回页面中读
我正在编写一个Chrome扩展程序,需要根据某些给定参数修改特定域中的页面,这需要XSS才能获取,因此简单地使用内容脚本似乎是不可能的。因此,我决定使用 tabs.executeScript 注入(i
我正在尝试将值放入新选项卡上的元素中,然后单击“提交”登录。我尝试了很多变体,但似乎无法让它发挥作用。 function injectScript(){ var script = ' var e =
如何将参数传递到 browser.executeScript static sortableDragAndDropByClassName(dragElementClassName: string,
目前我正在使用以下代码将警报语句注入(inject)网页,打印出我传入的变量。脚本如下: //Inject statement setting the variable "count" in th
我正在编写一个 JavaFX 应用程序,它使用 WebView 和 WebEngine(.executeScript() 方法)与 JavaScript 交互。 在这里,我有来自 Medow.java
所以我有一个正在编写的扩展程序,我试图在用户单击 pageAction 图标时执行脚本。单击图标时,该方法调用 chrome.tabs.executeScript(...)。问题是 chrome.ta
我正在尝试从后台脚本向选定的选项卡上下文中注入(inject)一些代码,但我遇到了一些权限问题。 list .json { "manifest_version": 2, "name": "pr
是否可以将匿名函数传递给 chrome API executeScript 调用?目前我有以下代码: chrome.tabs.executeScript(tab.id, {code: "documen
我有一个应用程序,它使用 WebView 及其支持的 WebEngine 来显示具有一些 JavaScript 函数的简单网页。我还有另一个线程,有时会从互联网接收消息。我希望它们使用 webengi
我想为我的单元测试加载 SQL 脚本文件。当我使用 Spring 2.5.2 时,我 decided使用 SimpleJdbcTestUtils.executeScript()使用以下代码加载我的脚本
我希望在测试期间使用 browser.executescript 动态设置一些数据。像这样的东西: var x; browser.executeScript(function () { var s
我正在尝试使用 Groovy 登录 ExecuteScript 组件。每当我调用 log.info 时,没有任何内容写入 nifi-app.log,但是当我调用 log.errorit 时。是否有一些
为什么 Chrome 的这个功能不起作用?我正在尝试这个例子: https://developer.chrome.com/docs/extensions/mv3/content_scripts/#pr
我在点击事件中有这个代码 let browser = new InAppBrowser('http://example.com/test', '_self'); browser.executeScri
我正在尝试编写一个 chrome 扩展,它有一个名为“btn3”的按钮。当我在 chrome 扩展 (popup.html) 中点击那个按钮时,它会点击网页上的一个按钮。网页上的按钮具有以下 id:“
我正在尝试学习一些有关 javascript 的知识,并遇到了这个问题。基本上我想做的是获取 url ,重定向到代码中的站点并将其放在文本框中并激活按钮并不是说所有这些都是为了获得答案,而是作为我的目
这个问题已经有答案了: "Cannot read property of undefined" when using chrome.tabs or other chrome API in conten
我一直在尝试从 nifi 的 ExecuteScript 处理器中提取数据并将其作为属性附加到流文件。我尝试了很多来源,尤其是 Matt Burgess 的 funnifi 博客上的一个。 以下是我的
我是一名优秀的程序员,十分优秀!