Создайте кликабельную цель в контентном divJavascript

Форум по Javascript
Ответить
Anonymous
 Создайте кликабельную цель в контентном div

Сообщение Anonymous »

Я пытаюсь изменить переменную, когда нажимаю на определенный текст в редактируемом элементе div, пытаясь имитировать гиперссылку.

Код: Выделить всё


Homeback
NoteBooks







start typing...



Notebook.js:

Код: Выделить всё

// Elements
const CurrentNotebook = {}
const NoteBlock = document.getElementById('NoteBlock')

// building blocks
function updateblock() {
var NoteFile = fs.readFileSync(`./Notebooks/${CurrentNotebook["Name"]}/${CurrentNotebook["NoteName"]}`)
console.log(`Update NoteBlock`)
NoteBlock.innerHTML = marked.parse(String(NoteFile))
insertDropboxes(String(NoteFile))
}

function insertDropboxes(text){
for (var link in CurrentNotebook["MetaData"]){
var temp = text.split(`[${link}]`)
text =temp.join(`${link}`)}
return(text)
}

//listeners
NoteBlock.addEventListener('focus', async function (e){
NoteBlock.innerText = fs.readFileSync(`./Notebooks/${CurrentNotebook["Name"]}/${CurrentNotebook["NoteName"]}`)
})

NoteBlock.addEventListener('focusout', async function (e) {
console.log(e.target.classList)
var NoteFile = fs.readFileSync(`./Notebooks/${CurrentNotebook["Name"]}/${CurrentNotebook["NoteName"]}`)
var curnotenamebody = document.getElementsByClassName(`NoteBody`)[0]
fs.writeFileSync(`./Notebooks/${CurrentNotebook["Name"]}/${CurrentNotebook["NoteName"]}`,insertDropboxes(String(NoteBlock.innerText)))
updateblock()
playWriting()
})
Когда я console.log цель в событиях Noteblock и использую оператор if для проверки класса, добавленного в тег с помощью InsertDropboxes, я просто получаю обратно NoteBlock.
Это метод, который я использовал для выбора из динамических списков (помещение прослушивателя в родительский класс и фильтрация для целевого класса), но, похоже, здесь он не работает. Я предполагаю, что это связано с тем, что нажатие на NoteBlock является встроенной функцией атрибута contenteditable, но есть ли хороший способ установить переменную (CurrentNotebook["NoteName"]) посредством текстового ввода?
Я достаточно близок, чтобы попытаться это исправить, следует ли мне подойти к проблеме с другой стороны или мне следует использовать уже существующий модуль NPM?

Подробнее здесь: https://stackoverflow.com/questions/798 ... itable-div
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»