团队,我希望浏览器从服务器读取属性文件。所以我正在关注 Jquery/AJaX,如下所示。
<script>
var properties = null;
$(document).ready(function(){
$.ajax({url:"demo_test.txt",success:function(result){
properties = result;
//properties = $('#result').val()
//jQuery.globalEval("var newVar = result;")
document.write("inside " + properties);
}});
});
document.write("outside " + properties );
</script>
这里“内部”正确打印文件字符。但是“外部”正在为属性打印 null。
- 为什么?
- 我可以在页面上看到“外部”输出;只有当我评论“内部”行?为什么这样?
- 如何获取 jquery 结果以对数据进行进一步处理?
- 我可以在服务器中有一个属性文件(key=value)吗?jquery/ajax 是否提供类似于 java.util.property :: getValue("key") 的任何工具?如果上述情况不可行;我可以将属性文件保存为 JSON 或 XML 文件以及 Ajax 提供的任何实用程序来获取密钥的值吗?
更新:
我已经进行了一些研究并更新了第四季度的答案。
我不确定如何读取属性文件,但我给出了 xml/json 文件读取的解决方案。
在更改同步 Ajax 调用后,如下所示
var properties = null;
$.ajax({
url : "demo_test.txt",
async : false,
success : function(result)
{
properties = result;
document.write("inside " + properties);
}
});
如果服务器端有一个xml文件,下面是解析的方式:
<?xml version="1.0"?>
<server>
<name>velu</name>
</server>
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(property,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(property);
}
alert(xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue);
如果您在服务器端有 json 内容,那么
{
"name":velu
}
var obj = JSON.parse(property);
alert(obj.name);
用于访问文件的 Javascript 样式(异步)
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{// listener
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
property = xmlhttp.responseText;
}
}
xmlhttp.open("GET","demo_test.txt",true);
xmlhttp.send();
while (property != null) {
alert(property);
break;
}