Thickbox

发布于 作者

Cody Lindley 刚刚发布了 Lightbox/Greybox 的一个全新版本,名为 Thickbox。此版本在其他库的基础上提供了一些很棒的附加功能。具体来说,此版本完全是非侵入式的 - 它使用自然的 href、src 和 title 属性来填充弹出框。即使你没有启用 Javascript,它仍然可以自然地运行。它还可以动态加载 HTML 块并在覆盖层中显示它。总而言之,这是一个很棒的版本,最重要的是它使用了 jQuery 来将所有这些整合在一起。所以,快去看看吧,玩一玩,然后告诉 Cody 你对它的看法!

Thickbox” 有 15 条评论

  1. abba bryant 说道:

    使用 ajax load 函数来拉取文档的部分内容很好,但是(总有但是),如果文档具有 doctype 和所有标记,会不会更易于访问?

    目前是否可以使用 jQuery 返回文档的完整 HTML,然后选择 body(或其他)标记之间的部分内容以插入到 ajax 的情况下?

    看到这个脚本和 jQuery 协同工作以实现正确的可访问语义网络,而不是部分正确的不可访问网络(太落伍了),真是太棒了。

  2. 致 Abba Bryant

    一种方法是使用动态语言(PHP 或 Ruby)生成 Thickbox 的 HTML。然后,你可以让脚本检测请求是 ajax 还是普通的 get,并分别返回 HTML 片段或完整的有效 XHTML 文档。

    在 Ruby on Rails 中,这就像在你的控制器中添加类似这样的内容一样简单

    if request.xhr?
    render ‘stuff’, :layout => :none
    else
    render ‘stuff’

    我相信这也可以在 PHP 中完成。

  3. @abba - 可以使用 javascript 中的正则表达式在这些页面加载时移除或保留(无 js)这些内容。我正在考虑在下一个版本中添加这个功能?

  4. Scott_S 说道:

    有人遇到过 Thickbox 的问题吗?我们的 Thickbox 运行良好,并且实现了我们想要的功能 - 然而 - 间歇性地,当点击缩略图时,我们会看到新的图像出现在一个带有白色背景的新浏览器窗口中 - 如果我们返回并再次选择图像,一切正常。

    这并非由特定的图像或页面造成的。

  5. @Scott_S: 这种情况发生在你点击 Thickbox 链接之前页面还没有完全加载时。如果 javascript 还没有为链接添加 onclick 事件,它们就会回退到只提取原始文件。

    这在每个非侵入式链接增强脚本中都会发生:Lightbox、Greybox 等等。

    唯一的方法是让你的页面内容足够有趣,让用户在点击东西之前多花几秒钟。:)

  6. 对于你提供的示例页面,如果你用压缩版的 jQuery 文件替换 jQuery 文件,似乎会在 Firefox(1.5.0.4/Win)中产生一个奇怪的显示错误。点击两个缩略图中的一个会导致屏幕右侧出现闪烁/刷新。你知道两种 .js 文件之间可能导致这种差异的原因吗?

  7. @Scott S.: 我在使用 Firefox/Win 时也遇到了同样的问题,每次页面重新加载(或清除缓存)时都会出现,无论我在页面加载后等待多长时间。点击后退后,它就会一直工作(直到我清除缓存并刷新页面)。

  8. Chris Hansen 说道:

    我尝试从一个 div 内调用 thickbox。该 div 的内容使用 jQuery 的 load 函数动态加载。

    它失败了。

    如果我从 div 外部调用 thickbox,它可以完美地创建,但是如果从动态加载的 div 内部调用,它就像其他链接一样,会重定向到目标页面。

    有人知道如何解决这个问题吗?如何从动态加载的 div 内部调用 thickbox?