首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

window.open _self在background.js - chrome扩展中不起作用

是因为在Chrome扩展的background.js文件中,window.open _self方法无法直接使用。这是因为background.js是在后台运行的脚本,没有与浏览器窗口进行交互的能力。

在Chrome扩展中,可以通过chrome.tabs.create方法来创建新的标签页,并在其中打开指定的URL。具体的代码示例如下:

代码语言:javascript
复制
chrome.tabs.create({ url: "https://www.example.com", active: true });

上述代码将在新的标签页中打开"https://www.example.com"网址,并将其设为活动标签页。

如果需要在background.js中执行某些操作并在当前标签页中打开URL,可以通过chrome.tabs.query方法获取当前标签页的信息,并使用chrome.tabs.update方法更新标签页的URL。具体的代码示例如下:

代码语言:javascript
复制
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
  chrome.tabs.update(tabs[0].id, { url: "https://www.example.com" });
});

上述代码将获取当前活动的标签页信息,并将其URL更新为"https://www.example.com"。

需要注意的是,为了在background.js中使用chrome.tabs API,需要在manifest.json文件中声明"tabs"权限。示例代码如下:

代码语言:json
复制
{
  "manifest_version": 2,
  "name": "My Extension",
  "version": "1.0",
  "permissions": [
    "tabs"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_popup": "popup.html"
  }
}

以上是关于在Chrome扩展的background.js中如何打开URL的解决方案。对于更多关于Chrome扩展开发的信息,您可以参考腾讯云的Chrome扩展开发文档:Chrome扩展开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Edge安装Chrome扩展程序

/www.microsoftedgeinsider.com/en-us/download/ ,下载Edge的CAN版本 (Logo为金色配色), 并完成安装 打开允许Edge从其它商店安装扩展程序的按钮...从Chrome商店安装扩展程序 打开https://zhaoolee.gitbooks.io/chrome/content/ 寻找自己喜欢的扩展程序, 文章底部获取地址并安装, markdown...-5f0f22.html 小结 Edge可以安装绝大多数Chrome商店扩展, 但Chrome的谷歌开发App程序, 类似Secure Shell App, 目前是无法安装的, 新版...Edge使用了Chrome的Chromium内核, 可以兼容安装Chrome生态的各种应用程序,为Edge未来的发展带来了无限可能~ 谷粒-Chrome插件英雄榜 本文属于谷粒...-Chrome插件英雄榜文集的一部分, 为了集合更多的程序员和工具爱好者, 将谷粒-Chrome插件英雄榜维护下去, 我已将谷粒-Chrome插件英雄榜 文集的所有内容托管到Github, 项目地址https

3K40

python如何获取动态页面数据

日常使用python爬取数据的时候会遇到一些动态页面,有些网页的HTML代码是由javascript动态生成的,直接爬取可能会出现无法加载的情况,需要用phantomJS和selenium模拟浏览器,...可以模拟人类浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。chromedriver是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。...示例代码如下# 打开一个新的页面self.driver.execute_script("window.open('"+url+"')")# 切换到这个新的页面self.driver.switch_to_window...(self.driver.window_handles[1])很多网站都设置有相应的反爬机制应对爬虫,比如有时候频繁爬取一些网页,服务器发现你是爬虫后会封掉你的ip地址。..."webRequestBlocking" ], "background": { "scripts": ["background.js

82960

15分钟手摸手教你写个可以操控 Chrome 的插件

chrome扩展程序页加载我们的文件目录 即可 2.png 然后我们启用插件 随手打开一个页面就发现我们的插件已经生效了 3.png 4.png 第二步 本地创建 websocket 的服务...这个主要功能就是 Chrome 插件向页面注入脚本 第一步的操作中正是该文件别的页面控制台中打印出了我们期望的 log content-scripts 和 原始页面共享 DOM,但是不共享 JS...即可 我们这里将需要的 js 库 和 background.js 引入到 background.html <script src="....` <em>window.open</em>(backgroundURL) 现在我们只需要在 <em>background.js</em> <em>中</em>编写相应代码,建立长链接就可以了 // <em>background.js</em> class BackgroundService...插件的朋友们也可以尝试下 参考资料 【干货】<em>Chrome</em> 插件(<em>扩展</em>)开发全攻略(https://www.cnblogs.com/liuxianan/p/<em>chrome</em>-plugin-develop.html

1.4K20

chrome浏览器扩展v3版本配置项整理备忘

