2009-06-25 2 views
0

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

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».

Я надеюсь, что это ясно о моей проблеме.

ответ

1

В принципе, вы хотите использовать 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

Спасибо, Мэтью, но мой код не попадает внутрь if (req.readyState == 4), пожалуйста, предложите? Можно ли это сделать с помощью JQuery? –

+0

Да, вы можете использовать JQuery. Но вы, возможно, захотите выяснить, что происходит в первую очередь. Вы получаете какие-либо ошибки? Вы проверили, что путь правильный? –

0

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

+0

Спасибо, могу ли я иметь код с помощью javascript. –

1

Первый шаг - получить ссылку 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); 
     } 
     } 
    } 
    } 
}); 

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

+0

Свойство - responseXML. –

+0

Исправлено - спасибо. – steamer25

+0

это можно сделать с помощью jquery? если да, то, пожалуйста, дайте мне код –

Смежные вопросы