有效 Javascript:函数 document.onkeydown(...)?

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

我正在尝试为我正在做的一些工作设置一个基于 HikVision IP 的摄像头,但它拒绝登录摄像头(登录按钮似乎没有任何作用)。

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

function  document.onkeydown()
{

并且浏览器抱怨 . 在此上下文中是无效标记。

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

如果无效,我只需要找到开发人员好好谈谈:-)

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

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

换句话说,将这两个文件放在我的桌面(使用 127.0.0.1),但让它们引用相机本身的所有其他文件(192.0.[=43) =]).

所以,而不是访问 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代码已修复。

这可以通过 HikVision 本身的 SPD 工具来完成。

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

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

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

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

所以,总而言之,升级到以后的固定固件可能仍然是最好的选择。