JavaScript
以åã®ã¨ã³ããªã§ã¯ãã¾ããããªãã£ããRustã®JavaScriptã¸ã®ã³ã³ãã¤ã«ã§ããã gifnksm.hatenablog.jp å æ¥ãã©ã¼ã©ã ã«æç¨¿ããã¦ããããæ¹ãã¾ããã ãã§ç°¡åã«ã§ããããã«ãªã£ã¦ãã¾ããã internals.rust-lang.org Rustæ¬ä½ã«Emscripten対å¿ãåãâ¦
2016/3/8è¿½è¨ ãã¾ãããã¾ãããã¨ã³ããªæ¸ãã¾ããã gifnksm.hatenablog.jp Rustã§Emscriptenãä½¿ãæ¹æ³ã調ã¹ãã®ã§ã¡ã¢ã2015å¹´12æ28æ¥æç¹ã§ãªãã¨ãåä½ãããããã®æé ã§ããä»å¾ãªãã£ã·ã£ã«ã«Emscriptenãµãã¼ããå ¥ããªã©ããã¨ããã£ã¨ç°¡åãªâ¦
JavaScriptï¼ã¨ãããDOM? CSSOM?ï¼ã«ã¯ getBoundingClientRect ã¨ãã便å©ãªã¡ã½ãããç¨æããã¦ãã¾ããããã使ãã°ï¼ããè¦ç´ ã®viewportä¸ã®åº§æ¨ï¼ã¤ã¾ããã©ã¦ã¶ç»é¢ã®å·¦ä¸ãåç¹ã¨ãã座æ¨ä¸ã§ã®è¦ç´ ã®ä½ç½®ãåå¾ãããã¨ãã§ãã¾ããããã¾ã§ã¯ d:idâ¦
Firefox4ã§ES5ã®ããããã£å®ç¾©ããµãã¼ãããããããªã®ã§ï¼å®éã«ä½¿ãã¨ãã«åãã¦è¦ãæ¸ããã¦ã¿ãã ããã¾ã§ãããªæãã§æ¸ãã¦ãJavaScriptã®ã¯ã©ã¹å®ç¾©ã // ã¯ã©ã¹ const Hoge = function(prop) { this._prop = prop; }; Hoge.prototype = { _prop: â¦
以åå ¬éããï¼ããªã¼åã¿ããKeySnailããæä½ããã³ãã³ã群ãKeySnailãã©ã°ã¤ã³åãã¦ã¿ã¾ãããã¤ã³ã¹ãã¼ã«ããã¨ï¼ã¿ãæä½ç¨ã®å種ã¨ã¯ã¹ã (ã³ãã³ã)ãå©ç¨ã§ããããã«ãªãã¾ããããªã¼åã¿ããã¤ã³ã¹ãã¼ã«ããã¦ããã¨ï¼ããªã¼æä½ç¨ã®ã¨ã¯ã¹ãâ¦
ããªã¼åã¿ãã§ããªã¼è¡¨ç¤ºãããã¿ããï¼KeySnailããæä½ããããã®ã¹ã¯ãªããã(åå¹´ã»ã©ï¼åã«)æ¸ãã¾ããããæãªæã«ã¿ãç§»åã®ã³ãã³ãã¨ã追å ãã¦KeySnailãã©ã°ã¤ã³ã«ãããï¼ãã¨æãç«ã£ã¦ããããªãæéããã£ã¦ãã¾ãã¾ãããï¼æªã ã«ãã©ã°ã¤â¦
表é¡ã®Jetpackã¹ã¯ãªãããä½ã£ãã®ã§å ¬éãã¾ããã The Jetpack Galleryâs Final Flight | Mozilla Add-ons Blog ã¹ã¯ãªããèªä½ã¯çµæ§åã«ä½ã£ã¦ããã®ã§ããï¼ãã£ãããªã®ã§å ¬éãã¦ã¿ã¾ããã
ã¡ãã£ã¨ã ãããã£ãã®ã§ã¡ã¢ãletå¼å ã§è¤æ°ã®å¤æ°ãå®ç¾©ããã¨ãï¼åæã«å®ç¾©ããä»ã®å¤æ°ã¯åç §åºæ¥ãªãï¼ã¨ããã話ã varã®å ´åï¼åæã«å®ç¾©ãã夿°xã®å¤ãåç §ãããã¨ãã§ããã var x = "a", y = x + "b"; alert(y); // => "ab" let"宣è¨"ã®å ´åãâ¦
è»è¼ªã®åçºæãã¦ã¿ããRhinoã§ããåä½ç¢ºèªãã¦ãªããã©å¤ãã®ãã©ã¦ã¶ã§åä½ããããããªãããªãjsparsec.js ãã®è¾ºåèã«ãã¦ã¾ãâinforno :: Javascriptã§ãã¼ãµã¸ã§ãã¬ã¼ã¿ãæ¸ãã¦ã¿ã 颿°åã¯åºæ¬çã«Parsecã®ãã®ã¨åããã¦ãã¾ããParsec.Combinâ¦
䏿åã«æµè¡ã£ããã¿ã§ããããªäººãã³ã¼ããæ¸ãã¦ããã¨æããã ãã©ï¼3弿°ä»¥ä¸ã®é¢æ°ããã¡ãã¨curryåã§ããä¾ (ãããã颿°ãè¿ã颿°ããè¿ã颿°ããè¿ã颿°ãâ¦ãã«å¤æãã) ãè¦ã¤ããããªãã£ãã®ã§ï¼èªåã§æ¸ãã¦ã¿ãã function curry(fun) {â¦
ç¶ã ã¨å¢ãç¶ããåºç¤ææ³æéãã¹ã¿ã¼ã·ãªã¼ãº(ãã¾ãã«ãå¢ãã¦ããã®ã§ä»ã®è¨èªè¨äºã¸ã®ãªã³ã¯ã¯å¥ã®è¨äºã«ç§»ãã¾ãã)ã JavaScript çã¯èª°ãæ¸ãã¦ããªãã£ããããªã®ã§æ¸ãã¦ã¿ã¾ãããããã解説è¨äºçãªãã®ãæ¸ãã®ã¯åãã¦ãªã®ã§å¤ãªã¨ããããã£â¦
ãªããããããªå ´æã§è¦ãããã®ã§ãã£ã¦ã¿ãã ï¼ï¼åã§ã³ã¼ãã£ã³ã°ï½ããã°ã©ãã³ã°ã«èªä¿¡ããããã¤ããï¼ï¼ var Cards = function() {}; Cards.prototype = { deal: function(numPlayers, deck) { var len = (deck.length / numPlayers) >>> 0; var resâ¦
JavaScriptã§ãããªæ¸ãæ¹ãã§ããï¼ã¨ããä¾ var num = 1/2; var Field = { a: num*=2, b: num*=2, c: num*=2 }; // => Field = {a: 1, b: 2, c: 4}; ããããã£ã¼ã«ããæ¸ãã¨ããªããã«ä¾¿å©ããã ãã©ãªããæ°æã¡æªããªãâ¦
if(window.DOMParser) { document.getCurrentScript = function() { var ss = document.getElementsByTagName('script'); for(var i = ss.length-1; i >= 0; i--) if(ss[i].id.search('_firebug') != 0) return ss[i]; }; parser = new DOMParser(); documenâ¦
Firebugãæå¹ã«ãªã£ã¦ããç°å¢ã§id:amachangã®ã¹ã¯ãªãã(ã¨ã¦ãã·ã³ãã«ã«èªåèªèº«ãå±ãã script è¦ç´ ãåå¾ - ITæ¦è¨)ãåä½ããªãã£ãã®ã§ï¼æ¸ãæãã¦ã¿ã¾ããã document.getCurrentScript = function() { var ss = document.getElementsByTagName('â¦
ãããªã³ã¼ããæ¸ãããelemã«ã¯documentããªã¼å ã®é©å½ãªè¦ç´ ãä»£å ¥ããã¦ããã elem.addEventListener('DOMNodeRemoved', function() { alert('removed.'); }, false); elem.addEventListener('DOMNodeRemovedFromDocument', function() { alert('removedâ¦
å¾ã§è©³ããæ¸ãã document.addEventListener('keypress', function(e) console.log(document.activeElement), false); å®¶ã«å¸°ã£ã¦ãã ãªã³ã¯ããã©ã¼ã«ã¹ãå¾ãã¨ãï¼ãããã¢ããã表示ï¼ã¦ã®ãããããã£ãã mouseoverã®æã¨åãããã«document.addEvenâ¦
ã¹ã¿ã¤ã«å¨ãã®è©± ä»åã® ãnicovideo Thumbinfo popupã ã®ããã«ï¼ä¸ç¹å®å¤æ°ã®ãµã¤ãã§ä½ãã表示ãããããªã¹ã¯ãªããã¯ï¼ãã®ãµã¤ãã«å ã æå®ããã¦ããã¹ã¿ã¤ã«ã®å½±é¿ãåãã¦ãã¾ãã ã¹ã¿ã¤ã«ãå ¨è§£é¤ãããããªCSSãæ¸ãã¦ããããï¼ããã¯é¢åã â¦
è¦Firebugï¼Autopagerize 1æåç®ãæ¨æ¸¬ãã - ã¯ã¦ãªãã¼ã¯ã¼ããã該å½ããæåã¸é£ã¶ãã«ãã´ãªãçµãã¨ãªãè¯ãã Autopagerizeã§ãã¼ã¸ãéçã¾ã§ç¶ãè¶³ã Firebugã®ã³ã³ã½ã¼ã«ã§ä»¥ä¸ã®ã¹ã¯ãªãããå®è¡ããã(ãã¿ããª6æåï¼æ¼¢å4æåã®å ´å) é å¼µã â¦
æ£è¦è¡¨ç¾ã§ãããããé¨åã«ã¤ãã¦é£ç¶ã§ä½ãå¦çãè¡ãã¨ãï¼ä»ã¾ã§ã¯é¢åã ã£ããããããªé¢¨ã«æ¸ãã¦ããã str.replace(regexp, func); ç½®æå¾ã®æååãçæããããªã©ï¼ã¡ã¢ãªã¨å¦çæéãç¡é§ä½¿ããã¦ãã¾ãæ¸ãæ¹ã ãæ¥½ã ãã©ã ããã§ï¼æè»½ããä¿ã¡â¦
Firefox3 + Greasemonkey ãªãJavascript1.8ã®ä¸é¨ã®æ°æ©è½ã使ããã£ã¦ãã¨ãä»ç¥ã£ãã <script type="application/javascript;version=1.8"> ãã®æå®ãå¿ è¦ãªã®ã¯æ°ãã追å ããããã¼ã¯ã¼ããä½¿ãæ©è½ã ãã ã¨ããã ããå¼ã¯ãã¼ã¸ã£ã¯ä½¿ãæ¾é¡ã Array.prototype.include = function(x0) this.some(functiâ¦
ãªã³ã¯ã®ã¯ãªãã¯ã¤ãã³ãã«ã¤ãã³ããªã¹ãã追å ãã¦ï¼ä¸ã¯ãªãã¯ããã³ããªã³ã°ãããã以ä¸ï¼ãã¡ãã¨åãã½ã¼ã¹ã¨ï¼ãªããåããªãã½ã¼ã¹ã åãä¾ document.addEventListener('click', function(e) { var link = e.target; // ã¯ãªãã¯ã¤ãã³ããåå¾ãâ¦
nicovideo Tag Edit Helperã§ã¯ï¼spanè¦ç´ ã®mouseupã¤ãã³ããæ¤ç¥ãã¦ã¿ã°ã®é¸æãã¿ã³ãä½ã£ã¦ããã®ã§ããï¼ ãããã¿ã³ãã¯ãªã㯠å¥ã®ãã¿ã³ãShift+ã¯ãªã㯠ã¨ããæé ã§æä½ããã¨ãï¼ãã¿ã³ã®éã®ããã¹ãã鏿ããã¦ãã¾ãã¾ãã ã¨ããããpreveâ¦
Javascriptã§DOMè¦ç´ ãçæããã«ã¯ãããããªããæ¹ããããã©ï¼ã©ããä¸çªéãã®ãæ°ã«ãªã£ã¦ãããæ¼ ç¶ã¨ï¼cloneNodeéããã ãªã¼ã¨æã£ã¦ããã使ã£ã¦ããã æãè¾¼ã¿ã§é度ãèªãã®ã¯ãããªãï¼ã¨æã£ãã®ã§ï¼Firefox3 RC1 + Firebug 1.2.0b1 ã§è»½ããâ¦
æ¬å½ã¯HTMLElement.prototypeã«ããããã£ã追å ããããã ãã©ï¼Greasemonkeyãããã許ãã¦ãããªãããã ãã ãã颿°ã¨ãã¦å®ç¾©ãã¦ã¿ãã function equalTo(x) { return function (y) { return x == y;} } function notEqualTo(x) { return function (yâ¦
IEã®behaviourã¿ãããªã®ãFirefoxã«ãããã°Nicovideo thumbinfo Checkã¿ãããªã®ã¯æè»½ã«ä½ããããã«ãªãããããªãããªï¼ã¨å¦æ³ãAutopagerizeã§ç¶ãè¶³ããããã¼ã¸ã«ãµã ãã¤ã«ãåºãã®ãï¼Autopagerizeãæèãããã¨ãªãå¯è½ã«ãªãã¨ã XPathãDOMã¨â¦
var $ = document.getElementById; $('hoge'); ããã¯Firefox 3ã ã¨æå³ããéãã«åããï¼Firefox 2ã ã¨ã¨ã©ã¼ãåºããFirefox 2ã®ãã°ã3ã§ç´ã£ãï¼ã¨ãããã¨ãªã®ã ããããã¡ãã£ã¨éç¶ã¨ããªããã©ï¼DOMé¢ä¿ã®é¢æ°ã¯æ®éã®é¢æ°ã¨éãæåã示ããã¨ããâ¦
ã¾ãã¯$Xã const Single = {}; function $exp(exp, ownerDocument) { if(!ownerDocument) ownerDocument = document; var resolver = document.createNSResolver(ownerDocument); var def = (document.contentType == 'application/xhtml+xml') ? 'http://wâ¦