【发布时间】:2021-08-31 14:30:07
【问题描述】:
大家好,我正在使用 VueJS 为 chrome 构建扩展,现在我需要能够在用户单击扩展中的按钮时将当前选项卡重定向到新 URL。
我在 StackOverflow 中尝试了这个人的方法:https://stackoverflow.com/a/35523438
不幸的是,它不起作用,我不知道是因为实施不当还是根本不起作用。
这是我的代码:
ProductList.vue
我只包括脚本部分,因为它是重要的部分。当我单击它打印出 url 的按钮时,它正在运行 BTW cuz。
<script>
export default {
name: "ProductList",
props: {
items: Array
},
methods: {
shopProduct(url) {
console.log(url);
chrome.runtime.sendMessage('open-product-url')
}
}
}
</script>
Manifest.json
{
"manifest_version": 2,
"name": "__MSG_extName__",
"homepage_url": "http://localhost:8080/",
"description": "A Vue Browser Extension",
"default_locale": "en",
"permissions": [
"tabs",
"<all_urls>",
"*://*/*"
],
"icons": {
"16": "icons/16.png",
"48": "icons/48.png",
"128": "icons/128.png"
},
"browser_action": {
"default_popup": "/app.html",
"default_title": "__MSG_extName__",
"default_icon": {
"19": "icons/19.png",
"38": "icons/38.png"
}
}
}
Background.js
chrome.runtime.onMessage.addListener(
(message, sender, sendResponse) => {
console.log(sender.id);
console.log(sender.tab.id);
sendResponse(true);
}
)
vue.config.js
module.exports = {
pages: {
app: {
template: 'public/app.html',
entry: './src/main.js',
title: 'App'
}
},
pluginOptions: {
browserExtension: {
componentOptions: {
background: {
entry: './src/assets/js/background.js'
},
contentScripts: {
entries: {
'content-script': [
'./src/assets/js/contents.js'
]
}
}
}
}
}
}
目前,我只尝试打印发件人 ID,因为我想稍后更新 URL,并且我需要发件人选项卡 ID。
【问题讨论】:
标签: javascript vue.js google-chrome-extension browser