chrome插件开发:popup.html 页面获取当前页面【当前视窗】的url

chrome插件开发:popup.html 页面获取当前页面【当前视窗】的url

开发前的准备

在manifest页面配置上 tabs 权限,否则无法使用tabs接口权限

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}

参考手册: http://chrome.cenchy.com/tabs.html

理清概念: 当前视窗

当前视窗
很多扩展系统的功能有一个可选的windowId参数,其默认值为当前视窗。

当前视窗是指包含当前正在执行的代码的视窗。重要的是要认识到,它可以跟最顶层或有焦点的视窗不一样。

例如,假设一个扩展从一个单一的HTML文件中创建了一些标签或视窗,而这个HTML文件包含一个chrome.tabs.getSelected的调用 。 当前视窗是指那个包含了发起调用的页面的视窗,不管它是不是最顶层视窗

在背景页这个例子中 ,当前视窗就是最后一个活动视窗。在某些情况下,背景页可能没有当前视窗。

popup.html 代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <script src="js/popup.js"></script>
    <style>
      h1{color:red}
      .con{ width:500px; height: 800px;}
      .h800{ }
    </style>
</head>
  <title>Popup</title>
<body  >
    <div class="con">
        <h1>这是我的第一个浏览器插件</h1>
        <hr>
        <p>当前的网址是:<span id="tabUrl"></span></p>
        <button type="button" >123</button>
    </div>

</body>
</html>

popup.js代码

// popup.js
console.log("popup.js");
//console.log(window.location.href);
//返回的是popup.html这个当前页面
var currentUrl = window.location.href;
console.log(currentUrl);

//chrome.windows.getCurrent 获取当前视窗是指包含当前正在执行的代码的视窗 及popup.html
chrome.windows.getCurrent(function (tab){
    console.log(tab.id);

})

//chrome.tabs.getSelected获取特定窗口指定的标签。
chrome.tabs.getSelected(null, function(tab) {
  console.log('当前选中的标签页的 ID 是: ' + tab.id);
  console.log('当前选中的标签页的 URL 是: ' + tab.url);
  document.getElementById("tabUrl").innerHTML = tab.url;
});

// 当前视窗
// 很多扩展系统的功能有一个可选的windowId参数,其默认值为当前视窗。

// 当前视窗是指包含当前正在执行的代码的视窗。重要的是要认识到,它可以跟最顶层或有焦点的视窗不一样。

// 例如,假设一个扩展从一个单一的HTML文件中创建了一些标签或视窗,而这个HTML文件包含一个chrome.tabs.getSelected的调用 。 当前视窗是指那个包含了发起调用的页面的视窗,不管它是不是最顶层视窗。

// 在背景页这个例子中 ,当前视窗就是最后一个活动视窗。在某些情况下,背景页可能没有当前视窗。

效果

点击插件图片显示popup.html 显示当前窗口url
点击插件图片显示popup.html  显示当前窗口标签

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使选项卡之间的切换更加方便。 当您按下快捷方式时,该扩展程序会显示一个带有最后一个活动选项卡的弹出窗口(默认情况下为Alt + Y)。 您可以通过按住Alt并按Y来循环显示它们。释放Alt键可切换到所选选项卡。 这就像在Windows(Alt + Tab)和macOS(Cmd + Tab)中的应用程序之间切换一样。 同样,当您关闭一个活动选项卡时,您将被置于先前活动的选项卡中。 它比默认的Chrome行为(用于激活最近的标签页)更有帮助。 您可以通过按Ctrl + Tab到扩展名委派选项卡之间的默认切换,请参阅https://github.com/dvdvdmt/popup-tab-switcher#replace-default-tab-switching-behaviour注意:扩展名尝试呈现它的弹出窗口会尽可能显示在页面上,但在某些情况下无法执行此操作:* Chrome的网上商店页面。 扩展程序在这里不起作用。 *特殊的Chrome标签,例如“设置”,“新建”标签,“历史记录”等。在这种情况下,扩展程序尝试将用户从特殊标签切换到上一个标签,而不显示弹出窗口。 *页面没有焦点(用户在页面上搜索,焦点在地址栏等)。 在这种情况下,扩展程序将显示其弹出窗口并启动一个计时器,在该计时器结束时它将把用户切换到选定的选项卡。 *文件页面URL以file:///开头)。 没有特殊权限,该扩展程序无法在此类页面上运行,您可以在扩展程序>弹出标签切换器(详细信息)>允许访问文件URL中打开该权限。 GitHub上的源代码https://github.com/dvdvdmt/popup-tab-switcher 支持语言:English
Chrome插件popup.html中操作页面的DOM元素,需要使用JavaScript来完成。下面是一个简单的操作步骤: 1. 首先,在popup.html文件中引入一个自定义的JavaScript文件,可以在<script>标签中加入`<script src="popup.js"></script>`,确保该文件存在于插件的目录中。 2. 在popup.js文件中,可以使用document.getElementById()等DOM操作方法来获取需要操作的DOM元素。例如,如果要获取页面上的一个按钮元素,可以使用以下代码: ```javascript var button = document.getElementById('myButton'); ``` 需要注意的是,这里的'myButton'应该是需要在popup.html中定义的DOM元素的id属性。 3. 获取到DOM元素后,就可以对其进行各种操作了。例如,如果要修改按钮的文本内容,可以使用以下代码: ```javascript button.innerHTML = '新文本'; ``` 如果要隐藏按钮,可以使用以下代码: ```javascript button.style.display = 'none'; ``` 4. 在完成操作后,可以通过事件监听器或直接调用函数等方式,将修改后的结果反映到插件popup界面上。 需要注意的是,由于popup.html是浮动页面,在每次打开插件时都会重新加载,因此对于需要长期保持的跨页面数据操作,可以使用Chrome插件中的其它持久化存储方式(如chrome.storage)来实现。 总之,通过以上步骤,我们可以在Chrome插件popup.html中操作页面的DOM元素,实现各种动态效果和交互功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值