Javascript 如何识别用户是否在特定站点上?
我尝试创建一个WebExtension,如果它位于特定文件夹中的特定站点上,它可以做一些事情。我试图识别站点和子文件夹,如下所示:Javascript 如何识别用户是否在特定站点上?,javascript,firefox-addon-webextensions,Javascript,Firefox Addon Webextensions,我尝试创建一个WebExtension,如果它位于特定文件夹中的特定站点上,它可以做一些事情。我试图识别站点和子文件夹,如下所示: var on = true; //This function checks if the current site is Google after something was searched function check_if_engine() { var loc = window.location.href; if (loc.includes("goo
var on = true;
//This function checks if the current site is Google after something was searched
function check_if_engine() {
var loc = window.location.href;
if (loc.includes("google")) {
alert("Includes google");
if (log.includes("search?")) {
return true;
}
return false;
}
return false;
//...
function start_all() {
if (on) {
alert("Addon activated!");
if (check_if_engine()) {
alert("Website is Google");
//...
}
//Checks if the tab loaded a new URL
browser.tabs.onUpdated.addListener(start_all);
mainfest.json:
{
"manifest_version": 2,
"name": "Is this a Google Search?",
"version": "1.0",
"description": "This Addon tells you if you are on Google Search Page",
"icons": {
"48": "icon/icon.png"
},
"browser_action": {
"default_icon": "icon/icon.png",
"default_title": "Is this a Google search?"
},
"permissions": [
"activeTab"
],
"background": {
"scripts": ["main.js"]
}
}
没有任何其他背景/内容脚本
但是,如果我尝试了它,就没有消息显示“包括谷歌”,返回值是“假”,即使我加载了谷歌页面(即时搜索被禁用)并搜索了一些东西。你能帮我吗
谢谢我使用了一个在manifest.json中指定的域中激活的内容脚本。它通过
browser.runtime
向后台脚本发送一条伪消息。然后,如果您使用document.URL
而不是location.href
,它会向用户发送一条消息
if(window.document.URL == "http://example.org"){
// code
}
要比较的web()始终包含协议
您可以在Mozilla文档:或W3Schools:中看到参考信息。我建议您阅读该页面(可能通过阅读从那里链接的页面进行工作)。它包含总体架构信息,这将有助于您了解事物的总体组织/完成方式。您还应该阅读文档和。基本上,
var loc=window.location.href
不会提供有关更新选项卡的信息,只提供背景页面的“位置”,这对您来说是无用的。谢谢大家。我把文件理解错了。我想我也可以在内容脚本和背景脚本中做同样的事情(不需要操纵当前显示的页面)。我现在使用“browser.runtime”的消息功能将当前页面从内容脚本发送到后台脚本。很高兴您找到了解决问题的方法。请发布问题的答案,以便找到此问题的其他人也能找到解决方案。请注意,不应将实际答案/解决方案编辑到您的问题中。你应该用你用来解决问题的代码创建你自己的答案,然后接受它(系统可能需要48小时的延迟才能接受你自己的答案)。当你自己解决了问题,你不需要内容脚本;您可以使用tabs.getAll
或tabs.query
从后台页面检索选项卡URL。例如,请参阅。请在回答中添加一些解释。请阅读。正如@MrMush所指出的,即使代码解决了问题,您也应该在代码周围加入一些上下文/解释,以使其对其他人更有用。对不起,我是新回答问题的人,所以我会尽我所能