私は、ユーザーがニュース記事や他のWebページへのURLを入力し、自分のページのiFrame内でそのページのコンテンツを表示できるアプレットに取り組んでいます。コンテンツがページに読み込まれると、ユーザーはカーソルを使用して単語を強調表示できます。カーソルは、選択したテキストを配列に格納し(用語の個人辞書に翻訳/追加するため)、テキストを赤いボックスで囲みます。 (div)私のドメインで定義されたスタイルシートによる。これを行うには、cURLを使用して外部ページのHTMLを取得し、それをiFrameのソースにダンプします。
ただし、取得したHTMLで大きなフォーマットの問題が発生し続けます。大きな問題はスタイルシートを保持することです。これを修正するために、DOMDocumentを使用して取得したHTMLのセクションにタグを追加しました。これは一部のページ/URLで機能しますが、他の多くの出力HTMLにはまだ多くのスタイルの問題があります。たとえば、divレイヤーが互いに衝突し、配置がオフになり、背景が失われます。埋め込まれたコンテンツのテキスト選択を渡すためのonClickjavascript関数を機能させるには、出力HTMLを新しいものに埋め込む必要があるため、これは少し問題になります。つまり、結果のソースは次のようになります。
<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出力がすべてのインスタンスで正しく忠実にレンダリングされることを保証する方法はありますか?それとも、これを行うためのより良い方法はありますか?私はこの問題に取り組むためのさまざまな方法を試しましたが、それぞれが解決策に近づいていますが、独自の新しい問題ももたらしています。
ありがとう-私が何かを明確にすることができるかどうか私に知らせてください。