无法重定向另一个页面中的输出(HTML、Javascript)

Posted

技术标签:

【中文标题】无法重定向另一个页面中的输出(HTML、Javascript)【英文标题】:Unable to redirect the output in another page(HTML,Javascript) 【发布时间】:2016-08-07 18:41:23 【问题描述】:

我想找到当前位置的纬度和经度,并在单击按钮时将其打印在另一页上。 虽然我成功地获得了纬度和经度,但无法在另一页上打印/重定向。

有人可以帮忙吗?请在下面找到代码:

<!DOCTYPE html>
<html>
<head>
<script>
<p id="demo"></p>
var x = document.getElementById("demo");

function getLocation() 
    if (navigator.geolocation) 
        navigator.geolocation.getCurrentPosition(showPosition);
     else  
        x.innerHTML = "Geolocation is not supported by this browser.";
    


function showPosition(position) 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;

</script> 
</head>

<body>
<h2 >Geo-Logical Application</h2><br>
<p>Click the button to get Longitude and Latitude for your current position.</p><br>

<form action="Listing.html">
<button type="submit" onclick="getLocation()">Submit</button>
</form>

</body>
</html>

我想将输出重定向到列表页面。 谢谢

【问题讨论】:

【参考方案1】: 使用window.location 重定向到另一个页面& 将event 传递给getLocation 以停止默认提交:

修改如下:

function getLocation(event) 
     event.preventDefault();
    if (navigator.geolocation) 
        navigator.geolocation.getCurrentPosition(function(p)
               showPosition(p);
                // 
               window.location="Listing.html?lat="+p.coords.latitude+"&lgt="+p.coords.longitude; 
         );
     else  
        x.innerHTML = "Geolocation is not supported by this browser.";
    

而 HTML 变成:

<form action="Listing.html">
<button type="submit" onclick="getLocation(event)">Submit</button>
</form>

如果您的页面处理 GET 参数:

window.location="Listing.html?lat="+p.coords.latitude+"&lgt="+p.coords.longitude; 

否则,使用sessionStorage 有状态应用程序:

sessionStorage.setItem('POS',JSON.stringify(position.coords))Listing.html 获取它:JSON.parse(sessionStorage.getItem('POS'))

【讨论】:

它不工作,虽然我会寻找 sessionStorage。 sessionStorage.setItem('POS',JSON.stringify(position.coords))Listing.html 获取它:JSON.parse(sessionStorage.getItem('POS')) 感谢您的友好建议,但它也不起作用 实际上它没有显示任何错误,但没有显示所需的输出。尽管根据您的建议,我使用了 localstorage 并且它起作用了。var Latitude = localStorage.getItem('latitudeGet'); var Longitude= localStorage.getItem('longitudeGet'); 谢谢【参考方案2】:

首先,脚本中不应包含 p 元素。它应该在体内。此外,您的脚本标记应该位于正文的末尾,因为它具有修改 DOM 的代码。 showPosition(position) 函数应该在 getLocation() 函数之前,因为您在 getLocation 中使用 showPosition。

【讨论】:

哦,抱歉,我没听清listing.html中的部分 这些只是其他一些问题

以上是关于无法重定向另一个页面中的输出(HTML、Javascript)的主要内容,如果未能解决你的问题,请参考以下文章

无法使用角度js重定向到另一个页面

验证注册表中的数据后,重定向到另一个页面以登录

如何将从 Ajax 请求收到的响应重定向到另一个 html 页面

为啥我的代码不会从一个 html 页面重定向到另一个页面?

当 Webview 重定向到 Flutter 中的另一个页面时获取 Json 响应

如何将用户重定向到另一个html页面的html页面上的“section”?