- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
目前我可以使用 Google's Web Font loader 轻松加载网络字体:
WebFont.load({
google: {
families: ['Bree Serif']
}
});
但是,以后是否可以从 DOM 中卸载字体和添加的元素,这样它们就不再在页面上使用了?
项目 Github 上的文档没有显示提供该功能的任何选项或方法。
最佳答案
您可以简单地使用 MutationObserver跟踪对 DOM 所做的更改,并在需要时删除添加的元素。
下面是一个简单的示例实现:
(function() {
"use strict";
var addedNodes = [];
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
Array.prototype.forEach.call(mutation.addedNodes, function(node) {
addedNodes.push(node);
});
});
observer.disconnect();
});
loader.addEventListener('click', function() {
observer.observe(document, {
childList: true,
subtree: true,
addedNodes: true
});
//Two loads simply to demonstrate that's not a problem
WebFont.load({
google: {
families: ['Bree Serif']
}
});
WebFont.load({
google: {
families: ['Indie Flower']
}
});
loader.disabled = true;
remover.disabled = false;
});
remover.addEventListener('click', function() {
addedNodes.forEach(function(node) {
node.remove();
});
addedNodes = [];
loader.disabled = false;
remover.disabled = true;
});
}());
body {
text-align: center;
background: aliceblue;
}
h1 {
font-family: 'Indie Flower';
font-size: 3em;
color: cadetblue;
}
p {
font-family: 'Bree Serif';
color: crimson;
}
input[disabled] {
display: none;
}
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.5.10/webfont.js"></script>
<input id="loader" type="button" value="Click to load webfonts" />
<input id="remover" type="button" value="Remove loaded webfonts" disabled="true" />
<h1>Chapter 1</h1>
<p>Grumpy wizards make toxic brew for the evil Queen and Jack.</p>
关于javascript - 谷歌网络字体 : how to unload fonts after loading them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766532/
----- 简而言之----- 我有一个文件,比如x.html,它加载到其他文件的一些div中(使用函数jquery.load)。 但是x.html需要知道是否在您的位置加载了另一个html。 那么,
美好的一天, 我有java web应用程序,我会在登录后执行类似以下操作: 登录后,系统将显示登陆页面,在登陆页面中,会有一个选项卡菜单,并且选项卡菜单中有许多模块可以触发以导航到不同的页面。 我需要
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: how to delete the pluginassembly after AppDomain.Unload(do
我想在用户使用 jQuery 放弃特定页面时执行操作方法。 该页面有以下代码: $(window).unload(function () { aler
我加载了两个模块(NecessaryModule1.hs 和 NecessaryModule2.hs,如 Haskell : loading ALL files in current director
当用户单击提交按钮并执行操作时,我需要使用 VBA 关闭 Excel 用户窗体。 如何关闭用户表单本身? 我已经尝试过此操作,但它返回 361 错误。 Unload Me 最佳答案 正如最上面的答案所
我尝试运行以下查询以从 Redshift 卸载到 S3,但收到无益的错误。我们尝试转义所有可能导致问题的字符,并传入参数(包装程序是Python): unload ('select
我无法在 SO 上找到使用 Java VM (JVM) 参数来记录类卸载的 Web 搜索工作方式。 这里http://www.herongyang.com/JVM/ClassLoader-JVM-Op
我正在使用 NodeJS-ReactJS 同构应用程序,当我单击 Link 时,我收到一条错误消息 未捕获( promise )错误:请求已终止 可能原因:网络不在线、Access-Control-A
我有以下代码: D $(window).unload( function () { alert("Bye now!"); } );
我正在阅读 jQuery API Documentation 中给出的函数 .unload() 的 jQuery 文档。 上面写得很清楚,.unload()将在1.8之后的版本中被弃用,并在3.x中被
我们一直遇到一个奇怪的问题,我不确定如何解决,我认为这可能与最近的 Google Chrome 更新有关,但我想要一些方法在错误跟踪器上打开问题之前检查自己的健全性。 问题 我们有一个内部网络应用程序
我正在使用 PHP + MySQL + JavaScript 制作一个小型聊天应用程序,我编写了一个函数 disonnectUser(),当用户按下断开连接按钮时调用该函数。在这里: function
我继承了一个 web 框架,以前的开发人员在页面生命周期的 init/unload 方法中打开和关闭了他的数据库连接。构造函数本质上是这样的(为了说明重点而简化); public class Base
我需要在 c#/.net 中实现一个插件架构以便加载 自定义用户定义的操作 自定义数据网格的数据类型处理代码/转换/... 来自非静态链接程序集文件。 因为应用程序必须处理许多自定义用户定义的操作,所
XNA 游戏有一个 Unload() 方法,其中的内容应该被卸载。但这有什么意义呢?如果正在卸载所有内容,那么游戏肯定正在退出,在这种情况下所有内容都会被垃圾收集,对吧? 最佳答案 据我所知,它对任何
根据多种资源(例如,通过 C# 的 MSDN 和 CLR),当我们调用 AppDomain.Unload(userDomain) 时,userDomain 中的线程将被强制抛出 ThreadAbort
到目前为止的故事是这样的,我有一个使用 AppDomain 来执行某些任务的 worker thingy。该域的设置和拆卸成本很高。所以我为工作人员创建了一个 WeakReference 对象的每个线
我正在尝试在卸载页面之前向服务器发帖,然后我关注了 this它工作正常。我的问题是 window.unload 上的 $.post 在它卸载后 被触发。我尝试使用注销链接并检查我的日志,我得到以下信息
任何人都可以解释为什么下面的行会在运行时出现在输出控制台中? (一个可能的答案是完全 permGen,但这可以排除,因为该程序仅使用 PermGen 中可用的 max100MB 中的 24MB) [卸
我是一名优秀的程序员,十分优秀!