在chrome扩展中使用什么来代替window.location.href?

bvhaajcl  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(279)

嗨,我正试图创建一个Chrome扩展,为了使我的应用程序扩展我遵循以下步骤,
1.转到chrome选项-〉更多工具-〉扩展。
2.我在该窗口中选择了开发人员模式。
3.我选择了解压缩的扩展,然后选择了我的应用程序。
4.我单击了Pack扩展。
在我的应用程序中,我有一些html页面,CSS,JS和清单文件和background.js。

清单文件

{
    "name": "...",
    "description": "........",
    "manifest_version": 2,
    "minimum_chrome_version": "23",
    "version": "0.1.1",
    "offline_enabled": true,
    "icons": {
        "16": "sample.png"  
    },
    "permissions": [
    "storage","tabs","<all_urls>","webview"
    ],
    "app": {
        "background": {
            "scripts": ["background.js"]
        }
    }
}

背景.js

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('login.html', {
    id: 'main',
    bounds: { width: 1024, height: 768 }
  });
});

包括选项卡权限时收到以下警告,

There were warnings when trying to install this extension:
'tabs' is only allowed for extensions and legacy packaged apps, but this is a packaged app.

我的应用程序不被认为是一个扩展。我正在尝试这个页面导航。我通常在jquery中使用window.location.href="sample.html"。为此,我在chrome扩展中得到了一个错误,

Use blank _target

然后我试着用这行代码

function clickHandler(e){
  chrome.tabs.update({url:"service1.html"});
  window.close();
}
document.addEventListener('DOMContentLoaded',function(){
  document.getElementById('click-me').addEventListener('click',clickHandler);
});

这段代码也不起作用。有人能帮我做我的应用程序的扩展,并帮助我在页面导航。提前感谢。

5f0d552i

5f0d552i1#

推荐看一下Offical Guide for extensions,以下是根据您的要求制作的基本示例,当浏览器启动时(您的扩展也被执行),它会打开login.html,有一个登录按钮,一旦点击它,sample.html就会打开。
manifest.json

{
    "name": "...",
    "description": "........",
    "manifest_version": 2,
    "minimum_chrome_version": "23",
    "version": "0.1.1",
    "icons": {
        "16": "sample.png"  
    },
    "background": {
        "scripts": ["background.js"]
    }
}

background.js

chrome.windows.create({url: "login.html"});

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <button id="click-me">Click me</button>
    <script src="login.js"></script>
</body>
</html>

login.js

document.addEventListener("DOMContentLoaded", function() {
    document.getElementById("click-me").addEventListener("click", function() {
        window.location.href = "sample.html";    
    }, false);
});

相关问题