chnwillliu 最近的时间轴更新
chnwillliu

chnwillliu

V2EX 第 218858 号会员,加入于 2017-03-04 15:15:38 +08:00
chnwillliu 最近回复了
额 getElementsByClassName 返回的是数组,改成 querySelector

document.querySelector('.readerFooter_button').dispatchEvent(clickEvent);
因为在事件处理中他判断了事件是否有 clientX,没有的话就不执行后续动作了。

```js
var clickEvent = document.createEvent('mouseevent');
clickEvent.initMouseEvent('click', true, false, window, null, 100, 100, 100, 100);
document.getElementsByClassName('readerFooter_button').dispatchEvent(clickEvent);
```

这样就好啦。
90 天前
回复了 pheyer 创建的主题 程序员 手机浏览器上的百度搜索框不能粘贴文字
百度用了一个 label 当 fake placeholder 盖在了 input 上,label 的 for 属性指向 input,所以点击可以聚焦到 input 上。但是粘贴需要长按呼出上下文菜单,而 label 并没有把长按事件代理到 input 上的功能。所以长按不但没有弹出菜单,反而导致了 input 失焦。输入框有值后 label 被 js 隐藏,因此长按直接按到了 input 上。

感觉这个 fake placeholder 就是个遗留产物,移动端哪里需要你去 fake 占位字符,还整出 bug 来。
92 天前
回复了 mosade 创建的主题 TypeScript 关于 typescript 条件类型中的 extends
T extends P, 说明 T 类型 是 P 类型的一种,但是 T 类型可能比 P 类型存在更多的类型描述,即所谓 extends 的含义。Cat extends Animal, 但是 Cat 比 Animal 描述更确切,更具体。
92 天前
回复了 4196 创建的主题 React RN 1.0 有新消息了
@chnwillliu 好像回复错了。尴尬。。
92 天前
回复了 4196 创建的主题 React RN 1.0 有新消息了
@deathdealer 请继续关注(不要调台)
310 天前
回复了 limy97 创建的主题 JavaScript 求判断刘海屏的解决方案 [JavaScript]
不需要 JS 判断啊,直接 CSS env 获取 safe-area 的边界。非要 JS 获取那你就 CSS 写 safe-area 的几个值到 root 节点上
然后 js 里 getComputedStyle / computedStyleMap 就能拿到这几个环境变量。

https://developer.mozilla.org/en-US/docs/Web/CSS/env()
352 天前
回复了 shakukansp 创建的主题 JavaScript 记一次 RXjs 中 Subject 的使用经历
@shakukansp blur 总是会优先于 click 触发的,所以 click 内部判断有无 blur 引起的 request 在 pending 就可以。

不知道你的 A 框中的值不同会不会影响 C 框得到不一样的结果,如果会的话,C 有值再 enable B 按钮这种方案还是有问题。
352 天前
回复了 shakukansp 创建的主题 JavaScript 记一次 RXjs 中 Subject 的使用经历
你这里的表单验证具体是什么操作?不应该是同步的操作么?
352 天前
回复了 shakukansp 创建的主题 JavaScript 记一次 RXjs 中 Subject 的使用经历
感觉不需要 Subject 吧。

A blur 会触发验证并发请求,这个就它自己管好自己就 OK 。B click 需要检测当前有无正在 pending 的 A blur 引起的请求,有则等待,无则直接做自己该做的事。

不追求完全函数编程,就可以把 A blur 发请求的 observable 用变量保存起来。

大概这个意思:

```
let pendingRequest = null;

inputABlur$
.pipe(
switchMap(() => {
pendingRequest = httpClient.get('/url', data).pipe(share());
return pendingRequest;
}),
finallize(() => {
pendingRequest = null;
})
)
.subscribe();


buttonBClick$
.pipe(
switchMap(value => {
if (pendingRequest) {
return pendingRequest.pipe(mapTo(value));
}
return of(value);
}),
switchMap(() => httpClient.get('/url-a-c', dataAC))
)
.subscribe();


```
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1223 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
♥ Do have faith in what you're doing.