将javascript函数valuie添加到href链接

时间:2015-06-27 00:41:05

标签: cordova jquery-mobile geolocation

我有以下javascript功能

   <script type="text/javascript" charset="utf-8">

        // Wait for device API libraries to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // device APIs are available
        //
        function onDeviceReady() {
        //     navigator.geolocation.getCurrentPosition(onSuccess, onError);
        /     navigator.geolocation.getCurrentPosition(onSuccess);
        }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML =  + position.coords.latitude  + ',' + position.coords.longitude;
    }

    // onError Callback receives a PositionError object
    //
  function onError(error) {
      alert('code: '    + error.code    + '\n' +
           'message: ' + error.message + '\n');
//   }

        </script>

我需要添加gelocation元素值,这是一个long / lat例如&#34; -27.49256565,153.095735&#34;到我的jquery移动列表中的超链接

    $("#homePage").live("pageshow", function() {
                        console.log("Getting remote list");

                        var s = "";
                        s+= "<li><a href='bus1.html?coords='> bus 1 locator</a></li>";
                        s+= "<li><a href='bus2.html?coords='> Bus 2 locator </a></li>";
                        s+= "<li><a href='bus3.html?coords='> Bus3 locator </a></li>";
                        $("#home").html(s);
                        $("#home").listview("refresh");

                        });

上面的href代码工作正常但是我需要将值geolocation元素填充到coords =的值中,因此coords是动态的。

简单地将我需要的更改放到上面的代码行中,以便coords = value从函数中动态填充

我需要将地理位置值动态加载到值coords =附加到a href

我已经花了好几个小时,我知道我非常接近但不在那里

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

也许您想查看document.location.search种可能性中的查询字段,然后使用以下内容:

function onSuccess(position) {
    var element = document.getElementById('geolocation'); // I assume this is the <a>-element that has to get the URL with that specific coordinates
    element.setAttribute('href', 
        '<your base url>?' + 'coordx=' + position.x + 
        '&coordy=' + position.y);                         // I assume you want your URL set here.
}

在一些公开可用的代码的帮助下,检索这些值也非常简单:

function getURLParam (str, sVar) {
    return decodeURI(str.replace(new RegExp("^(?:.*[&\\?]" + encodeURI(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
} // this can be found (edited) at MDN (Mozilla Developers Network)

var coordx = getURLParam(window.location.search, 'coordx');
var coordy = getURLParam(window.location.search, 'coordy');

使用此功能,您可以将您的变量输入和输出网址,我认为这是您的问题。如果不是,请将您的问题更具体一些,并更清楚您的问题。