使用AngularJS,这个:
<a ng-click="Click()" ng-href="#">Click me</a>
在IE8中重定向到/#。就像这样:
<a ng-click="Click()" href="#">Click me</a>
而且:
<a ng-click="Click()">Click me</a>
最后一个去/。我遵循了让IE开心的所有指导原则:
<!--[if lt IE 9]>
<script src="js/3rd party/html5.js"></script>
<![endif]-->
<!--[if lte IE 8]>
<script>
document.createElement('ng-include');
document.createElement('ng-pluralize');
document.createElement('ng-view');
document.createElement('ng:include');
document.createElement('ng:pluralize');
document.createElement('ng:view');
</script>
<![endif]-->
<!--[if lt IE 8]>
<script src="js/3rd party/json2.js"></script>
<![endif]-->
包括使用此:
<div ng-view></div>
在IE7或任何好的浏览器中都不会发生这种情况。只有IE8。
我想要它做的就是调用我的示波器的Click功能,而不进行任何重定向。我怎样才能在IE8中实现这一目标?
答案 0 :(得分:3)
button
在IE8中无法正常工作。
答案 1 :(得分:0)
关闭html5Mode
$locationProvider.html5Mode(false);
这将解决问题,但我的问题是为什么?
更好的解决方案是使用按钮而不是
<button ng-click="Click()" class="link">Click me</button>
您可以使用css
更改按钮的样式button.link { border:none; background: none;}
button.link:hover {text-decoration:underline}
答案 2 :(得分:0)
我知道这是一篇旧帖子,但return false;
在ng-click处理程序中不起作用。
我发现我必须将event.result设置为false,这样jQuery会在angular完成后消耗该事件
$scope.Click = function ($event) {
// needed for IE8 - jQuery will preventDefault action for href=#
if ($event != undefined) {
$event.result = false;
}
}
点击我
如果你使用的是bootstrap,你会有一个下拉菜单,这会特别有用.e.g
<button type="button" class="btn dropdown-toggle btn-primary" ng-disabled="disabled">
Actions <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" ng-click="Click1($event)">Option 1</a></li>
<li><a href="#" ng-click="Click2($event)">Option 2</a></li>
<li><a href="#" ng-click="Click3($event)">Option 3</a></li>
</ul>