我正在开发一个小程序,它允许用户输入新闻文章或其他网页(日文)的 URL,并在我的页面的 iFrame 中查看该页面的内容。这个想法是,一旦将内容加载到页面中,用户可以使用光标突出显示单词,光标将选定的文本存储在一个数组中(用于翻译/添加到个人术语词典),并将文本包围在一个红色框中(div) 根据我的域上定义的样式表。为此,我使用 cURL 检索外部页面的 HTML 并将其转储到 iFrame 的源中。
但是,我一直遇到检索到的 HTML 的主要格式问题。最大的问题是保留样式表,为了解决这个问题,我使用 DOMDocument 将标签添加到检索到的 HTML 部分。这适用于某些页面/URL,但对于许多其他页面/URL,输出 HTML 仍然存在许多样式问题。例如,div 层相互碰撞,对齐关闭,背景丢失。这会带来一些问题,因为我需要将输出 HTML 嵌入到新的 HTML 中,以便使用于在嵌入内容中传递文本选择的 onClick javascript 函数工作,这意味着生成的源代码最终看起来像这样:
<div onclick="parent.selectionFunction()" id ="studyContentn">
<!-- HTML of output from cURL, including doctype declarations and <html>,<head> tags -->
</div>
在大多数情况下,我一直遇到的许多格式问题似乎在很大程度上是任意的。我尝试过使用 php Tidy 来清理 HTML 的输出,但这也只适用于某些页面,但对其他页面无效。我有点怀疑它可能与使用 DOMDocument 时奇怪地解析的 CDATA 声明有关,但我不确定。
有没有办法可以保证 cURL 的 HTML 输出在所有情况下都能正确且忠实地呈现?还是有更好的方法来做到这一点?我尝试了很多不同的方法来解决这个问题,每种方法都更接近解决方案,但也带来了自己的新问题。
谢谢 - 如果我能澄清任何事情,请告诉我。