我有關於followng代碼如何「搜索」,通過一個XMLHttpRequest的響應
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return xmlhttp.responseText;
}
}
xmlhttp.open("GET","index.html",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
現在我想通過xmlhttp.responseText搜索(一個問題,換句話說,調用函數loadXMLDoc()把)的關鍵詞,例如像 「testfile的」,如果它存在多個例如 「testfile_1」 和 「testfile_2」 ..... 「testfile_n」 然後「doSomething的」
這樣
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return xmlhttp.responseText;
}
}
}
function searchADocument(wordToSearchFor){
xmlhttp.open("GET","index.html",true);
xmlhttp.send();
int numberOfTimesWordOccurs=0;
var thePageToSearchThrough [] = loadXMLDoc();
for (i=0; i<thePageToSearchThrough.length; i++){
if(thePageToSearchThrough[i]==wordToSearchFor)
numberOfTimesWordOccurs++;
}
If (numberOfTimesWordOccurs > 1)
document.write("<a href="http://selnc05.go.se:8080/component_test/build/testfile_1"> testfile_1</a>"<a href="http://selnc05.go.se:8080/component_test/build/testfile_2"> testfile_2</a><a href="http://selnc05.go.se:8080/component_test/build/testfile_n"> testfile_n</a>
)
Else
window.location="http://selnc05.go.se:8080/component_test/build/testfile.html";
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="searchADocument("testfile")">Change Content</button>
</body>
</html>
我不知道從哪裏開始,因爲我不知道xmlhttp.responseText是什麼類型,我可以將它存儲在數組中並使用for循環等進行掃描嗎? 在此先感謝。 =)
編輯 我是什麼林做錯了
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return xmlhttp.responseText;
}
}
xmlhttp.open("GET","index.html",true);
xmlhttp.send();
}
function searchADocument(){ //wordToSearchFor
var txt=loadXMLDoc();
if(txt.test('hello'))alert('responseText contains "hello"');
else{
document.getElementById("myDiv").innerHTML ="helloaj";
}
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="searchADocument()">Change Content</button>
</body>
</html>
得到以下錯誤消息,如果(txt.test( '你好')) Jscript腳本錯誤: '未定義' 爲空或不對象
編輯3 即時猜測我只是愚蠢的地獄,但我仍然不能得到這個工作,我爲什麼不能保存xmlhttp.responseText到一個變量?
像這樣
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url,cfunc)
{
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=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("ajax_info.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var txt=xlmhttp.responseText;//This aint working, why, how can I store xlmhttp.responseText into a variable, that I can peform a search on?
document.getElementById("myDiv").innerHTML=txt;//This aint working, why?????
}
});
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="myFunction()">Change Content</button>
</body>
</html>
我可以補充一點,以上實際工作,如果我替換以下
var txt=xlmhttp.responseText;
document.getElementById("myDiv").innerHTML=txt;
與此
document.getElementById("myDiv").innerHTML=xlmhttp.responseText;
我沒有接到電話回到函數如下所述,我得到的是xmlhttp是未定義的,所以我問這個這是有效的(至少是我希望的一半)。
再次抱歉不理解,但必須有明顯的東西,我不明白這一點,這根本不可能存儲在一個變量或東西。
1`if`和`else`是應該在小寫書面聲明(JavaScript的關鍵字是區分大小寫)2.你的括號不匹配3.你沒不會在字符串中跳出你的雙引號4.使用`document.write`通常不是一個好主意5.爲什麼不知道'xmlhttp.responseText`是什麼類型?你正在從你的服務器申請一個文件,所以我希望你知道它發送了什麼 – 2011-01-23 18:24:56