在最近的一个项目中,我使用了Alexander Farkas的HTML5 Shiv,我发现当缩小时脚本是2.274 KB.对于我来说,对于John Resig基本上在两行中演示的概念来说,这看起来相当大(我意识到这非常过于简单,因为John不包括对支持或所有新HTML5元素的检查).我挖到了html5shiv源代码.它是248 sloc,对于这么简单的任务来说,这似乎是很多不必要的代码.我只用了14行就实现了一个更简单的shiv:
(function(document) {
var div = document.createElement('div'),
elements = 'article|aside|audio|canvas|details|figure|figcaption|footer|header|hgroup|nav|output|progress|section|summary|video'.split('|'),
i = 0,
length = elements.length;
div.innerHTML = '<header></header>';
if(div.childNodes.length != 1) {
for(; i < length; i++) {
document.createElement(elements[i]);
}
}
})(document);
Run Code Online (Sandbox Code Playgroud)
缩小它只有~270字节(从Farkas Shiv的大小节省88%).当与适当的CSS结合使用时,它在IE 6,7和8中正常工作.
article,aside,audio,canvas,figure,figcaption,footer,header,hgroup,nav,output,progress,section,video{display:block;}
Run Code Online (Sandbox Code Playgroud)
似乎Farkas shiv的肉在创建元素和检查try/catch中的函数方面做了一些魔术.这种肉和馅料是否必要?我的解决方案是否足够,或者Farkas shiv是否考虑了我未考虑过的事情?
编辑
该脚本现在使用正确的声明创建自己的样式标记(并且仍然只有21行!):
(function(document) {
var div = document.createElement('div'),
elements = 'article,aside,audio,canvas,figure,figcaption,footer,header,hgroup,nav,output,progress,section,video',
elementArr = elements.split(','),
i = 0,
length = elementArr.length,
script, style;
div.innerHTML = '<header></header>';
if(div.childNodes.length != …Run Code Online (Sandbox Code Playgroud) Haskell 有一个非常膨胀的undefined值,它懒惰地引发异常(在评估时)。Ocaml 当然是严格的,所以据我所知,没有等同于 Haskell 的undefined. 不过这很不幸,因为这意味着值没有底部类型。假设我想要一个
val a : int
Run Code Online (Sandbox Code Playgroud)
我当然可以
let a = failwith "undefined"
let () =
print_string "something unrelated\n"
Run Code Online (Sandbox Code Playgroud)
这很高兴编译。不幸的是,在运行它时,我们得到了未定义的异常(这是预期的)。
我想要的是在不改变它的类型的情况下让它a成为一个底部/undefined值(这样的事情Lazy就行不通了)。这可能吗?
额外的细节:
所以我所要求的可能听起来很愚蠢。为了减少对我为什么不应该这样做的任何评论,请允许我简要描述我的用例。我正在编写一个脚本来修改mli文件的 AST以生成一个ml与其签名匹配的“空”文件。对于一般情况,您可能有val a : int,mli所以我需要一种方法来一般地合成底部类型。failwith "undefined"如果我只需要编译成功就可以工作。但不幸的是,我还需要将此ml文件链接到 OUnit 测试套件并运行它(显然该套件会失败,但目的是能够运行它,-list-test以便我可以以编程方式获取所有测试的列表)。
更多细节:
我认识到解决这个问题的正确方法(可能)是编写一个可以为任何泛型类型生成底部类型的函数。对于内置原语(和list,option等),这很简单(只是冗长的)。这对于记录变得更加复杂(可能在 stdlib 中定义,但也可能在同一个文件或不同的包中定义)。为了处理这个问题,我的 AST 转换器需要对 OCaml 类型系统和包的文件导入策略有一个完整的理解,这比我想要/应该包含的逻辑要多得多。
我已经为IE 9和8 截取了我的文件输入法的截图.为什么IE不显示浏览按钮?该表位于如下形式:
<table>
<tr>
<td colspan="2"><h3>Upload Photo</h3></td>
</tr>
<tr>
<td colspan="2"><input type="file" name="mapimage" id="mapimage"/></td>
</tr>
<tr>
<td><input type="submit" value="Upload" name="update_image" id="update_image"/> </td>
<td><img id="loading" src="images/loading.gif" alt="working.." style="visibility: hidden;" /></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加一个大小属性,但它仍然没有出现.IE 8及以下版本是否有任何解决方法或这是一个已知问题?
所以我一直在玩我正在重新设计的网站的HTML.感谢HTML5 shiv,我一直在使用闪亮的新HTML5标签.因此,我开始觉得我有很多标签杂乱.例如:
<header>
<nav>
<h1 id="logo"><a href="/">Logo Image CSS'd in here</a></h1>
<ul>
<li><a href="/page-1">Page 1</a></li>
<li><a href="/page-1">Page 2</a></li>
<li><a href="/page-1">Page 3</a></li>
<!-- etc. -->
</ul>
</nav>
</header>
Run Code Online (Sandbox Code Playgroud)
我已经包含了我的徽标,<nav>因为我有空间限制,我删除了明确的Home链接(我的主页只是子页面内容的摘要,带有内联链接).从语义上讲,我认为HTML5文档应该同时具有<header>和<nav>.毕竟,<nav>单独并不意味着它是主页面导航(我<nav>用来包装我的面包屑和页脚链接),我觉得我的<ul>浮动<header>缺少一个<nav>标签.
那我是一个HTML5时髦并在这里过度使用它吗?或者这是否超标(特别是因为<header>标签具有所有样式,并且<nav>没有)不必要?
我不知道如何计算我的联系人的平均年龄,这些联系人都存在于带有DOB日期字段(如YYYY-MM-DD)的mysql表中.
有没有办法处理MySQL调用(请注意我使用的是cakephp,但这应该不是问题)
谢谢
我有一个标准设计的网站,除主要内容部分外,所有页面基本相同.
现在,我有两种类型的帖子,其背后的源代码是相同的,除了一些验证,但第一个帖子类型有2个网址段,第二个有3个网址段.
我使用DFP广告管理系统投放广告,在包含3个细分受众群的网页上,AdSense广告不会显示.其他自定义广告显示没有问题,AdSense广告在所有其他网页上都显示正常.
此外,DFP似乎会渲染广告位,但它只是空白.
我的网站是用Laravel 4编写的(但可能并不重要)
知道为什么不会adsense渲染?
我知道静态方法不能被抽象,也不能被覆盖,只能被隐藏(在这种情况下,后期绑定不会发生).关于这一点,我正在努力用一种合乎逻辑的方式来表达以下关系:
public abstract class Spell {
protected int power;
public Spell(int power) {
this.power = power;
}
public int getPower() { return power; }
// I know this is impossible, but please bare with me
public abstract static int getMaxPower();
}
public class AttackSpell extends Spell {
public AttackSpell(int power) {
super(power);
}
public static int getMaxPower() { return 50; }
}
public class HealSpell extends Spell {
public HealSpell(int power) {
super(power);
}
public static …Run Code Online (Sandbox Code Playgroud) 我有2个这样的列表:
l1 = [{'a': 1, 'b': 2, 'c': 3, 'd': 4}, {'a': 5, 'b': 6, 'c': 7, 'd': 8}]
l2 = [{'a': 5, 'b': 6, 'e': 100}, {'a': 1, 'b': 2, 'e': 101}]
Run Code Online (Sandbox Code Playgroud)
并且我想获得一个列表l3,这是一个连接,l1并且两者的l2值'a'和'b'它们相等l1,l2
即
l3 = [{'a': 1, 'b: 2, 'c': 3, 'd': 4, 'e': 101}, {'a': 5, 'b: 6, 'c': 7, 'd': 8, 'e': 100}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
什么是正确的类型签名__exit__?我有以下几点:
from types import TracebackType
from typing import Optional, Type
class Foo:
def __enter__(self) -> 'Foo':
return self
def __exit__(self, exc_type: Optional[Type[BaseException]],
exc_value: Optional[BaseException],
traceback: Optional[TracebackType]) -> bool:
return False
Run Code Online (Sandbox Code Playgroud)
在最近的mypy(0.560)上,此类型检查是否正确(--strict我对此签名有一定的信心,因为我从排版的内部偷了它)。
当此脚本与python 3.6一起运行时,按预期没有任何反应。但是当使用3.5.2运行时,我们会得到一个例外:
Traceback (most recent call last):
File "/home/student/mypy_test/test.py", line 4, in <module>
class Foo: #(ContextManager['Foo']):
File "/home/student/mypy_test/test.py", line 8, in Foo
def __exit__(self, exc_type: Optional[Type[BaseException]],
File "/usr/lib/python3.5/typing.py", line 649, in __getitem__
return Union[arg, type(None)]
File "/usr/lib/python3.5/typing.py", line 552, in __getitem__
dict(self.__dict__), parameters, _root=True)
File …Run Code Online (Sandbox Code Playgroud) 我一直在研究UNNotificationSettings是否有办法在系统偏好设置 > 通知 > [应用程序名称] 中以编程方式设置(或在您请求通知权限时请求)这些设置中的任何一个:
前者默认为真,后者默认为真且始终。我想将前者设置为 false 或将后者设置为“解锁时”。
恐怕没有一个认可的解决方案在这里,因为唯一的实例方法UNUserNotificationCenter是涉及UNNotificationSettings是getNotificationSettings(completionHandler:),没有办法请求通知权限时提供这些默认值。
像消息这样的股票应用程序默认设置了这个(不清楚他们是否已经请求了这个,或者这是否只是默认配置),所以必须有某种方式(尽管,也许不是一个被批准的)。
如果是这种情况,是否有某种方法可以通过 AppleScript this 或某些defaults-fu 来实现?
macos cocoa push-notification apple-push-notifications nsnotificationcenter
html ×2
html5 ×2
python ×2
abstract ×1
adsense ×1
average ×1
cocoa ×1
date ×1
dob ×1
file-upload ×1
google-dfp ×1
html5shiv ×1
java ×1
javascript ×1
list ×1
macos ×1
mypy ×1
mysql ×1
ocaml ×1
oop ×1
python-2.7 ×1
python-3.5 ×1
python-3.x ×1
undefined ×1