小编use*_*ca8的帖子

如何在Windows上更新npm?

我试过这个:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Run Code Online (Sandbox Code Playgroud)

......但它没有用.

我如何在Windows上执行此操作?

windows package-managers node.js npm

601
推荐指数
17
解决办法
111万
查看次数

JavaScript中的所有falsey值

JavaScript中的值是什么'falsey',这意味着它们在表达式中评估为false if(value),value ?并且!value


关于Stack Overflow上的falsey值的目的已有一些讨论,但没有详尽的完整答案列出所有的falsey值.

我在MDN JavaScript Reference上找不到任何完整列表,我很惊讶地发现在JavaScript中查找完整,权威的虚假值列表时的最佳结果是博客文章,其中一些有明显的遗漏(例如,NaN),并且没有一个像Stack Overflow这样的格式,可以添加评论或替代答案来指出怪癖,惊喜,遗漏,错误或警告.因此,制作一个似乎是有意义的.

javascript

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

if [](方括号)中"[:太多参数"错误的含义

我找不到任何一个简单直接的资源,用于解释以下BASH shell错误的含义和修复,所以我发布了我在研究之后发现的内容.

错误:

-bash: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

Google友好版: bash open square bracket colon too many arguments.

上下文:单个方括号中的if条件,带有一个简单的比较运算符,如equals,大于等,例如:

VARIABLE=$(/some/command);
if [ $VARIABLE == 0 ]; then
  # some action
fi 
Run Code Online (Sandbox Code Playgroud)

bash arguments if-statement

185
推荐指数
5
解决办法
22万
查看次数

如何识别鼠标悬停事件对象是否来自触摸屏?

几乎所有当前的浏览器(来自github上的patrickhlauke的详细信息,我在SO答案中总结,以及来自QuirksMode的更多信息),触摸屏触摸触发mouseover事件(有时创建一个隐藏的伪光标,保持用户触摸的位置直到它们触摸其他地方).

有时,在触摸/点击和鼠标悬停用于执行不同操作的情况下,这会导致不良行为.

从响应鼠标悬停事件的函数内部,已经传递了该event对象,有什么方法可以检查这是否是从一个元素外部移动到其内部的移动光标的"真正"鼠标悬停,或者它是否是由触摸屏触摸触摸屏行为引起的?

event对象看起来相同.例如,在Chrome上,由用户触摸触摸屏引起的鼠标悬停事件已经type: "mouseover"没有任何我可以看到的将其识别为触摸相关的事件.

我有想法将事件绑定到touchstart更改鼠标悬停事件,然后事件将touchend删除此更改.不幸的是,这是行不通的,因为事件顺序似乎touchstart→交通touchend→交通mouseover→交通click(我不能附加正规化,鼠标悬停功能,点击不搞乱其他功能).


我以前曾经问过这个问题,但是现有的问题并没有完全消除它:

我能想到的最好的是有一个设置一些全局访问的变量标志一样,也就是说,一个触摸事件window.touchedRecently = true;touchstart,但不能点击,再经过消除了这个标志,也就是说,一个500毫秒setTimeout.这是一个丑陋的黑客.


注意 - 我们不能假设触摸屏设备没有类似鼠标的漫游光标,反之亦然,因为有许多设备使用触摸屏和类似鼠标的笔,当在屏幕附近悬停时移动光标,或使用触摸屏和鼠标(例如触摸屏笔记本电脑).我的答案中的更多细节如何检测浏览器是否支持鼠标悬停事件?.

注意#2 - 这不是一个jQuery问题,我的事件来自Raphael.js路径,jQuery不是一个选项,它提供了一个简单的vanilla浏览器event对象.如果有一个Raphael特定的解决方案,我会接受,但这是不太可能的,原始的JavaScript解决方案会更好.

javascript cross-browser touch raphael

26
推荐指数
4
解决办法
5316
查看次数

检测此页面是否为跨域iframe的万无一失的方法

" 检测iframe是否为跨域 "的" 万无一失的方法 "的答案描述了一种方法,用于测试页面上的iframe是指向同域还是跨域页面,解决不同浏览器对跨域策略的解释和避免会中断用户或停止javascript的错误消息.

我正在寻找相当于这个但是 iframe内部的子页面测试它是否跨域iframe 内部.

可以通过全局访问(相同域)有关父级的信息,但有没有可靠的方法来执行此跨浏览器,而不会在检测到父级是跨域时崩溃到错误parentparent.document.location


对于方便的测试,这里是一个jsfiddle中jsbin,在尝试测试是否parent.location.host可访问时崩溃成错误.是否有一种可靠的方法来获取可用的东西,比如false告诉我们这是一个跨域的父级,而不是错误?

