我正在尝试为我正在做的一些工作设置一个基于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" />
答案 0 :(得分:0)
早期的HikVision相机的固件存在问题,版本为4.x。
最佳解决方案是将固件升级到5.2,固件中的Javascript代码已修复。
这可以使用HikVision自己的SPD工具完成。
但是,如果这不是一个选项,那么该方案建议应该工作。您只需确保将错误的固件文件从相机正确复制到本地盒子上。这意味着:
document.onkeydown
替换为正确的onkeydown
。(a)唯一令人担忧的可能性是你当前的顶级页面是一个ASP,而这个过程得到它的HTML输出来创建本地顶级文件。如果相机上的ASP文件每次只生成相同的HTML,那么您将成为文件。
然而,如果它比这更复杂,你可能不得不做一些棘手的事情,比如每次用脚本从相机中提取HTML并按下它来改变本地页面中的URL访问。然后从浏览器访问该本地页面。这个可以自动化,但它开始变得更加困难。
所以,总而言之,升级到以后的固定固件可能仍然是最好的选择。