Javascript 如何使用现代浏览器(具有shadowDOM内部编辑器)清除输入元素? document.getElementById('taginput').addEventListener('paste',函数(e){ var clipboardData、pastedData、inputdata、tempData、testtags=[]、currentTags=[]、out=''; clipboardData=e.clipboardData | | window.clipboardData; pastedData=clipboardData.getData('Text'); inpudata=document.getElementById('taginput')。value+pastedData; tempData=pastedData.split(','); 对于(var i=0;i
这是我当前的代码,此实现的问题是Javascript 如何使用现代浏览器(具有shadowDOM内部编辑器)清除输入元素? document.getElementById('taginput').addEventListener('paste',函数(e){ var clipboardData、pastedData、inputdata、tempData、testtags=[]、currentTags=[]、out=''; clipboardData=e.clipboardData | | window.clipboardData; pastedData=clipboardData.getData('Text'); inpudata=document.getElementById('taginput')。value+pastedData; tempData=pastedData.split(','); 对于(var i=0;i,javascript,shadow-dom,Javascript,Shadow Dom,这是我当前的代码,此实现的问题是This.value='不重置输入字段,并且This.value=tempData[tempData.length-1].trim(); },假)将在输入字段中的userinput之前简单地添加新文本 例如,如果我将apple,apple,orange,banana粘贴到字段中,它将保留并添加banana,并成为banana-apple,apple,orange,banana对于shadow DOM浏览器,您需要: document.getElementByI
This.value='
不重置输入字段,并且This.value=tempData[tempData.length-1].trim();
},假)
将在输入字段中的userinput之前简单地添加新文本
例如,如果我将
apple,apple,orange,banana
粘贴到字段中,它将保留并添加banana,并成为banana-apple,apple,orange,banana
对于shadow DOM浏览器,您需要:
document.getElementById('taginput').addEventListener('paste',function(e){
var clipboardData, pastedData, inputdata, tempData, tempTags = [], currentTags = [], out = '';
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text');
inpudata = document.getElementById('taginput').value + pastedData;
tempData = pastedData.split(',');
for (var i = 0; i < tempData.length - 1; i++) {
if(tempTags.indexOf(tempData[i].trim()) === -1) tempTags.push(tempData[i].trim());
}
Array.prototype.slice.call(document.getElementsByTagName('dynamictags')[0].children).forEach(function(data){
currentTags.push(data.innerText);
});
tempTags.forEach(function(data){
if (currentTags.indexOf(data) === -1) out += '<res>' + data + '</res>';
});
document.getElementsByTagName('dynamictags')[0].innerHTML = document.getElementsByTagName('dynamictags')[0].innerHTML + out;
this.value = '';
this.value = tempData[tempData.length - 1].trim();
}, false);
this.value='';=>注意==是比较运算符,而不是赋值运算符。
setTimeout(function(){
document.getElementById('taginput').value = tempData[tempData.length - 1].trim();
},0);