是否有一个try...catch变体,它将是强大的跨浏览器?或者可能是一些使用返回值的巧妙技巧parent.postMessage()?(虽然父页面无法编辑)


使用案例:想象嵌入在自己网站上的页面上的可嵌入内容,以及第三方.如果页面位于同域iframe上,我们会隐藏品牌并链接回原始网站,因为用户已在此处.如果他们从第三方iframe访问该页面或直接加载页面,我们会显示品牌和信用,以便他们可以看到内容的来源.


为了澄清,我知道相同的域策略,我不关心跨浏览器域是什么,我只是想写一个简单但可靠的if条件,如if( crossDomainParent() ){ /* do something */}

html javascript iframe cross-browser

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

在React中获取鼠标坐标

我试图使用jQuery在React中的一个元素中获取鼠标的相对坐标.

我的代码似乎没有工作,没有控制台错误.

码:

的index.html

<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="stylesheets.css" >
    <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
    <script src="ja.js" type="text/javascript"></script>

    <title>Where's Waldo</title>
  </head>

    <div id="root"></div>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

ja.js(jQuery函数)

jQuery(function($) {
 var x,y;
 $("#waldo1").mousemove(function(event) {
     var offset = $(this).offset();
     x = event.pageX- offset.left;
     y = event.pageY- offset.top;
     $("#coords").html("(X: "+x+", Y: "+y+")");
 });
});
Run Code Online (Sandbox Code Playgroud)

零件

import React, { Component } from 'react'
import Timer from './timer'

class Level1 extends Component …
Run Code Online (Sandbox Code Playgroud)

javascript jquery reactjs

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

在所有浏览器上是否有一个空白的HTML字符(包括没有空格)?

是否有一个HTML字符,在所有(主要)浏览器(加上IE8可悲)没有显示任何内容并且不添加任何额外空间?

因此,替代&nbsp;但不会向页面添加空格,并且不会显示为丑陋的"无法识别的字符"标记或?.


为什么:在我的情况下,我正在尝试解决旧的专有CMS上的问题,该问题正在删除所需的空元素但必需的HTML元素,因为系统的其他部分将动态填充它们.

想象一下(简化的简单示例)<span class="placeholder" data-type="username"></span>,如果用户登录,则填充用户的用户名 - 但是这个老式CMS将其视为空并删除它.

html cross-browser

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

表明处理器密集的JS函数正在运行(GIF微调器不动画)

显示然后隐藏动画指示符/微调器GIF是向用户显示其操作有效以及在等待操作完成时发生某些事情的好方法 - 例如,如果操作需要从服务器加载某些数据(s )通过AJAX.

我的问题是,如果减速的原因是处理器密集的功能,gif会冻结.

在大多数浏览器中,GIF会在执行处理器饥饿功能时停止动画.对于用户来说,这看起来有些事情已经崩溃或发生故障,而实际上它正在工作.

JSBIN示例

注意:"这很慢"按钮会占用处理器一段时间 - 对我来说大约10秒钟,将根据PC规格而有所不同.您可以使用HTML中的"data-reps"attr更改它的功能.

在此输入图像描述

  • 期望:点击后,动画运行.当过程结束时,文本会发生变化(我们通常也会隐藏指示器,但如果我们让它旋转,示例会更清晰).
  • 实际结果:动画开始运行,然后冻结,直到过程结束.这给人的印象是某些东西被打破(直到突然意外地完成).

如果JS保持处理器忙,有没有办法表明正在运行的进程没有冻结?如果没有办法制作动画片,我会依靠显示然后隐藏静态文字信息Loading...或类似内容,但动画看起来更活跃.


如果有人想知道我为什么使用处理器密集型的代码而不是通过优化来避免问题:这很多都是复杂的渲染.代码非常高效,但它的功能很复杂,因此对处理器的要求总是很高.它只需要几秒钟,但这足以让用户感到沮丧,并且有很多研究可以追溯到很长一段时间,以证明指标对用户体验有利.


处理器繁重函数的gif微调器的第二个相关问题是,在一个同步集中的所有代码都运行之前,微调器实际上并不显示 - 这意味着它通常不会显示微调器,直到隐藏微调器为止.

  • JSBIN示例.
  • 我在这里找到的一个简单修复(在上面的另一个示例中使用)是在setTimeout( function(){ ... },50);以非常短的间隔显示指示符之后包装所有内容,以使其异步.这是有效的(见上面的第一个例子),但它不是很干净 - 我确信有更好的方法.

我确信必须有一些标准的处理器密集型加载指标的方法,我不知道 - 或者只是使用Loading...文本是正常的setTimeout?我的搜索没有任何结果.我已经阅读了6或7个关于类似声音问题的问题,但它们都变得无关紧要.


