Javascript 我使用tinymce和Firebase制作笔记应用程序,用于输入。问题是我无法检索tinymce textarea上要编辑的数据
我正在制作notes应用程序,用于输入,我在使用tinymce,用于数据库,我在使用Firebase。我可以将数据保存到firebase,但问题是我无法检索tinymce textarea上的数据进行编辑。如果我使用默认的文本区域,我可以检索,但是文本不丰富。 数据库部分jsJavascript 我使用tinymce和Firebase制作笔记应用程序,用于输入。问题是我无法检索tinymce textarea上要编辑的数据,javascript,forms,firebase,firebase-realtime-database,tinymce,Javascript,Forms,Firebase,Firebase Realtime Database,Tinymce,我正在制作notes应用程序,用于输入,我在使用tinymce,用于数据库,我在使用Firebase。我可以将数据保存到firebase,但问题是我无法检索tinymce textarea上的数据进行编辑。如果我使用默认的文本区域,我可以检索,但是文本不丰富。 数据库部分js firebase.auth().onAuthStateChanged(function(user) { var user = firebase.auth().currentUser; if (user) {
firebase.auth().onAuthStateChanged(function(user) {
var user = firebase.auth().currentUser;
if (user) {
var uid = user.uid;
var reviewForm = document.getElementById('reviewForm');
var fullName = document.getElementById('fullName');
var message = document.getElementById('message');
var hiddenId = document.getElementById('hiddenId');
reviewForm.addEventListener('submit', (e) => {
e.preventDefault();
if (!fullName.value || !message.value) return null
var id = hiddenId.value || Date.now()
db.ref(uid + '/notes/' + id).set({
fullName: fullName.value,
message: message.value
});
fullName.value = '';
message.value = '';
hiddenId.value = '';
});
// READ REVEIWS
var x = document.createElement("HR");
var reviews = document.getElementById('reviews');
var reviewsRef = db.ref(uid + '/notes/');
reviewsRef.on('child_added', (data) => {
var li = document.createElement('li')
li.id = data.key;
li.innerHTML = reviewTemplate(data.val())
reviews.appendChild(li);
});
reviewsRef.on('child_changed', (data) => {
var reviewNode = document.getElementById(data.key);
reviewNode.innerHTML = reviewTemplate(data.val());
});
reviewsRef.on('child_removed', (data) => {
var reviewNode = document.getElementById(data.key);
reviewNode.parentNode.removeChild(reviewNode);
});
reviews.addEventListener('click', (e) => {
var reviewNode = e.target.parentNode
// UPDATE REVEIW
if (e.target.classList.contains('edit')) {
fullName.value = reviewNode.querySelector('.fullName').innerText;
message.value = reviewNode.querySelector('.message').innerText;
hiddenId.value = reviewNode.id;
}
// DELETE REVEIW
if (e.target.classList.contains('delete')) {
var id = reviewNode.id;
db.ref(uid + '/notes/' + id).remove();
}
});
function reviewTemplate({ fullName, message }) {
return `
<div class='fullName' style="font-size: 12px; color: black; font-weight: bold; background: rgba(204, 204, 204, 0); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;">${fullName}</div>
<div class='message' style=" font-size: 12px; color: #111111; background: rgba(204, 204, 204, 0); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">${message}</div>
<button class='delete' style="width: 50px; color: white; background-color: #aa3343; border: 0; font-size: 13px;">Delete</button>
<button class='edit' style="width: 50px; color: black; background-color: #5a83da; border: 0; font-size: 13px;">Edit</button>
<hr>
`
};
} else {
// No user is signed in.
}
});
firebase.auth().onAuthStateChanged(函数(用户){
var user=firebase.auth().currentUser;
如果(用户){
var uid=user.uid;
var reviewForm=document.getElementById('reviewForm');
var fullName=document.getElementById('fullName');
var message=document.getElementById('message');
var hiddenId=document.getElementById('hiddenId');
reviewForm.addEventListener('submit',(e)=>{
e、 预防默认值();
如果(!fullName.value | |!message.value)返回null
var id=hiddenId.value | | Date.now()
db.ref(uid+'/notes/'+id).set({
fullName:fullName.value,
message:message.value
});
fullName.value='';
message.value='';
hiddenId.value='';
});
//阅读评论
var x=document.createElement(“HR”);
var reviews=document.getElementById('reviews');
var reviewsRef=db.ref(uid+'/notes/');
ReviewRef.on('child_added',(数据)=>{
var li=document.createElement('li')
li.id=data.key;
li.innerHTML=reviewTemplate(data.val())
审查:儿童(李);
});
ReviewRef.on('child_changed',(数据)=>{
var reviewNode=document.getElementById(data.key);
reviewNode.innerHTML=reviewTemplate(data.val());
});
ReviewRef.on('child_removed',(数据)=>{
var reviewNode=document.getElementById(data.key);
reviewNode.parentNode.removeChild(reviewNode);
});
reviews.addEventListener('单击',(e)=>{
var reviewNode=e.target.parentNode
//更新REVEIW
if(e.target.classList.contains('edit')){
fullName.value=reviewNode.querySelector('.fullName').innerText;
message.value=reviewNode.querySelector('.message').innerText;
hiddenId.value=reviewNode.id;
}
//删除REVEIW
if(e.target.classList.contains('delete')){
var id=reviewNode.id;
db.ref(uid+'/notes/'+id).remove();
}
});
函数reviewTemplate({fullName,message}){
返回`
${fullName}
${message}
删除
编辑
`
};
}否则{
//没有用户登录。
}
});
Html
<script>
tinymce.init({
selector: '#message'
});
</script>
<form id='reviewForm' style="background-color: #EAEAEA">
<input type="hidden" id='hiddenId' />
<input type="text" id='fullName' placeholder="Add Title" style="background-color: #EAEAEA; "/>
<br/>
<textarea id='message' placeholder="Add Content" style="background-color: #EAEAEA;"></textarea>
<br/>
<button id="sbutton" type='submit' style="color:rgb(255, 255, 255); height:50px; align-self: center;">Save</button>
</form>
</div>
</div>**
tinymce.init({
选择器:“#消息”
});
拯救
**
TinyMCE的工作原理是将标准的
HTML元素替换为包含微型编辑器的
。这意味着代码如下:
var message = document.getElementById('message');
…在TinyMCE中找不到数据。相反,它会找到原始的、隐藏的(和空的)
要从TinyMCE获取数据,请执行以下操作:
如果提交了包含TinyMCE的
,Tiny的内容就像任何HTML表单一样是POST
-ed。此外,可以使用.getContent()
方法从TinyMCE检索内容。这将返回包含Tiny内容的HTML字符串: