【问题标题】:Using JS-Navigator from PyV8使用 PyV8 中的 JS-Navigator
【发布时间】:2015-08-15 22:36:52
【问题描述】:

我正在尝试从运行 pyv8 的 Python 脚本中使用 JS Navigator。

我遇到的错误是:

ReferenceError: navigator is not defined

我在 JSFiddle 中尝试过相同的代码,效果很好,我只能假设从浏览器运行 JS 可以访问 V8 引擎允许的更多功能。

不幸的是,我对 JS(以及几乎所有网络的知识!)的了解非常有限,我敢肯定,对于任何有网络经验的人来说,这都是一个微不足道的问题,请有人从根本上解释为什么会发生这种情况,以及我该怎么做要避免吗?

编辑

试图从thisJSFiddle 获取输出。

到目前为止,我的 Python 代码是:

import PyV8

ctxt = PyV8.JSContext()
ctxt.enter()
ctxt.eval("navigator.geolocation.getCurrentPosition();")

我确定这也存在问题(即实际显示值),但是现在我更关心为什么导航器未定义。

【问题讨论】:

  • 很高兴看到您尝试运行的代码...
  • 当然,会编辑。秒

标签: javascript python navigator pyv8


【解决方案1】:

我想说的是,因为您不在浏览器环境中,所以没有可用的 navigator 全局属性。

您需要找到另一种获取地理位置信息的方法...可能使用 Python 库?

【讨论】:

  • 不幸的是,到目前为止我使用的所有 Python 库都非常不准确(把我放在另一个国家!),JS 方法似乎是我找到的唯一准确的方法。您知道任何解决方法吗?如果第二天没有更多更接近的答案出现,我将很高兴接受您的答案为“已回答”
  • 您可能会使用可用的 IP 查找服务,例如 MaxMind GeoIP2,我相信它具有免费的旧版服务。假设您可以获取用户的 IP 地址……显然,由于网络安全等原因,它不是 100% 可靠的,但我使用了 MaxMind(付费服务)并且非常准确。
  • 非常感谢!我去看看。
  • 刚刚尝试了旧版本,不幸的是它仍然将我的 IP 放在威尔士(我住在英国)无论如何感谢您的帮助,看来我只需要支付更好的费用。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2021-03-03
相关资源
最近更新 更多