【发布时间】:2018-10-12 00:15:35
【问题描述】:
我正在使用 Javascript 菜单,它在我的 Angular 应用程序上加载 onInit,它在 Chrome 上运行良好,但在 IE Edge 和 Firefox 上运行良好。
我的打字稿文件上的代码是:
ngOnInit() {
//getmenu items
$(document).ready(function() {
//addclasses to menu, etc..
});
因此,在调试之后,我认为我找到了解决方案,即添加事件侦听器而不是 document.ready。
如果我添加事件监听器,现在事情就会变得混乱:
ngOnInit() {
//getmenu items
window.addEventListener('load', function () {
//addclasses to menu, etc..
});
当我第一次加载应用程序(登录页面 -> 重定向菜单页面所在的位置)时,它不起作用,但如果我按 f5 并在没有登录的情况下重新加载页面,它可以工作,仅在 firefox .. 在 IE 上不起作用不工作。但如果我改变:
window.addEventListener('load', function ()
到
window.addEventListener('focus', function ()
它在 firefox 和 chrome 上不起作用(子菜单闪烁)但在 IE 上起作用,在刷新页面后,正如我第一次所说的那样。
那么,问题是,是否有任何类型的事件监听器适用于每个浏览器?还是每次登录都必须刷新页面?我知道这个问题有点令人困惑。有谁知道如何解决这个问题?
【问题讨论】:
-
你检查了你的
pollyfills.ts吗?每样东西都正确导入?? -
我导入了 core-js/es6/*(集合、地图、日期、符号等)、core-js/es6/reflect、core-js/es7/reflect 和 zone .js/dist/zone
标签: javascript angular addeventlistener