var obj = {}
obj.__setitem__ = function(key, value){
this[key] = value * value
}
obj.x = 2 // 4
obj.y = 3 // 9
Run Code Online (Sandbox Code Playgroud)
JavaScript没有__setitem__,这个例子显然不起作用.
在python __setitem__中的工作方式如下:
class CustomDict(dict):
def __setitem__(self, key, value):
super(CustomDict, self).__setitem__(key, value * value)
d = CustomDict()
d['x'] = 2 # 4
d['y'] = 3 # 9
Run Code Online (Sandbox Code Playgroud)
是否可以在JavaScript中实现__setitem__行为?所有棘手的解决方法都会有所帮助.
三列必须填充父容器的宽度.左列和右列的宽度不得小于150像素.中心列的宽度不得超过200像素.
我创建了一个使用JavaScript进行布局的参考页面.是否可以使用纯CSS进行相同的布局?
截图http://elv1s.ru/files/html+css/min-width_max-width_columns.png
它至少应该适用于IE 8,Firefox 3.6,Chrome 7,Safari 5和Opera 10.63.
我正在努力建立这个:

当我在左侧编辑字段时,它应该更新右边的字段,反之亦然.
在输入字段中编辑值会导致文本光标在其末尾跳转.
在华氏温度字段中键入"2"将替换为1.999999999999,如屏幕截图所示.这是因为双重转换:
视图的Fº→模型的Cº→视图的Fº.

