Valid Javascript: function document.onkeydown(...)?

Valid Javascript: function document.onkeydown(...)?

本文关键字:onkeydown document Javascript function Valid      更新时间:2023-09-26

我正在尝试为我正在做的一些工作设置一个基于 HikVision IP 的摄像机,但它拒绝登录摄像机(登录按钮似乎什么都不做).

当我打破Chrome调试器控制台并更深入地调查时,原因是内置的login.js文件(相机提供的文件)包含以下代码:

function  document.onkeydown()
{

并且浏览器抱怨.在这种情况下是无效令牌。

所以我的第一个问题很简单:这是有效还是无效的Javascript?

如果它无效,我只需要找到开发人员进行良好的交谈:-)

如果它有效,我如何让 Chrome 停止抱怨,以便它可以继续处理文件的其余部分(包括登录功能的定义,这是我点击登录按钮时通常会调用的)?

而且,如果它不是无效的,并且我不想等待供应商修复,那么仅将登录页面和 Javascript 文件替换为本地页面和 Javascript 文件是否可行?

换句话说,在我的桌面上(使用 127.0.0.1),但让它们引用相机本身的所有其他文件(192.0.0.whatever)。

因此,而不是访问包含以下内容的http://camera.com/page/login.asp

<script type="text/javascript" src="../script/login.js" />
<script type="text/javascript" src="../script/other.js" />
<script type="text/javascript" src="../script/again.js" />

相反,我会访问file://login.htm,它将包含:

<script type="text/javascript" src="my_good_login.js" />
<script type="text/javascript" src="http://camera.com/script/other.js" />
<script type="text/javascript" src="http://camera.com/script/again.js" />

某些早期海康威视相机的固件存在问题, 在 4.x 版本中.

最好的解决方案是将固件升级到 5.2,其中固件中的 Javascript 代码是固定的。

这可以通过海康威视本身的 SPD 工具完成.

但是,如果这不是一种选择,建议的方案应该有效。您只需要确保将错误的固件文件从相机正确复制到本地包装盒上即可。这意味着:

  • 在本地制作顶级页面和错误登录 Javascript 文件的精确副本(意味着在您的主机上而不是相机上)。这可能就像将两者的浏览器源代码剪切粘贴到新文件中一样简单(a)。
  • 修复错误登录 Javascript 文件的本地副本,将document.onkeydown替换为正确的onkeydown
  • 确保您使用浏览器中的本地顶级页面而不是相机上的页面:这将确保它使用本地登录 Javascript 文件。
  • 让该顶级页面使用您的固定登录 Javascript 文件:鉴于它是一个相对 URL,它应该无需更改即可工作。
  • 确保本地顶级页面访问相机上的其他文件:这将需要将相对URL替换为绝对URL。

(a) 唯一令人担忧的可能性是你当前的顶级页面是 ASP 页面,而这个过程通过创建本地顶级文件获得其 HTML 输出。如果相机上的 ASP 文件每次都只是生成相同的 HTML,那么您将成为文件。

但是,如果它比这更复杂,您可能需要做一些棘手的事情,例如每次使用脚本从相机中提取 HTML 并对其进行按摩以更改本地页面中的 URL 访问。然后从浏览器访问该本地页面。这可以自动化,但它开始变得更加困难。

因此,总而言之,升级到更高版本的固定固件可能仍然是最佳选择。