小编Joh*_*rty的帖子

Safari 返回不正确的 Date toISOString() 值

当我将日期字符串2019-02-16T10:00:00转换为 timezone 中的 JS Date 对象GMT+0100 (CET),然后调用.toISOString()我希望获得 ISO date/time 2019-12-01T09:10:10.000Z (-1 hours)

但是,我所看到的是:

Safari (不正确):

new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T10:10:10.000Z
Run Code Online (Sandbox Code Playgroud)

(正确):

new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)

火狐 (正确):

new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)

我是否遗漏了什么,或者这是一个已知的 Safari 问题?

javascript safari firefox google-chrome mobile-safari

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

检测元素是否应用CSS动画的最佳方法是什么

我正在尝试在CSS动画完成后在Web组件上触发事件,但是用户可能会使用事件从不会触发的animation: none;含义从元素中清除动画transitionend

// wait for dialog close animation to end before firing closed event
element.addEventListener('transitionend', function() {

    // fire dialog closed event
    self.dispatchEvent(new CustomEvent('pure-dialog-closed', { 
        bubbles: true, 
        cancelable: true 
    }));
});
Run Code Online (Sandbox Code Playgroud)

为了确保自定义事件始终触发,我需要确定元素或其任何子级是否应用了动画,如果没有,请pure-dialog-closed立即触发该事件。

我已尝试检查style.animationNameself.style.transition但似乎无法正常工作。我需要一种简单的方法来检查某个元素或其任何子元素是否应用了CSS动画。

javascript css3 web-component css-transitions css-animations

4
推荐指数
2
解决办法
1202
查看次数

如何使用Gun作为快速路线?

我正在尝试在 express/node 项目中使用 gun,但是我想将端点安装为/db. 我曾希望以下代码可以工作,但不断收到Route.get() 需要回调函数错误:

var express = require('express');
var Gun = require('gun');

var app = express();
var port = 8080;

var gun = new Gun({
    file: './data.json'
});

// mount the gun db server
app.get('/db', gun.router);

// regular express route
app.get('/', function(req, res) {
    res.send('other stuff...');
});

// start the server
app.listen(port, function () {
    console.log('Web server listening on port ' + port);
});
Run Code Online (Sandbox Code Playgroud)

有什么建议?

node.js express gun

3
推荐指数
1
解决办法
1268
查看次数

有没有办法检查 JavaScript 函数是否接受回调?

我试图通过创建 localForage 的全局实例来为纯形式的Web 组件添加localForage支持:

// create a global appStorage object that mimics localStorage API (greater storage)
window.appStorage = localforage.createInstance({
    driver: [
        localforage.INDEXEDDB,
        localforage.WEBSQL,
        localforage.LOCALSTORAGE
    ],
    name: 'product-name',
    version: 1.0,
    storeName: 'app'
});
Run Code Online (Sandbox Code Playgroud)

并通过storage属性将其分配给纯形式的实例:

<pure-form src="path-to-schema.json" storage="appStorage"></pure-form>
Run Code Online (Sandbox Code Playgroud)

在内部, pure-form 执行window[self.storage]以获取存储对象的句柄并使用.getItem,.setItem同步设置和检索值。

麻烦的是localForage是异步的,也就是说.getItem.setItem希望通过回调返回值。因此,我当前的逻辑将不起作用:

// get value from web storage
var storedContent = window[self.storage].getItem('item-key');
Run Code Online (Sandbox Code Playgroud)

我意识到我可以将调用包装在 Promise 中,但就其而言,纯形式不需要承诺,我不想为此添加该依赖项。

我想做的是检查是否.getItem.setItem需要回调,如果是,则相应地修改代码...

javascript web-component local-storage localforage

3
推荐指数
1
解决办法
1197
查看次数

如何解决 Dokku 413 请求实体太大错误?

我正在使用 Dokku 运行节点 API,最近413 Request Entity Too Large在尝试上传 ~1.5mb 文件时遇到错误。

我遵循Dokku Nginx 文档nginx.conf.d,并在项目的根目录中创建了一个文件夹,其中upload.conf的文件包含条目 -client_max_body_size 20M;

我的理解; 这应该在您下次 git 推送应用程序时修改您的 Nginx 配置,但它对我不起作用。我缺少什么?

ubuntu nginx dokku

2
推荐指数
1
解决办法
1494
查看次数