我允许用户通过拖放和其他方法将图像加载到页面中.删除图像时,我正在使用URL.createObjectURL转换为对象URL来显示图像.我没有撤销网址,因为我重复使用它.
所以,当谈到时间来创建一个FormData对象,所以我可以让他们上传的形式,在它的形象之一,是有一些方法,然后我可以扭转这一目标URL回一个Blob或File因此我可以将其添加到FormData宾语?
是否有一个特定于Webkit的CSS样式,允许我控制围绕颜色的框的颜色/大小/样式input[type=color]?我已经设置了输入的颜色和背景颜色,所以看起来很好用我用于旧版Chrome和Firefox的交叉兼容性polyfill.但是现在Chrome实际上有一个颜色选择器,当输入的颜色和背景颜色设置为相同的颜色时,颜色周围有一个框,在输入的中间留下1px的灰色框.是否有一些CSS可以摆脱它,或者通过将该框的宽度设置为0,将样式更改为none,或者最坏的情况是将颜色设置为与颜色和背景颜色相同?
在这张图片中,我说的是白色内部和绿色外部的灰色框:

我找到了一个解决方法,即设置一个足够高的填充,框(灰色边框和绿色内容)被压缩到0大小.但这真的很糟糕,并且在Firefox中看起来不太好.
在各种浏览器中是否有与caniuse.com相同的HTML5 API/ECMAScript5/ECMAScript6?
caniuse.com确实有一些javascript报道,但像http://caniuse.com/#feat=filesystem这样的页面并没有真正告诉你除了是/否/部分以外的任何内容.实际上,我正在寻找像quirksmode与caniuse交叉的东西,在那里我可以详细查看任何API或方法,看看它目前在哪里实现(并且没有bug).例如,我可以查看哪个版本的浏览器当前可以使用哪个版本的网站:
Object.keys(CONSTANTS.TEXT).forEach(function(key) {
languages.push([key, CONSTANTS.TEXT[key].languageName]);
});
Run Code Online (Sandbox Code Playgroud) 既然已经在Chrome 21上激活了webkitGetAsEntry()以允许文件夹拖放,那么在mozilla中是否有等效的 - mozGetAsEntry(),getAsEntry()或其他东西?我只能找到关于webkit方法和whatwg提议的极少信息; 我找不到Firefox(或任何其他浏览器).
参考文献:
我知道您可以包括css和图像以及其他文件类型,这些文件已经以base64形式存储在javascript文件中。但是,它们相当庞大……并且压缩后,它们缩小了很多,即使有base64编码带来的〜33%的开销。
未压缩的图像是data:image / gif; base64,data:image / jpeg,data:image / png和css是data:text / css; base64。那么,我可以/应该使用哪种MIME类型来包含压缩的css或图像数据URI?(或者,如果gzip + base64无法正常工作,我还有其他压缩方法可以减小字符串的大小,同时仍将数据存储在javascript中吗?)
..edit ..我认为这个问题被误解了。我不问,如果我应包括在JavaScript中的base64 gzip压缩的字符串。是的,我知道在大多数情况下,最好在服务器端gzip javascript和其他文件。但这不适用于用户脚本;一个用户脚本没有服务器,并且只包含一个文件。Firefox允许使用@require指令,但是Opera和Chrome不允许使用,加载任何本地文件时,本地文件安全性问题也随之而来。因此,脚本所需的任何内容都必须是:1)在Web上(慢)或2)嵌入在用户脚本中(大)。
现在,这个问题假设大的比慢的更可取,但是大的并不一定意味着我们完全忽略了多大。如果可以更小,那就是一种改进。
因此,假设在JavaScript中嵌入了base64字符串,问题是如何使它变成有意义的东西。
要么:
1)atob()可以在javascript中将原始base64编码的gzip转换为原始gzip。(atob不需要知道媒体类型)。然后的问题是如何解压缩原始的gszip css或图像文件,以便将结果输出输入文档中。
或2)给定正确的媒体类型,浏览器至少理论上(根据datauri RFC)应该能够直接从datauri加载任何文件。“”足以加载未压缩的CSS样式表。这里的问题是什么链接类型属性和datauri媒体类型组合应该起作用(以及它适用于哪些浏览器)?对于用户脚本,最好是可以在Opera,FF和Chrome中使用的组合。
注意,这不是.prop()vs .attr()的重复; 该问题涉及prop vs attr的基本功能,而这个问题特定于他们作为setter的差异.
在尝试使用.prop()缩小应该设置的内容时,与创建新元素时应该通过.attr()设置的内容相比,在使用jQuery 1.7.2的测试中,我发现prop的速度大约快2.5倍,所以这似乎更可取.
使用attr设置的唯一列表我可以找到attr:
accesskey,align,background,bgcolor,class,contenteditable,contextmenu,data-XXXX,draggable,height,hidden,id,item,itemprop,spellcheck,style,subject,tabindex,title,valign,width
在测试中,其中一些似乎在使用prop设置时工作正常.测试上面的列表,我在使用prop设置以下内容时没有遇到任何问题:
id,class,align,contenteditable,draggable,hidden,spellcheck,tabindex,title
是否有一些原因,对于那些"使用attr设置的东西仍然可以在使用prop设置时工作"的列表,为什么它仍然应该用attr设置?如果没有,那么在创建基本时性能提高250%<div id="foo" class="bar" draggable="true" title="zipzap">对我来说似乎很好...... :)
"查找值所在的范围.请记住,查找值应始终位于VLOOKUP正常工作范围的第一列中.例如,如果查找值位于单元格C2中,则范围应以C开头. "
但有时我希望能够进行双向查找.即,使用A列中的键进行查找以同时获取B列中的值,并在其他公式中查找B中的值以获取A中的值.
我知道的唯一方法是添加一个反映A的列C,然后使用AB进行第一次查找,使用BC进行第二次查找.但必须有一些更清洁的解决方案.是否有某种方法可以强制VLOOKUP使用除第一列之外的其他列来查找键值,或者是否存在允许等效的不同函数?
作为旁注,我问的是Excel,但实际上我使用的是LibreOffice.据推测,这些功能应该是相同的,但是在LibreOffice中也可以使用的答案更可取.
如果您的目标只是针对Firefox,Opera和Chrome,而不是IE,并且您只针对现代浏览器(过去一年发布),那么在选择中创建多级缩进选项的最佳方法是什么使用optgroups?也就是说,当您希望父选项仍然可以选择时,以及孩子们?
<select>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
<option>
</select>
Run Code Online (Sandbox Code Playgroud)
虽然我不知道它是否真的可能,但最好是在选项级别之间有实际的父/子关系,但如果不是,至少有一种方法可以使它看起来像那样,用户 - 三种浏览器之间的体验相似吗?
为什么ES6决定左侧任务更有意义,或者对于结构化任务更有用?刚开始看,它似乎使代码更容易出错,现在根据情况可以在双方进行分配.
let obj = { first: 'Jane', last: 'Doe' };
let { first: f, last: l } = obj;
// f = 'Jane'
// l = 'Doe'
Run Code Online (Sandbox Code Playgroud)
f和l似乎都在左侧定义,使用左侧var名称和右侧vars值的组合值.
鉴于这个sytax的基本原理是保持它与对象声明语法相同,为什么ECMA不会使用:
let { f: first, l: last } = obj;
Run Code Online (Sandbox Code Playgroud) 现在,我不是ASI的粉丝.但鉴于这是完全合法的javascript,这里jshint(反复地,8次)正好在这里找到分号?
script.addEventListener('load', function () {
++i !== requires.length ? loader(i) : (loadLocal(thirdParty), loadLocal(main))
}, true);
Run Code Online (Sandbox Code Playgroud) 给定一个列表n长,例如['animal', 'dog', 'golden retriever']或['food', 'dinner', 'pasta', 'white sauce', 'fetucci alfredo'],我需要遍历数组并获取当前索引,加上每个先前的索引.
是否有任何好的方法循环并执行此操作,以便任何长度的列表仍然可以转换为:
stuff['food']
stuff['food']['dinner']
stuff['food']['dinner']['pasta']
stuff['food']['dinner']['pasta']['white sauce']
stuff['food']['dinner']['pasta']['white sauce']['fetucci alfredo']
Run Code Online (Sandbox Code Playgroud)
我越来越深入到一个物体,但每个值可能存在,也可能不存在,所以我需要在每个级别停下来.也就是说,stuff['food']['dinner']可能存在,但我可能仍需要在晚餐中加入意大利面,在意大利面上加白汁等.
javascript ×6
html5 ×5
css ×2
python ×2
algorithm ×1
base64 ×1
blobs ×1
color-picker ×1
data-uri ×1
ecma ×1
ecmascript-5 ×1
ecmascript-6 ×1
excel ×1
fileapi ×1
html ×1
jquery ×1
jshint ×1
libreoffice ×1
loops ×1
mime-types ×1
parent-child ×1
parentheses ×1
spreadsheet ×1
syntax ×1
vlookup ×1
webkit ×1