Chrome扩展插件、360浏览器扩展插件中遇到的问题
问题前瞻
- script标签的问题
- 谷歌官方API获取当前页面URL的问题
前言:
因为朋友的请求,所以为他做一个小Chrome扩展,因为之前是没有做过的,以为挺简单,但是实际一上手做,真滴是一堆问题,今天先来盘点一下第一个问题
script标签的问题
首先来解决这第一个问题,关于扩展插件的JS问题,因为在扩展插件中他是不识别的script
标签的!!!!,所以我在一开始使用的JQuery方法写的扩展完全不起作用,随后全部转为了原生JS才有效
谷歌API(获取当前页面URL)
这个问题是我要用到当前页面地址,但是普通的window.location.href
方法是不获取不到真正的浏览器地址的,只能获取到你的扩展在谷歌中的位置Url,这是因为你的扩展和你的浏览器地址完全不是在同一个环境中,所以只能获取运行你扩展的JS的地址,这怎么办呢,下面就是解决办法
首先配置你的manifest.json
"permissions": [
"tabs",
"activeTab",
],
完整的manifest.json配置
{
"manifest_version":2,
"name":"Web_Jump",
"description":"Web跳转插件",
"version":"1.0",
// 跨域的权限
"permissions": [
"tabs",
"proxy",
"activeTab",
"webRequest",
"webNavigation",
"https://*/*",
"http://*/*"
],
"browser_action":{
"default_icon": "icon.png",
"default_title": "Web_Jump",
"default_popup": "popup.html"
},
"content_scripts":
[
{
"matches": ["http://*/*","https://*/*"],
"css":["css/index.css"],
"js": ["js/index.js"],
"all_frames":true,
"run_at": "document_start"
}
]
}
配置好后,在你的JS当中使用下面这个chrome插件的API,就可以获取得到了(current_href是我的Dom元素)
chrome.tabs.getSelected(null, function (tab) {
current_href.innerHTML = tab.url
});
更多功能:
获取页面HTML以及与页面HTML交互功能请参考下面这位大佬文章传送门
好了,到此为止, 如果有朋友想做Chrome扩展的,或者遇到了问题,留言哦,虽然我也是个渣渣,但是大家一起解决还是比较快一些的 ,哈哈哈哈,再见ヾ( ̄▽ ̄)ByeBye