我使用HTML5 Geolocation来获取用户的纬度和经度 . 当页面直接打开时,它适用于所有浏览器,但现在我必须将地理位置代码放在iframe中 . 将其放入iframe后,地理位置不会提示用户的坐标 .
如何在iframe中加载页面时获取用户的纬度和经度?
让我们说这是代码:
<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to get your coordinates:</p>
<button onclick="getLocation()">Try It</button>
<script>
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>
</body>
</html>
3 回答
你可能已经解决了这个问题,但是问题在于:
当您按原样运行页面时,上述情况很好,但是当通过iframe加载时,“文档”指的是父框架(而不是您关心的子框架) . 尝试这样的事情:
其中“frameId”是指包含显示纬度/经度信息的页面的框架 .
使用有一些限制,有关更多信息,请参阅此优秀主题:How to pick element from inside iframe
希望这有助于它的javascript文件,它应该有希望
在你的HTML中
将
allow="geolocation"
属性添加到iframe标签为我工作 .它现在正确地要求地理定位权 .
https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes