【发布时间】:2019-11-06 16:55:57
【问题描述】:
我正在尝试使用 javaScript 设置位于 tinyMCE body 内的 p 标签的 innerText,但似乎无法到达元素。
Elements Tab of the Developer Tools.
在我看来,iframe 中有一个影子 DOM。当我在控制台中运行以下命令时,我得到 null 结果。
document.querySelector("#tinymce");
null
但是,如果我在控制台中从“top”切换到“mce_6_ifr”,我现在可以访问所需的数据:
Console Tab of the Developer Tools
我不确定如何在这方面取得进展。 非常感谢任何帮助!
【问题讨论】:
-
iframe 中的 tinymce 对,所以你可以试试这个
var iframe = document.getElementById('mce_6_ifr'); var element = iframe.contentWindow.document.querySelector("#tinymce"); -
嗨@mariappank 我试着运行这个“var iframe = document.getElementById('mce_6_ifr');”它返回未定义但 document.getElementById('mce_6_ifr');返回 iframe。这里有什么想法吗?
-
我认为它会工作
document.getElementById("mce_6_ifr").contentWindow.document.getElementsByTagName("p")[0].innerText -
TinyMCE 有一个 API 可以将内容加载到编辑器中:
setContent()。您是否考虑过使用它而不是遍历 DOM? -
@MichaelFromin 我不知道我会在这里将其作为替代解决方案进行检查,感谢您的输入!
标签: javascript web-scraping tinymce shadow-dom