小编jin*_*ula的帖子

我应该对伪元素使用单冒号还是双冒号?

由于IE7和IE8不支持伪元素的双冒号表示法(例如::after或者::first-letter),并且由于现代浏览器支持单冒号符号(例如:after)以实现向后兼容性,因此我应该仅使用单冒号表示法吗? IE8的市场份额下降到可以忽略不计的水平回到我的代码库中找到/替换?或者我应该包括两者:

.foo:after,
.foo::after { /*styles*/ }
Run Code Online (Sandbox Code Playgroud)

如果我关心IE8用户(可怜的亲戚),单独使用双重似乎很愚蠢.

css css-selectors internet-explorer-8 internet-explorer-7 pseudo-element

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

ColdFusion单元测试框架

作为一个相关的子问题 - 是否有任何CF单元测试框架支持或更容易使用模拟/存根?

我在一个看起来最有希望的快速谷歌中发现的2是MXUnit和CFUnit.是否有其他人,以及哪一个(?)有最广泛的采用和积极的发展?足够的问题塞进一个?

基本上我想做个好的选择.

编辑请注意,在最初编写问题时,MXUnit是首选,而TestBox也不会在github上使用几年.请参阅已接受答案的评论.

coldfusion mxunit cfml

18
推荐指数
2
解决办法
3560
查看次数

UIButton带渐变,圆角,边框和阴影

网站上有一些类似的问题,但我正在寻找具体而略有不同的东西.

我按照这里给出的指示:http://www.cimgf.com/2010/01/28/fun-with-uibuttons-and-core-animation-layers/ 来创建UIButton的子类,以便创建一个我可以使用的泛型类指定渐变颜色,而不是尝试使用静态图像.

我遇到了一个问题,其中按钮层上的setMasksToBounds将允许A)显示阴影,但也允许渐变层显示超出圆角或B)渐变层剪切到圆角,但不是允许投影显示

我对这个问题的解决方案看起来很笨重(尽管它有效)我想知道是否有人知道更好和/或更清洁的方法来完成同样的事情.这是我的代码:

CSGradientButton.h

#import <UIKit/UIKit.h>
@interface CSGradientButton : UIButton {
    UIColor *_highColor;
    UIColor *_lowColor;
    CAGradientLayer *gradientLayer;
    CALayer *wrapperLayer;
    CGColorRef _borderColor;
}

@property (nonatomic, retain) UIColor *_highColor;
@property (nonatomic, retain) UIColor *_lowColor;
@property (nonatomic) CGColorRef _borderColor;
@property (nonatomic, retain) CALayer *wrapperLayer;
@property (nonatomic, retain) CAGradientLayer *gradientLayer;

- (void)setHighColor:(UIColor*)color;
- (void)setLowColor:(UIColor*)color;
- (void)setBorderColor:(CGColorRef)color;
- (void)setCornerRadius:(float)radius;

@end
Run Code Online (Sandbox Code Playgroud)

CSGradient.m(有趣的部分,无论如何)

#import "CSGradientButton.h" 

@implementation CSGradientButton

...

