2017-01-11 6 views
0

テキストファイルに保存されているhtmlコードの断片をページコードに組み込む簡単な方法がありますか(または最も簡単な方法がありますか)?テキストファイルのコード断片をhtmlに含めるにはどうすればいいですか?

など。テキストファイルfragment.txtには以下が含まれています。

<b><i>External text</i></b> 

ページコードには、このフラグメントを「オンザフライ」で含める必要があります。 (PHPなし...?)

+0

HTTPのようなクロスオリジンのエラーを取得:// stackoverflowのを.com/questions/6470567/jquery-load-txt-file-and-insert-div PS phpでもっと簡単です... – sinisake

+0

このifure'は 'iframe'です。' iframe src = "fragment.txt" width = "20%" height = "10%" align = "left">​​'です。私はそれが "いいえ、飛行"を動作させることができるか分からない。 – Banzay

答えて

1

JavaScriptのアプローチが好ましいと思われます。しかし、以下の例では、原点通過要求(ローカルホストからインターネットへ、またはその逆)で問題が発生する可能性があります。また、HTTPS経由では提供されない外部スクリプトを含めると、セキュリティ上の問題が発生する可能性があります。

任意の外部ライブラリなしのインラインソリューションは、次のようになります。ここでは

<!DOCTYPE html> 
<html> 
    <body> 
    <div id="textcontent"></div> 

    <script> 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     document.getElementById('textcontent').innerText = xhttp.responseText; 
    }; 
    xhttp.open("GET", "content.txt", true); 
    xhttp.send(); 
    </script> 
    </body> 
</html> 

あなたはHTMLファイルと同じフォルダにファイルcontent.txtを必要としています。テキストファイルはAJAX経由でロードされ、IDはtextcontentのdivに格納されます。エラーハンドリングは上記の例には含まれていません。 http://www.w3schools.com/xml/xml_http.aspにあるXMLHttpRequestの詳細。

EDIT:別の答えで述べたVKKよう

、あなたはそれをテストするために、サーバー上のファイルを配置する必要があり、そうでなければ、XMLHttpRequest cannot load file:///D:/content.txt. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

+0

hilderonny:Hm ... test.htmとcontent.txt(自分のOPの行だけを含む)のコードは、両方ともサーバー上の同じディレクトリにあります。結果は空白のページです。 (そのような単純な欲求と会うことはとても難しい!;-)私は思う、私はあきらめるべきだ! ...) – newbieforever

+0

@newbieforeverどのブラウザをお使いですか?タイプミスなどがないように、hilderonnyのコードと私のコードの両方をテストし、両方とも動作します。 – VKK

+0

VKK:hilderonnyのコードをtest.htmに正確にコピーしました。私のOPからcontent.txtにhtmlコード行を保存しました。両方のファイルはサーバー上にあります(一時的に:http://bez.one/test。 htm;同じディレクトリ内のcontent.txt)。私のお気に入りのブラウザ(K-meleon)は何も表示しません。 PS:今度は、IEとEdgeがcontent.txtの内容をそのまま表示していることがわかります。これは、 '外部テキスト'です。つまり、htmlスニペットとして解釈されません。 – newbieforever

-2

JavaScriptで。私はそれを使用します。 例:

<!DOCTYPE html> 
<html> 
<script src="http://www.w3schools.com/lib/w3data.js"></script> 

<body> 

<div w3-include-html="content.html"></div> 

<script> 
w3IncludeHTML(); 
</script> 

</body> 
</html> 
+0

marko_b123:これは問題ありませんが、あなたのコードはうまくいかないようです...私はテストを続行します... – newbieforever

+0

ここに実例があります:http://www.w3schools.com/howto/howto_html_include.asp –

0

あなたは(おそらく私は避けるだろうインラインフレームをか)これを行うにはJavascriptを使用する必要があります。 JQueryフレームワークの使用をお勧めします。非常に単純なDOMメソッド(ロード)を提供し、別のファイルの内容をHTML要素にロードすることができます。これは本当にAJAX呼び出しを対象としていますが、ユースケースでも同様に動作します。 fragment.txtは、htmlページと同じサーバーディレクトリに存在する必要があります(別のディレクトリにある場合は、パスに追加してください)。

DOM(ページの表現)がロードされた後にコンテンツ要素にのみアクセス/編集できるため、ロードメソッドは$(document).readyイベントハンドラにラップされています。

ほとんどのブラウザは、ローカルAJAX呼び出しをサポートしていません(ロードメソッドはAJAXを使用します)。通常、HTMLファイルとtxtファイルがサーバーにアップロードされ、htmlファイルがクライアントにアクセスされます。 FirefoxはローカルAJAXをサポートしていますので、Firefoxをローカルでテストしたい場合は、Firefoxを使用してください。

<!DOCTYPE html> 
<html> 
<head> 
    <script src="https://code.jquery.com/jquery-2.2.4.js"></script> 
    <script> 
     $(document).ready(function() { 
      $("#contents").load("fragment.txt"); 
     }); 
    </script> 
</head> 
<body> 

<div id="contents"></div> 

</body> 
</html> 
+0

VKK:あなたのコード同じディレクトリにあるtest.htmlとmy fragment.txt(どちらもローカルのコンピュータ上で、このテスト段階で)は動作しますか?現時点では...まだテストしていません... – newbieforever

+0

私のコードと答えが更新されました。これをサーバーとローカルのFirefoxでテストしたので、うまくいきます。 – VKK

関連する問題