我尝试访问的页面出现问题colorbox http://colorpowered.com/colorbox/(一种 jQuery 的灯箱)工作。它显然不起作用,因为document.body
being null
在 FireFox (3.5.3) 中。在 Safari (4.0.3) 中,颜色框工作时情况并非如此。
让我惊讶的是(我使用的是 Drupal 6)drupal 附加了一个 script 标签,用于在页面最底部、结束 body 和 html 标签下方设置一些 JavaScript 变量。否则我看不出有什么问题。不幸的是,我很难不这样做。难道是这个原因导致FF的身体出现了问题?
在 Firefox 中使用 colorbox 的示例文件确实有效(并且document.body
在那里定义)。
有什么办法可以使用 jQuery 来重新填充document.body
财产与某物$()
也许,或者我应该继续敲击drupal,不要将脚本标签放在html标签之外(说起来容易做起来难)?
为了澄清document.body
is null
即使页面加载完成后也是如此。这是 Firebug 控制台捕获:
>>> document.body
null
>>> $().attr('body')
null
通常的原因document.body
为 null 是因为您在之前执行脚本<body>
遇到了标签(*)。如果没有看到代码,我不能肯定地说,但这是通常的原因。移动放置脚本的位置。
(*: 或其他元素,例如<p>
浏览器知道不能发生在主体之外,在这种情况下,它会默默地添加一个<body>
修复丢失的标记。解析某些通常在正文中的标签的差异可能可以解释为什么 Safari 允许您逃脱它。)
难道是这个原因导致FF的身体出现了问题?
不。它是损坏的标记,Drupal 不应该这样做,但是关闭</body>
没有停止document.body
引用正确的 DOM 节点。
有什么方法可以使用 jQuery 来重新填充 document.body
No, document.body
只是反映基本相同document.getElementsByTagName('body')[0]
,所以尝试设置它是不明智的,如果你找不到一个带有document.body
, jQuery 将无法找到它$('body')
either.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)