2014-07-24 107 views
4

我想將我們的瀏覽器位置更改爲美國請幫助我更改Firefox位置,例如地理位置文件以進行測試。如何更改Firefox的位置設置

+0

哦喜歡欺騙你的地理位置API來認爲它來自中國當你真的在澳大利亞? – Noitidart

+0

是的,我正在尋找招... –

回答

7

最簡單的方法是設置自己的地理位置模擬服務器和改變一些喜好:

  1. 創建(或變更)布爾geo.provider.testing,將其設置爲true。這將強制網絡提供商(而不是操作系統級別的地理位置提供商,如果有的話)。
  2. geo.wifi.uri更改爲模擬服務器的URI,例如http://localhost:8888/
  3. 啓動您的模擬服務器並重新啓動Firefox。
  4. 測試該東西的作品,e.g.

您可以about:config或通過直接編輯0​​文件瀏覽器配置文件的更改的偏好。打開配置文件目錄的最簡單方法是使用about:support中的相應按鈕。在python2

樣品模擬服務器(總是返回白宮座標):

import json 
import BaseHTTPServer 
import SocketServer 

PORT = 8888 
LAT, LNG = 38.894967, -77.034917 


class GeoHandler(BaseHTTPServer.BaseHTTPRequestHandler): 
    def do_GET(self): 
     self.send_response(200) 
     self.send_header("Content-type", "application/json") 
     self.end_headers() 
     self.wfile.write(json.dumps({ 
      "location": { 
       "lat": LAT, 
       "lng": LNG 
      }, 
      "accuracy": 4000 
      })) 

    def do_POST(self): 
     return self.do_GET() 

httpd = SocketServer.TCPServer(("", PORT), GeoHandler) 
print "serving at port 
+1

哈哈!所有的地方...... – Blagoh

+1

@Blagoh OP想要「改變我們的瀏覽器位置到美國」。什麼比白宮更「美國」?沃爾瑪或MacDownloads或可口可樂總部也許:p – nmaier

+1

我發佈同意麥克唐納德,然後在第二次通過我意識到拼寫... ROFL – Blagoh

6

通過nmaler提到的兩個偏好點上。另外,你不需要一個(本地)服務器,一個數據:-URI也能正常工作。

例如,如果你值設置偏好geo.wifi.uri(在about:config):

data:,{"location":{"lat":1.2,"lng":3.4},"accuracy":4000} 

,然後通過運行從JS控制檯下面的測試:

navigator.geolocation.getCurrentPosition(pos => console.log(pos.coords)); 

然後你會看到欺騙成功:

Coordinates { latitude: 1.3, longitude: 11, altitude: 0, accuracy: 4000, ... } 

如果您需要屬一個有效的數據: - 帶有JavaScript的URL(例如在附加代碼中),請使用以下內容。請注意,我只是在情況下使用encodeURIComponentpos對象以某種方式包含特殊字符,如%#(這是不可能的,但有備無患):

var pos = { 
    location: { 
     lat: 1.2, 
     lng: 3.4, 
    }, 
    accuracy: 4000, 
}; 
var geoWifiUrl = `data:,${encodeURIComponent(JSON.stringify(pos))}`; 
// TODO: Set geo.wifi.url's pref to geoWifiUrl.