在 HTA 应用程序中打开网站
Posted
技术标签:
【中文标题】在 HTA 应用程序中打开网站【英文标题】:Open a Website in HTA application 【发布时间】:2016-07-11 16:54:53 【问题描述】:所以,我有这个本地的小网站,就是你打开路由器配置时打开的网站。即192.168.0.1。我们为路由器进行设置的那个。我需要非常频繁地打开该网站以打开和关闭无线,而且我必须通过浏览器来完成。这是一个繁重的过程,所以我决定切换到一键式 HTA 应用程序,这使得工作非常快速。 问题是,每当该网站的主屏幕打开时,您必须在其中输入路由器密码,输入正确的密码后,HTA 中的网站不会像在浏览器中那样重定向到“首选项”页面。它停留在登录页面,我不知道是否必须在我的 HTA 中添加一些额外的代码。请帮忙。
下面是代码。
<html>
<head>
</head>
<body>
<iframe src="http://192.168.0.1" >
</body>
</html>
【问题讨论】:
IFrame event executes fine in HTML but not in HTA的可能重复 【参考方案1】:因为 HTA 可能带来访问的安全风险
通过<iframe>
标记的URL 被锁定,但您可以通过添加application="yes"
属性告诉引擎<iframe>
是受信任的。
引自Introduction to HTML Applications (HTAs)章节:信任的力量:HTA 和安全
HTA 的设计使得不受信任的 HTML 框架和 iframe 对象无法通过脚本访问包含它们的 HTA。对于未启用 HTA 的框架对象,***别的框架包括其包含的所有框架对象的顶部窗口。对于该框架对象,window.top 和 window.self 属性是相同的。此外,不安全的框架和 iframe 对象既不接收来自父 HTA 的引荐来源网址,也不接收开启者 URL。最终结果是他们不知道包含 HTA 作为父窗口。
使用问题中的示例;
<html>
<head>
<HTA:APPLICATION
APPLICATIONNAME="Test"
ID="TestApp"
VERSION="1.0"/>
</head>
<body>
<iframe src="http://192.168.0.1" application="yes">
</body>
</html>
有用的链接
Introduction to HTML Applications (HTAs)【讨论】:
感谢您的努力,但这也没有用。上面代码发生的情况是,当我打开 HTA 时,它同时也打开了 IE 和其中的“192.168.0.1”。而且HTA中的网站仍然无法正常工作。如果您需要,我可以拍摄整个视频并给您链接。 @krrish 如果您实施错误,我向您保证这是在受信任的 MSHTA 应用程序中加载<iframe>
中的内容的修复程序。只是为了让您知道 IE 不应该单独打开,只需按照答案中的链接正确构建 HTA。它还取决于路由器页面的工作方式,如果它打开一个您无法控制的弹出窗口,那么使用 HTA 或网页都无法绕过它。
如果您将默认浏览器设置为您自己创建的应用程序,该应用程序可以处理对其的调用并根据地址启动 MSHTA 或您的实际浏览器。如果它检测到地址是 192.168.0.1,它将打开您创建的 HTA 应用程序,否则它将启动您的实际浏览器。【参考方案2】:
尝试在 HTA:APPLICATION 标记中添加此属性:
NAVIGABLE="是"
另外,保持 application = "No"
【讨论】:
以上是关于在 HTA 应用程序中打开网站的主要内容,如果未能解决你的问题,请参考以下文章