小编ænd*_*rük的帖子

在JavaScript块上使用HTML注释仍然有意义吗?

过去,人们习惯在JavaScript块周围包装HTML注释标签,以防止"旧"浏览器显示脚本.即使是Lynx也足够聪明,可以忽略JavaScript,那么为什么有些人会继续这样做呢?这些天有没有正当理由?

<script type="text/javascript">
<!--
//some js code
//-->
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:我遇到过一种情况.某些代码编辑器(如Dreamweaver)在"设计视图"中时会被JavaScript字符串中的引用HTML弄糊涂,并尝试将其显示为页面的一部分.

html javascript

66
推荐指数
4
解决办法
2172
查看次数

为什么 /a 有效时 / 是无效路径?

我\xe2\x80\x99m 试图理解为什么某些 HTML 属性未通过 W3C 验证。我在真实的代码库中遇到了这个问题,但这里\xe2\x80\x99s是一个最小的复制:

\n
<!DOCTYPE html><html lang="en"><head><title>a</title></head><body>\n\n<img alt="1" src="\xe2\xad\x90">\n<img alt="2" src="/\xe2\xad\x90">\n<img alt="3" src="/a\xe2\xad\x90">\n<img alt="4" src="/a/\xe2\xad\x90">\n<img alt="5" src="">\n<img alt="6" src="/"> <!-- Only this is invalid. -->\n<img alt="7" src="/a">\n<img alt="8" src="/a/">\n\n</body></html>\n
Run Code Online (Sandbox Code Playgroud)\n

W3C 验证器仅报告一个错误,影响第六张图像:

\n
\n
    \n
  1. 错误:元素/属性值错误:路径段中存在非法字符:不允许。srcimg?

    \n
    <img alt="6" src="/">\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
\n
\n

为什么只有这个有问题,其他的没有?\xe2\x80\x99 有什么不同?

\n

html url-parsing w3c-validation emoji

14
推荐指数
1
解决办法
711
查看次数

如何防止位置参数扩展为关键字参数?

我想要一个接受哈希和可选关键字参数的方法.我尝试定义这样的方法:

def foo_of_thing_plus_amount(thing, amount: 10)
  thing[:foo] + amount
end
Run Code Online (Sandbox Code Playgroud)

当我使用关键字参数调用此方法时,它按预期工作:

my_thing = {foo: 1, bar: 2}
foo_of_thing_plus_amount(my_thing, amount: 20) # => 21
Run Code Online (Sandbox Code Playgroud)

但是,当我省略关键字参数时,哈希会被吃掉:

foo_of_thing_plus_amount(my_thing) # => ArgumentError: unknown keywords: foo, bar
Run Code Online (Sandbox Code Playgroud)

我怎样才能防止这种情况发生?有没有像防摔这样的东西?

ruby arguments keyword-argument ruby-2.0

9
推荐指数
1
解决办法
584
查看次数

TryFrom&lt;&amp;[T]&gt; 和 TryFrom&lt;Vec&lt;T&gt;&gt; 有什么区别?

似乎有两种方法可以尝试将向量转换为数组,通过切片 ( fn a) 或直接 ( fn b):

use std::array::TryFromSliceError;
use std::convert::TryInto;

type Input = Vec<u8>;
type Output = [u8; 1000];

// Rust 1.47
pub fn a(vec: Input) -> Result<Output, TryFromSliceError> {
    vec.as_slice().try_into()
}

// Rust 1.48
pub fn b(vec: Input) -> Result<Output, Input> {
    vec.try_into()
}
Run Code Online (Sandbox Code Playgroud)

实际上,它们之间有什么区别?它只是错误类型吗?添加后者的事实让我想知道是否还有更多内容。

rust

4
推荐指数
1
解决办法
188
查看次数