在注入内容脚本之前传递变量
Passing a variable before injecting a content script
我正在开发一个Chrome扩展,它主要在弹出窗口中工作。我希望用户在弹出窗口的输入字段中输入一些文本(字符串),这个字符串将作为脚本中的"变量",我希望在特定页面上注入并运行。
我已经尝试通过制作一个执行脚本的内容脚本来实现这一点,使用以下有充分文档记录的方式:
var s = document.createElement('script');
s.src = chrome.runtime.getURL('pageSearch.js');
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
基本上,在页面上执行脚本之前,我希望将用户的输入一直传递到pageScript.js中的代码。
解决这一问题的最佳方法是什么?我不会把任何信息反馈给分机。
谢谢。
要将变量从弹出窗口传递到动态插入的内容脚本,请参阅将参数传递到使用chrome.tables.executeScript()注入的内容脚本。
在内容脚本中获取变量后,有很多方法可以将变量获取到页面中的脚本中。
例如,通过在脚本标签上设置属性,并使用document.currentScript
访问此<script>
标签。注意:document.currentScript
仅指在文档中插入标记后的脚本标记。如果以后要引用原始脚本标记(例如在计时器或事件处理程序中),则必须将对脚本标记的引用保存在本地变量中。
内容脚本:
var s = document.createElement('script');
s.dataset.variable = 'some string variable';
s.dataset.not_a_string = JSON.stringify({some: 'object'});
s.src = chrome.runtime.getURL('pageSearch.js');
s.onload = function() {
this.remove();
};
(document.head||document.documentElement).appendChild(s);
pageSearch.js:
(function() {
var variable = document.currentScript.dataset.variable;
var not_a_string = JSON.parse(document.currentScript.dataset.not_a_string);
// TODO: Use variable or not_a_string.
})();
相关文章:
- 访问脚本标记中的Angular变量
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- 如何从谷歌脚本中获取JS变量
- 如何将javascript变量传递给Ajax脚本
- 如何在脚本部分使用php部分代码中的变量
- 将变量从google脚本传递到html对话框
- 如何通过分配单个变量来减少此脚本中的链接数
- 如何在yahoo weather中将变量分配到javascript src脚本中
- 在同一页上的两个脚本中使用全局变量
- JavaScript 变量的作用域在此脚本中如何工作
- 我将如何在将数据发布到 php 脚本的 javascript 脚本中输入变量
- 将 Java 变量从 JSP 获取到脚本标记中
- 如何从 Chrome 扩展程序中的内容脚本中获取变量
- 在 ActionLink mvc3 Razor 中使用 java 脚本变量
- 带有全局变量、咖啡脚本和回调的模块 CSV
- 如何在此脚本代码中正确设置此计算和变量
- 如何在html中引用js脚本中的变量
- 跨站点脚本过滤器阻止了我使用python-cgi脚本将javascript变量保存到mysqldb的尝试
- 丢失了变量i脚本
- JQuery变量脚本