有效的Javascript:function document.onkeydown(...)?

时间:2016-03-03 07:40:52

标签: javascript ip-camera

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

原因为此,当我打破Chrome调试器控制台并深入研究时,内置的login.js文件(相机提供的文件)包含代码:

function  document.onkeydown()
{

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

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

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

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

并且,如果它不是无效的并且我不想等待供应商修复,那么将登录页面和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" />

1 个答案:

答案 0 :(得分:0)

早期的HikVision相机的固件存在问题,版本为4.x。

最佳解决方案是将固件升级到5.2,固件中的Javascript代码已修复。

这可以使用HikVision自己的SPD工具完成。

但是,如果这不是一个选项,那么该方案建议应该工作。您只需确保将错误的固件文件从相机正确复制到本地盒子上。这意味着:

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

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

然而,如果它比这更复杂,你可能不得不做一些棘手的事情,比如每次用脚本从相机中提取HTML并按下它来改变本地页面中的URL访问。然后从浏览器访问该本地页面。这个可以自动化,但它开始变得更加困难。

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