default_locale": "zh_CN", //内容安全政策,V2的value是字符串,V3是对象 "content_security_policy": { //原文:此政策涵盖您的扩展程序的页面...'", //原文:此政策涵盖您的扩展程序使用的任何[沙盒扩展程序页面];具体不是很明白,但是参数值得是self,即当前自己 "sandbox": "sandbox allow-scripts...“背景页”也将变成“Service Worker”,改动之后background.js将和浏览器完全分离,即无法调用window和ducoment对象 //可以看介绍: //1、//developer.chrome.com...//这些 API 引入时扮演了不同的角色,但随着时间的推移它们变得多余,因此 Manifest V3 ,我们将它们统一为单个 `"action"` API; //配置上action:{},可以是空对象...方法如下 首先,需要增加配置 externally_connectable:{matches:[“https://*.xxx.com/”]}指定允许哪些网站可以给当前插件发送消息,相当于白名单,只有白名单的站点发送的消息

37240

浏览器插件开发-manifest文件解读「建议收藏」

(怎么相应自定义) 以下情况会需要调用到后台脚本 扩展首次下载或者版本更新 后台脚本中正在监听事件,并且这事件被触发了 content_script 或者其他扩展调用了 sendMessage...当前扩展的其他部分,例如弹窗调用了 runtime.getBackgroundPage 后台脚本定义选项 { ......允许用户调用扩展时临时访问当前活动的选项卡, background 后台权限,可以用来增加Chrome 运行时间,即开机即运行(虽然是不可见的) bookmarks 书签操作权限 browsingData...开放 正在运行请求的 拦截、阻塞、或修改的权限 15. web_accessible_resources 指定打包资源的的路径字符串数组,这些资源是扩展是可用了,例如 content_script...会用到的资源等, 16. content_security_policy 内容安全策略, 默认的安全策略为 script-src 'self'; object-src 'self' 他会有如下限制

2.2K20

写个自己的chrome插件

像类似掘金插件又是怎么实现的,当我安装稀土掘金插件后,我的导航页都被改掉了,因此你也可以做一个类似的插件,来导航你公司的一些产品,方便快捷的实现你的内部导航 开始本文之前,主要是从零认识一个chrome...2以上 "name": "Maic_test_chrome", // 扩展名称 "description": "lesson demo", // 扩展描述 "version":..." } } background.js与content.js通信 background.js插件页面加载,background.js调用onMessage.addListener接收content.js...) // background.js 插件页面加载 const user = { username: 'Maic' }; // 调用onMessage.addListenter chrome.runtime.onMessage.addListener.../popup.js"> 当你打开浏览chrome://extensions/然后添加插件04-demo 在打开一个测试页面 我通过插件的popup.js

1.9K10

Selenium+代理爬取需要模拟用户交互的网站

日常爬虫采集网站的过程,部分数据价值较高的网站,会限制访客的访问行为。这种时候建议通过登录的方式,获取目标网站的cookie,然后再使用cookie配合代理IP进行数据采集分析。...Selenium是一个自动化测试工具,它可以模拟用户浏览器的操作,比如点击按钮、填写表单等。...但请注意,进行网络爬虫时,务必遵守目标网站的robots.txt规定,并尊重网站的数据抓取政策。...另外,过于频繁的爬取可能会给网站带来负担,甚至触发反爬机制,因此建议爬取数据的过程做好反爬措施,比如这里我们以访问知乎为例,通过获取网站的cookie配合使用代理IP进行采集。...webRequestBlocking" ], "background": { "scripts": ["background.js

28810

Chrome 插件特性及实战场景案例分析

我们印象,它就像跑浏览器的应用,可以把浏览器想象成手机,那么插件就像是应用,我们从Chrome应用商店中下载,然后安装到Chrome浏览器,就可以浏览器中进行运行了。...3.2 Chrome扩展插件的核心机制 Chrome扩展插件中比较核心的几个概念:Extension Page、background.js、Content_script.js ,它们什么时机触发,扮演着什么角色...1)扩展进程运行Extension Page,Extension Page主要包括backgrount.html和popup.html: backgrount.html没有任何内容,是通过background.js...例如我们开发工作,经常需要频繁的清除浏览器缓存,每次都需要先找到清除按钮,弹出对话框,进行确认,操作很繁琐,如果开发一个chrome扩展插件,就可以轻松实现一键快捷清除浏览器Cookie等缓存,可以参考...document, 因此无法扩展中直接获取某个标签页面的dom元素,但是可以通过发送事件请求来实现: chrome.tabs.sendRequest(tab_id, { hello: "

1.7K40

干货 | 盘点 Chrome 插件开发那些关键的点!

最近在开发者模式下调试 Chrome 插件,发现安装扩展后默认会报错误,提示 v2 版本已经废弃,相关 API 功能将在明年不可使用,建议升级到 v3 版本 本篇文章将基于 v3 版本,盘点 Chrome...扩展图标设置、popup 页面等内容 v3 中使用关键字 action 取代 v2 的关键字 browser_action //v3 ......缓存 v3 ,使用下面的方式,将键值对存储到缓存 //v3 ......定时任务 v2 实现定时任务、延时任务非常方便,我们只需要在 background.js 创建一个定时任务,然后设置 persistent 为 true,这样就能保存定时任务一直在后台执行 由于...操作步骤如下: manifest 设置 alarms 权限 background ,使用 alarms 创建定时任务 //v3 background.js ... function peroidFunc

68320

控制台禁用js_禁止直接访问js

toString,最后打印对象,但是对象不作为第一个参数,此时就可以成功监测每一次控制台状态了 4)、console.log、console.info、console.error等均有效 5)、只chrome...上述方法需要注意浏览器对于defineProperty的支持,另外在firefox浏览器失效,因为firefox浏览器对于对象监听的属性不会取值,需要手动点开才会触发。...所以我们可以debugger前记录时间,如果debugger没有触发,运行几条语句的时间几乎为0,但是如果被触发,那间隔时间就不是几十、几百毫秒了。...('控制台打开了'); try { window.open("about:blank", "_self") } catch(e) {...上面也说了:debugger 语句调用任何可用的调试功能,可以阻断代码执行,如果没有调试功能可用,则此语句不起作用

9.6K20

用 Vue 开发自己的 Chrome 扩展

但是与网页不同的是,扩展程序可以访问许多特定于浏览器的 API,这才是有趣的地方。 本教程,我将向你展示如何为 Chrome 构建一个能够改变新标签页行为的简单扩展。...将以下代码添加到 background.js ,使浏览器安装扩展时弹出出 hello 对话框: 1chrome.runtime.onInstalled.addListener(() => { 2 alert... src 文件夹还有一个 icons 文件夹。如果你看一眼 Chrome 的工具栏,会看到我们的扩展程序的新图标(也被称为 browser action)。这就是从此文件夹拿到的。...新标签页中使用 Vue 组件 首先从 background.js 删除烦人的 alert 语句。 src 文件夹创建一个新的 tab 文件夹来存放新标签页的代码。...总结 本教程,我重点介绍了 Chrome 扩展程序的主要部分,并展示了如何用在 Vue.js vue-web-extension 样板构建扩展程序,最后讲解了如何将扩展上传到 Web Store

2.7K30

Selenium + Chrome Diver密码认证的HTTP代理

鲲之鹏的技术人员该思路的基础上用Python实现了自动化的Chrome插件创建过程,即根据指定的代理“username:password@ip:port”自动创建一个Chrome代理插件,然后就可以...”Selenium + Chrome Driver”通过安装该插件实现代理配置功能,具体代码如下: # -*- coding:utf-8 -*- # 测试"Selenium + Chrome"使用带用户名密码认证的代理...' # 存储自定义Chrome代理扩展文件的目录 CUSTOM_CHROME_PROXY_EXTENSIONS_DIR = 'chrome-proxy-extensions' def get_chrome_proxy_extension...(proxy): """获取一个Chrome代理扩展,里面配置有指定的代理(带用户名密码认证) proxy - 指定的代理,格式: username:password@ip:port...(CHROME_PROXY_HELPER_DIR, 'background.js')).read() background_content = background_content.replace

2.3K20

认识Chrome扩展插件

3、扩展如何工作 扩展是基于 HTML、JavaScript 和 CSS 等 Web 技术构建的。它们单独的沙盒执行环境运行,并与 Chrome 浏览器交互。...如下图: 上图中左边地址栏内部的按钮是page action(Chrome插件,直接内置Chrome里的),右边地址栏外部的是 browser action(Chrome 扩展插件) 5、扩展插件使用...对于开发和测试,您可以使用扩展开发者模式将这些“解压”加载到 Chrome ,或者直接拖动crx文件到管理扩展插件页面。...、background.js、content_script.js 下图展示他们之间的关系,以及如何通信 (图片来源网络,侵删) 运行时的三个进程: 扩展进程(Extension Process)...和popup.html, backgrount.html没有任何内容,是通过background.js创建生成,当浏览器打开时,会自动加载插件的background.js文件,它独立于网页并且一直运行在后台

1.1K10

Chrome扩展 实现自动页面Video下载 demo

这个还是比较重要的,不同的配置项版本,配置项文件有略微的差别,中文开发文档给的例子还是1,但是最新的官方已经是3了。这个配置时还是要注意下保持版本一致的。...actiondefault_icon是指本扩展浏览器的图标,我这里用了一个和我头像一样的png,default_title是浏览器扩展图标的title。...background.js代码: chrome.runtime.onInstalled.addListener(() => { chrome.notifications.create(null,...(这个是小意思了,很简单) 加载扩展: demo做完了就可以加载到chromechrome中找到扩展程序(chrome://extensions/),打开开发者模式,加载已解压的扩展程序,然后选择我们扩展的根目录即可...image.png 加载成功后执行了background.js,弹出桌面通知。 image.png 百度上随便搜索一个视频,打开包含视频的页面。

1.3K60
领券