的一种方法是通过加载它包含的数据,像这样一个JSON对象:
(你也可以在URL指向服务器的脚本文件读取URL参数和输出JSON对象)
例子:
//JQUERY:
$.ajax({
method: "GET",
dataType: "json",
url: "path/to/template.json",
success: function(data) {
var storage = data.template.html;
// do something here
}
});
//JSON FILE:
{
"template":
{
"html":"<div ...></div>",
"some_var":"some_value"
}
}
另一种方式,你可以只加载与参数的HTML文件...例如:将网址更改为:url: "path/to/my_template.html?id=some_div"
或使用参数在URL中使用负载()它。
然后在每个模板文件中插入一个脚本来读取变量并用请求的元素重写文档。
代码:
//query.js
function getQueryString() {
var q = {}
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0; i<vars.length; i++) {
var pair = vars[i].split("=");
q[pair[0]]=pair[1];
}
return q;
}
$(document).ready(function() {
var $q = getQueryString();
if ($q.id) {
document.write($($q.id).html());
}
});
//template html files
//head section
<script type="text/javascript" src="query.js"></script>
我还没有测试这一点,但我认为它应该工作...
你需要把这个脚本在每个模板文件。
可能重复http://stackoverflow.com/questions/4260400/ jquery-load-into-variable-or-hidden-element) – j08691 2012-07-23 03:30:08
重复问题中的答案似乎不够用。它建议在get调用中使用data.find函数,但在我的尝试中,data.find函数似乎不可用。 – ryandlf 2012-07-23 03:42:55
请在投票之前阅读我的评论以关闭重复。 – ryandlf 2012-07-23 04:52:19