javascript - Chrome扩展Javascript:如何在另一个javascript执行后获取window.location并获取href链接而不重定向
问题描述
我有一个支持 chrome 扩展作为自定义网站的解决方法,以从中获取信息。我正在尝试确定表中每一行的重定向链接,因为它对反应表没有正常的 href。
查看代码,我确定一旦单击屏幕上的屏幕 x/y 位置以执行操作,页面就会被重定向。然后,这会通过网站上的固有脚本来获取基于该位置的 ID/Link 以提供链接。
在下一节之后,剩下的部分是缩小的 React。
export function _onClick(_ref) { //_ref = MouseEvent {isTrusted: true, screenX: 1230, screenY: 458, clientX: 201, clientY: 332, …}
var target = _ref.target; //target = td.col-xs-2 {__reactInternalInstance$db9spb3eyf: At, __reactEventHandlers$db9spb3eyf: {…}, colSpan: 1, rowSpan: 1, headers: "", …}
store.activate([].concat(_toConsumableArray(store.getInstances())).reduce(domHelpers.findContainerNodes(target), []).sort(domHelpers.sortByDOMPosition).map(function (item) { //target = td.col-xs-2 {__reactInternalInstance$db9spb3eyf: At, __reactEventHandlers$db9spb3eyf: {…}, colSpan: 1, rowSpan: 1, headers: "", …}
return item.instance;
}));
}
话虽如此, chrome 扩展的目的之一是获取它在页面上重定向到的所有链接(表的每一行都被重定向,而不在表中显示 href 链接)。由于它没有附加到按钮的简单 href 链接,因此我很难确定如何获取链接而不重定向到页面本身。
我尝试过这样的事情,但它没有获得我需要的信息而没有重定向。
window.onclick = function(e) {
console.log(e);
};
任何帮助将非常感激。谢谢你
添加了一些新内容以尝试帮助获取 webRequest,但在 manifest.js 中似乎不起作用。
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"permissions": [
"webRequest",
"*://*.example.com/",
"webRequestBlocking"
],
解决方案
这可能是您正在寻找的。如果这是在您的后台脚本中,则任何重定向某处的尝试都将被停止,并且该 url 将被记录到控制台。您将需要webRequest
andwebRequestBlocking
权限,以及所谓host permissions
的权限(基本上只是在权限部分放置一个 url 模式)。你可以在这里阅读。
let nowhere = "https://www.google.com/gen_204"
chrome.webRequest.onBeforeRequest.addListener(e => {
if (e.url != nowhere) {
console.log(e.url);
return {redirectUrl: nowhere}
};
}, {urls: ArrayOfUrls}, ['blocking']);
推荐阅读
- wordpress-theming - 如何使用 wp_insert_post 创建包含 Elementor 内容的页面?
- csv - 通过 CSV 文件的热图
- html - 如何更改离子图标的标题?
- javascript - 如何将实时数据存储在 Javascript 数组中?
- javascript - 空白局部变量声明 - JS
- design-patterns - 游戏中装备或取消装备的设计模式
- wordpress - 如何使用 NGNIX 指令将所有请求重定向到目录中的文件,但对特定子目录中文件的请求除外?
- html - 数据列表元素,可以自动填充多个输入吗?
- css - GetComputedStyle 节点不工作 - 未定义
- npm-install - 如何解决 Mac 上的 npm 安装错误