gpt4 book ai didi

javascript - Chrome 扩展程序在 # 后无法识别部分 URL(contentscript.js 匹配)

转载 作者:行者123 更新时间:2023-12-04 17:20:16 27 4
gpt4 key购买 nike

我正在为特定网站(我不拥有该网站)编写扩展程序,其网址仅在/#/之后有所不同。

示例:从 url 开始

.../#/PF/charts/patients/419d3081-5e20-4347-a852-52b2c333ce85/summary

单击“时间轴”链接会转到下一个网址
.../#/PF/charts/patients/419d3081-5e20-4347-a852-52b2c333ce85/timeline/encounter

...但是当尝试匹配 url 以加载我的内容脚本时,从 # 及以后的所有内容都不包含在匹配中,因此它认为这些是同一页面。此外,查看控制台显示它甚至没有看到任何新页面加载,尽管我正在单击链接,整个页面的内容发生变化,并且/#/之后的 url 不同。

如果常用工具(在 list 中设置“content_scripts”)不起作用,我怎样才能让我的 contentscript.js 只在我需要的地方运行?或者,我可以让/#/之后的网址以某种方式可见吗?

任何节俭的解决方案将不胜感激!

最佳答案

我相信 url 的 anchor 位,也称为位置片段,在 Chrome extension match pattern 中总是被忽略。 .

但是,您可以做的是匹配该特定域,并使用 document.location.hash识别位置 anchor ,并且只在你的 contentscript.js 中运行函数如果它是正确的页面。例如:

if (("onhashchange" in window){
window.onhashchange = function () {
if(document.location.hash == '#/PF/charts/patients/419d3081-5e20-4347-a852-52b2c333ce85/summary'){
//do summary stuff
}
}
}

当然,您的 contentscript.js每页只会运行一次(因为它认为所有位置片段更改都在同一页面上)。因此,您必须注意使用 onhashchange 的哈希更改。事件并相应地重新运行脚本。

关于javascript - Chrome 扩展程序在 # 后无法识别部分 URL(contentscript.js 匹配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com