1

我想捕获 Web 用户的地理位置数据并将其存储在带有服务器端 javascript 的 Notes 文档中。

因为我知道 XPages 没有用于检测地理位置的控件,所以 CGI 变量也没有帮助。

我该怎么做?

4

1 回答 1

0

以下是我用来在页面加载时查找地理坐标的脚本块的相关部分。适用于我测试过的 WebKit 浏览器,但不适用于 IE。

<xp:scriptBlock>
        <xp:this.value><![CDATA[
var geo_location = {
    latitude : 0,
    longitude : 0,
    emsg : "",

    showLocation : function(position) {
        geo_location.latitude = position.coords.latitude;
        geo_location.longitude = position.coords.longitude;

        var prOptions = {"latitude" : geo_location.latitude, 
                        "longitude" : geo_location.longitude,
                        "msg" : geo_location.emsg};

        XSP.partialRefreshGet("#{id:geoLocationPanel}",
        {
            params : prOptions,
            onError : function () {
                alert("geoLocationPanel partialRefresh Error");
            }   
        });
    }
};

XSP.addOnLoad(function(){
    setTimeout(function(){
        // function to get the current geo location
        try {
            navigator.geolocation.getCurrentPosition(geo_location.showLocation);
        } catch (e) {
            geo_location.emsg = e.toString();
            alert("navigator.geolocation Error\n" + geo_location.emsg);
            geo_location.showLocation({
                coords : {
                    latitude : 0,
                    longitude : 0
                }
            })
        }
    }, 200);
}
)]]></xp:this.value>
</xp:scriptBlock>
于 2013-11-01T17:35:35.340 回答