小编mum*_*bot的帖子

Javascript检测HTML元素上可用的事件处理程序

有没有一种方法可以检测HTML元素本身可使用的事件处理程序?

例如:

isAvailable(img.onload) === true;    // All browsers
isAvailable(script.onload) === true; // Non-IE only (Webkit, Firefox, Opera)
isAvailable(link.onload) === true;   // IE (and I think Opera) only
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想在脚本中进行功能检测,如果元素可以使用onload进行使用,否则进行回退。当前,我不得不做浏览器派生(基于IE),这很烦人,因为IE可能开始支持script.onload,而Webkit / Firefox可能开始支持link.onload。

不幸的是,分配element.onload使得事件不再“未定义”,无论它是否最终会触发。

谢谢!

javascript events dom javascript-events onload

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

Javascript正则表达式多组匹配模式

我有一个关于Javascript正则表达式忍者的问题:如何使用正则表达式分组从字符串中简化变量创建?我目前没有使用任何分组工作,但我希望看到更好的方式!

字符串是:

var url = 'resources/css/main.css?detect=#information{width:300px;}';
Run Code Online (Sandbox Code Playgroud)

有效的代码是:

var styleStr = /[^=]+$/.exec(url).toString();
var id = /[^\#][^\{]+/.exec(styleStr).toString();
var property = /[^\{]+/.exec(/[^\#\w][^\:]+/.exec(styleStr)).toString();
var value = /[^\:]+/.exec(/[^\#\w\{][^\:]+[^\;\}]/.exec(styleStr)).toString();
Run Code Online (Sandbox Code Playgroud)

这给出了:

alert(id)       //information
alert(property) //width
alert(value)    //300px
Run Code Online (Sandbox Code Playgroud)

任何接受者?

javascript regex grouping

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

Webpack 和 Precss 不会在 @import 文件更改时重新加载

我正在设置一个基本的 Webpack 安装,并希望使用PostCSSPreCSS插件在 @imported 文件中自动重新加载浏览器预处理的 CSS 。目前,如果我修改并保存 @imported 文件,浏览器不会刷新(下面示例中的 body.css)。如果我随后保存根引用的 CSS 文件 (styles.css),则浏览器会刷新并反映对 @imported 文件所做的任何更改。

我尝试使用可配置的 webpack-dev-server,并使用 server.js。我试过没有和安装热模型重新加载(HMR)。

有没有办法让 webpack 监视 @imported CSS 文件,或者我在这里根本错过了什么?

包.json

"dependencies": {
  "react": "^0.14.0",
  "react-dom": "^0.14.0"
},
"devDependencies": {
  "autoprefixer": "^6.3.1",
  "css-loader": "^0.23.1",
  "extract-text-webpack-plugin": "^1.0.1",
  "postcss-loader": "^0.8.0",
  "postcss-scss": "^0.1.3",
  "precss": "^1.4.0",
  "react-hot-loader": "^1.3.0",
  "style-loader": "^0.13.0",
  "webpack": "^1.12.13",
  "webpack-dev-server": "^1.14.1"
},
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "node server.js",
  "start-dev-server": "webpack-dev-server 'webpack-dev-server/client?/' --host 0.0.0.0 --port 9090 …
Run Code Online (Sandbox Code Playgroud)

reload webpack webpack-dev-server postcss webpack-hmr

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

当Webpack Dev Server代理时,Wordpress会重定向到localhost而不是虚拟主机

我想尝试做一个相对简单的设置:

  • 具有HTML虚拟主机的Apache服务器.
  • Webpack和Webpack Dev Server用于资产重新加载和生成.

为此,Webpack Dev Server proxies另一台服务器要传递不知道如何处理的请求.

使用基本的python服务器(可以工作):

  1. http:// localhost:5000上启动python webserver .
  2. 运行npm start.
  3. Webpack Dev Server使用http:// localhost:9090启动并代理python服务器.
  4. 访问http:// localhost:9090并查看python服务器和Webpack资产的HTML结果.

使用Apache服务器:

  1. 启动Apache服务器.
  2. 运行npm start.
  3. Webpack dev服务器使用http:// localhost:9090启动并代理Apache服务器.
  4. 访问localhost:9090浏览器自动重定向到http:// localhost并显示"It works!".

如果我在浏览器中单独访问http://vhost.name,我会看到正确的HTML.我的环境是默认的Apache Server版本:Mac OSX El Capitan上的Apache/2.4.16(Unix).

的package.json

"scripts": {
  "test": "node server.js",
  "start": "npm run start-dev-server",
  "start-dev-server": "webpack-dev-server 'webpack-dev-server/client?/' --host 0.0.0.0 --port 9090 --progress --colors",
  "build": "webpack"
},
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

/*global require module __dirname*/
var webpack …
Run Code Online (Sandbox Code Playgroud)

apache proxy virtualhost webpack-dev-server

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

带有 jest.config.js 的 Jest cli testPathIgnorePatterns 结果未找到测试

我想运行结合 cli 和 jest.config.js 的 jest,所以我可以使用相同的配置,但在运行时稍作改动

jest --config=jest.config.js
Run Code Online (Sandbox Code Playgroud)

结果是

Test Suites: 1 failed, 163 passed, 164 total
Tests:       8 skipped, 1685 passed, 1693 total
Snapshots:   87 passed, 87 total
Time:        34.719s, estimated 44s
Run Code Online (Sandbox Code Playgroud)

尽管

jest --config=jest.config.js --testPathIgnorePatterns=[ignore]
Run Code Online (Sandbox Code Playgroud)

结果是

752 files checked.
  testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 164 matches
  testPathIgnorePatterns: [ignore] - 0 matches
  testRegex:  - 0 matches
Pattern:  - 0 matches
error Command failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

如果我修改配置

modulePathIgnorePatterns: [
'<rootDir>/src/.*/__mocks__',
'<rootDir>/node_modules',
'<rootDir>/.*/ignore',
],
Run Code Online (Sandbox Code Playgroud)

结果是

Test Suites: 163 passed, 163 …
Run Code Online (Sandbox Code Playgroud)

jestjs

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

在MacOSX 10.9.5上,Sed错误"\ 1未在RE中定义"

我正在尝试使用bash为我的MP3文件名(非常重要)构建一个通用格式化程序,其中很大一部分是能够使用正则表达式变量移动文本.例如,我试图从ft.Kevin Parker周围删除括号().

oldfilename="Mark Ronson - 02 Summer Breaking (ft. Kevin Parker).mp3"

newfilename=$(echo $oldfilename | sed -E "s/ft.\(*\)/ft.\1/g")
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

sed: 1: "s/ft.\(*\)/gt.\1/g": \1 not defined in the RE
Run Code Online (Sandbox Code Playgroud)

我已尝试转义而不是转义(),并按照.bash_profile sed:\ 1中的建议添加和删除-E开关.救命?!

regex macos bash sed

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