【问题标题】:HTA gives error in combination with angularHTA 结合角度给出错误
【发布时间】:2016-03-25 23:17:48
【问题描述】:

我制作了一个运行良好的 angularjs HTML SPA。在特定情况下,我需要 HTA 的强大功能。据我所知,将 HTA 与 Angular 或任何其他有效 HTML 结合使用没有任何限制。尽管如此,我在使用该行时出现错误

    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  

在 HTA 中,即使它是标头中唯一的脚本标记。

错误信息是:脚本错误,代码0,URL http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js

我希望其他人以前遇到过这个错误,但我在 stackoverflow 上找不到任何东西。有人认识到这个问题吗?有解决方案或解决方法吗?

    <!DOCTYPE html>
    <html lang="en-US" ng-app="myApp" ng-controller="myCtrl">
      <head>
        <HTA:APPLICATION
      APPLICATIONNAME="my app"
      SINGLEINSTANCE="yes"/>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
        </head>
        <body>
            <div >   
            ...Do something
            </div> 
        </body>
    </html>

【问题讨论】:

  • 考虑到 HTA 是专有的,仅适用于 Internet Explorer,并且自 IE9 以来没有太大变化,那么您可能会发现问题的根源。还可以考虑将其默认的标准模式呈现为 IE7 标准,而使用 IE5(怪异模式)呈现怪异模式。
  • 感谢 Lankymart 的考虑。关于第二个,我也尝试了 X-UA-Compatible META 标签

标签: javascript angularjs hta


【解决方案1】:

您已在 HTML 元素上声明了 ng-appng-controller,但未定义其处理程序。此外,如评论中所述,您必须提升隐式 IE 版本以使用带有X-UA-Compatible 元的健全的 JS 引擎。添加这两行修复了描述的错误:

<!DOCTYPE html>
	<html lang="en-US" ng-app="myApp" ng-controller="myCtrl">
	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
		<HTA:APPLICATION
		APPLICATIONNAME="my app"
		SINGLEINSTANCE="yes"/>
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
		<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
		<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script>
		<script>angular.module('myApp',[]).controller('myCtrl',['$scope',function($scope){}])</script> 
	</head>
	<body>
		<div>   
		...Do something
		</div> 
	</body>
</html>

【讨论】:

  • 通过X-UA-Compatible meta 设置 IE 10 及更高版本会忽略&lt;HTA&gt; 标签,在 IE 11 上测试。
  • @omegastripes 一个可能的解决方案here。我还没有测试过,但它应该保留HTA 标签设置,同时允许使用最近的 Javascript 、 HTML 和 CSS。
猜你喜欢
  • 2017-10-14
  • 2015-04-05
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2017-04-04
  • 1970-01-01
  • 2017-11-28
相关资源
最近更新 更多