编辑评论中的一些很棒的建议,以下是我确切问题的一些细节:

  • 复杂的过程涉及处理大型JSON数据文件(如加载文件的内存中的JS数据操作操作),以及基于结果的渲染SVG(通过Raphael.js)可视化,包括复杂,详细的可缩放世界地图.来自JSON的数据处理.因此,有些需要DOM操作,有些则不需要.
  • 不幸的是,我确实需要支持IE8 但是如果有必要,我可以给IE8/IE9用户一个最小的后备Loading...文本,并给其他人一些现代的东西.

javascript animated-gif css3 activity-indicator css-transitions

16
推荐指数
1
解决办法
3806
查看次数

"不要以root身份运行bundler" - 使用root所产生的确切差异是什么?

如果以root身份登录时从命令行运行ruby bundler,则会收到以下警告:

不要以root身份运行Bundler.如果需要,Bundler可以请求sudo,并且以root身份安装捆绑包将破坏此计算机上所有非root用户的应用程序.

以root身份运行bundler对它安装的gem有什么区别?

它是否与为每个gem安装的实际文件的权限有关?Ruby会尝试以非root用户身份访问gem文件(如果是这样,Ruby将使用哪个用户/组以及如何查找)?

由于bundle用作root用户而导致应用程序崩溃的症状是什么?


我问的具体原因是因为我试图在一个非常基本的Centos VPS上使用bundler,我不需要设置任何非root用户.我通过bundler安装了宝石的其他问题(Error: file to import not found or unreadable: gemname尽管有问题的宝石存在gem list),我想知道如果通过Bundler以root身份安装宝石可能会让Ruby无法读取文件.

我想解决这个问题,如果我确实需要设置一个纯粹用于运行bundler的非root用户帐户,如果我这样做,那么该用户需要哪些组和权限才能允许Ruby运行gems bundler安装.

或者我可以只是chownchgrp宝石文件夹?如果是这样,它是否依赖于与Ruby的安装方式有关?(我使用RVM和我的宝石最终/usr/local/rvm/gems/归根组rvm中的root所有)这个松散相关的问题的答案意味着安装Ruby的未指定方面会影响bundler的权限要求.

研究"不要以root身份运行捆绑包"消息只会出现一个未解答的问题抱怨,这个警告显然"就像它说要在晚上8点睡觉"(链接包含NSFW语言).

ruby gem bundler

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

溢出怎么样:隐藏; 容器上的&border-radius导致容器内的"Paint/Render Layer"大幅减速,仅在IE上?

我一直在使用HTML/SVG javascript驱动的小部件中的IE(包括IE11的所有版本)上的不良性能遇到很多麻烦,只有当小部件托管在某个页面上时.

在确定减速的主要原因是油漆/渲染层重绘之后,并且耗尽了有关这些的信息我可以从IE开发人员工具中解脱出来,我一次尝试关闭一个祖先类的试验和错误,直到性能提高为止; 然后,在识别班级时,一次关闭一个样式规则.

我的整个问题似乎归结为一个overflow: hidden;祖先的单一规则几个divs树.

它的不同之处是令人难以置信:使用overflow: hidden;树,简单的用户交互(突出显示SVG路径,生成HTML文本标签,显示标签并将其相对于SVG路径和容器定位)最大化处理器,减少UI帧速率为零,并且每次交互都会冻结所有死机,持续1,000到4,000毫秒.没有overflow: hidden;祖先,它在数十毫秒内完成,帧速率从不低于一半(非IE浏览器无论如何都是相同的overflow: hidden;).

  • 这里的轮廓overflow: hidden;的祖先,剖析和越野互动,过滤油漆事件:

    在此输入图像描述

  • 这是不在overflow: hidden;祖先上的配置文件,分析开启和关闭交互,过滤以绘制事件.唯一的变化是overflow: hidden;在DOM检查器中样式旁边的勾选框中打勾或取消勾选,并且我执行测试的顺序无关紧要:

    在此输入图像描述

我不想仅仅把它overflow: hidden;作为一个粘性石膏覆盖并说完了工作,而不是理解这是如何发生的,并冒着问题再次发生与其他看似微不足道的CSS变化.我更倾向于理解为什么overflow: hidden;会产生这样的差异并以一种强大的方式解决这个问题,无论应用何种溢出规则.

遗憾的是,我无法发布完整的演示,但这里是DOM结构相关部分的摘要,其中包含与布局相关的样式的注释:

  <div class="responsive-grid">

  <!-- ...lots of nested divs that simply inherit styles, I can't change this aspect of the Drupal layout -->

    <div id="panel-5" class="col-12"> <!-- width: 100%; float: left -->
    <!-- this is the first element IE …
Run Code Online (Sandbox Code Playgroud)

javascript css performance internet-explorer ie-developer-tools

14
推荐指数
2
解决办法
1418
查看次数