我使用@ font-face作为嵌入字体(感谢Paul Irish).在尝试修复Chrome关于woff字体的错误MIME类型的警告时,我发现了大量相互矛盾的建议.
每个人似乎都同意.eot字体(对于IE 6-8?)应该使用
AddType application/vnd.ms-fontobject .eot
Run Code Online (Sandbox Code Playgroud)
对于.ttf字体(较旧的非IE浏览器?)我见过
AddType application/x-font-ttf .ttf
AddType application/octet-stream .ttf
AddType font/truetype .ttf
AddType font/ttf .ttf
Run Code Online (Sandbox Code Playgroud)
对于.woff字体(新标准?)我见过
AddType application/font-wof .woff
AddType application/x-font-woff .woff
AddType application/x-woff .woff
Run Code Online (Sandbox Code Playgroud)
我理解woff 的正确MIME类型是application/font-woff,但是在标准正式之前,Chrome会理解application/x-font-woff.
我知道我已经半问了一下我的问题,但问题是:是否有关于字体应该使用什么MIME类型的权威指导或进一步的建议?
更新(如果它对任何其他人有任何帮助):因为似乎没有任何权威,我已经决定在我的.htaccess中使用以下字体MIME类型(这至少让Chrome开心):
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-woff .woff
Run Code Online (Sandbox Code Playgroud) 我有一个页面在继续下一页之前对电子邮件进行AJAX验证,使用HTML5 setCustomValidity()方法[使用旧浏览器的webshims库].
为此,我在$ .ajax()调用中将async选项设置为false以使其同步,阻止页面等待AJAX响应,否则表单在ajax调用返回之前提交,从而使验证无效.
<script>
function validateEmailRegistered(input) {
if (input.setCustomValidity === undefined) return;
var err = 'Email address not found';
$.ajax({
url: 'email-is-registered.php',
data: { email: input.value },
async: false,
success: function(data) {
var ok = data=='true';
input.setCustomValidity(ok ? '' : err)
}
});
}
</script>
<form method="get" action="nextpage.php">
<input name="email" id="email" type="email" required
onChange="validateEmailRegistered(this)">
<button type="submit">go</button>
<form>
Run Code Online (Sandbox Code Playgroud)
我发现从jQuery 1.8开始就不推荐使用async选项.
如果没有async选项,如何实现此阻止操作?
在Nemikor博客中解释jQuery对话框,ScottGonzález在id选择器上使用.each()方法:
$('#page-help').each(function() {
var dialog = $('<div></div>')
.load($(this).attr('href'))
.dialog( ... );
$(this).click(function() { ... });
});
Run Code Online (Sandbox Code Playgroud)
由于id选择器只能返回单个元素,因此使用.each()方法的目的是什么?(通常用于迭代匹配的元素).
难道只是没有更简单的方法来执行'page-help'元素的功能,该元素提供对$(this)的访问?
有没有办法在MySQL中指定Unicode字符文字?
我想用Ascii字符替换Unicode字符,如下所示:
Update MyTbl Set MyFld = Replace(MyFld, "?", "y")
Run Code Online (Sandbox Code Playgroud)
但是我使用的是大多数字体都没有的更加模糊的字符,所以我希望能够使用Unicode字符文字,比如
Update MyTbl Set MyFld = Replace(MyFld, "\u1e8f", "y")
Run Code Online (Sandbox Code Playgroud)
这个SQL语句是从PHP脚本调用的 - 第一个表单不仅不可读,而且实际上不起作用!
使用Node.js + Express(4)+ Mongoose(使用promises而不是回调),我无法理清如何整理我的错误处理.
我得到的(相当简化)是:
app.get('/xxx/:id', function(request, response) {
Xxx.findById(request.params.id).exec()
.then(function(xxx) {
if (xxx == null) throw Error('Xxx '+request.params.id+' not found');
response.send('Found xxx '+request.params.id);
})
.then(null, function(error) { // promise rejected
switch (error.name) {
case 'Error':
response.status(404).send(error.message); // xxx not found
break;
case 'CastError':
response.status(404).send('Invalid id '+request.params.id);
break;
default:
response.status(500).send(error.message);
break;
}
});
});
Run Code Online (Sandbox Code Playgroud)
在这里,在'promise rejected'部分的开关中,Error是我为自己找不到的潜在有效id而犯的错误,CastError是Mongoose为无效的id抛出的Cast to ObjectId失败,500错误可以为例如,通过键入错误被触发throw Error()作为throw Err()(导致的ReferenceError:未定义ERR).
但是像这样,我的每条路线都有这个非常笨拙的开关来处理不同的错误.
如何集中处理错误?交换机可以以某种方式隐藏在一些中间件中吗?
(我确实希望我可以throw error;在'承诺拒绝'块中重新使用,但我无法使其工作).
我希望列出一个列表,忽略任何初始明确/不定的文章'the'和'a'.例如:
我想也许在XSLT 2.0中,这可以通过以下方式实现:
<xsl:template match="/">
<xsl:for-each select="play"/>
<xsl:sort select="if (starts-with(title, 'A ')) then substring(title, 2) else
if (starts-with(title, 'The ')) then substring(title, 4) else title"/>
<p><xsl:value-of select="title"/></p>
</xsl:for-each>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
但是,我想使用浏览器内处理,因此必须使用XSLT 1.0.有没有办法在XLST 1.0中实现这一目标?