0

javascript を使用して、XML ファイルからのリンクを含む HTML テーブルを作成しようとしています。html tbale は正常に動作しますが、リンクの作成に関しては、リンクに私の文字列の最初の単語しかないようです。alert(String) コマンドを実行すると、完全な文字列が取得されますが、HTML LINK を作成しようとするとすぐに、最初の単語のみが追加されます。

例:

ベースリンク: http://kat.ph/usearch/ {SEARCH FIELD GOES HERE} XML リストからの文字列出力: "Hello Sir"

リンクとしての実際の出力 (引用符なし): "http://kat.ph/usearch/Hello" リンクとして期待される出力 (引用符なし): "http://kat.ph/usearch/Hello Sir"

コードは以下です

  <script type="text/javascript">
                if (window.XMLHttpRequest)
                {// code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {// code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.open("GET","playlist.xml",false);
                xmlhttp.send();
                xmlDoc=xmlhttp.responseXML; 

                document.write("<table border='1'>");
                var x=xmlDoc.getElementsByTagName("void");
                for (i=0;i<x.length;i++)
                { 
                    document.write("<tr><td>");
                    document.write(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue);
                    document.write("</td><td>");
                    //alert(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue); just testing to see what i get here
                    // document.write("<a href=http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + ">"+"KAT.PH"+"</a>");
                    document.write("<a href='" + "http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + "'>" + "KAT.PH" + "</a>"); 

                    document.write("</td></tr>");  

                }
                document.write("</table>");
            </script>
4

1 に答える 1

0

you cant have spaces in the URI (http://www.w3schools.com/jsref/jsref_encodeuri.asp). What you can do is encode it:

var term = x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue;
var uri = "http://www.kat.ph/usearch/" + term;

document.write("<a href='" + encodeURI(uri) + "'>" + "KAT.PH" + "</a>");
于 2012-04-26T03:08:46.213 に答える