<script>whatever</script>
убирается, оставляя «что угодно» на месте. Это поведение по умолчанию HtmlCompat.from Html () для тегов, которые он не распознает. Перед вызовом HtmlCompat.from Html () вам нужно убрать теги проблемы и связанный текст из строки. Вы можете сделать это с помощью прямой строки или с помощью регулярного выражения.
Для Java:
String newString = mHtmlString.replaceAll("(?is)<script.*?</script>","")
Для Kotlin:
val newString = mHtmlString.replace(Regex("(?is)<script.*?</script>"), "")
Второй способ использовать обработчик тега, который вы можете указать при вызове из Html (String, int, ImageGetter, TagHandler) .
override fun handleTag(
opening: Boolean,
tag: String,
output: Editable,
xmlReader: XMLReader?
) {
class DeleteSpan
if (!tag.equals("script", true)) {
return
}
if (opening) {
output.setSpan(DeleteSpan(), output.length, output.length, Spannable.SPAN_MARK_POINT)
} else {
val spans = output.getSpans(0, output.length, DeleteSpan::class.java)
val lastSpan = spans[spans.size - 1]
output.apply {
delete(getSpanStart(lastSpan), getSpanEnd(lastSpan))
removeSpan(lastSpan)
}
}
}
Этот второй метод просто удаляет содержимое тег сценария из вывода.