我的扩展程序是另一页上的点击按钮。 我不知道为什么代码不起作用。 该功能不会点击'ac_play'项目
清单
{
"manifest_version": 2,
"name": "VkPlayer", // Название расширения
"version": "1.0", // Номер версии
"description": "Switching music in the VK with the keyboard", // Описание расширения
"permissions": [
"tabs",
"*://vk.com/audios*"
],
"background": {
"scripts": ["index.js"]
},
"browser_action": {
"default_title": "VKPlayer", // Название кнопки
"default_icon": "1.png", // Иконка для кнопки
"default_popup": "popup.html" // Всплывающее окно
}
}
popup.html
<script src="index.js"></script>
<style>body{
background: #2f4d9a;
width: 0;
height:0;
}</style>
index.js
function (tab) {
chrome.tabs.query({'active': true},{'url':"http://vk.com/audio*"},function (tabs){
console.log(tabs);
chrome.tabs.executeScript(tabs[0].id, {code : "document.getElementById('ac_play').onclick();"});
})
}();
此代码我的网站:
<div id="ac_controls" class="fl_l">
<div id="ac_play" class="fl_l"></div>
<div class="next_prev fl_l">
<div id="ac_prev" class="ctrl_wrap">
<div class="prev ctrl"></div>
</div>
<div id="ac_next" class="ctrl_wrap">
<div class="next ctrl"></div>
</div>
</div>
</div>
答案 0 :(得分:0)
chrome.tabs.query(
{'active': true}, {'url':"http://vk.com/audio*"},
function (tabs){/*...*/}
)
是无效的查询。我不知道逻辑应该是什么,但是......
{'active': true, 'url': "http://vk.com/audio*"}
如果你想在这些条件之间进行OR,你需要查询一个,然后手动过滤另一个。
chrome.tabs.query(
{'url':"http://vk.com/audio*"},
function (tabs) {
tabs.forEach(function(tab) {
if(tab.active) {
/* ... */
}
});
}
});
很可能这不是您的代码唯一的问题,但遗憾的是您无法用英语解释您需要什么。 ru.SO可能更适合您的需求。