我在使用 Mysite时遇到问题,导航栏是 javascript 和一些 jquery,我玩过一些代码来尝试让导航栏在页面查看之前加载,但似乎找不到正确的代码。什么会是实现这一目标的正确方法吗?
4 回答
该脚本将在页面加载时执行
<script type="text/javascript">
window.onload=body_load;
function body_load()
{
dosomethingwithelementA();
}
</script>
<div id="A"></div>
或者,只要 dom 准备好,您就使用 jquery
$(document).ready(function()
{
dosomethingwithelementA();
});
有几件事可以提供帮助:
将
<script>
标签放在导航元素的正下方,如果是 jQuery 代码,请不要使用$(document).ready(function(){
包装器,BC 会推迟执行,只要页面加载需要。
或者,不要等待整个文档准备好,实际上没有什么可以阻止您执行类似$('#navContainer').ready(function(){
的操作,以便在导航元素加载后立即执行 jQuery 位。也就是说,您无法真正确定何时加载,这有点超出您的掌控。但是,我看到人们使用类似的属性渲染 HTML
style="display:none;"
,然后在他们完成需要先完成/看到的事情后使用 JavaScript 删除该属性。缺点:一如既往:禁用 JS 的浏览器根本看不到任何内容。啊,好吧,搞砸他们还有更详细的答案。例如:为您的页面提供一个空的内容 div,并且只提供导航并将
onload
or$(doc).ready
事件绑定到 ajax 调用以获取您网站的实际内容。但这就是,IMO,一个边缘疯狂的解决方法。
选择并选择上述任何选项,或一起使用所有选项
据我所知,在页面启动之前没有办法真正加载 HTML。您应该使用 JQUERY 事件来等待显示工具栏,直到它被加载。或者可能只是将“display:none”设置为您的工具栏,然后在添加所有效果后使用 window.onload 事件显示工具栏。
将您的脚本包含在 中<head></head>
,这可能会有所帮助。但是,仍然必须在触发任何 JS 之前加载 DOM。