小编Mat*_*ner的帖子

无法阻止iOS上滚动窗口的"touchmove"

我们正在尝试在我们的iOS网络应用上滚动元素,同时防止窗口本身滚动.我们正在touchmove窗口上捕获事件,以编程方式滚动元素并(尝试)通过调用preventDefault事件来阻止窗口本身滚动.

不幸的是,这在Mobile Safari中不起作用.窗口继续在我们的元素下滚动.问题听起来与https://bugs.webkit.org/show_bug.cgi?id=163207中描述的Webkit错误完全相同,但该问题在iOS 10.3中已得到修复,而我运行的是11.3.

捕获touchforcestart和调用preventDefault似乎确实阻止了窗口的滚动,但是我们正在调用它touchstart,因为窗口仍然滚动,这似乎"太晚了".滚动仅在下次touchstart调用时被阻止.

关于发生了什么的任何想法?我们感到困惑,因为这显然是一个错误,但它似乎已经修复了一段时间.

scroll mobile-safari ios preventdefault touchmove

24
推荐指数
2
解决办法
2万
查看次数

选择元素,除非它只使用选择器具有给定类的祖先

假设我有以下HTML:

<div class="foo">
  <ul>
    <li>One</li>
    <li>Two</li>
  </ul>
</div> <!-- not originally here -->
<div class="bar">
  <ul>
    <li>Three</li>
    <li>Four</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我想选择所有li那些元素具有类元素的后代foo.我知道我可以用一个花哨的过滤器功能来做到这一点,但我想知道我是否可以只使用一个选择器.首先我试过:

$(":not(.foo) li")
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为li其他祖先没有风格(ul在这种情况下).以下似乎有效;

$(":not(.foo) :not(.foo) li")
Run Code Online (Sandbox Code Playgroud)

换句话说,选择所有li没有祖先的元素,这些祖先具有类foo或者具有类的祖先foo.也许这是使用选择器执行此操作的最佳/唯一方法,但我对:not选择器的重复感到不满.还有更好的想法吗?

小提琴

jquery jquery-selectors

20
推荐指数
1
解决办法
5471
查看次数

在Windows上使用npm install时,Jenkins脚本过早退出

在我的Jenkins工作中,我想使用Grunt构建一个JavaScript应用程序.Jenkins构建脚本创建一个构建目录(如果它尚不存在),对该目录的更改并运行:

npm install grunt
npm install grunt-zip
grunt --gruntfile=[something]
Run Code Online (Sandbox Code Playgroud)

(当然grunt-cli是全局安装的.)当我构建作业时,第一个语句会导致Grunt和依赖关系按预期被拉下来.但是,作业会成功终止:

Archiving artifacts
No emails were triggered.
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

第二个npm install没有运行.知道为什么脚本在运行后终止npm install而不是继续后续的语句?

node.js npm jenkins gruntjs

12
推荐指数
1
解决办法
4484
查看次数

为什么Grunt会进入devDependencies?

繁重的文档指出它(和任何插件),应包括在devDependencies部分package.json.我可能错过了一些明显的东西,但我看不出原因.如果我想部署我的应用程序的生产版本,我仍然需要构建它.如果我没有建造它,那么为什么我需要Grunt?

换句话说,想象一下我拉回我的回购说:

npm install --production
Run Code Online (Sandbox Code Playgroud)

如果Grunt在该devDependencies部分,我现在如何构建我的应用程序?

npm gruntjs

12
推荐指数
1
解决办法
4871
查看次数

什么是React的横向数据加载?

各种React问题和其他地方,有一些分散的引用"横向数据加载" ,但我还没有找到这个术语的确切含义的简明描述.有人可以澄清吗?

reactjs

12
推荐指数
1
解决办法
833
查看次数

检测UIWebView中何时打开/关闭本机选择窗口小部件

当用户单击某个select框时UIWebView,屏幕底部会显示一个包含可用选项的本机弹出窗口.网页内容向上滚动以为此弹出窗口腾出空间.

这个滚动发生时似乎没有触发DOM事件,尽管值body.scrollTop确实发生了变化.有没有办法检测弹出窗口何时打开,或者我们是否必须使用setInterval轮询和观察scrollTop更改?

