Все ваши проблемы с цитатами (и многие другие) исчезнут, как только вы прекратите добавлять встроенные обработчики событий в HTML.
HTML предназначен для представления текстовых и мультимедийных данных, он не должен содержать встроенные CSS и JavaScript.
В качестве первого шага вы можете реорганизовать свой код так, чтобы весь JavaScript был в отдельных файлах.
В HTML:
<a class="bbcode-link" data-src="\1">\1</a>
<script src="script.js"></script>
In script.js
:
function showTooltip(e) {
var filename = e.target.getAttribute('data-src')
return tooltip.show('<img src="' + filename + '.jpg" />', 200)
}
function hideTooltip() {
return tooltip.hide()
}
[].forEach.call(
document.querySelectorAll('a.bbcode-link'),
function (link) {
link.addEventListener('mouseover', showTooltip, false)
link.addEventListener('mouseout', hideTooltip, false)
}
)
Также я надеюсь, что вы продезинфицируете пользовательский ввод перед тем, как вставить его в HTML.
Справочные ссылки: