小编mac*_*ost的帖子

如何使Firefox打印为背景颜色样式?

我有一些简单的CSS:

#someElement {
    background-color:black;
    color:white;
}
Run Code Online (Sandbox Code Playgroud)

它在浏览器中看起来不错,但是当我在Firefox中打印它时,它在白色背景上显示为黑色文本.我想这是一种节省墨水的功能,但有什么方法吗?

css printing firefox print-css

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

CoffeeScript示例代码中出现意外的'INDENT'

当我第一次玩CoffeeScript时,我遇到了一个问题.为了调试我的问题,我尝试用咖啡脚本站点中的一个示例代码替换我的整个文件:

kids =
  brother:
    name: "Max"
    age:  11
  sister:
    name: "Ida"
    age:  9
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译该代码时,我得到:

Error: In coffee/main.coffee, Parse error on line 3: Unexpected 'INDENT'
    at Object.parseError (/usr/lib/coffeescript/parser.js:501:11)
    at Object.parse (/usr/lib/coffeescript/parser.js:573:32)
    at Object.compile (/usr/lib/coffeescript/coffee-script.js:23:22)
    at /usr/lib/coffeescript/command.js:99:27
    at /usr/lib/coffeescript/command.js:72:28
    at fs:84:13
    at node.js:773:9
In coffee/main.coffee, Parse error on line 3: Unexpected 'INDENT'
Run Code Online (Sandbox Code Playgroud)

由于这是来自CoffeeScript网站的代码,我认为代码本身不是问题.但是,编译器似乎也正常工作; 如果我编译:

a = 2
Run Code Online (Sandbox Code Playgroud)

它生成一个文件:

(function(){
  var a;
  a = 2;
})();
Run Code Online (Sandbox Code Playgroud)

正如所料.所以换句话说,代码很好,编译器很好,但不知怎的,我得到了这个意外的'IDENT'错误......任何人都可以帮我理解发生了什么?

coffeescript

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

React PropTypes DOM元素?

如何将属性标记为必须是DOM元素?

这个页面说这PropTypes.element实际上是一个React元素,那么DOM元素的等价物是什么?

reactjs react-proptypes

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

如何修复Eclipse中的"Mark Occurrences"?

Eclipse是一个很棒的编辑器,其中有许多精彩的功能,我最喜欢的是Mark Occurrences功能.但是,我最近安装了Aptana插件,在尝试配置它时,我设法在我的Eclipse安装中破坏了Mark Occurrences.

该功能仍然有些作用,但它现在只突出显示首次创建它的位置,而不是突出显示给定对象的所有实例.换句话说,在:

1. Dog dog = new Dog();
2. dog.bark();
3. dog.bark();
Run Code Online (Sandbox Code Playgroud)

只会突出显示第1行中的"狗",而不是2或3中的"狗".

然而,在我知道我已经配置好所有三个"狗"引用之前,Eclipse将突出显示.有谁知道我更改了什么配置选项以"打破"这样的事件标记?

eclipse

23
推荐指数
5
解决办法
4万
查看次数

如何在自定义toJSON方法中使用JSON.stringify?

所以,JSON.stringify提供了一个转换JS对象的好方法:

var baz = {"foo":1, "bar":someFunction};
Run Code Online (Sandbox Code Playgroud)

进入JSON字符串,如:

{"foo":1}
Run Code Online (Sandbox Code Playgroud)

它使用可选的第二个参数来控制应该序列化哪些字段:

JSON.stringify(baz, ["foo"]);
Run Code Online (Sandbox Code Playgroud)

那很好,但是有一个问题.假设您的"baz"实际上是另一个对象的属性,并且您想序列化该另一个对象:

someObject.baz = {"foo":1, "bar":someFunction};
JSON.stringify(someObject, ["baz"]);
Run Code Online (Sandbox Code Playgroud)

好吧,通常你只需要在baz上定义一个toJSON方法,例如:

someObject.baz = {"foo":1, "bar":someFunction};
someObject.baz.toJSON = function() { /* logic to "toJSON" baz*/ }
JSON.stringify(someObject, ["baz"]);
Run Code Online (Sandbox Code Playgroud)

现在,正如我之前提到的,我们已经有了"toJSON"baz的完美逻辑:

someObject.baz.toJSON = function() {
    return JSON.stringify(baz, ["foo"]);
}
Run Code Online (Sandbox Code Playgroud)

