<textarea class="js-copytextarea">Hello I'm so11111me text</textarea>
var copyTextareaBtn = document.querySelector('.js-textareacopybtn');
copyTextareaBtn.addEventListener('click', function(event) {
var copyTextarea = document.querySelector('.js-copytextarea');
copyTextarea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
});
/// content.js
calc=ваш объект или массив,что угодно.
chrome.runtime.sendMessage({greeting:calc});
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
localStorage['abbrev'] += request.greeting;
});
poupop.js
chrome.storage.local.get('channels', function (result) {
channels = result.channels;
menu.innerHTML +=channels;
});
function showHideText(elem){ //Вызываем функцию с аргументом в который предается элемент на который был осуществлен клик.
var hideText = elem.parentElement.querySelector('.hideText'); //Сохраняем элемент на который был произведен клик,поднимаемся выше по родителю и ищем скрытый элемент текста по классу hideText
hideText.classList.toggle('ShowHideText'); //переключаем если есть такой класс то убираем его если нет,то добавляем.
elem.classList.toggle('hide'); //Меняем надпись с "показать текст" на "скрыть текст"
}
onclick="showHideText(this);"
<div class="opisanie">
<h2>Краткое описание</h2>
<p class="hideText">При установке ксенонового оборудования на современные автомобили, оснащенные бортовым компьютером, часто можно столкнуться с тем, что компьютер выдает ошибку в работе системы освещения (загорается соответствующая лампочка на панели приборов). На целом ряде автомобилей это приводит к автоматическому отключению подачи питания на фары. </p>
<span onclick="showHideText(this);" class="ShowFullText">показать полностью</span>
</div>
Как это сделать?
var pole = document.querySelector('.pole'); //Цепляем наш form.
var inputText = document.querySelector('.inputText').value; //Цепляем Input значение которое в нем сейчас,в этой же переменной будем хранить увеличенное или уменьшенное значение
var elemInp = document.querySelector('.inputText'); //Цепляем сам элемент Input .
pole.addEventListener('click',function(event){ //Ставим прослушку события клика на From,куда не кликни на From вызовется эта функция
var target=event.target; //Событие target получает элемент на который был осуществлен клик.
var minus= target.parentElement.classList.contains('minus'); //Сначала пишем target,в нем хранится элемент на который был осуществлен клик ,далее parentElement ,потому что target вернет самый глубокий элемент а это Bottom, мы от него поднимаемся к его родителю span, далее метод contains он дат <code lang="javascript">
true
</code> or <code lang="javascript">
false
</code>,если есть такой класс у этого элемента,то есть мы здесь определяем что был осущетсвлен клик именно на элемент minus
var plus = target.parentElement.classList.contains('plus');
if(minus && inputText>=1 ){ --inputText; elemInp.value=inputText;} //делаем проверку условие сработает если был клик на нужный элемент (minus переменная вернет тру или фалс) и чтобы значение инпута было не ниже нуля,а внутри мы сначала у значения инпута снимаем -1 ,a затем записываем новое значение в сам инпут.
if(plus){ ++inputText; elemInp.value=inputText;}
},false);
$.ajax({
url:'полный адрес к твоему скрипту.php',
type:'POST',
dataType: 'json',
data:{myData:ourDataSend///сюда клади твой объект который будешь отправлять на сервер.}
success:function(arr){
////делай тут чо те нужно в полученом ответе с сервера
}
}
}
});
uls[i].appendChild(lis[0]);
$(".sorting-items").on('click', function(event) {
var target= event.target.parentNode;
target.classList.toggle('active');
var atrr=target.getAttribute("data-group");
$(".secondItemsList>.item-sort[data-group='"+atrr+"']").toggleClass('active');
});
var coord1, coord2;
function getCoords(nameId){
var coord=nameId.getBoundingClientRect();
return {
top:coord.top,
left:coord.left,
bottom:coord.bottom,
right:coord.right
};
};
coord1=getCoords(nameId);
coord2=getCoords(nameId2);
function getCoords(nameId, quastObj){
var coord=nameId.getBoundingClientRect();
quastObj.top = coord.top;
quastObj.left = coord.left;
quastObj.bottom = coord.bottom;
quastObj.right = coord.right;
};
search.oninput =function searchVal(){
console.log(search.value);
var ourServ;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange= function(){
if(xhr.readyState !=4) return;
console.log( xhr.status + ': ' + xhr.statusText + 'respone:'+xhr.responseText);
ourServ=JSON.parse(xhr.responseText);
console.log(ourServ,' our)');
};
xhr.open('GET', './php/sql.php?input='+search.value, true);
xhr.send();
};
background:#3F3;
position: absolute;
left:0px;
height:200px;
width:200px;
-webkit-transition-property: left;
-webkit-transition-duration: 1.5s;
}
#test:hover {
left:100px;
}
var cube_geometry = new THREE.CubeGeometry(100, 100, 100);
cube_two_texture = new THREE.TextureLoader().load( 'img.jpg' );//load texture
var cube_two_material = new THREE.MeshBasicMaterial({map: cube_two_texture});
var cube_two = new THREE.Mesh(cube_geometry, cube_two_material);
cube_two.position.y = -200;
scene.add(cube_two);
animation: clock 10s both ; /*both -нужен для сохранения css правил после проигрывания анимации */
opacity:0;