サポートされているHTMLタグのサブセットが非常に悪く、永遠に変更されていない。
<a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u>
このことは、完全に意図されたようにかかわらず、変換品質の、HTMLをレンダリングすることができないことです。サポートされていないタグをより基本的なタグに置き換えると、CSSのスタイリングのかなりの部分を放棄することもできます。
http://simplehtmldom.sourceforge.net/(PHP)はいくつかの調整を行うことができますし、無効なマークアップにも対処する能力があります(さまざまなソースからコンテンツを処理した方法を見ると、長期的には多くの痛み) - 段落に
<h1>,...,<h6> => <b>
<strong> => <b>
<em> => <i>
と平文それの残りの部分を交換するよりも、皆さんはそれはまだだろうか読みに驚くことでしょう。あなたはよ -
<h1> => <b class="header1">
をして(フラッシュCSSサポートはかなりあまりにも限られているが)のような適切な私は砂漠のためにこれを保存してきた
をいくつかのCSSを追加します:あなたはとても似すぎて少し派手かもしれませんそれを愛しても嫌いだが、それはそのトリックを行うだろう。あなたのアプリがブラウザ内に配備されていると仮定すると(そうでないと私はあなたを誤読し、恥ずかしさを取り除き、ここで読むのを止める)iframeを使ってhtmlを真剣に表示することができます。
JS < - > AS通信はかなり簡単で、アプリケーションの所定の領域に配置して、それがその一部であるという錯覚を与えることができます。 Flashオブジェクト/埋め込みにwindowmodeを設定して、他のページ要素の上にレンダリングしないようにしてからiframe z-indexを増やしてください。
これは「醜い」アプローチと見なされても驚くことはありませんが、内部は美しいです。あなたは逐語的なHTMLと実際のCSSサポートに終わります。ユーザーとのやりとりに関しては、iframe内のリンクのクリックなどをインターセプトして、ムービークリップからアクションをリクエストすることもできます。
幾分興味深い質問ビットマップデータとしてプレレンダリングされたデータを返信する信頼できるサーバー側のHTMLレンダリングエンジンがあれば私は興味があります(これを行うオーバーヘッドがばかげているかもしれません) 。代わりに、クライアントサイドでStageWebViewをチェックアウトhttp://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/media/StageWebView.html – shaunhusain
実際に私はあなたがウェブキットをつかんでそれにフックできるかどうか疑問に思いますHTMLサーバーの側をレンダリングして、レンダリングされたバージョン(jpgなどでエンコードされたもの)を何らかの形でクライアントに送り返します。または誰かが既にこれをしている場合。 – shaunhusain
@shaunhusainはい、Webページをサーバー上のビットマップとしてレンダリングし、それを送り返すプロジェクトがいくつかあります。自分のAPIに呼び出すWebサービスと、自分のサーバーで実行するコードのどちらかを選択できます。いくつかのリンク:http://url2png.com http://webthumb.bluga.net/home http://www.thumbalizr.com/ http://www.boutell.com/webthumb/ http:// khtml2png。 sourceforge.net/ – davr