为什么在 Firefox 中 document.body == null 而在 Safari 中却不然

2024-01-05

我尝试访问的页面出现问题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(使用前将#替换为@)

为什么在 Firefox 中 document.body == null 而在 Safari 中却不然 的相关文章

  • 数据表“footerCallback”函数未在页脚中显示结果

    我尝试获取每列的总和并将结果显示在页脚中 我在用着 页脚回调 https datatables net reference option footerCallbackDatatables提供的功能 但是它在页脚中没有显示任何内容 数据表解释
  • 禁用整个站点的 IE8 加速器

    是的 我知道有类似的问题 https stackoverflow com questions 499565 is it possible to disable ie8 accelerators on my website在 SO 上 但它已
  • 使用 jQuery/JavaScript 将文本框值复制到剪贴板

    我有一个文本框和按钮 如下所示 div class col xs 11 style padding 20px 0 div
  • 使用 AJAX 获取发布数据

    我正在尝试从 Wordpress 帖子 AJAX 中提取内容 我已经在下面列出了迄今为止我的努力 加载的脚本 wp enqueue script my ajax request get stylesheet directory uri js
  • javascript/jquery 禁用点击提交按钮,防止重复提交

    所以我的提交按钮如下所示 a href img src images user create product png border 0 a 当我双击它时 显然会双重提交 问题是 我将信息保存在数据库中 因此那里会有重复的信息 我不想那样 这
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 无法从 JSON 请求获取数据,尽管我知道它已返回

    我试图获取从 getJSON 返回的数据 但我无法让它工作 我已经在 search twitter API 上尝试了相同的代码 效果很好 但它不适用于其他网站 我知道数据已返回 因为我在使用检查器时可以找到它 我通过检查器找到的值是 id
  • $().load() 不是加载整个页面,而是需要在所有页面上保留菜单

    我想使用 jQuery AJAX 重新加载我网站的内容区域 load 功能 但我的问题是header and footer无论您的入口 URL 为何 都需要在所有页面上显示 我的网站是使用模板构建的 所以我的第一个想法是删除独特内容上方和下
  • 使用 jquery 事件 keydown 模拟在文本区域上输入不起作用

    我正在尝试制作 Facebook 自动回复消息脚本 这是我的代码 window load function var a setInterval function var e titlebarText html if e else texta
  • jquery 验证不会因复选框而被触发

    我有一个表单 我使用 jQuery 验证从前端进行验证 大多数验证都按照我的意愿进行 但是 对于复选框 验证不起作用 我的验证 jquery 中有以下规则和消息 submitDetails validate 1 validation rul
  • jquery UI datepicker仅月份和年份的css定位问题

    我已经实施了这里讨论的解决方案 JQuery 日期时间选择器 只需选择月份和年份 https stackoverflow com questions 4079525 jquery datetime picker need to pick m
  • 垂直对齐多行文本(菜单元素)?

    我正在尝试垂直对齐 UL 内的文本 问题是某些列表项具有不止一行文本 因此无法使用行高 小提琴 http jsfiddle net jaAYT http jsfiddle net jaAYT 这是我想要达到的结果 http img402 i
  • 使用 jQuery 将参数从一个 ASP.NET 页面传递到另一页面

    我需要使用 jQuery 将 4 个参数 3 个字符串和一个逗号分隔列表 从 ASP NET 页面传递到另一个 ASP NET 页面 目标页面应该作为单独的窗口启动 这与以下 jQuery 片段配合良好 sourcePageBtn clic
  • 无法在 Chrome 中获取对象的真实高度/宽度

    我有一个问题 如果我在 css 中设置图像高度并尝试获取高度 宽度 我会在不同的浏览器中得到不同的结果 有没有办法在所有浏览器中获得相同的尺寸 你可以找到一个活生生的例子here http web cinaird se pdf tester
  • 使用 jQuery 保留切换状态[重复]

    这个问题在这里已经有答案了 可能的重复 带 Cookie 的 jQuery 切换 https stackoverflow com questions 2523189 jquery toggle with cookie 我有一个简单的切换 但
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • jquery 当前可见的第 n 个子级

    我可以像这样设置每 4 个 item div 的样式 jQuery item nth child 4n addClass fourth item 这工作得很好 但后来我隐藏了一些项目 显示了其他一些项目 并想重新做这个样式 但只对每第四个可
  • 将 JSON 属性绑定到表单

    我有一个 JSON 对象和一个
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • 区分 NaN 输入和输入类型为“number”的空输入

    我想使用 type number 的表单输入 并且只允许输入数字

随机推荐