一旦您停止在 HTML 中内联添加事件侦听器,您的所有报价(以及许多其他)问题都会消失。
HTML 是用来表示文本和多媒体数据的,它不应该包含内联的 CSS 和 JavaScript。
作为第一步,您可以重新组织您的代码,以便所有 JavaScript 都位于单独的文件中。
在 HTML 中:
<a class="bbcode-link" data-src="\1">\1</a>
<script src="script.js"></script>
在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 之前对其进行清理。
参考链接: