IE9 Bug - JavaScript只能在打开一次开发工具后才能工作。
我们的网站为用户提供免费的pdf下载,它有一个简单的“输入密码下载”功能。但是,它在ie浏览器中完全不起作用。
你可以在这个例子中看到。
下载通道是“makeuseof”。在任何其他浏览器中,它都可以正常工作。在IE中,两个按钮什么都不做。
我发现最奇怪的事情是,如果你用F12打开和关闭开发人员工具栏,它就会突然开始工作。
我们已经尝试了兼容模式等,没有什么不同。
我如何使这工作在Internet Explorer?
HTML5 Boilerplate有一个很好的预置代码,用于修复主机问题:
// Avoid `console` errors in browsers that lack a console.
(function() {
var method;
var noop = function () {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());
正如@加号在评论中指出的,最新版本在他们的GitHub页面上可用
如果你使用的是AngularJS版本1。X你可以使用$log服务,而不是直接使用console.log。
简单的日志服务。默认实现将消息安全地写入浏览器的控制台(如果存在)。
https://docs.angularjs.org/api/ng/service/美元日志
如果你有类似的东西
angular.module('logExample', [])
.controller('LogController', ['$scope', function($scope) {
console.log('Hello World!');
}]);
你可以用
angular.module('logExample', [])
.controller('LogController', ['$scope', '$log', function($scope, $log) {
$log.log('Hello World!');
}]);
Angular 2+没有任何内置的日志服务。