首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在背景页面中包括iCheck?

如何在背景页面中包括iCheck?
EN

Stack Overflow用户
提问于 2014-03-20 00:56:10
回答 2查看 178关注 0票数 0

我正在使用chrome.tabs API来运行一个脚本,当选项卡被更新(onUpdated)时,我的扩展将使用background.html。我在脚本中包含了一个函数,用于检查页面上的iCheck复选框:

代码语言:javascript
复制
$('input').iCheck('check');

当脚本运行时,控制台告诉我

代码语言:javascript
复制
Uncaught TypeError: Object [object Object] has no method 'iCheck'

我尝试过将icheck.js文件包含在后台文件中,但没有成功。我该怎么做?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-20 08:02:53

不太确定如何实现此功能。我假设,一旦选项卡被更新,您希望在下面注入一个内容脚本。

iCheck.js

代码语言:javascript
复制
//I used polaris skin here
$("input").iCheck({
  checkboxClass: 'icheckbox_polaris',
  radioClass: 'iradio_polaris'
});

首先,您需要包含"iCheck“所需的库,如jQuery、iCheck.min.js等。在清单文件中定义URL匹配模式,如果其URL与任何模式匹配,内容脚本将被注入到页面中。

manifest.json

代码语言:javascript
复制
"content_scripts":[
{
  "matches":["https://*/*","http://*/*"],
  "js":["js/jquery-1.9.1.js","js/iCheck.min.js"],
  "css":["css/polaris/polaris.css"]
}
]

iCheck皮肤使用外部图像资源,如果要在网页上下文中使用它们,则需要将它们列为可访问的web资源。

代码语言:javascript
复制
"web_accessible_resources": [
  "css/polaris/*"
]

然后在background.js中注册一个选项卡更新事件处理程序,它将注入内容脚本"iCheck.js“。

background.js

代码语言:javascript
复制
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {
    chrome.tabs.executeScript(null,{file:"iCheck.js"}); 
  }
});

因为polaris.css使用相对url来包含图标sprite,所以我们必须使用绝对扩展资源URL来访问图像。

代码语言:javascript
复制
//replace this
background: url(polaris.png) no-repeat;

//with...
background: url(chrome-extension://your extension id/path/to/resource/polaris.png) no-repeat;

屏幕截图:

希望这会有帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-03-20 02:19:12

你需要从一个内容脚本,而不是从没有访问页面的背景。遵循现有的官方示例,说明如何在内容脚本中包含jquery等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22521373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档