将服务器上外部文件的变量加载到HTML doc中?

时间:2012-08-14 14:47:30

标签: javascript html variables

标题真的说明了一切,但是我希望在我的.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。

3 个答案:

答案 0 :(得分: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;
?>

希望这是你想要的:)

答案 1 :(得分:1)

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

Dust具有能够使用存储在.js文件中的预编译模板的好处。不确定是否有其他人也有这种能力,我假设有人做...

答案 2 :(得分:1)

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