小编Sve*_*ven的帖子

Modernizr - 正确加载polyfills的方法/使用自定义检测

我想在网页上使用一些新的HTML5表单属性和输入类型.有些浏览器已经支持它们,有些浏览器不支持它们.这就是为什么我想使用Modernizr - 这就是我的麻烦开始.

据我所知,Modernizr本身并不是一个polyfill,而是一个可以测试浏览器是否能够使用某些新的HTML5/CSS3的脚本.如有必要,可以加载polyfill,"模拟"这些功能,以便它们可以在非支持/旧版浏览器中使用.这是正确的我猜?

关于测试/装载:使用Modernizr加载polyfill的正确或最佳方法是什么?
在文档中我发现了这个:

Modernizr.load({
  test: Modernizr.geolocation,
  yep : 'geo.js',
  nope: 'geo-polyfill.js'
});
Run Code Online (Sandbox Code Playgroud)

但是有些页面也是这样的:

if (Modernizr.touch){
   // bind to touchstart, touchmove, etc and watch `event.streamId`
} else {
   // bind to normal click, mousemove, etc
}
Run Code Online (Sandbox Code Playgroud)

另外,我如何才能真正了解如何检测这些功能?Modernizr.geolocation对于每个特征检测,肯定存在某些东西吗?

在Modernizr GitHub存储库中,还有许多用户贡献的功能检测.如何在我的Modernizr版本中实现这些?或者只是使用他们的建设者是最好的?

在Safari中,HTML5表单验证有效,但没有用于显示错误消息的UI.基本上,该功能只实现了一半.这就是为什么Modernizr在Safari中给出​​了误报,就像在这里已经提到的那样:https ://github.com/Modernizr/Modernizr/issues/266 显然有人用这样的自定义测试来解决这个问题,但我仍然不明白如何使用它.1

html5 modernizr polyfills

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

使用karma和webpack进行单元测试:_karma_webpack_ - 没有这样的文件或目录

我正在尝试使用覆盖(使用karma-coverage)和webpack(使用karma-webpack)运行单元测试.测试运行正常,但生成一个覆盖报告实际的源文件(未测试)需要通过加载并通过coveragewebpack预处理器.

不幸的是,这失败了以下错误:

ERROR [karma]: { [Error: no such file or directory]
  code: 'ENOENT',
  errno: 34,
  message: 'no such file or directory',
  path: '/_karma_webpack_/views/Foo/Foo.js' }
Error: no such file or directory
Run Code Online (Sandbox Code Playgroud)

Foo.js是包含源的文件.目录结构是这样的:

karma.conf.js
  - src/
      - js/
        - views/
            - Foo/
                - Foo.js
                - test/
                    - FooTest.js
Run Code Online (Sandbox Code Playgroud)

karma.conf.js:

