免责声明
我决不是网络技术专家,也不太熟悉.asp、.dll和其他MS恶作剧,所以不要惊讶地发现下面的奇怪/不合逻辑(但希望足够有意义)的结构。
背景
我和我的同事们正在开发一个只有IE的dll打包的.aspx IFRAMEd CRM应用程序。这(应该)意味着它只能通过IE访问,url的形式是:http://internal-ip/foo/bar/something.dll?FOO=BAR,并且显示的页面由其他HTML背景项和两个IFRAME组成,其中包含重要的应用程序内容。作为CRM,它每天需要数百次重复操作(插入新客户、更新客户、查找有关他们的各种信息等)。
问题
这些操作中的每一个都需要通过软件进行多个复杂的菜单导航,以便最终单击相关菜单项并等待加载所需页面(如此复杂,估计它们将花费超过完成操作总时间的75%)。
想法
为了加快速度(从而提高效率),我想出了一个主意,以某种方式实现键盘快捷键,它的作用方式与单击菜单项的方式相同。这个想法看起来很简单,但我不知道从哪里开始。
尝试的解决方案
如果这是一个标准的网页,我会创建一个防油渍的脚本,当我按下ctrl+something时,它会执行$("#menu_item").trigger("click"),但我不能这样做,原因有两个:
- 没有防油剂(Trixie不起作用),并且
- 由于对象在IFRAME中,所以无法检查任何对象或DOM在其中导航,所以这是我使用firebug lite所能达到的最远和最深的深度
为了解决第一个问题,我设法使用IE Tab 2用Firefox打开了该应用程序,果不其然,该应用程序可以工作,但Greasemonkey脚本不起作用-即使是页面加载时的简单警报("a")脚本也不会执行(可能是因为页面包装在.dll中)。
结论
所以在我看来,我将无法完成我最初的计划,那么我还有什么可以尝试的吗?我对应用程序所在的远程服务器的访问权限有限,只能浏览文件,希望能看到一些有用的东西,但这太耗时了,最终可能不会有成效。
我希望有一个足够简单的解决方案(因为这应该是一个非常常见的功能),可以避免翻阅数百个文件或学习如何对.dll进行逆向工程。有人遇到过类似的情况吗?如果没有,你会如何实现这一点?
如果应用程序在浏览器中运行,无论它托管在服务器上的平台是什么,它都会吐出HTML,Javascript会在这里帮助您获取快捷方式。
您应该查看其中的一些(使用jquerylib):
带有jQuery 的键盘快捷键
超链接(jQuery)的键盘快捷键
http://www.stepanreznikov.com/js-shortcuts/
菜单上的点击很可能会执行一个功能,我建议用按键执行该功能,而不是试图模仿点击。