当Git中存在合并冲突时,会将以下垃圾插入冲突文件中.三个问题:
注意:如果它是相关的,我使用的是GitHub的Mac GUI客户端.
在尝试将字符串解析为整数时,我必须编写以下函数才能正常失败.我认为Python内置了一些内容来做到这一点,但我找不到它.如果没有,是否有更多的Pythonic方式,不需要单独的功能?
def try_parse_int(s, base=10, val=None):
try:
return int(s, base)
except ValueError:
return val
Run Code Online (Sandbox Code Playgroud)
我最终使用的解决方案是修改了@ sharjeel的答案.以下功能相同,但我认为更具可读性.
def ignore_exception(exception=Exception, default_val=None):
"""Returns a decorator that ignores an exception raised by the function it
decorates.
Using it as a decorator:
@ignore_exception(ValueError)
def my_function():
pass
Using it as a function wrapper:
int_try_parse = ignore_exception(ValueError)(int)
"""
def decorator(function):
def wrapper(*args, **kwargs):
try:
return function(*args, **kwargs)
except exception:
return default_val
return wrapper
return decorator
Run Code Online (Sandbox Code Playgroud) 我正在为优惠券公司开发前端站点,我有一个页面,用户只需要输入电话号码和花费的金额.我们想出了一个有趣的屏幕键盘,内置Javascript,易于使用,速度快.但是,我正在寻找一种解决方案,当用户聚焦并在这些字段中输入文本/数字时,阻止软键盘弹出.
我知道HTML5提出的"数字/电话/电子邮件"类型属性.然而,冒着疯狂的风险,我真的只想使用我的屏幕键盘.
注意:此网站主要针对平板电脑.
谢谢.
我有一些项目使用RequireJS在浏览器中加载单个JavaScript模块,但我还没有对它们进行优化.在开发和生产中,应用程序为每个JavaScript文件单独发出请求,现在我想使用Grunt修复它.
我试图将一个简单的项目结构组合起来无济于事,所以我想知道是否有人可以为我提供一个有效的例子.我的目标如下:
以下是为了进行此对话的示例结构:
grunt-requirejs-example/
grunt.js
main.js (application entry point)
index.html (references main.js)
lib/ (stuff that main.js depends on)
a.js
b.js
requirejs/
require.js
text.js
build/ (optimized app goes here)
node_modules/ (necessary grunt tasks live here)
Run Code Online (Sandbox Code Playgroud)
具体来说,我正在寻找一个可以从中开始的工作项目结构.我的主要问题是:
grunt.js
文件中究竟需要什么,尤其是让r.js优化器工作?watch
任务在每次保存文件时自动构建开发模式中的所有内容,那么我全都听见了.我想避免任何减慢循环的事情从进行更改到在浏览器中看到它.我注意到如果我这样做:
Array(n).map(() => console.log('test'))
Run Code Online (Sandbox Code Playgroud)
我没有打印任何东西.
但是,如果我这样做:
Array(n).fill().map(() => console.log('test'))
Run Code Online (Sandbox Code Playgroud)
我test
打印出来的n
时间.
为什么会这样?如果我这样做,Array(n).length
我会回来n
.
我注意到在REPL中Array(5)
返回:
[ , , , , ]
而Array(5).fill()
回报:
[ undefined, undefined, undefined, undefined, undefined ]
在这两种情况下,typeof
数组中的任何元素=== undefined
.
发生什么了?
我想在浏览器中解析YAML.理想情况下,我正在寻找一个支持浏览器的库.我发现的那些不是写在浏览器中运行的(它们同步调用require()
或假设存在exports
变量).
或者,我将接受示例代码,该代码显示如何通过RequireJS将YAML解析库加载到浏览器中.
假设我有一个充满可聚焦元素的文档,要么是因为它们天生具有可聚焦性(如<input type="text">
),要么因为它们具有tabindex="0"
等等.
现在让我们说我的文档中有一部分要显示为模式对话框,我不希望用户被对话框外的任何东西分心.我想tab键只能通过对话框的容器元素内的可聚焦元素循环.最简单的方法是什么?
如果可能的话,我正在寻找一种解决方案,它不关心对话框的内容或页面的其余部分是什么,也不会尝试修改它们.也就是说,我不想让对话框之外的元素不可聚焦.首先,这需要做出可逆的改变并跟踪状态.其次,这需要了解元素可以聚焦的所有可能方式.这让我觉得凌乱,脆弱,不易退缩.
我的第一次尝试看起来像这样,但只能在向前方向上工作(按Tab键).它不能反向工作(按Shift + Tab键).
<div>Focusable stuff outside the dialog.</div>
<div class="dialog" tabindex="0">
<!-- Focus should be trapped inside this dialog while it's open -->
<div class="content">
Form contents and focusable stuff here.
</div>
<div class="last-focus" tabindex="0" onfocus="this.parentNode.focus()"></div>
</div>
<div>More focusable stuff outside the dialog.</div>
Run Code Online (Sandbox Code Playgroud)
我宁愿看到纯JavaScript解决方案.如果有一种方法可以使用诸如jQuery之类的库来执行此操作,我更喜欢指向执行此操作的库代码的链接.
我无法理解有时会出现在grunt.js
文件中的嵌套.在下面的例子中,什么都嵌套状物体concat.dist
,并min.dist
意味着什么呢?是dist
键引用另一个命名任务或者是它只是一个配置对象?在执行concat
和min
任务时究竟会调用什么?
module.exports = function (grunt) {
grunt.initConfig({
// …
concat: {
dist: {
src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"],
dest: "dist/main.js",
}
},
min: {
dist: {
src: ["<banner:meta.banner>", "<config:concat.dist.dest>"],
dest: "dist/main.min.js",
}
},
// …
});
// …
grunt.registerTask("default", "lint qunit concat min");
};
Run Code Online (Sandbox Code Playgroud) Mac OS X 上的默认行为是单击复选框和按钮不会从其他具有焦点的控件(例如,文本框)窃取焦点。我想在网络上实现这个。
我可以让它适用于按钮和复选框本身,但不适用于复选框标签。
以这个jsbin为例:http ://jsbin.com/kopateluze/1/edit?html,console,output
这是表格的屏幕截图:
如果先聚焦文本框,然后单击按钮,则可以使用event.preventDefault()
onmousedown
防止文本框失去焦点。这很好用。如果您首先关注文本框,然后单击复选框,则同样有效。
但是如果你先聚焦文本框,然后点击复选框的label
文本,就不行了;文本框失去焦点。
有没有办法防止单击复选框label
从其他控件窃取焦点?
请使用纯 JavaScript,但请随时链接到库中实现的解决方案的源代码。
我有一些JavaScript文件应该在假定一个Node环境时使用,而其他应该在假定浏览器环境时使用.如何使用不同的JSHint选项lint这些文件?这是我的出发点:
module.exports = function (grunt) {
grunt.initConfig({
lint: {
files: [
"grunt.js", // Node environment
"lib/**/*.js", // browser environment
],
},
jshint: {
options: {
browser: true, // define globals exposed by modern browsers?
es5: true, // code uses ECMAScript 5 features?
node: false, // define globals in Node runtime?
},
globals: {},
},
});
grunt.registerTask("default", "lint");
};
Run Code Online (Sandbox Code Playgroud)