HTMLELEMENT上的InnerHTML和OuterHTML属性未定义,没有错误



目标:将HTML作为字符串,编辑其中图像标签的某些属性,将HTML返回为字符串。

我的功能遵循以下行:

private resolveImagesInHTML (body: string): string {
    let htmlParser = new domParser.DOMParser();     // from react-native-html-parser
    let parsedDOM: HTMLDocument = htmlParser.parseFromString('<html>' + body + '</html>', 'text/html');
    // ------- code to modify DOM goes here -------
    return parsedDOM.documentElement.innerHTML;
}

问题:如果我在我的调试控制台中打印parseddom或parseddom.documentement, 它正确显示了修改的HTML内容。出奇, Innerhtml或OuterHTML属性不会丢任何错误,但是返回 "未定义"。

我明显的猜测是,在修改代码时,我可能已经弄乱了HTML的格式,但是即使我在功能中发表了所有内容,除了上面的三行,行为仍然相同。

我可能在这里做错了什么?谢谢,我对反应和打字稿非常陌生,所以如果我在这里错过了一些微不足道和明显的东西,我就不会感到惊讶。

htmlParser.parseFromString

返回看起来像DOM的东西,这些东西与DOM有一些共同的方法,但并非全部。它没有.innerHTML。真正的浏览器DOM具有它。

从这里写的内容https://www.npmjs.com/package/reaect-native-html-parser innerhtml不可用

那么为什么不丢失错误呢?因为那是JavaScript对象的工作方式。

console.log({}.innerHTML) // No Error

如何强制错误?

有两种解决方案,一种是使用严格的模式并在控制台中启用严格的模式警告。另一个是用Proxy s包装的东西,例如检查hasOwnProperty的检查。

最新更新