var content = document.querySelector(".entry-content");
var button = document.querySelector("#button");
function copyToClipboard(el) {
var range;
if (document.selection) {
range = document.body.createTextRange();
range.moveToElementText(el);
range.select().createTextRange();
} else if (window.getSelection) {
range = document.createRange();
range.selectNode(el);
window.getSelection().addRange(range);
} else return;
document.execCommand("copy");
}
button.addEventListener('click', () => copyToClipboard(content));
.colorAdd()
, чтобы вызывать так, как вы написали. Вместо elem.colorAdd();
colorAdd.apply(elem);
colorAdd()
, назначив её контекстом (значением this
) переданный первым параметром elem
и всё сработает так, как вы задумали. Фиддл. const delay = _ => new Promise(rs => setTimeout(rs, 3e3));
async function notSoFast(promise) {
result = await Promise.all([ promise, delay()]);
return result[0];
}
async function runPromisesInSequence(promises) {
for (let i=0; i<promises.length; i++) {
if(i === 0) {
console.timeEnd( await promises[0]);
} else {
console.timeEnd( await notSoFast(promises[i]));
}
}
}
function makePr(label, dur) {
return new Promise(rs => {
console.log('%s started', label);
console.time(label); // начало отсчёта
setTimeout(_ => {
console.log('%s timer completed', label);
rs(label);
}, dur);
});
}
runPromisesInSequence([
makePr('r1', 1000),
makePr('r2', 5000),
makePr('r3', 0000),
]);
/* Выводит:
r1 started
r2 started
r3 started
r3 timer completed
r1 timer completed
r1: 1005ms
r2 timer completed
r2: 5007ms
r3: 8009ms
*/
23 -> 32
110 < 1001
Т.е. при переборе позиций меньше всего хотим двигать левую позицию, пока не переберем все варианты правой:0011
0101
0110
1001
1010
1100
function replacer(el){
var i, node, span;
if(el.hasChildNodes()) {
for(i=0; i<el.childNodes.length; i++) {
node = el.childNodes[i];
if(node.nodeType === Node.ELEMENT_NODE) {
if( !!~['SCRIPT','NOSCRIPT'].indexOf(node.nodeName)) continue;
replacer(node);
} else if( node.nodeType === Node.TEXT_NODE) {
if(node.nodeValue.match(/^\s+$/)) continue;
span = document.createElement("span");
span.innerHTML = node.nodeValue.replace(/([а-яА-Я]+)/ug, '<i>$1</i>');
el.insertBefore(span, node);
el.removeChild(node);
}
}
}
}
replacer(document.body);
<span>
, чтобы просто innerHTML ему заменить.const dGet = document.getElementById.bind(document);
const reSpace = /\s+/;
const div = dGet('text');
const text = div.innerText;
const words = text.trim().split(reSpace);
dGet('text_input').addEventListener('input', function(e){
var i, myWords = e.target.value.trim().split(reSpace),
theWords = words.slice();
var toCheck = e.target.value.substr(-1) === ' ';
if(!toCheck) myWords.length--;
for(i=0; i<Math.min(myWords.length, words.length); i++) {
if(words[i] !== myWords[i]) {
theWords[i] = '<i>' + words[i] + '</i>';
} else {
theWords[i] = '<b>' + words[i] + '</b>';
}
}
div.innerHTML = theWords.join(' ');
});
Content-Security-Policy "default-src 'self' *.VASHDOMEN.ru data: 'unsafe-inline' https://www.youtube.com https://yandex.ru https://mc.yandex.ru https://yastatic.net 'unsafe-eval'"
const STATE_SELECT = 1;
const STATE_CHECK = 2;
var state = STATE_SELECT;
var rrr = function() {
if(state === STATE_CHECK) return;
$(this).toggleClass("red");
};
var ggg = function() {
if(state === STATE_CHECK) return;
$(this).toggleClass("green");
};
var yyy = function() {
$(".green").toggleClass("yellow");
if(state === STATE_CHECK) {
state = STATE_SELECT;
} else {
state = STATE_CHECK;
}
};
$("div").hover(rrr);
$("div").click(ggg);
$("button").click(yyy);
function _replace(&$str, &$trans){
$arr = preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY);
for ($i = 0; $i < count($arr); $i++) {
if( isset($trans[$arr[$i]]) && rand(0,1)) {
$arr[$i] = $trans[$arr[$i]];
}
}
$str = implode('', $arr);
}
CURLOPT_CUSTOMREQUEST
задавать традиционно:CURLOPT_HTTPGET => TRUE, // GET
// или
CURLOPT_POST => TRUE, // POST
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_SSL_VERIFYSTATUS => FALSE,
*_TIME
function start() {
и закрывающую }
в конце : )</body></html>
var player = {x:200, y:200, el:document.getElementById('player')};
player.el.style.left = '' + Math.round(player.x) + 'px';
player.el.style.top = '' + Math.round(player.y) + 'px';
var delta = {x:0, y:0};
document.addEventListener('keydown', function(e){
if( e.key == 'ArrowRight') delta.x = 1;
else if(e.key == 'ArrowLeft') delta.x = -1;
else if(e.key == 'ArrowUp') delta.y = -1;
else if(e.key == 'ArrowDown') delta.y = 1;
});
document.addEventListener('keyup', function(e){
if( e.key == 'ArrowRight') delta.x = 0;
else if(e.key == 'ArrowLeft') delta.x = 0;
else if(e.key == 'ArrowUp') delta.y = 0;
else if(e.key == 'ArrowDown') delta.y = 0;
});
var ts = null;
function step(timestamp) {
if(!ts) ts = timestamp;
var passed = timestamp - ts;
//if(passed < 200) return window.requestAnimationFrame(step);
ts = timestamp;
if(delta.x || delta.y) {
player.x += delta.x * passed / 10;
player.y += delta.y * passed / 10;
player.el.style.left = '' + Math.round(player.x) + 'px';
player.el.style.top = '' + Math.round(player.y) + 'px';
};
window.requestAnimationFrame(step);
}
window.requestAnimationFrame(step);
ключ: значение
.var s = '{"United Arab Emirates":"AED","Afghanistan":"AFN","Albania":"ALL","Armenia":"AMD","Netherlands Antilles":"ANG","Angola":"AOA","Argentina":"ARS","Australia":"AUD"}';
var data = JSON.parse(s);
var countries = Object.keys(data);
// United Arab Emirates,Afghanistan,Albania,Armenia,Netherlands Antilles,Angola,Argentina,Australia
var data = JSON.parse(s, function(k,v){
return typeof v === "object" ? Object.keys(v) : v;
});
<script type="template" id="sourceCode">
. Скриптом копировать её оттуда, применять изменения и вставлять в DOM. При изменении размера, снова доставать нетронутую исходную разметку и переделывать под другую ширину.