代码之家  ›  专栏  ›  技术社区  ›  nornagon

当<link>元素完成加载时执行函数

  •  2
  • nornagon  · 技术社区  · 14 年前

    我在用 jQuery Masonry 布局页面,但我使用的是自定义的@FONT face字体。问题是,直到加载后,Masonry才知道字体的度量标准。

    砖石文档建议您使用 $(window).load() 而不是 $(document).ready() 调用布局函数,但我不想等到所有图像等加载。我可以精确地指定图像的尺寸,所以砖石结构不需要等到它们被加载。问题出在文本上。

    <link> 在字体中链接的元素完成加载?

    编辑:显而易见的解决方案(即, $('#link_id').load(...) )似乎不起作用。

    伊迪丝2:我没有意识到 <链路& GT; 元素实际链接到 样式表 带有@FONT face声明。我想等到 字体 已经加载,不仅仅是样式表…

    2 回复  |  直到 14 年前
        1
  •  1
  •   nornagon    14 年前

    这个 WebFont loader 这是正确的方法。

        2
  •  0
  •   Phil.Wheeler    14 年前

    jquery$(document).ready()事件仅在您希望在完成加载DOM后触发事件时有用,而忽略是否将任何图像/样式表等设置为go,因此您的最佳选项将是侦听该文件可用性的内容。不幸的是,随着事件的发展,您唯一可能的选择是window.load()事件。

    由于不同的浏览器对@FONT face规则的处理方式不同,您的情况在很多方面都很复杂。有些在应用自定义字体之前会呈现所有HTML,有些在呈现页面的其余部分之前会在找到后立即加载字体。

    我的最佳建议是确保你正在调用页面底部的砖石脚本。这使您有机会在任何脚本开始工作之前加载文档元素。你也可能从调查 attachEvent addEventListener 分别为IE和Mozilla提供的功能(不确定Webkit浏览器需要什么),尽管您可以绑定的事件种类和您实际想要监听的事件种类可能没有介绍。

    可能不是你想听的。希望有比我更老于世故的人有更好的主意。