dla*_*lin 5 firefox jquery colorbox drupal-6 document-body
我有一个页面的问题,我正在尝试使用colorbox(一种jQuery的灯箱)工作.由于document.body存在nullFireFox(3.5.3),它显然不起作用.在颜色框工作的Safari(4.0.3)中不是这种情况.
跳出来的东西是(我正在使用Drupal 6)drupal附加了一个脚本标记,用于在页面的最底部,在结束体和html标记下面设置一些JavaScript变量.否则我没有看到问题.不幸的是,我很难让它不这样做.可能是因为这导致FF与身体有问题吗?
在Firefox中使用colorbox的示例文件确实有效(并且在document.body那里定义).
有没有什么方法可以使用jQuery来重新填充document.body属性$(),或者我应该继续敲打drupal而不是将脚本标记放在html标签之外(说起来容易做起来难)?
为了澄清的document.body是null页面加载完成后也.这是一个Firebug控制台捕获:
>>> document.body
null
>>> $().attr('body')
null
Run Code Online (Sandbox Code Playgroud)
通常的原因document.body是null是因为您在<body>遇到标记(*)之前执行脚本.没有看到代码我不能肯定地说,但这是通常的原因.移动放置脚本的位置.
(*:或<p>浏览器知道的其他元素不能在体外发生,在这种情况下,它会默默地添加一个<body>来修复丢失的标记.解析某些通常在体内标记的差异可能会解释为什么Safari允许你逃脱它.)
可能是因为这导致FF与身体有问题吗?
不.它是破坏的标记,Drupal不应该这样做,但关闭它</body>并不会停止document.body引用正确的DOM节点.
有没有办法可以使用jQuery来重新填充document.body
不,document.body只是反映基本相同document.getElementsByTagName('body')[0],所以试图设置它是不明智的,如果你找不到一个体document.body,jQuery将无法找到它$('body').
| 归档时间: |
|
| 查看次数: |
11386 次 |
| 最近记录: |