[jQuery3]外部ファイルをhtml上に表示させる方法

phpでやれよって気持ち。

demo

Document

作り方

ファイルの準備

用意するのは2つのファイル

test.txt

中身は何でも良い。

<p>test.txt</p>

index.html

ライブラリはcdn、jsは<script>にベタ打ちで済ませる

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.6.1.js" integrity="sha256-3zlB5s2uwoUzrXK3BT7AX3FyvojsraNFxCc2vC/7pNI=" crossorigin="anonymous"></script>
    <script>
        $(function(){
            $('#test').load('test.txt');
        })
    </script>
</head>
<body>
    <div id="test"></div>
</body>
</html>

ajaxだとこう。

        $(function(){
            $.ajax({
                url: 'test.txt',
                dataType: 'text',
                success: function (data) {
                    $('#test').prepend(data);
                },error: function () {
                    alert('header error');
                },
            });
        })

これでも動くけど色々設定できるみたい。

アップロード

2つのファイルを同じディレクトリにアップする。

動作確認

index.htmlの方をブラウザで開く。

指定したファイルの中身を展開してhtmlの中身として処理するので、.txtでも記述がhtmlならタグがその通りに機能する。

ここでネックになるのが、サーバー上じゃないと動かないということ。サーバーにアップしたくないならローカルでサーバーを立てる必要がある。

注意点

.load()はjQuery3で非推奨。動くけどやめといた方がいい。.on()のloadで外部ファイルのインクルードをやるのがよくわからない。

ということでajaxになる。

まとめ的なもの

よくよく思い返してみれば、feedやらjsonやらを引っ張ってきて表示させたことがあるんだった。だとしたらtxtファイルとかの表示は大した問題にならないですね。とりあえず.load()の扱いだけ注意して、今後も安全にやっていける記述を知っておくのが無難。

あとはまあ、html表示時に出力するギミックだからSEOの後押しには全くならない。それにjsで引っ張るのはクロスドメインで難儀したりして万能じゃないし。環境がphpだったらそっちで組んだほうが良いと思う。

コメント

タイトルとURLをコピーしました