在采用AdminLTE模版进行功能界面开发,采用动态方式加载功能菜单时发现在IE浏览器下不可用,在云端发布应用时,通过chrome浏览器也发现存在不可用的情况。最后定位问题,发现是因为adminlte.js加载早于菜单数据的加载导致的问题。
处理方法是将菜单加载的jquery方法改为同步加载方式,就是增加async:false选项,关闭异步加载功能。将adminlte.js加载增加defer="defer"选项。
同时菜单加载的jquery方法一定要放入<body></body>标签内。
defer="defer"参数说明:
HTML 4.01 为 <script>标签定义了 defer属性。
用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行。
在<script> 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行。
虽然<script> 元素放在了<head>元素中,但包含的脚本将延迟浏览器遇到</html>标签后再执行。
HTML5规范要求脚本按照它们出现的先后顺序执行。在现实当中,延迟脚本并不一定会按照顺序执行。
defer属性只适用于外部脚本文件。支持 HTML5 的实现会忽略嵌入脚本设置的 defer属性。
参考文档:
https://blog.csdn.net/meijory/article/details/76389762
网友评论