У меня разный контент для разных страниц с тегами HTML, которые мне нужно показать пользователю GUI, для этого я использую responsehtmlparser, так как использую React js для внешнего интерфейса.
Но внутри содержимого есть несколько URL-адресов внутри тегов, которые мне нужно выполнить в функции window.open (url) javascript, но когда я узнал, что activhtmlparser не поддерживает javascript для напоминания по соображениям безопасности.
Итак, я попробовал различные способы выполнить мою задачу, т.е. выполнить эти URL с помощью функции window.open, но каждый раз, когда возникала какая-то проблема, например, я пытался jquery обнаружить функцию click и затем выполнить URL с помощью window.open. но обнаружил, что рендеринг на стороне сервера не поддерживает jquery.
Одно решение, которое я нашел, заключалось в использовании гайки преобразования activhtmlparser. Я не знаю точно, как заставить это работать. Пожалуйста, помогите мне с этой проблемой. Ниже опробована функция преобразования, а также responsehtmlparser:
reacthtmlparser
<div>{ReactHtmlParser(pages.content)}</div>
функция трансформации
const htmlParserTransform = (node, index) => {
if (node.type === 'tag' && node.name === 'a') {
const {href} = node.attribs
return (
<a
href={href}
onClick={(event) => {
event.preventDefault ()
window.open (href,'name','width=600,height=400')
}}
>
<span pointerEvents="none">
{convertNodeToElement (node, index, this.htmlParserTransform)}
</span>
</a>
)
}
}
Спасибо в заранее!