Javascript如何在头部访问主体中的元素
How can Javascript in the head access elements in the body?
我经常看到一些JavaScript库在html页面的head标记中被调用。但是,如果这些lib调用body标记中的一个元素,就会有一个响应(仍然来自head标记)。当我尝试从头调用元素时,没有响应——为什么?
提前感谢。:)
浏览器从上到下解析html页面,在找到任何<script>
块时执行它们。这意味着,如果JavaScript试图访问页面上的元素,它只能看到页面中更高级别的元素,因为更低级别的元素尚未解析。
有两种方法可以解决这个问题:
-
将
<script>
块放在底部,刚好在关闭</body>
标记之前(或者至少将其放在需要引用的元素之后),和/或 -
使用
onload
(或者,如果您喜欢jQuery,可以使用$(document).ready()
)处理程序。
设置onload
处理程序的一种方法如下:
<head>
<script>
window.onload = function() {
// this function will be called by the browser after
// the entire page has loaded and thus code in the function
// can access any element on the page.
};
</script>
</head>
<body>
... various elements ...
</body>
你可能也见过这样的东西:
<body onload="someFunction();">
其中CCD_ 7可以定义在CCD_ 9中的CCD_。这基本上是一样的,但这是所以1990年代在html中使用这样的属性。(事实上,即使是window.onload()
现在也已经过时了,但它有效,我没有时间解释.addEventListener()
方法。)
这是因为您可能试图在元素存在之前调用它们,即HTML尚未解析。为了避免这种情况,您必须等到页面完成,然后执行脚本。
为了实现这一点,您必须将您的函数分配到一个onload事件中。例如:
<body onload="your_func">
相关文章:
- 提取没有特定子元素的主体元素
- 如何根据主体高度动态更改元素边距顶部
- 将覆盖添加到除元素之外的主体
- 如何将鼠标左键上附加的工具栏删除到主体或其他元素
- 通过单击主体隐藏元素,除非是特定元素
- PHP 未接收 Polymer core-ajax 元素中的 POST 主体集
- 获取静态元素在主体上的位置
- 修复了元素动画滚动主体在顶部
- 计数表 主体元素内的长度
- 对除元素以外的主体应用模糊
- $(document).ready() 中的函数找不到 DOM 的主体元素
- 将元素高度设置为等于主体高度减去 170px
- 根据主体id将类添加到元素中
- Javascript如何在头部访问主体中的元素
- 在元素添加到主体后运行javascript
- 替换(淡入)主体背景而不影响嵌套元素
- 如何检查元素是否为主体
- 将光标放在带有JavaScript的iframe主体元素中的文本末尾
- 画布和主体元素的奇怪光标行为
- 显示:无或可见性:隐藏在页面加载的主体元素-它会影响SEO吗?