Location Guard
应该说是较为常见的插件,一种经典的应用场景是Google搜索然后上报位置拯救宋仲基。
当我有很多隶属于不同位置的小鸡,更改位置时的一般做法是:通过关键词搜索确定大概位置,然后调整具体定位。
但是的话,由于搜索api的Key是所有人共享的,有时候会遇到次数限制,这时候就只能凭感觉盲点了,非常麻烦。
本文记录一种更方便的方法。
获取经纬度
-
你可以通过ip反查大概的经纬度 比如 https://browserleaks.com/ip/1.1.1.1,得到
Coordinates
值。
这个值在设置好后也是可以微调的。 -
你可以获取当前已经配置好的经纬度。如何获取呢? F12打开开发者控制栏,贴以下代码运行
browser.storage.local.get("global", function(settings){ if(settings && settings.global){ console.log(settings.global.fixedPos); alert(JSON.stringify(settings.global.fixedPos)); }else{ console.log('settings not changed', settings); alert('settings not invalid'); } });
通过经纬度设置位置
先转到插件的Fixed Location配置页面,F12打开开发者控制栏,贴以下代码运行
function latLng(lat, lng){
if(!lng && lat.latitude && lat.longitude){
lng = lat.longitude;
lat = lat.latitude;
};
if(!lng && lat.lat && lat.lng){
lng = lat.lng;
lat = lat.lat;
};
if(!lng && lat.lat && lat.lon){
lng = lat.lon;
lat = lat.lat;
};
lat = Number(lat);
lng = Number(lng);
browser.storage.local.get("global", function(settings){
if(settings && settings.global){
settings.global.fixedPos.latitude = lat;
settings.global.fixedPos.longitude= lng;
browser.storage.local.set(settings, t=>console.log('settings changed', t));
}else{
console.log('settings not changed', settings);
};
});
}
latLng(39.784194325910335, 116.4155262708664);
// latLng({ latitude: 39.784194325910335, longitude: 116.4155262708664 });
// latLng({ lat: 39.784194325910335, lng: 116.4155262708664 });
// latLng({ lat: 39.784194325910335, lon: 116.4155262708664 });
// 上面四种传参都可以
进一步的优化
每次都打开控制台贴代码不是很方便。我们可以收藏为书签。
注意到地址栏输入javascript:alert("hello");
这种是可以运行的,我们把代码前面加一个javascript:
存为书签就好了。
在这之前,需要把运行的js内容压缩成一行。
- 获取当前配置的经纬度(在Fixed Location页面运行)
javascript:browser.storage.local.get("global", function (settings) {if (settings && settings.global) {console.log(settings.global.fixedPos);alert(JSON.stringify(settings.global.fixedPos));} else {console.log("settings not changed", settings);alert("settings not invalid");}});
- 设置经纬度为
{ latitude: 39.784194325910335, longitude: 116.4155262708664 }
(在Fixed Location页面运行)javascript:function latLng(lat, lng) {if (!lng && lat.latitude && lat.longitude) {lng = lat.longitude;lat = lat.latitude;}if (!lng && lat.lat && lat.lng) {lng = lat.lng;lat = lat.lat;}if (!lng && lat.lat && lat.lon) {lng = lat.lon;lat = lat.lat;}lat = Number(lat);lng = Number(lng);browser.storage.local.get("global", function (settings) {if (settings && settings.global) {settings.global.fixedPos.latitude = lat;settings.global.fixedPos.longitude = lng;browser.storage.local.set(settings, (t) => console.log("settings changed", t));} else {console.log("settings not changed", settings);}});}latLng({ latitude: 39.784194325910335, longitude: 116.4155262708664 });
- 以后要做的就是打开插件的Fixed Location配置页面,然后选择相应的书签进行点击。