小编Fuz*_*yma的帖子

通过数据库名称中的破折号使用bash创建数据库

我尝试通过bash创建一个新的数据库,名称中有一个破折号.

那是我尝试过的:

echo "CREATE DATABASE IF NOT EXISTS db-name CHARACTER SET utf8 COLLATE utf8_general_ci" | mysql -uuser -ppw
Run Code Online (Sandbox Code Playgroud)

失败并出现以下错误:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the 
right syntax to use near
'-name CHARACTER SET utf8 COLLATE utf8_general_ci' at line 1
Run Code Online (Sandbox Code Playgroud)

我添加了反引号:

echo "CREATE DATABASE IF NOT EXISTS `db-name` CHARACTER SET utf8 COLLATE utf8_general_ci" | mysql -uuser -ppw

ERROR 1064 (42000) at …
Run Code Online (Sandbox Code Playgroud)

mysql bash

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

如何将值数组添加到集合

将数组的所有值添加到集合中的传统方法是:

// for the sake of this example imagine this set was created somewhere else 
// and I cannot construct a new one out of an array
let mySet = new Set()

for(let item of array) {
  mySet.add(item)
}
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式做到这一点?也许mySet.add(array)还是mySet.add(...array)

PS:我知道两者都不起作用

javascript set

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

空 tspan 未渲染/dy 值被忽略

我有以下示例 svg:

<svg>
 <text x="0" y="10">
  <tspan x="0" dy="10">Foo</tspan>
  <tspan x="0" dy="10"></tspan> // this is completely ignored
  <tspan x="0" dy="10">Bar</tspan> // this is positioned 10 units below not 20
 </text>
</svg>
Run Code Online (Sandbox Code Playgroud)

为什么 empy tspan 被忽略?甚至 dy 属性也无法识别,因此下一行显示在第一行的正下方。

如何实现空行(带有 tspan,因为它全部生成)?我知道一个简单的空格可以解决这个问题,但我需要一个真正的空行。也许我可以使用一些CSS hack?

svg

7
推荐指数
1
解决办法
1648
查看次数

如何获得 svg &lt;image&gt; 元素的自然尺寸?

在 HTML 中,我们有一个<img>有点映射到Image对象的元素。两者都有两个名为naturalWidthand 的属性naturalHeight。当您想在load回调中将图像的尺寸设置为其自然尺寸时,您可以轻松地使用

var img = new Image
img.addEventListener('load' function(e) {
    // do whatever with naturalWidt/Height
})
Run Code Online (Sandbox Code Playgroud)

但是,当您想设置 svg<image>元素的尺寸时,您不能依赖于此,因为该元素没有natural属性:

var img = document.createElementNS(namespace, 'image')
img.addEventListener('load' function(e) {
    img.setAttributeNS(namespace, 'width', img.naturalWidth) // dont work
})
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何在<image>不加载图像的情况下设置 svg elemet的尺寸new Image?规范中是否有计划支持此类natural属性?

javascript svg image

7
推荐指数
1
解决办法
468
查看次数

SVG文档中是否允许多个defs?

我想确保遵循标准.
是否允许在一个SVG文档中有多个defs?

嵌套的svgs是否允许有defs?

<svg>
 <defs></defs>
 <svg>
  <defs></defs>
 </svg>
</svg>
Run Code Online (Sandbox Code Playgroud)

我找不到与此相关的规格中的任何内容

svg

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

无法将 html 元素周围的代理传递给appendChild

我编写了一个薄包装器,它传递了创建的节点document.createElement并添加了一些方法。这个包装器是用代理实现的。我所做的就是抓住一些吸气剂。

  return new Proxy(node, {
    get (target, prop) {
      if (prop === 'node') return target

      if (wFuncs[prop]) {
        return Reflect.get(target, wFuncs[prop]).bind(target)
      }

      return Reflect.get(target, prop)
    }
  })
Run Code Online (Sandbox Code Playgroud)

我本来希望能够传递这样的代理,appendChild因为它仍然是 html 元素的实例Node,并且具有 html 元素的所有属性和方法。然而,appendChild 抱怨传递的元素不是 Node:

TypeError:无法在“Node”上执行“appendChild”:参数 1 不是“Node”类型

关于如何解决这个问题有什么想法吗?

javascript dom dynamic-proxy

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

Vue 3 Teleport 是否只能移植到 vue 之外?

Vue 3 有一个新的 Teleport 功能,它取代了 vue 2 中的 portal-vue 插件。但是,我发现不可能将组件移植到 vue 控制的地方(=在 vue 应用程序中)。它仅在移植到外部(主体、其他元素......)时有效。

const app = {
  template: `
  <div>
    <h1>App</h1>
    <div id="dest"></div>
    <comp />
  </div>`
}


Vue.createApp(app).component('comp', {
  template: `
  <div>
    A component
    <Teleport to="#dest">
      Hello From Portal
    </Teleport>
  </div>`
}).mount('#app')
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@3.0.0-rc.9/dist/vue.global.js"></script>

<div id="app"></div>
Run Code Online (Sandbox Code Playgroud)

如您所见,控制台甚至报告说需要已经渲染传送目标。但是我怎么能告诉 vue 先渲染哪个组件呢?在我的例子中,目标在传送前的 dom 中。

这在 portal-vue 中不是问题,而且非常令人失望,因为它使整个概念变得不那么可用。

vue.js vuejs3 vue-teleport

6
推荐指数
3
解决办法
1588
查看次数

点击标签不打开选择

我一直认为,点击一个label或多或少会"触发"相应表单元素上的点击.然而,这似乎并不适用select."mousedown-on-selectfield" - 动画有效,但选择没有打开.

我试过这个:

<label for="my_id">Click me</label>
<select id="my_id">
  <option>1</option>
  <option>2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

然后:

<label for="my_id">Click me
  <select id="my_id">
    <option>1</option>
    <option>2</option>
  </select>
</label>
Run Code Online (Sandbox Code Playgroud)

任何想法我做错了什么?

PS:Imo应该不需要任何Javascript,因为这是一个HTML功能

html forms select label

5
推荐指数
1
解决办法
3868
查看次数

ES6模块,停止执行代码

这听起来像是一个奇怪的问题:如何从 ES6 模块中离开执行上下文?

请参阅以下示例:Module1 要求浏览器中存在某些功能(例如并非每个浏览器当前都实现的一些新功能)。

您想要在模块中进行检查,确定所需的功能是否可用,如果不可用,则想要停止执行。

当使用立即函数调用编写该代码时,您只需调用即可return,并且以下代码永远不会执行。

如何在 ES6 模块中做到这一点?我必须将整个代码包装到一个if块中吗?

javascript ecmascript-6

5
推荐指数
1
解决办法
2001
查看次数

当观察到的节点被破坏时,MutationObserver是否被破坏?

我通过简单地观察一个节点

new MutationObserver(callback)
  .observe(shape.node, {attributes: true})
Run Code Online (Sandbox Code Playgroud)

如您所见,我没有对观察者的任何引用。观察到的节点将在某个时候被破坏。

节点和观察者的内存是否已清理?还是他们保持生命?如果是这样:我如何防止这种情况发生?我不知道何时删除该节点。

Ofc我还可以观察父级,并在父级观察到“子列表已更改”时断开第一个观察者的连接,但我想避免这种情况

javascript mutation-observers

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