如何将 <div> 复制到 <textarea> 副本以在点击 "enter keyboard button" 时也复制换行符?
How do I make <div> into <textarea> copy to copy the line break too when hitting "enter keyboard button"?
当我按下输入键盘按钮时,如何复制到以复制换行符,以便它是一个精确的副本?
现在它可以工作,但在按下输入键盘按钮时它不会复制换行符。我希望它能像现在一样工作,而无需剥离它。
NOTE 因为之前的误解我澄清一下: 请不要混淆 "copying texatea into div" 因为那和 "coping div into textarea" 不是一回事,因为代码为 "copying texatea into div" 工作与 "coping div into textarea" 不同。我需要 "coping div into textarea" 而不是相反。
我想:div到text
NOT:将文本转换为div
JavaScript:
function copyText() {
$("#text").val($("#divtext").text())
}
html:
<textarea name="text" id="text" rows="14" cols="54" wrap="soft"></textarea>
您还可以查找回车键:
<script>
function onTextChange() {
var key = window.event.keyCode;
// If the user has pressed enter
if (key === 13) {
document.getElementById("text").value = document.getElementById("text").value + "\n*";
return false;
}
else {
return true;
}
}
</script>
<div id="yourDiv" onkeypress="onTextChange();"></div>
如果使用.text()
,很难从div
换行,请尝试使用.html()
从 div
拆分 <br>
并使用 \n
加入 textarea
$('#text').val($('#divtext').html().split('<br>').join('\n'))
工作更新
我使用了我得到的答案中的代码,但我不得不对其进行一些修改以使其正常工作,因为我得到的答案不完整。因为我想要复制代码而不是删除代码,所以需要做的是让它默认删除,然后再次将其删除,以便在输入源代码时显示为源代码,而不是作为条纹文本。
所以这是有效的完整答案,以及我如何根据得到的不完整答案使其发挥作用。此代码有效。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
function copyText() {
$('#text').val($('#divtext').html()
.split('<br>').join('')
.split('<div>').join('\n')
.split('</div>').join('')
.split('<').join('<')
.split('>').join('>')
.split(' ').join(' ')
.split('&').join('&')
)
}
</script>
<div id="divtext" contentEditable="true" wrap="soft" style="text-align:left; width: 499px; height: 230px;" onkeyup="copyText();"></div>
<br>
<textarea id="text" rows="34" cols="134" wrap="soft"></textarea>
当我按下输入键盘按钮时,如何复制到以复制换行符,以便它是一个精确的副本? 现在它可以工作,但在按下输入键盘按钮时它不会复制换行符。我希望它能像现在一样工作,而无需剥离它。
NOTE 因为之前的误解我澄清一下: 请不要混淆 "copying texatea into div" 因为那和 "coping div into textarea" 不是一回事,因为代码为 "copying texatea into div" 工作与 "coping div into textarea" 不同。我需要 "coping div into textarea" 而不是相反。
我想:div到text
NOT:将文本转换为div
JavaScript:
function copyText() {
$("#text").val($("#divtext").text())
}
html:
<textarea name="text" id="text" rows="14" cols="54" wrap="soft"></textarea>
您还可以查找回车键:
<script>
function onTextChange() {
var key = window.event.keyCode;
// If the user has pressed enter
if (key === 13) {
document.getElementById("text").value = document.getElementById("text").value + "\n*";
return false;
}
else {
return true;
}
}
</script>
<div id="yourDiv" onkeypress="onTextChange();"></div>
如果使用.text()
,很难从div
换行,请尝试使用.html()
从 div
拆分 <br>
并使用 \n
加入 textarea
$('#text').val($('#divtext').html().split('<br>').join('\n'))
工作更新
我使用了我得到的答案中的代码,但我不得不对其进行一些修改以使其正常工作,因为我得到的答案不完整。因为我想要复制代码而不是删除代码,所以需要做的是让它默认删除,然后再次将其删除,以便在输入源代码时显示为源代码,而不是作为条纹文本。
所以这是有效的完整答案,以及我如何根据得到的不完整答案使其发挥作用。此代码有效。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
function copyText() {
$('#text').val($('#divtext').html()
.split('<br>').join('')
.split('<div>').join('\n')
.split('</div>').join('')
.split('<').join('<')
.split('>').join('>')
.split(' ').join(' ')
.split('&').join('&')
)
}
</script>
<div id="divtext" contentEditable="true" wrap="soft" style="text-align:left; width: 499px; height: 230px;" onkeyup="copyText();"></div>
<br>
<textarea id="text" rows="34" cols="134" wrap="soft"></textarea>