未捕获的 TypeError:Javascript 中的非法调用(地理位置)

Posted

技术标签:

【中文标题】未捕获的 TypeError:Javascript 中的非法调用(地理位置)【英文标题】:Uncaught TypeError: Illegal invocation in Javascript (geolocation) 【发布时间】:2014-10-08 09:58:00 【问题描述】:

运行代码时出现 javascript 错误“Uncaught TypeError: Illegal invocation”

var nativeGeoloation = window.navigator.geolocation.getCurrentPosition;
nativeGeoloation(function () alert("ok"));

我尝试在窗口的上下文中调用代码,但得到相同的错误:

nativeGeoloation.call(window,function () alert("ok"))

这个问题的背景是我正在尝试访问已被另一个javascript库(cordova)覆盖的地理定位功能的本机版本

【问题讨论】:

【参考方案1】:

我在 Firefox 中遇到的错误是:

TypeError:在未实现接口 Geolocation 的对象上调用了“getCurrentPosition”。

将您的代码更改为:

var nativeGeoloation = window.navigator.geolocation;
nativeGeoloation.getCurrentPosition(function () alert("ok"));

(请注意,您还错误地拼写了nativeGeoloation,如果您开始正确拼写,这可能会给您带来麻烦)。

DEMO

【讨论】:

非常感谢您的帮助!这很快。虽然我现在确实感觉有点阅读障碍:)

以上是关于未捕获的 TypeError:Javascript 中的非法调用(地理位置)的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 中的数组错误:未捕获的 TypeError:无法读取未定义的属性“x”

未捕获的 TypeError:forEach 不是 javascript 函数中的函数错误

Javascript:未捕获的 TypeError:无法读取 null 的属性“indexOf”

如何在 JavaScript 中将日期增加一个月?接收未捕获的 TypeError [关闭]

Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(

未捕获的 TypeError:app.all 不是函数