如何通过扩展在chrome中单击时将用户重定向到新链接

How to redirect user to new link on clicking in chrome via extensions?

本文关键字:新链接 重定向 链接 用户 扩展 何通过 chrome 单击      更新时间:2023-09-26

我正在尝试制作一个chrome扩展,当用户单击扩展按钮时,它会将用户重定向到修改后的链接
我创建了manifest.json、图标文件、popup.html和popup.js
但我的代码不起作用。

我读过一个类似问题的答案,但仍然无法解决这个问题。链接-->如何通过扩展修改chrome中的当前url位置

我想做的事的教育:
1.获取当前选项卡的url(假设www[dot]xyz.com)
2.修改url(abcxyz[dot]com)
3.更新链接并重定向到新链接(转到abcxyz[dot]com)

这是我迄今为止所写的

// To get the url
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
    // Do something
    var targ=tabs[0].url;
});

var toBeOmitted="xyz";
    var toBeAddded="abc";
    var newTarg=targ.replace(toBeOmitted,toBeAddded);
//to update to new url
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tab) {
      chrome.tabs.update(tab.id, {url:newTarg});
});

我无法调试它。

声明变量时出现问题
最终代码如下-->

//Declaring variables
var targ,newTarg;
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
    // Do something
    targ=tabs[0].url;
//defining variables here
    var toBeOmitted="xyz";
    var toBeAddded="abc";
//define newTarg without var(to make it global) or just declare outside
//and define here
    newTarg=targ.replace(toBeOmitted,toBeAddded);   
    return newTarg;
});


  chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
      chrome.tabs.update({url:newTarg});
});

您忘记关闭函数chrome.tabs.query

如果它仍然不起作用,请尝试用null替换tab.id,这样您也不需要使用chrome.tabs.query

示例:

chrome.tabs.update(null, {url:newTarg});