1

标题确实说明了一切,但我想在我的 .html 文件的文件夹中有一个包含许多字符串的文件,并以某种方式将它们加载到页面中,可能使用 document.write() 或类似的东西。该网站遵循一个模板,我需要将许多字符串文件可互换地加载到文档中,就像我想象一个社交网络对其个人资料页面所做的那样。例如:

"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

听起来可以使用基本的模板引擎来完成。查看Dust.js或其他JavaScript 模板引擎

Dust 的好处是能够使用存储在 .js 文件中的预编译模板。不知道其他人是否也有这种能力,我想有些人会......

于 2012-08-14T14:52:59.143 回答
1

如果是, s 静态文件。您应该使用 JSON 结构存储数据。json 文件。

于 2012-08-14T14:57:36.433 回答