Skip to content

Instantly share code, notes, and snippets.

View bambooom's full-sized avatar
🎈
biu~

Bamboo bambooom

🎈
biu~
View GitHub Profile
// modified from https://gist.github.com/hsablonniere/2581101
function getParent(el) {
var parent = el.parentNode;
if (parent === document) {
return document;
} else if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {
return parent;
} else {
// ==UserScript==
// @name Shuffle iSay
// @namespace https://www.douban.com/people/MoNoMilky/
// @version 0.2
// @description Your brain is strange and strong, interesting.
// @author Bambooom
// @match https://*.douban.com/*
// @grant none
// ==/UserScript==
@bambooom
bambooom / getCMInstance.js
Created January 29, 2019 06:54
get CodeMirror instance reference from dom
var cmDom = document.getElementsByClassName('CodeMirror');
// if multiple CodeMirror instances, for each one, the instance referece can be got from `CodeMirror` prop on the dom node
var editor1 = document.getElementsByClassName('CodeMirror')[0].CodeMirror;
// CodeMirror$1 object
// ...
var editor2 = document.getElementsByClassName('CodeMirror')[1].CodeMirror;
// CodeMirror$2 object
// ...
@bambooom
bambooom / puppeteer-drag.js
Last active July 12, 2018 04:00
drag can be simulated by mouse event, but drag and drop is not supported @v1.5.0
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false,
})
const page = await browser.newPage()
await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36')
await page.setViewport({ width: 1200, height: 800, deviceScaleFactor: 1 });
@bambooom
bambooom / puppeteer-multiple-pages.js
Created July 10, 2018 12:57
handle multiple pages
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://test-navlang-demo-vvkpjvrhym.now.sh');
await page.setViewport({ width: 1380, height: 900 });
await page.waitFor(1000);
const page2 = await browser.newPage();
@bambooom
bambooom / puppeteer-gif.js
Last active May 15, 2024 00:44
use puppeteer to generate gif
const fs = require('fs');
const puppeteer = require('puppeteer');
const GIFEncoder = require('gifencoder');
const PNG = require('png-js');
function decode(png) {
return new Promise(r => {png.decode(pixels => r(pixels))});
}
@bambooom
bambooom / puppeteer-select.js
Last active July 12, 2018 03:56
select option
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://test-navlang-demo-vvkpjvrhym.now.sh');
await page.setViewport({ width: 1380, height: 900 });
await page.waitFor(1000);
// use elementHandle.type
@bambooom
bambooom / details.js
Created July 7, 2017 02:56 — forked from remy/details.js
Add <details> support - includes stylesheet
/**
* Note that this script is intended to be included at the *end* of the document, before </body>
*/
(function (window, document) {
if ('open' in document.createElement('details')) return;
// made global by myself to be reused elsewhere
var addEvent = (function () {
if (document.addEventListener) {
return function (el, type, fn) {

Introduction

  • C-a == Ctrl-a
  • M-a == Alt-a

General

:q        close
:w        write/saves
:wa[!]    write/save all windows [force]
:wq       write/save and close