但是如果你尝试把它放到你的toJSON中,你会得到一个递归错误,因为stringify会触发toJSON,这将触发stringify,这将... :-(

你可以通过黑客解决这个问题:

someObject.baz.toJSON = function() {
    var oldToJON = this.toJSON;
    this.toJSON = null;
    var ret = JSON.stringify(baz, ["foo"]);
    this.toJSON = oldToJON;
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

但是......这似乎是错的.所以,我的问题是:是否有可以利用任何方式漂亮的内置JSON.stringify的系列化电源内部对象的方法的toJSON(不必隐藏在字符串化操作过程中的toJSON方法本身)?

javascript json

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

为什么我的Chrome Profiler没有为我的对象显示正确的保留路径,为什么我的对象永远不会被释放?

我正在尝试调试我的webapp中的内存泄漏.

我拍摄堆的快照并比较不同的堆.

我发现我的一些物体正在某处被引用.但是,我的所有对象都通过看起来像我内部的对象来保留,例如:

Profiler显示我的类被引用

正如您所看到的,这个SectionNavView对象是由我创建的一些方法引用的:cleanUp,hide,isShown等,使用我的局部变量,但这些方法是从我无法控制的东西中引用的:idToWrappedObject.有时,还有另一个中介 - 一个injectScript对象.

如果我的对象仅被内部V8引用引用,那么它们是否应该在分析器在GC期间拍摄快照之前被释放?

javascript debugging profiler memory-leaks google-chrome

23
推荐指数
1
解决办法
2786
查看次数

如何在Eclipse中进行"下一次出现"

在Eclipse中,您可以启用"Mark Occurrences",然后它将突出显示当前范围中给定变量的每个匹配项.这很好,但我真的想从一个这样的事件转移到下一个事件.

到目前为止,我已经找到了两条关于如何做到这一点的建议,但两项都没有奏效.首先是这个SO帖子:Eclipse导航到下一个/上一个标记的出现,这表明ctrl+k.但是,这对我不起作用:在我的Eclipse中,键映射必然是"查找下一个",而不是"下一次出现"(在Eclipse键绑定中似乎没有"下一次出现",但是也许我不是用正确的名字来称呼它.

然后我找到了一个论坛帖子,建议点击工具栏中的黄色向上箭头并检查事件,然后使用ctrl+,.如果它有效的话,这本来是次优的,因为我已经ctrl+,习惯在错误/警告之间移动,但至少它本来就是......但它根本不起作用(ctrl+,只是让我转到下一个警告).

所以,我的问题是:如何在Eclipse中从一个事件移动到下一个事件(最好通过键盘快捷键)?

eclipse

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

如何记录ActiveResource使用的URL?

Rails ActiveResource很棒......除了一件事:据我所知,没有办法看到它在幕后使用的是什么URL.例如,假设我有一个名为Issue的ActiveResource,用于myIssues.com/issues.xml上的web服务.如果我做:

Issue.find(:all, :params => {:page => 2})
Run Code Online (Sandbox Code Playgroud)

我希望ActiveResource可以调用:

myIssues.com/issues.xml?page=2
Run Code Online (Sandbox Code Playgroud)

......但我实际上并不知道.据我所知,ActiveResource可能已经决定它不喜欢单词"page",所以它实际上使用:

myIssues.com/issues.xml?mod_page=2
Run Code Online (Sandbox Code Playgroud)

这使调试变得困难.现在我有一种情况,如果我转到我认为 ActiveResource正在使用的URL ,它可以正常工作.但是,当我实际使用ActiveResource时,它不起作用.看到它的GETing会对此非常有帮助,所以...

有没有人知道记录(或以其他方式输出;如果有一些资源,也可以很好地工作的方法)的方法,ActiveResource用来做它的东西的URL?

logging ruby-on-rails activeresource

22
推荐指数
2
解决办法
6545
查看次数

如何使Webpack使用缓存后缀?

在Webpack之前,我总是依赖于以下模式来进行"缓存清除":

<script src="foo.js?cacheBust=12345" />
Run Code Online (Sandbox Code Playgroud)

哪个12345是服务器在每个构建时为我生成的标记(它可能是Git哈希,尽管在我的情况下它不是).

有了Webpack,我现在有两个文件:build.jschunk.1.js.由于我使用正常的脚本标记带来第一个,我可以使用上面的模式:

<script src="build.js?cacheBust=12345" />
Run Code Online (Sandbox Code Playgroud)

但是,此时build.js会进行提取chunk.1.js,并且当它执行时,它不包括缓存无效的后缀.

我想让Webpack自动附加?cacheBust=12345,但我不知道12345构建时的部分,所以我不能把它包含在我的webpack.config.相反,我必须等到HTML页面被评估,此时我从服务器获取令牌.

所以,我的问题是,有没有办法让Webpack查看用于获取初始文件的参数(例如.?cacheBust=12345)并在获取其他文件时附加相同的参数?

javascript browser-cache webpack

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

Await的运营商优先级是多少?

在Javascript中,某些运算符先于其他运算符处理:

1 + 2 * 3
// 1 + (2 * 3)
// 7 because * has higher precedence than +

1 === 0 + 1
// 1 === (0 + 1)
// true because + has a higher precedence than ===
Run Code Online (Sandbox Code Playgroud)

MDN具有所有运营商及其优先级的完整细分 ......除外await.

await getFoo() * 2; // await (getFoo() * 2) or (await getFoo()) * 2?
await getFoo() === 5; // await (getFoo() === 5) or (await getFoo()) === 5?
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释在等待之前/之后处理哪些运营商?

现在我觉得我必须添加一些可能不必要的括号,因为我不确定在之前/之后会处理什么await …

javascript operator-precedence async-await

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