我怎么能避免这种情况?
更新:
我想知道在Backbone.js等MVC框架中处理双向绑定的优雅方式.
var Temperature = Backbone.Model.extend({
defaults: {
celsius: 0
},
fahrenheit: function(value) {
if (typeof value == 'undefined') {
return this.c2f(this.get('celsius'));
}
value = parseFloat(value);
this.set('celsius', this.f2c(value));
},
c2f: function(c) {
return 9/5 * c + 32;
},
f2c: function(f) {
return 5/9 * (f - 32);
}
});
var TemperatureView = Backbone.View.extend({
el: document.body,
model: new Temperature(),
events: {
"input #celsius": "updateCelsius",
"input #fahrenheit": "updateFahrenheit"
},
initialize: function() {
this.listenTo(this.model, …Run Code Online (Sandbox Code Playgroud) data-binding model-view-controller model-binding backbone.js
我想将异步函数转换为同步函数.
function fetch() {
var result = 'snap!';
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function messyCallback(data){
result = data;
});
return result;
}
document.write(fetch());?Run Code Online (Sandbox Code Playgroud)
结果总是"快速!",因为$.getJSON完成后运行fetch().
我的第一个想法是:
function fetch() {
var result = 'snap!';
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function messyCallback(data){
result = data;
});
while (true) {
if (result != 'snap!') return result;
}
}Run Code Online (Sandbox Code Playgroud)
它不起作用,也吹掉了浏览器.
我在JS 1.7中读到了关于生成器和迭代器的内容,但我不知道如何将它应用于我的问题.
这个问题并不是关于jQuery的.而不是$ .getJSON可以是任何其他异步函数.
第二轮。首先是“如何获取 WebKit 中所有受支持的 CSS 属性? ”。
我正在寻找神奇的CSSkeywords功能:
CSSkeywords('float') --> ['left', 'right', 'none']
CSSkeywords('width') --> ['auto']
CSSkeywords('background') --> [
["repeat", "repeat-x", "repeat-y", "no-repeat"],
["scroll", "fixed"],
["top", "center", "bottom", "left"],
/*regexp for color*/,
/*regexp for url*/,
"none"
]
Run Code Online (Sandbox Code Playgroud) 更新: Google图片不再使用<canvas>.
我注意到Google Images正在使用画布来渲染图像.<img>用作不支持画布的浏览器的后备.
<a class="rg_l" style="..." href="...">
<canvas
id="cvs_NcG8skPEDu7FWM:b"
style="display:block"
width="83"
height="113">
</canvas>
<img
class="rg_i"
id="NcG8skPEDu7FWM:b"
data-src="http://t0.gstatic.com/images?q=tbn:ANd9GcQCB5NEbEUQhtmFI098HLSkfmoHTBtUfERUNkNKrhgFbtFBxZXY9ejXn_pUGg"
height="113"
width="83"
style="width:83px;height:113px"
onload="google.isr.fillCanvas(this);google.stb.csi.onTbn(0, this)"
src="http://t0.gstatic.com/images?q=tbn:ANd9GcQCB5NEbEUQhtmFI098HLSkfmoHTBtUfERUNkNKrhgFbtFBxZXY9ejXn_pUGg">
</a>
Run Code Online (Sandbox Code Playgroud)
什么是使用<canvas>而不是<img>?
我想获取文件源并将其包装在JSONP中.
例如,我想从我不拥有的主机中检索pets.txt作为文本.我想通过使用客户端JavaScript来做到这一点.
我正在寻找可以将任何东西转换为JSONP的在线服务.
Yahoo Query Language就是其中之一.
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://elv1s.ru/x/pets.txt"&format=json&callback=grab
如果robots.txt未阻止URL,则此方法有效.YQL 尊重robots.txt.我无法获取http://userscripts.org/scripts/source/62706.user.js,因为它是通过robots.txt阻止的.
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://userscripts.org/scripts/source/62706.user.js"&format=json&callback=grab
"禁止":"域名的robots.txt禁止抓取网址:http://userscripts.org/scripts/source/62706.user.js "
所以我正在寻找其他解决方案.
在Firefox,Opera和IE中我可以通过以下方式获取它们:
>> for (k in document.body.style) console.log(k) -> opacity background height textAlign . ... long list ... . pointerEvents
在WebKit中,结果完全不同:
>> for (k in document.body.style) console.log(k) -> cssText length parentRule getPropertyValue getPropertyCSSValue removeProperty getPropertyPriority setProperty item getPropertyShorthand isPropertyImplicit
更新:最新的WebKit确实在HTMLElement.style中枚举CSS属性,与所有浏览器相同.
Chrome DevTools自动保存不适用于Rails Asset Pipeline.问题的罪魁祸首是资产URL - 我无法通过其URL解密实际文件路径.例如,/ assets/application.css可以引用app/assets/stylesheets/application.css,lib/assets/stylesheets/application.css或vendor/assets/stylesheets/application.css.
我想知道,如何将资产URL更改为以下之一:
我很感激为此编写Rails插件的任何帮助.
ruby-on-rails ruby-on-rails-plugins google-chrome-devtools asset-pipeline
我想替换HTML文件中的一些元素,保持所有其他内容不变.
Document doc = Jsoup.parse("<div id=title>Old</div >\n" +
"<p>1<p>2\n" +
"<table><tr><td>1</td></tr></table>");
doc.getElementById("title").text("New");
System.out.println(doc.toString());
Run Code Online (Sandbox Code Playgroud)
我希望有以下输出:
<div id=title>New</span></div >
<p>1<p>2
<table><tr><td>1</td></tr></table>
Run Code Online (Sandbox Code Playgroud)
相反,我有:
<html>
<head></head>
<body>
<div id="title">New</div>
<p>1</p>
<p>2 </p>
<table>
<tbody>
<tr>
<td>1</td>
</tr>
</tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Jsoup补充说:
我可以将修改后的HTML序列化为原始版本吗?杰里科做到了这一点,但它没有像Jsoup那样提供灵活的DOM操作方法.
我做了一个简单的抓取演示页面.它没有任何缓和/加速.我想使用JavaScript 在kulesh.info(Flash网站)上进行相同的缓动/加速.我怎样才能做到这一点?
在JavaScript中平滑抓取(滚动,拖动)的任何示例都是有用的,也是一种语言无关的算法.
[5, 4, 4, 6].indexOfArray([4, 6]) // 2
['foo', 'bar', 'baz'].indexOfArray(['foo', 'baz']) // -1
Run Code Online (Sandbox Code Playgroud)
我想出了这个:
Array.prototype.indexOfArray = function(array) {
var m = array.length;
var found;
var index;
var prevIndex = 0;
while ((index = this.indexOf(array[0], prevIndex)) != -1) {
found = true;
for (var i = 1; i < m; i++) {
if (this[index + i] != array[i]) {
found = false;
}
}
if (found) {
return index;
}
prevIndex = index + 1
}
return index;
};
Run Code Online (Sandbox Code Playgroud)
后来我发现维基百科称之为Naïve字符串搜索 …
void slice_first_char(char ** string)
{
*string = &(*string[1]);
}
int main(int argc, char * argv[])
{
char * input = "abc";
input = &(input[1]);
puts(input); // "bc" as expected.
slice_first_char(&input);
puts(input); // \372\277_\377
// What‘s going on?
}
Run Code Online (Sandbox Code Playgroud)
如何重写slice_first_char函数以使其按预期工作?
javascript ×6
css ×3
dom ×2
html ×2
acceleration ×1
algorithm ×1
asynchronous ×1
backbone.js ×1
c ×1
c-strings ×1
callback ×1
canvas ×1
cross-domain ×1
data-binding ×1
html-parsing ×1
java ×1
json ×1
jsonp ×1
jsoup ×1
layout ×1
parsing ×1
pointers ×1
python ×1
search ×1
web-services ×1
webkit ×1
xss ×1