jQuery - IE9 问题(调试器打开后有效)
jQuery - IE9 issues (works once debugger was opened )
我有一个单页网站,我使用以下代码在页面之间滚动:
function gotoPage() {
var cur = $(this);
var role = cur.attr('role');
var target = $('#' + role);
$('html,body').animate({
scrollTop: target.offset().top - 94
}, 1000);
}
$('.navBt').click(gotoPage);
HTML:
<div class="navBt" role="topSpacing">
<img src="img/nav_campaign.png" />
</div>
<div class="navBt" role="sectionD">
<img src="img/nav_club.png" />
</div>
它在除 IE 之外的任何浏览器上都能完美运行。
当我在IE9(其他版本不确定)上打开它时,它不起作用,但是一旦我按F12打开检查,它就会从那时开始正常工作,即使我刷新页面或再次进入页面而没有检查打开。
知道为什么吗?
这听起来很像我很久以前遇到的问题(仅限 IE):
您在 javascript 代码中的某处使用了 console
吗?最有可能是 console.log()
?
那么你遇到了问题,因为在 IE 浏览器上 console
javascript 对象在你打开开发控制台之前不存在。所以会有一些 javascript 错误(你看不到,因为你的控制台没有打开)会停止执行其余的 javascript 代码。
这是我找到的解决方法:
if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
只需将其放在 javascript 代码的顶部即可。
这将创建一个伪 console
对象和伪方法 log
,因此在 console
关闭时不会发生错误。
我有一个单页网站,我使用以下代码在页面之间滚动:
function gotoPage() {
var cur = $(this);
var role = cur.attr('role');
var target = $('#' + role);
$('html,body').animate({
scrollTop: target.offset().top - 94
}, 1000);
}
$('.navBt').click(gotoPage);
HTML:
<div class="navBt" role="topSpacing">
<img src="img/nav_campaign.png" />
</div>
<div class="navBt" role="sectionD">
<img src="img/nav_club.png" />
</div>
它在除 IE 之外的任何浏览器上都能完美运行。 当我在IE9(其他版本不确定)上打开它时,它不起作用,但是一旦我按F12打开检查,它就会从那时开始正常工作,即使我刷新页面或再次进入页面而没有检查打开。
知道为什么吗?
这听起来很像我很久以前遇到的问题(仅限 IE):
您在 javascript 代码中的某处使用了 console
吗?最有可能是 console.log()
?
那么你遇到了问题,因为在 IE 浏览器上 console
javascript 对象在你打开开发控制台之前不存在。所以会有一些 javascript 错误(你看不到,因为你的控制台没有打开)会停止执行其余的 javascript 代码。
这是我找到的解决方法:
if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
只需将其放在 javascript 代码的顶部即可。
这将创建一个伪 console
对象和伪方法 log
,因此在 console
关闭时不会发生错误。