在我工作的应用程序中,我们有几个用户可以打印的不同的地方。 在所有这些情况下,我们使用相同的工作stream程打开一个新的窗口(或标签),将我们需要打印的任何东西写到新窗口的文档中,然后调用 $(w.document).ready(function () { w.focus(); w.print(); w.close(); }); 我看到的问题是,在Chrome中,如果我closures了打开预览而不是点击取消button的标签或窗口,Chrome浏览器仍然会阻止我的父窗口上的JavaScript。 这与这里描述的问题类似: Google Chrome在子窗口上打开预览时阻止Ajax请求 我们也遇到了这个问题,但是我相信这是我们如何在新窗口中实现打印以及Chrome打印预览工作方式的结果。 在IE和Firefox中,打印窗口显示模式对话框,在打印窗口closures之前,您无法在父窗口中执行任何操作。 同样,在打印预览被取消之前,chrome阻止使用父窗口。 不过,我希望closures该选项卡或窗口的工作相同,取消打印。 有没有其他人有这个问题或知道一个好的解决scheme? 谢谢!
我已经设法让ReCaptcha 2.0在我的网站上工作。 但是,只有当我不使用AJAX,并让表单“自然”提交时才有效。 我想提交带有validation码的表单,并在不刷新页面的情况下提醒用户注意成功。 我尝试了下面的代码,但是好像服务器没有得到用户响应: HTML: <form class="form" action="javascript:void(0)" novalidate> <!– all the inputs… –> <!– captcha –> <div class="input-group"> <div class="g-recaptcha" data-sitekey="6LdOPgYTAAAAAE3ltWQGar80KUavaR-JblgPZjDI"></div> </div> <div class="errors" id="errors" style="display: none"></div> <div class="input-group"> <input type="button" value="Send" class="btn-default right" id="submit"> <div class="clear"></div> </div> </form> JS: $('#submit').click(function(e) { console.log('clicked submit'); // –> works var $errors = $('#errors'), $status = […]
为了提高我们的网页的性能,我们build议使用CDN在我们的网页上提供.js文件。 这就说得通了。 另外,我们build议将我们的.js文件捆绑在一起,以减less加载到服务器的请求数量。 所以,如果我们使用CDN或捆绑的.js文件,我们需要坐下来做出决定。 优缺点都有什么? 哪些更有意义?
当我写一段处理一些浮点值的JavaScript代码时,一个想法让我感到震惊。 什么是JavaScript中的小数点符号? 是否永远. ? 或者是文化特定的? 那么.toFixed()和.parseFloat()呢? 如果我正在处理用户input,则可能会包含本地文化特定的小数点分隔符。 最终我想编写支持用户input的两个小数点的代码 – 文化特定和. ,但是我不能写这样的代码,如果我不知道JavaScript的期望。 补充:好的,鲁本斯·法里亚斯( Rubens Farias) build议看看类似的问题 ,这个问题有一个简洁的接受答案: function whatDecimalSeparator() { var n = 1.1; n = n.toLocaleString().substring(1, 2); return n; } 这很好,它让我得到区域的小数点。 毫无疑问,迈出了一步。 现在,剩下的部分将是确定.parseFloat()的行为。 有几个答案指出,只适用于浮点文字. 已validation。 .parseFloat()行为是一样的吗? 或者可能需要在某些浏览器中使用本地小数点分隔符? 是否有任何不同的parsing浮点数的方法? 我是否应该推出我自己的即将确定?
受到Ryan Barnett 2011年BlackHat DC PPT的启发,特别是以下代码: ($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__ [_+~$]+$_[_]+$$](_/_) 昨天是恋人特别的日子,所以我试着写类似的东西。 这基本上提醒“我爱你”没有任何字符或数字。 例如“I”可以从((_=-~[])/–_+[])[_] 我们有“[object object]”,“true”,“false”,“NaN”,“Infinity”的用法,我想不出用这种方法得到“v”的方法。 我试图想到String.fromCharCode() ,(Ryan已经得到了我们的window引用,所以理论上我们可以window["String"]["fromCharCode"](118) ),但是我错过了“S”和“C “这里的性格。 还想想window["eval"](…) ,再次,我没有“v”。 只是试着解释一下, []是空的,当对其应用+/-/~操作时,它转换为数字0 ,并且~[]给出1 / 1/0给出Infinitey 。 然后它来到1/0 + [] ,他们都将转换为string的加法,它给出"Infinity"和"Infinity"[_] == "Infinity"[0] == "I" … Ryan的原始代码更复杂,利用更多,包括范围,特殊的返回值等(这是另外一个故事) 这似乎不是一个好主意,但是很有趣。 与meze的帮助,我能够产生这个火狐: ($=($=[$=[]][(__=!$+$)[_=-~-~-~$]+(_$={}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+$])])())[__[_/_]+__ [_+~$]+$_[_]+$$]((_$_=(__$=-~[])/–__$+[])[__$]+_$[_+++_]+__[__$=-~-~[]]+_$[-~[]]+($[_$[$__=_+_]+_$[++$__]+_$[++$__]+_$[++$__]+_$[++$__]+_$[++$__]]+[])[ $__+$__+–_]+__[++_]+_$[$__=_+–_]+_$_[_+++_]+_$[_/_]+$_[__$]); 它基本上是alert("I love you") ,非常感谢! 如果只有我得到的帮助昨天,我还没有发布这个:( JavaScript很漂亮,供你参考: $_ = "true" __ = "false" _$ = […]
我有以下代码: document.oncontextmenu = function(evt) { evt = evt || window.event; console.log(evt.target, evt.toElement, evt.srcElement); }; 通过点击<div class="foo"></div>上的鼠标右键,返回: div.foo,div.foo,div.foo 通过在<input>上单击鼠标右键,返回: input,input,input 所有似乎都带来了相同的结果。 有没有什么情况比其他人有其他用途?
谷歌浏览器开始实施阻止在慢速networking主框架中通过document.write插入的跨源,parsing器阻止脚本的负载 ,这会导致以下错误: 通过document.write调用一个parsing器阻塞的跨源脚本http://example.org/script.js 。 如果设备networking连接不好,可能会被浏览器阻止。 但是,我的网页需要使用document.write('<script src="…"></script>')同步加载第三方脚本。 如何规避封锁? 更多关于这个变化: devise文件 更长的文件 Web孵化器CG问题 Chrome问题
我怎样才能获得从元素A到元素B的所有样式(甚至是inheritance的)? 在JavaScript或使用jQuery。 让我们告诉我有一个元素<p class="foo">…</p>并且追加看起来像内容一样的新元素<div /> 。
我正在学习.js和一些更有经验的人提到,他们使用CommonJS处理保持js代码组织(因为没有“模块”function)。 我看着Quora,但它解释了这个组织 ,这是目标,而不是我怎么使用它。
Facebook React 鼓励你分离可变( state )和不可变( props )状态: 尽量保持尽可能多的组件无状态。 通过这样做,您可以将状态隔离为最合乎逻辑的位置,并最大限度地减less冗余,从而更容易推断您的应用程序。 当状态改变时,你应该调用setState来触发虚拟DOM差异,只有在需要时才会导致真正的DOM更新。 有一种方法可以通过调用forceUpdate手动触发DOM更新,但不鼓励 : 通常你应该尽量避免使用forceUpdate() ,只能从render() this.props和this.state中读取。 这使得您的应用程序更简单,更高效。 然而,我所看到的所有React + Backbone示例都忽略了这个build议 ,并且在props和调用forceUpdate存储模型和集合中forceUpdate : http://www.thomasboyt.com/2013/12/17/using-reactjs-as-a-backbone-view.html https://github.com/usepropeller/react.backbone/blob/master/react.backbone.js https://gist.github.com/ssorallen/7883081 http://eldar.djafarov.com/2013/11/reactjs-mixing-with-backbone/ 即使React自己的例子使用forceUpdate : https://github.com/facebook/react/blob/master/examples/todomvc-backbone/js/app.js#L148 有没有更好的方法,它会带来什么好处?