首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击按钮的Chrome扩展程序

单击按钮的Chrome扩展程序
EN

Stack Overflow用户
提问于 2018-09-17 15:10:03
回答 1查看 300关注 0票数 1

我有一个带有按钮的页面,我正在创建一个chrome扩展来单击它,但是它不起作用:

代码语言:javascript
复制
<input type="submit" name="commit" value="add to basket" class="button"/>

这是我的manifest.json

代码语言:javascript
复制
{
    "description": "Click",
    "manifest_version": 2,
    "name": "click-product-addtocart-button",
    "version": "0.1",

    "permissions": [
        "activeTab"
    ],

    "background": {
        "scripts": [
            "background.js"
        ]
    },

    "browser_action": {
        "default_icon": {
            "32": "/images/icons/16.png"
        },
        "default_title": "Click product"
    }
}

这是我的background.js

代码语言:javascript
复制
chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {
        code: "document.getElementByName('commit')[0].click();"
    });
});

我点击应用程序,但什么也没发生。我试过几件事,但似乎行不通。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-17 15:42:21

您的清单必须请求通过URL访问当前页的权限,以及仅访问当前选项卡的权限。更新您的权限如下:

代码语言:javascript
复制
"permissions": [
     "activeTab",
     "*://*/*"
],

这将允许扩展访问任何页面。我还建议将name更改为id。这将防止今后出现任何混乱。您可以这样做:

代码语言:javascript
复制
<input type="submit" id="commit" value="add to basket" class="button">

那么对于background.js:

代码语言:javascript
复制
chrome.browserAction.onClicked.addListener(function() {
    chrome.tabs.executeScript({
        code: "document.getElementById('commit').click();"
    });
});

您会注意到,我还删除了您在问题中的选项卡的特殊性。这是不必要的。

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

https://stackoverflow.com/questions/52370815

复制
相关文章

相似问题

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