1

タイトルは本当にすべてを物語っていますが、.html ファイルを含むフォルダーに多くの文字列を含むファイルを作成し、おそらく document.write() などを使用してそれらをページにロードしたいと考えています。Web サイトは 1 つのテンプレートに従います。また、ソーシャル ネットワークがプロファイル ページで行うことを想像するように、ドキュメントに相互にロードする文字列ファイルを多数用意する必要があります。例えば:

"My name is $NAME. I'm %AGE years old. I'm %HEIGHT inches tall." % ('Files/strings.txt')

ファイルを次のように配置します。

$NAME = 'Bob'
$AGE = '20'
$HEIGHT = '70'

また

Bob
20
70

あるいは

Bob.20.70

私は特にAJAXを楽しんでいませんが、これを行うことができる方法は何でもいいでしょう。クライアントから転送されるデータはないので、AJAX は必要ないようです。

4

3 に答える 3

3

javascript のみを使用し、ajax を使用しない場合:

// strings.js
var data = {
 NAME: 'Bob',
 AGE: 20,
 HEIGHT: 70
};

// index.html
<script src="strings.js"></script>
<script>
  window.onload = function () {
    var tags = document.getElementsByClassName('templated');
    for (var i=0; i<tags.length; ++i) {
      applyTemplate(tags[i]);
    }
  }
  function applyTemplate (tag) {
    for (var key in data) {
      var regexp = new RegExp('%'+key, 'g');
      tag.innerHTML = tag.innerHTML.replace(regexp, data[key]);
    }
  }
</script>

<div class="templated">
  "My name is %NAME. I'm %AGE years old. I'm %HEIGHT inches tall."
</div>
<p>
  "My name is %NAME. I'm %AGE years old. I'm %HEIGHT inches tall."
</p>

上記の例では、段落は変換されませんが、div は変換されます

ただし、PHP を使用できる場合: PHP を使用できる場合:

//strings.txt:
$data['any_namespace'] = array(
  'name' => 'Bob'
  'age' => 20
  'height' => 70
);

//index.php:
<?php
  require_once 'strings.txt';
  echo <<<HTML_CONTENT
My name is $data['name']. I'm $data['age'] years old. I'm $data['height'] inches tall.
HTML_CONTENT;
?>

これがあなたが望んでいたものであることを願っています:)

于 2012-08-14T15:08:03.803 に答える
1

その場合、■静的ファイル。内にJSON構造を使用してデータを保存する必要があります。jsonファイル。

于 2012-08-14T14:57:36.433 に答える
1

基本的なテンプレートエンジンで実行できるようです。Dust.jsまたはその他のJavaScript テンプレート エンジンをご覧ください。

Dust には、.js ファイルに格納されたコンパイル済みのテンプレートを使用できるという利点があります。他の人がこの能力を持っているかどうかはわかりませんが、持っている人もいると思います...

于 2012-08-14T14:52:59.143 に答える