JavaScript Excel coordination changer

http://jsfiddle.net/easywaru/8euvLuha/

Excel:A1 <-> Coord:(1,1)

Android 4.2.2 default browser canvas bug

When I test canvas animation used createJS,
I found afterimage.

I can find afterimage use setTimeout.
Canvas’s parent div changed after canvas’s animation started.

Devices error found is below.
Sharp AQUOS PHONE SHL24(Android 4.2.2)
Sony XperiaA SO-04E (Android 4.2.2)

pseudo code

Javascript Japanese IME(Input Method Editor) Control V.0.0.1

Japanese IME control using regular expression on javascript.

Sample

C# -> JS all files and directories

get all files and directories in C# and set all files and directories in JS

C#
GetFilesAndDirectories(@”C:”, true);

private List<object> GetFilesAndDirectories(string path, bool isRoot = false) {
  List<object> fileList = new List<object>();
  Dictionary<string, object> fileItem = new Dictionary<string, object>();
  if (isRoot) {
    fileItem = new Dictionary<string, object>();
    fileItem[“type”] = “dir”;
    fileItem[“value”] = path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1);
    fileItem[“path”] = path;
    fileItem[“fileList”] = GetFilesAndDirectories(path);
    fileList.Add(fileItem);
  } else {
    foreach (string dir in Directory.GetDirectories(path)) {
      fileItem = new Dictionary<string, object>();
      fileItem[“type”] = “dir”;
      fileItem[“value”] = dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1);
      fileItem[“path”] = dir;
      fileItem[“fileList”] = GetFilesAndDirectories(dir);
      fileList.Add(fileItem);
    }
    foreach (string file in Directory.GetFiles(path)) {
      fileItem = new Dictionary<string, object>();
      fileItem[“type”] = “file”;
      fileItem[“value”] = Path.GetFileName(file);
      fileItem[“path”] = file;
      fileItem[“exe”] = Path.GetExtension(file);
      fileList.Add(fileItem);
    }
  }
  return fileList;
}

JS
getFileInfo (c#returnedFileList, true);

var getFileInfo = function (fileList, isRoot) {
  var rtnHtml = “”;
  if ($.isArray(fileList)) {
    rtnHtml += isRoot || false ? ‘<ul>’ : ‘<ul style=”display:none;”>’;
    for (var i = 0, iLen = fileList.length; i < iLen; i++) {
      var fileItem = fileList[i];
      if (fileItem[“type”] === “dir”) {
        rtnHtml += ‘<li><div class=”directory”>’ + fileItem[“value”] + ‘</div>’;
        if (fileItem[“fileList”].length !== 0) {
          rtnHtml += getFileInfo(fileItem[“fileList”]);
        }
      } else if (fileItem[“type”] === “file”) {
        rtnHtml += ‘<li><div class=”file”>’ + fileItem[“value”] + ‘</div></li>’;
      }
    }
    rtnHtml += ‘</ul>’;
  }
  return rtnHtml;
};

Twitter Button – Resize with javascript

<div id=”sns_twitter”>
<a href=”https://twitter.com/share”
    class=”twitter-share-button”
    data-url=”[your site address]”
    data-text=”[your site description]”
    data-hashtags=”[your site title]”>Tweet</a>
<script type=”text/javascript”>
    ! function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0],
        p = /^http:/.test(d.location) ? ‘http’ : ‘https’;
        if (!d.getElementById(id)) {
            js = d.createElement(s);
            js.id = id;
            js.src = p + ‘://platform.twitter.com/widgets.js’;
            fjs.parentNode.insertBefore(js, fjs);
        }
    }(document, ‘script’, ‘twitter-wjs’);
</script>
</div>

// get twitter button(iframe) size
var snsTwitterIframeWidth = $(“#sns_twitter > iframe”).css(“width”);
// trim “px”
snsTwitterIframeWidth = parseInt(snsTwitterIframeWidth.substring(0, snsTwitterIframeWidth.length – 2));
// minus 34px on button(iframe) size (english only)
var snsTwitterWidth = snsTwitterIframeWidth – 34);
// resize twitter button wrapper
$(“#sns_twitter”).css(“width”, snsTwitterWidth + “px”);

// 1.wrap twitter button with div(sns_twitter here)
// 2.set style div overflow:hidden
// 3.resize your div size