チーム、ブラウザにサーバーからプロパティ ファイルを読み込ませたいのですが。だから私は以下のように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>
ここで「内部」はファイルの文字を適切に出力しています。しかし、「 outside 」はプロパティに対して null を出力しています。
- なんで?
- ページに「外部」出力が表示されます。「内側」行にコメントした場合のみ?なんでそうなの?
- データをさらに処理するために jquery の結果を取得するにはどうすればよいですか?
- サーバーにプロパティー・ファイル (key=value) を入れることはできますか? java.util.property :: getValue("key") のような jquery/ajax によって提供される機能はありますか? 上記が不可能な場合。プロパティ ファイルを JSON または XML ファイルとして保持し、キーの値を取得するために Ajax によって提供される任意のユーティリティを保持できますか??
アップデート:
私はいくつかの調査を行い、Q4の回答を更新しました。
プロパティファイルの読み方がわかりませんが、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;
}