function createAudioElement(blob) {
var aud = document.getElementById("sound")
aud.controls = true
aud.src = blob
aud.type = 'audio/webm'
}
var recorder
var publicBlobObj
function start(callback) {
navigator
.mediaDevices
.getUserMedia({ audio: true })
.then(stream => {
const chunks = []
recorder = new MediaRecorder(stream)
recorder.ondataavailable = e => {
chunks.push(e.data)
if (recorder.state == 'inactive') {
publicBlobObj = new Blob(chunks, { type: 'audio/webm' })
createAudioElement(URL.createObjectURL(publicBlobObj))
if (callback) callback()
}
}
recorder.start()
})
.catch(console.error)
}
function stop() {
recorder.stop()
var xhr = new XMLHttpRequest()
var data = new FormData
data.append("sound", publicBlobObj)
xhr.open('POST', '/User/Sound', true)
xhr.send(data)
}
start(() => {
// вот тут уже и recorder и publicBlobObj имеют значение
})
var arr = [
{ price: 10, amount: 10 },
{ price: 12, amount: 12 },
{ price: 9, amount: 7 },
{ price: 17, amount: 8 },
{ price: 4, amount: 2 }
]
arr
.sort(function(a, b) {
return a.price - b.price
})
.reverse()
.map(function(item, i) {
item.index = i + 1
})
console.log(arr)
/*
[
{ price: 17, amount: 8, index: 1 },
{ price: 12, amount: 12, index: 2 },
{ price: 10, amount: 10, index: 3 },
{ price: 9, amount: 7, index: 4 },
{ price: 4, amount: 2, index: 5 }
]
*/
var data = {
a: {
b: {
c: {
d: {
e: "Hello World!"
}
}
}
}
}
function from(target, path) {
return path.split(".").reduce(function(data, key) {
return data && data[key]
}, target)
}
console.log(from(data, "a.b.c.d.e")) // "Hello World!"
console.log(from(data, "a.a.a.a.a")) // undefined
const walk = data => {
if (!data) return;
for (let i = 0; i < data.length; i++) {
for (let l = 0; l < data.length; l++) {
if (data[l].left > data[i].left && data[l].right < data[i].right) {
data[i].children = data[i].children || []
data[i].children.push(data.splice(l, 1)[0])
l--
}
}
walk(data[i].children)
}
return data
}
const list = tree => {
let ul = document.createElement("ul")
for (let i = 0; i < tree.length; i++) {
let li = document.createElement("li")
li.textContent = tree[i].title
ul.appendChild(li)
if (tree[i].children) li.appendChild(list(tree[i].children))
}
return ul
}
let tree = walk(data)
console.log(tree)
let listNode = list(tree)
console.log(listNode)
{
foo: function() { console.log("такого метода нет") },
bar: function() { console.log("такого метода нет") },
baz: function() { console.log("такого метода нет") }
}
var obj = {
callMethod: function(name) {
if (typeof obj[name] === "function") {
obj[name].apply(null, [].slice.call(arguments, 1))
} else {
console.log("такого метода нет")
}
}
}
<?php
$message = "";
if (count($_POST)) {
// обрабатываем данные формы
// задаем значение переменной $message
}
?>
<?php if ($message) { ?>
<div id="error_message" style="width:200px; color:red; position:fixed; left:50%; margin-left:-100px; text-align:center;"></div>
<?php } else { ?>
<form action="" method="post" target="error_message">
<input name="reg_nickname" type="text" placeholder="Введите имя" required />
<input id="id_reg_email" name="reg_email" type="email" placeholder="Введите e-mail" required />
<input id="id_reg_pass" name="reg_pass" type="password" placeholder="Введите пароль" required />
<input id="id_reg_confirmpass" name="reg_confirmpass" type="password" placeholder="Подтвердите пароль" required />
<input type="submit" value="Зарегистрироваться" onclick="return check_email_pass();" style="margin-top:20px;" />
</form>
<?php } ?>
<script type="text/javascript" src="/js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="/js/jcarousellite_1.0.1.js"></script>
<script type="text/javascript" src="/js/shop-script.js"></script>
<script>
$(function() {
$("#newsticker").jCarouselLite({
vertical: true;
hoverPause:true;
btnPrev: "#news-prev",
btnNext: "#news-next",
visible: 3,
auto:3000,
speed:500
});
$("#style-grid").click(function() {});
$("#style-list").click(function() {
$("#block-tovar-grid").hide();
});
})
</script>