- (void)awakeFromNib
{
    // Initialize the gradient wrapper layer
    wrapperLayer = [[CALayer alloc] init]; …
Run Code Online (Sandbox Code Playgroud)

gradient border shadow uibutton ios

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

如何在同一页面上加载动态脚本后调​​试非动态脚本

这个答案/sf/answers/765060131/ 这个问题可以通过类似的WebKit,萤火虫或IE8开发工具一些调试器来调试动态加载的JavaScript?是调试动态脚本的地方.

我面临的问题是我有一个页面上有一个脚本,并且在它加载ajax请求后会触发一些HTML和一个放入页面的脚本.//# sourceURL=myDynamicDocumentFragment.html添加该位后,我可以调试动态脚本.

但是一旦它被加载,那么最初加载的外部页面的另一个脚本就会脱轨.我可以在空行上设置断点,不能在合法的行上设置它们.调试器将停止在它们上,但它不会出现在我期望的代码中.

它似乎是开发工具窗口显示原始脚本,调试器本身正在运行其他东西 - 一些更新版本的代码,包括外部页面的脚本和稍后添加的动态脚本.或者它可能只是显示它正在显示的行号以及它们实际运行的代码中映射的内容.

我希望我有一个很好的简单代码片段来演示这个问题,但我没有.有没有人看过这个,有没有人知道如何让Chrome'刷新'开发工具脚本/调试器而无需刷新页面?(它必须不刷新页面,因为当页面加载时工作正常 - 只有在动态脚本被丢弃后才会轮到车轮掉下来)

注意:我已经使用Chrome标记了,因为我正在使用它(第38节).我不知道其他浏览器的表现如何.

javascript debugging google-chrome

12
推荐指数
1
解决办法
297
查看次数

节点子进程生成stdout返回为null

我正在编写一个Yeoman生成器并使用child_process.spawn()(通过yeoman的spawnCommand() - 请参阅https://github.com/yeoman/generator/blob/master/lib/actions/spawn_command.js)

我的代码看起来像这样:

var list = this.spawnCommand('npm', ['list', 'sails'], {stdio: 'pipe'});
list.stdout.on('data', /* callback here that wants to consume the command's output */);
Run Code Online (Sandbox Code Playgroud)

我可以看到list.stdio存在,它有[0,1,2]关键.它们中的每一个都是null(或未定义).也就是说,记录_.keys(list).join()输出,,. list.stdout.on()给我一个例外,说明stdout是null.

我需要做的是检查是否安装了特定的软件包,并查看版本号是什么.但我后来还需要做其他解析CLI命令输出的东西(例如,git log输出),所以我需要一个通用的解决方案. .spawn()看起来像我想要的,但我见过的例子似乎表明stdout应该是一个有.on()方法的东西.例如,这里给出的那个:http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options它显示正在运行ls -lh /usr.

我错过了一些简单的事吗?我想知道我运行的命令是否完全没有输出,如果这意味着stdout将为null.如果是这种情况,那么我只需要识别可能没有输出的命令,并在尝试使用它之前检查以确保stdout不为null.

实际编辑,npm list命令的输出显示在命令行上,但在我用于诊断问题的日志语句之后(我在.spawnCommand()调用之后和调用之前放了.on().但我需要在我的访问中访问它代码 - 让它出现在命令行旁边就在这一点上(除了它让我知道进程成功运行了CLI命令).

command-line-interface child-process node.js

11
推荐指数
2
解决办法
4268
查看次数

为什么javascript字符串匹配包括undefined

我有一个或多或少像这样使用的正则表达式:

'(801) 555-1234'.match(/^(1[-. ]?)?\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}$/)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这会返回

["(801) 555-1234", undefined]
Run Code Online (Sandbox Code Playgroud)

如果我将全局标志添加到正则表达式(例如...{4}$/g),则未定义的值会丢失并且我得到

["(801) 555-1234"]
Run Code Online (Sandbox Code Playgroud)

如果没有必要,我宁愿不使用g标志(在我看来它不是,因为正则表达式以^开头并以$结尾).

PS忽略了正则表达式的质量,因为它的目的是匹配电话号码.它可能不太理想,但是来自我维护的代码.大多数情况下,我对^ ... $以及标志的存在/不存在以及未定义的值感兴趣.

为什么要undefined出现,为什么国旗会有所不同?

javascript regex

8
推荐指数
2
解决办法
9173
查看次数

window.print()JavaScript的特征检测解决方案

有没有办法检测window.print()的支持?我更愿意检测这个功能本身,而不是试图检测我是在移动浏览器或桌面,iOS或Android或我可能在哪个特定的移动浏览器上.

背景

以下链接让我相信:

  • Apple要求所有第三方浏览器都使用UIWebView
  • 运行window.print()时,非Safari应用程序中使用的UIWebView不执行任何操作
  • 运行window.print()时,iOS上的Safari会执行适当的操作

链接:

PS我在Modernizr文档中查看它是否可以检测到对打印的支持,但没有发现任何内容.

PPS我看到Chrome for iOS确实支持打印,尽管是通过GCP.在这里,只是寻找功能检测而不是打印解决方案.(https://support.google.com/chrome/answer/3049815?hl=zh-CN&ref_topic=1719889)

编辑 为了澄清,似乎window.print不是任何标准的一部分:https://developer.mozilla.org/en-US/docs/Web/API/Window.print.如果window.print存在于某些浏览器中但没有做任何有用的事情(例如,没有连接到适当的打印功能的任何特定于浏览器的实现),这最终是我想要检测的.

我的猜测是,移动浏览器供应商将为window.print定义一些内容,以便任何试图调用它的脚本都不会出错; 但是调用可能是No op,或者可能向操作系统发送OS忽略的请求.

我越是想到这可能会如何运作,我就会越来越没有希望通过一种简单的JavaScript方法来检测这个功能,这太糟糕了.

javascript printing browser-feature-detection

8
推荐指数
1
解决办法
7958
查看次数

关于gulp .pipe()的节点路径的说明

我的问题从另一个问题开始,在这里问:Gulp:如何设置相对于已处理文件的dest文件夹(使用通配符时)?

我有类似的情况,我需要在每个模块的基础上制作压缩版本.就是,我有

ui/test/one/script1.js
ui/test/two/script2.js
Run Code Online (Sandbox Code Playgroud)

我需要gulp将文件复制到相关目录中,所以我最终得到了

ui/test/one/compressed/script1.js
ui/test/two/compressed/script2.js
Run Code Online (Sandbox Code Playgroud)

我有以下gulp任务

gulp.task('test', function() {
    return gulp.src('ui/test/**/*.js')
        .pipe(gulp.dest(function(file) {
            return path.join(path.dirname(file.path), 'compressed');
        }));
});
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我最终会

ui/test/one/compressed/one/script1.js
ui/test/two/compressed/two/script2.js
Run Code Online (Sandbox Code Playgroud)

我在文档中看到它所说的

cwd - 指定文件夹相对的工作目录.base - 指定相对于cwd的文件夹.默认是glob开始的地方.保存在.dest()时用于确定文件名

我有几个问题,特别是约.src(),.dest()以及路径和文件对象.(也就是说,虽然我确定还有其他方法可以实现我的最终目标,但这个问题具体是关于上面的示例gulp代码的行为和提到的函数,所以我可以更好地理解它们的行为和API.)

问题

  • 当文档说"文件夹相对于工作目录"时,这是什么文件夹?
  • 在同一个注释中,关于这个注释和文档中的位置,它表示"base - 指定相对于cwd的文件夹.默认是glob开始的地方"是什么"glob开始的地方"是什么意思?我对'glob'的理解是它是整个字符串,但它是否真的意味着该字符串中的*字符?因此,对于"一些/文件夹/**/*.JS"与现有的文件some/folder/a/b/c/foo.js,我不知道,如果基地some/folder/,some/folder/a/some/folder/a/b/c/
  • 有办法说<where the glob begins> + '..'吗?
  • 我在说path.join(path.dirname(file.path),'compressed')我假设正在生产C:\blah\ui\test\one\compressed.接下来,无论什么决定文件的实际名称都one\script1.js在考虑之中.我如何改变主意,以便只考虑script1.js

注意:我尝试执行以下操作(使用gulp-debug)

gulp.task('test', function() {
    return gulp.src('ui/test/**/*.js', {cwd: './'})
        .pipe(debug({minimal: false}))
        .pipe(rename(function(path) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js gulp

8
推荐指数
1
解决办法
900
查看次数

测试值是否为Coldfusion中的字符串

我有一个结构,我检查是否存在密钥.然后我需要测试该键的值是否为字符串.我没有在Adobe CF文档中发现任何类似isString()函数的内容(类似于isNumeric()).

除了使用看似更广泛的方法之外还有其他好方法isSimpleValue()吗?

coldfusion

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

设置反应导航 DrawerNavigator 的滑动区域宽度

我在 Expo 应用程序中使用 DrawerNavigator,虽然它工作得很好,但我没有看到用于自定义滑动将触发抽屉打开的区域宽度的选项。

目前它是一个相当小的带,但我希望它至少宽一点——也许是屏幕的 20%(甚至像 Slack 一样,是 100%)。

有没有办法用这个组件来做到这一点?

react-native react-navigation expo

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