我正在开发一个扩展,在每个页面的顶部添加一个自定义工具栏。为此,我从扩展名中注入 toolbar.html 。由于我是初学者,我不确定如何访问当前选项卡的DOM元素以及如何使用当前选项卡的DOM中的数据更新新添加的iframe。
这是清单:
{
"manifest_version": 2,
"name": "My Extension",
"description": "Extension to show custom toolbar",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"background":{
"scripts":["background.js"]
},
"content_scripts":[{
"matches":["https://bitbucket.mycompany.com/*"],
"css":["styles.css"],
"js":["jquery.js","myscript.js"],
"all_frames":true
}],
"web_accessible_resources":[
"toolbar.html",
"styles.css"
]
}
内容脚本是 myscript.js
var url=chrome.extension.getURL('toolbar.html');
var height='35px';
var iframe="<iframe src='"+url+"' id='myCustomBar' style='height:"+height+"'></iframe>"
$('html').append(iframe);
$('body').css({
'transform':'translateY('+height+')'
});
我的问题是:
https://bitbucket.*.com
网址格式的网址上运行,匹配应该是什么?答案 0 :(得分:0)
您不能为该iframe使用单独的内容脚本,因为iframe的src以chrome-extensions://
开头,默认情况下不允许将内容脚本注入。
您可以为toolbar.html
添加脚本标记,然后使用Window.postMessage
在toolbar.js
和父内容脚本之间传递消息。
根据Match patterns,如果主持人中有'*'
,则必须是第一个字符。因此,您可能希望使用https://*.com
之类的内容,并检查代码中的其他部分。