Skip to content

Instantly share code, notes, and snippets.

View akirattii's full-sized avatar

Akira TANAKA akirattii

View GitHub Profile
@akirattii
akirattii / implements-on-show-handler.html
Last active November 25, 2016 05:49
This code adds `on('show'` event of jquery
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha256-/SIrNqv8h6QGKDuNoLGA4iret+kyesCkHGzVUUV0shc=" crossorigin="anonymous"></script>
<button id="btnShow">Show</button>
<button id="btnHide">Hide</button>
<div class="container">
<div id="foo">
I am #foo
</div>
</div>
<div id="console">
@akirattii
akirattii / create-remote-git-repo-on-serverside.sh
Created November 22, 2016 00:34
memo: how to create git remote repository on serverside then push or clone a project from clientside
# create user
adduser gitrepo
usermod -aG gitrepo akirattii
# create remote git repos
su - gitrepo
mkdir hoge.git
cd hoge.git # pwd: `foo_server:/home/gitrepo/hoge.git/`
git --bare init --shared
git update-server-info
@akirattii
akirattii / ES2015-uglifyjs2-browserify.sh
Last active November 22, 2016 11:59
How to browserify & uglify ES2015 code
## Install browserify:
$ npm install -g browserify
# Install uglify-js:
### First remove already installed one:
$ npm remove uglify-js -g
### Install the ES2015 compatible version from 'harmony' branch:
$ npm install -g https://github.com/mishoo/UglifyJS2.git#harmony
# Try uglify of ES2015 code:
@akirattii
akirattii / ElementUtil.loadElements.js
Created November 24, 2016 21:43
Loads all elements having `id` attr into the global as jQuery object dynamically
// Load elements having `id` attr on `document` as global variables (in directly under `window`)
// They are loaded as jQuery object named as camelcase with prefix "$".
// eg. An element is loaded as a variable named like this: id="ipt-name" -> `$iptName`
exports.loadElements = function() {
console.log(`[${moduleName}] auto-loading elements as jQuery elements...`);
check();
let els = document.getElementsByTagName("*");
let el, camelId, varname;
@akirattii
akirattii / create-and-fire-custom-event.js
Created November 25, 2016 04:53
Create and fire custom event
// fire `hoge` event.
window.dispatchEvent(new Event('hoge'));
window.addEventListener('hoge', function(e) {
// callbacked on `hoge` event fired.
console.log('"hoge" event fired.');
});
@akirattii
akirattii / check-if-not-empty.js
Created November 25, 2016 05:40
check if not empty: snippet to get var's name
var foo, baz;
notEmpty({ foo, baz }); // Error "'foo', 'baz', required" thrown
function notEmpty(obj) {
let names = "";
for (let key in obj)
if (!obj[key]) names += `'${key}', `;
if (names)
throw Error(`${names}required`);
@akirattii
akirattii / crossdomain-post-form.js
Created November 26, 2016 06:47
cross-domain post form using iframe
let url = "http://example.host/"; // target to post form
let params = [
{ name: "a", value: encodeURIComponent("1") },
{ name: "b", value: encodeURIComponent("2") },
];
crossDomainPost(url, params);
function crossDomainPost(url, params) {
@akirattii
akirattii / background.js
Last active November 28, 2016 23:37
Chrome extention example modify request headers of browser even 'Referer' etc.
// Headers you want to modify.
let modifyingHeaders = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36",
"Origin": "http://example",
"Referer": "http://example/foo/bar",
"Cookie": 'key1="value1"; key2="value2";',
};
let requestFilter = {
// urls: ["<all_urls>"]
@akirattii
akirattii / object-observe-alternative-way-using-getter-setter.html
Created November 29, 2016 10:55
js getters and setters achieves observer pattern instead of Object.observe()
<button>test</button>
<div id="hoge"></div>
<script type="text/javascript">
var hoge = document.querySelector("#hoge");
var obj = {
set name(val) {
obj._name = val;
hoge.innerText = val; // change `hoge` pane's text
},
@akirattii
akirattii / findIndex.js
Last active November 30, 2016 22:11
How to get an array's index which object has a certain property value.
let items = [
{"id": "aaa"},
{"id": "bbb"},
{"id": "ccc"},
{"id": "bbb"},
];
let idx;
idx = items.findIndex(x => x.id == "aaa"); // idx => 0
idx = items.findIndex(x => x.id == "bbb"); // idx => 1 // returns idx of "bbb" first found