2012-05-02 6 views
1

私は、ユーザがニュース記事や他のウェブページ(日本語)へのURLを入力し、そのページの内容をページ内のiFrame内で見ることを可能にするアプレットの開発に取り組んでいます。その考えは、コンテンツがページにロードされると、カーソルを使用して単語を強調表示し、選択されたテキストを配列に格納して(用語の個人辞書に翻訳/追加するため)、テキストを赤いボックスに囲む私のドメインに定義されているスタイルシートに従って(div)。これを行うには、cURLを使用して外部ページのHTMLを取得し、iFrameのソースにダンプします。cURLリクエストからHTMLを正しくフォーマットする

しかし、私は検索されたHTMLに大きなフォーマット上の問題を抱えています。大きな問題はスタイルシートを保存することです。これを修正するために、DOMDocumentを使用して、取得したHTMLのセクションにタグを追加しました。これはのいくつかのページ/ URLで機能しますが、多くの場合、出力HTMLにはまだ多くのスタイル上の問題があります。たとえば、divレイヤーが互いにクラッシュし、アラインメントがオフになり、背景が欠落しています。埋め込みコンテンツのテキスト選択を機能させるためにonClick javascript関数を使用するために出力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出力がすべてのインスタンスで正確かつ忠実に表示されることを保証する方法はありますか?それとも、これをやるより良い方法がありますか?私はこの問題に近づくためのさまざまな方法を試みましたが、それぞれが解決策に近づきましたが、新しい問題ももたらしました。

ありがとうございます。私が何かを明確にすることができるかどうかを教えてください。

答えて

0

私が正しく理解している場合は、完全なウェブページのHTMLをプルして、あなたのドメインの下にHTMLで表示しようとしています。これは常に厄介なものになるでしょう。多くのJavaスクリプトが壊れてしまいます。相対URLは間違っていて、あなたが言及したように、スタイルも同様です。あなたはたぶんページが表示されている寸法を変更することもできます。これらはすべて回避することができますが、それぞれの新しいサイトでうまくいっている戦いと戦ったり、現在のサイトがデザインを変更したりする場合は

問題に対する異なるアプローチ。代わりに、外部Webサイトへのインターフェイスとしてブラウザプラグインを作成することができます。その後、あなたのアプレットは、機能しテストされた(うまくいけば)サイトの上に座ることができます。その後、終わりのないfiddly htmlのリストではなく、アプレットのために何をする必要があるのか​​に焦点を当てることができます。

0

私は同様のことをしようとしています。書式を節約するのは非常に難しく、WebページのJSスクリプトが複雑になります。私は最終的に完全に完全に元の形式を表示する考えをあきらめたが、回避策とそれを実行します。

  1. はあなたに興味を持っているだけで、ヘッダー、リンク、リスト、段落を選択します。
  2. 自分のサイトのドメインパスをリンクに追加します。
  3. あなたは自分のクラスでヘッダー、リンクなどの項目を折り返すことがあります。
  4. を表示すると、別のトピックであるテキストを選択して保存することができます。私がしたことは、HTMlを2つのレベルで解析することです。そして、選択を行うのは簡単です。IEとFirefox/Chromeは別々に処理する必要があることに留意してください。
関連する問題