Skip to content

Instantly share code, notes, and snippets.

View iamspark1e's full-sized avatar
🎶
The Real Folk Blues

Wenbo iamspark1e

🎶
The Real Folk Blues
View GitHub Profile
@iamspark1e
iamspark1e / serialize.js
Last active October 30, 2023 06:00
Javascript Form Serialize with pure JS, modified from "https://code.google.com/archive/p/form-serialize/"
function serialize(form, hashmode) {
if (!form || form.nodeName !== "FORM") {
return
}
var i, j, q = [];
var hashmap = {};
for (i = form.elements.length - 1; i >= 0; i = i - 1) {
if (form.elements[i].name === "") {
continue
}
function changepic(obj) {
//console.log(obj.files[0]);//这里可以获取上传文件的name
var newsrc = getObjectURL(obj.files[0]);
document.getElementById('show').src = newsrc;
}
//建立一個可存取到該file的url
function getObjectURL(file) {
var url = null;
// 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已
if (window.createObjectURL != undefined) { // basic
@iamspark1e
iamspark1e / npx-npm-update.sh
Last active March 28, 2022 05:34
Using interactive mode with npm, like `yarn upgrade-interactive`
# Using interactive mode, like `yarn upgrade-interactive`
npx npm-check -u
var threedTheme = document.createElement('style')
threedTheme.innerHTML = "* {text-overflow: clip;letter-spacing: 3px;text-shadow: -3px 0 1px cyan, 3px 0 1px red;}"
document.head.append(threedTheme)
@iamspark1e
iamspark1e / check-is-safe-parent-domain.js
Created April 8, 2022 03:18
Check any url is in safe parent domain without URL class. 检查任意URL是否在它的父级域下,不使用URL。
function isSafeParentDomain(url, safeDomains) {
try {
// Using polyfill for String.prototype.endsWith
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(search, this_len) {
if (this_len === undefined || this_len > this.length) {
this_len = this.length;
}
return this.substring(this_len - search.length, this_len) === search;
};
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
ticker := time.NewTicker(200 * time.Millisecond)
@iamspark1e
iamspark1e / worker-pool.go
Created October 20, 2022 09:00 — forked from harlow/worker-pool.go
Worker pool to control concurrency and collect results
package main
import (
"fmt"
"sync"
"time"
)
const concurrency = 3
import (
"crypto/tls"
"encoding/base64"
"fmt"
"log"
"net"
"net/smtp"
"strings"
)
## Office E5 mail
relayhost = [smtp.office365.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sender_dependent_authentication = yes
smtp_generic_maps = hash:/etc/postfix/generic
# STARTTLS in my case, this can solve SSL handshake error.
smtp_tls_security_level = may
# If your network cannot access IPv6.
@iamspark1e
iamspark1e / pure-css-tabs.html
Created June 20, 2023 06:50
Pure CSS Tabs, forked from CodePen(https://codepen.io/markcaron/pen/MvGRYV), just in case lost.
<style>
/*
CSS for the main interaction
*/
.tabset > input[type="radio"] {
position: absolute;
left: -200vw;
}
.tabset .tab-panel {