javascript scroll uiwebview ios

8
推荐指数
1
解决办法
392
查看次数

防止使用Cognito同时登录

我们有使用Cognito进行身份验证的React Native应用程序。我们希望防止同一用户ID同时从多个设备登录。

希望我们可以为此使用Cognito预身份验证触发器。不幸的是,似乎我们不能仅仅呼吁globalSignOut用户,因为那不会使已经发行且当前处于活动状态的令牌无效(请参阅https://github.com/amazon-archives/amazon-cognito-identity-js / issues / 21#issuecomment-331472144)。

另一个想法是,如果用户在其他地方登录,则拒绝登录。但是我们看不到一种可靠的方式来判断用户是否已经登录。我们可以查看是否为该用户发行了有效的令牌,但是看不到当前是否与活动会话相关联。

我们还考虑过维护自己的活动会话数据库,但是没有退出触发器,因此我们不知道何时从数据库中删除会话。

authentication amazon-web-services amazon-cognito aws-lambda react-native

8
推荐指数
3
解决办法
1016
查看次数

JavaScript中的奇怪的yield语法

我刚刚看了看Dave Herman非常有趣的任务.js.在他的例子中他有这条线:

var [foo, bar] = yield join(read("foo.json"),
                                read("bar.json")).timeout(1000);
Run Code Online (Sandbox Code Playgroud)

我熟悉生成器,但我不明白yield表达式如何评估可以分配给[foo,bar]的东西.我实际上不希望表达式可以赋值给任何东西,因为它与return基本相同.

JS的yield语法似乎仍然有点未记录,我找不到相关的信息.

所以澄清我的问题:最终被分配到foo和bar的是什么?

javascript yield taskjs

6
推荐指数
1
解决办法
2578
查看次数

当content-type为"application/xml"时,如何使用httplib发布非ASCII字符

我在Python 2.7中实现了Pivotal Tracker API模块.该枢纽跟踪API期望POST数据是XML文档和"应用程序/ xml"的是内容类型.

我的代码使用urlib/httplib发布文档,如下所示:

    request = urllib2.Request(self.url, xml_request.toxml('utf-8') if xml_request else None, self.headers)
    obj = parse_xml(self.opener.open(request))
Run Code Online (Sandbox Code Playgroud)

当XML文本包含非ASCII字符时,这会产生异常:

File "/usr/lib/python2.7/httplib.py", line 951, in endheaders
  self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 809, in _send_output
  msg += message_body
exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 89: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

就像我所看到的那样,httplib._send_output正在为消息有效负载创建一个ASCII字符串,大概是因为它希望数据是URL编码的(application/x-www-form-urlencoded).只要使用ASCII字符,它就可以与application/xml一起使用.

是否有一种直接的方式来发布包含非ASCII字符的应用程序/ xml数据,或者我将不得不跳过箍(例如使用Twistd和POST有效负载的自定义生产者)?

python django urllib2 pivotaltracker httplib

6
推荐指数
1
解决办法
4246
查看次数

压缩node_modules以进行客户端部署

我正在使用Node.js在JavaScript中实现客户端应用程序.因为我将在许多机器上部署该软件,所以我想尽量减少我分发的软件包的大小.特别是,我想从node_modules中删除任何不必要的文件.

对于初学者来说,这意味着对依赖树进行重复数据删除和修剪,这npm可以为我做.但我还想删除所有package.json文件和(特别是)部署不需要的任何其他文件.在我使用的许多软件包中,有大量的测试,多个版本的文件(缩小,浏览器化等)等.我只需要正在运行的应用程序实际使用的JavaScript文件.否则我将分发一些实际上没有使用的100Kb文件.

我知道node-browserify但我的应用程序将在CommonJS环境中运行,而不是浏览器,所以我想将模块分开并加载它们require.

我正在考虑编写一个使用依赖树的Grunt插件required,将运行时所需的JavaScript文件拉出来并将它们写入树结构,以便可以使用它们加载require(只需直接加载模块而无需使用package.json).但在我解决之前,我想确保没有人为我做过这件事.

node.js npm browserify gruntjs

6
推荐指数
1
解决办法
2193
查看次数