чтение значения предупреждения JavaScript из XML - PullRequest
0 голосов
/ 25 июня 2009

У меня есть код функции JavaScript, где я хочу предупредить.

function msg(x,y)
{
 tempstr = x.value
if(tempstr.length>y)
 {
  alert(c_AcknowledgementText);
  x.value = tempstr.substring(0,y);
  }
}

Теперь у меня есть xml с форматом ниже:

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <key name="c_ContactUsHeading">Contact Us</key>
    <key name="c_AcknowledgementText">Comments can not be more than 250 characters.</key>
</root>

Мне нужен код JavaScript, чтобы сообщение, показанное в приведенном выше предупреждении, можно было прочитать сверху с помощью xml-ключа "c_AcknowledgementText".

Надеюсь, про мою проблему понятно.

Ответы [ 3 ]

1 голос
/ 25 июня 2009

Первый шаг - получить ссылку DOM на документ XML. Один из способов сделать это с помощью Ajax. В этом случае сервер должен ответить заголовком Content-Type: text / xml.

$.ajax({
   type: "GET",
   url: "/path/to/my.xml",
   dataType: "xml",
   success: function(doc){
     var keys = doc.getElementsByTagName('key');
     if (keys.length > 0) {
       for (var i=0; i<keys.length; i++) {
         if (keys[i].getAttribute('name') == 'c_AcknowledgementText') {
           alert(keys[i].innerHTML);
         }
       }
     }
   }
 });  

Возможно, вам потребуется дополнительная обработка ошибок и т. Д.

1 голос
/ 25 июня 2009

По сути, вы хотите использовать XMLHttpRequest. Не уверен, что вы пытаетесь сделать с tempstr и т. Д., Однако.

function msg(x,y)
{
    tempstr = x.value;
    if(tempstr.length>y)
    {
        var req = new XMLHttpRequest();
        req.open('GET', '/file.xml', true);
        req.onreadystatechange = function (aEvt) {
            if (req.readyState == 4) {
                if(req.status == 200)
                {
                    var keys = req.responseXML.getElementsByTagName("key");
                    for(var i = 0; i < keys.length; i++)
                    {
                        var key = keys[i];
                        if(key.getAttribute("name") == "c_AcknowledgementText")
                        {
                            alert(key.textContent);
                            break;
                        }
                    }
                }
                else  
                    alert("Error loading page\n");

                  }
      };
      req.send(null);
      x.value = tempstr.substring(0,y);
    }
}
0 голосов
/ 25 июня 2009

Вы должны проанализировать файл XML для c_AcknowledgementText (либо в JavaScript, либо с использованием языка на стороне сервера и сохранить его в JavaScript при загрузке страницы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...