首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Google扩展重定向到url

使用Google扩展重定向到url
EN

Stack Overflow用户
提问于 2014-06-26 15:25:30
回答 1查看 11.1K关注 0票数 2

我是谷歌Chrome扩展版的新手。我在我的分机里创建了一个按钮。使用该按钮,我希望将用户重定向到另一个站点(如"www.example.com")。我有下面的代码,我为重定向编写了代码,但是它不工作。

相关问题

manifest.json

代码语言:javascript
运行
复制
{
    "name": "Popup ",
    "manifest_version": 2,
    "version": "0.1",
    "description": "Run process on page activated by click in extension popup",
    "browser_action": {
    "default_icon": "icon.png",
        "default_popup": "popup.html"
    },

    "permissions": [
        "tabs", "http://*/*", "https://*/*"
    ]
}

popup.html

代码语言:javascript
运行
复制
<html>
    <head>
        <script src="popup.js"></script>
        <style type="text/css" media="screen">
            body { min-width:250px; text-align: center; }
            #click-me { font-size: 15px; }
        </style>
    </head>
    <body>
        <button id='click-me'>Click Me!</button>
    </body>
</html>

background.js

代码语言:javascript
运行
复制
chrome.extension.onRequest.addListener(function(request, sender) {
    chrome.tabs.update(sender.tab.id, {url: request.redirect});
});

popup.js

代码语言:javascript
运行
复制
function clickHandler(e) {

    chrome.extension.sendRequest({redirect: "https://www.google.co.in"});
    alert("url");

    this.close();
}

document.addEventListener('DOMContentLoaded', function () {
    document.getElementById('click-me').addEventListener('click', clickHandler);
})

你知道为什么不起作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 16:48:01

如果使用背景页,则需要在清单文件中声明后台脚本(在本例中为background.js):

代码语言:javascript
运行
复制
  "background": {
      "scripts": [ "background.js" ]
  },

但是,您的示例不起作用,因为只有当请求来自选项卡或内容脚本时才定义sender.tab,而不是弹出窗口。

在您的示例中,根本不需要后台页面,您可以直接从弹出页面使用chrome.tabs API:

代码语言:javascript
运行
复制
function clickHandler(e) {
    chrome.tabs.update({url: "https://example.com"});
    window.close(); // Note: window.close(), not this.close()
}
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('click-me').addEventListener('click', clickHandler);
});
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24434470

复制
相关文章

相似问题

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