module.exports = function (config) {
  config.set({
    basePath: 'src/js/',

    frameworks: ['jasmine'],

    files: [
      '**/test/*Test.js',
      '**/Foo.js',
    ],

    exclude: [],

    preprocessors: {
      '**/test/*Test.js': ['webpack'],
      '**/Foo.js': ['webpack', …
Run Code Online (Sandbox Code Playgroud)

karma-runner webpack karma-coverage

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

这个例子中的论点在哪里?

我目前正在阅读关于函数式编程的最充分指南,第2章.

在那里,给出了以下示例

var getServerStuff = function(callback) {
  return ajaxCall(function(json) {
    return callback(json);
  });
};
Run Code Online (Sandbox Code Playgroud)

然后重构为:

var getServerStuff = ajaxCall;
Run Code Online (Sandbox Code Playgroud)

在解释重构时,作者认为

return ajaxCall(function(json) {
  return callback(json);
});
Run Code Online (Sandbox Code Playgroud)

是相同的

return ajaxCall(callback);
Run Code Online (Sandbox Code Playgroud)

虽然我理解ajaxCall用匿名函数的返回值调用(这只是返回值callback),但我不知道重构版本应该如何工作 - json参数在哪里?我错过了什么?

javascript functional-programming

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

具有列顺序的响应式多列列表

我正在尝试创建一个有序的多列列表,但我正在努力与CSS网格布局规则.

期望的结果应该是敏感的.在小屏幕上2个网格列,在大屏幕上最多4个,同时保持列顺序.

而不是像这样订购:

1  2  3  4
5  6  7  8
9  10 11 12
13 14 15
Run Code Online (Sandbox Code Playgroud)

他们应该像这样订购:

1 5 9  13
2 6 10 14
3 7 11 15
4 8 12
Run Code Online (Sandbox Code Playgroud)

我觉得我很接近这个小提琴.

ol {
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: grey;
  
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(33.333%, 50%));
  grid-auto-flow: column;
  grid-template-rows: repeat(5, 1em);
}

li {
  outline: 1px solid orange;
}
Run Code Online (Sandbox Code Playgroud)
<ol>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item …
Run Code Online (Sandbox Code Playgroud)

css css3 css-grid

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

Firefox和Opera:SVG和背景大小会导致渲染效果不佳

我在页面上有一些使用SVG文件作为背景图像的元素.它在Opera,Chrome和Safari中运行良好,只有Firefox才能使图形真正像素化.

我已经对该主题进行了搜索,在这里甚至有一些类似的问题:
Firefox中的SVG渲染很糟糕
Firefox没有抗锯齿缩放的背景svg
Firefox SVG图形模糊

一些建议是不要过度使用background-size和扩展SVG width="100%" height="100%".

我只将SVG缩放了5%,所以真的不应该太多.添加width="100%" height="100%"是稍微修正了像素化,但与其他浏览器相比,它仍然非常模糊.

这个链接的评论有什么帮助:http://coding.smashingmagazine.com/2012/01/16/resolution-independence-with-svg/#comment-573707

最初的宽度和高度是22px.现在我已经设置为200px和voilà,SVG渲染得如此清晰 - 但现在Opera渲染它有点模糊/非常糟糕!此外,放大时,图形会"切断".因此,不是按比例缩放,而是在图标框中放大图形.那有什么问题吗?

有趣的是:作为按钮的背景图像,它呈现模糊.作为输入字段中的背景图像,它会呈现为"过于清晰",我称之为"过度清晰".

opera svg vector vector-graphics css3

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

阻止对文件的直接脚本访问

目前我这样做:

在一个文件中,让我们把它叫做file_one.php,我有

define( 'ROOT', realpath( dirname( __FILE__ ) ) );

require_once( ROOTPATH . '/file_two.php' );
Run Code Online (Sandbox Code Playgroud)

file_two.php我身上,然后在顶部:

if ( ! defined( 'ROOT' ) )
    exit;
Run Code Online (Sandbox Code Playgroud)

因此file_two.php只有在ROOT定义时才能访问内容,这种情况发生在file_one.php.如果你试图file_two.php直接访问它将无法正常工作,是不是?这种方法有什么缺陷吗?

php security

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

jQuery脚本:function(window,document,undefined)vs;(function($,window,document,undefined)

我已经看到一些嵌入在网页中的jQuery脚本

(function(window, document, undefined){...
Run Code Online (Sandbox Code Playgroud)

要么

;(function ( $, window, document, undefined ) {...
Run Code Online (Sandbox Code Playgroud)

我相信;如果脚本与其他文件连接并且有一个缺少的结束括号,那么可能会存在,这会;阻止minifier删除代码的第一行,但我不确定.

我发布的两个变种是什么?为什么人们这样打开他们的代码,为什么第一个例子错过了美元符号?

javascript jquery

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

HTML/CSS:列表元素的默认显示值?

浏览器的列表元素的默认显示值(如blockinline)是多少?

有没有可以查找类似内容的列表?我试着看看HTML5规范,但由于它有很多版本,我不知道哪一个是绑定的,或者其中任何一个都是绑定的,因为HTML5仍处于开发阶段.

html css

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

Babel错误:repl:我们发现了一个不是NodePath实例的路径.Possiblly由于序列化不良

当通过在线Babel转发器运行代码片段(取自关于ES2015中关键字的MDN页面let)时,它失败并出现以下错误:

repl: We found a path that isn't a NodePath instance. Possiblly due to bad serialisation.
Run Code Online (Sandbox Code Playgroud)

var list = document.getElementById("list");

for (var i = 1; i <= 5; i++) {
  var item = document.createElement("LI");
  item.appendChild(document.createTextNode("Item " + i));

  let j = i;
  item.onclick = function (ev) {
    console.log("Item " + j + " is clicked.");
  };
  list.appendChild(item);
}
Run Code Online (Sandbox Code Playgroud)

为什么会抛出错误,我该怎么办?

javascript ecmascript-6 babeljs

5
推荐指数
0
解决办法
182
查看次数

React:来自不同子组件的子组件中的触发方法

我在 React 中创建了两个组件,<Search />它们<List />都是<App />.

\n\n

当单击 中的按钮时<Search />,我想从 API 中获取某些内容并在 中显示结果<List />。虽然我通过在内部执行 fetch<App />并将响应作为 prop 传递给 来完成此工作<List />,但我更愿意将 fetch 封装在内部<List />

\n\n

不幸的是,我很难找到一种方法来做到这一点。“React 方式”可能是通过一些巧妙的 prop 传递来做到这一点,但我还没有找到一种巧妙的方法来做到这一点 \xe2\x80\x93 即使需要一个“shouldFetch”布尔值获取后重置似乎很麻烦并且会触发不必要的渲染。

\n\n

这个答案用于refs类似的可能有效的东西,但实际上我有点犹豫是否要尝试它,因为refs根据 React 文档,它似乎有点肮脏,因为它们“必须修改典型数据流之外的子级”。

\n\n

单击<List />按钮后如何指示我的组件执行某些操作?<Search />

\n\n

如果需要,我可以提供代码 \xe2\x80\x93 但希望这个问题比我看起来更简单。

\n

reactjs

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