Не удается загрузить данные сервера только в FF и IE

Я не планирую, что вы отладите его, но, может быть, вы могли бы это увидеть через мгновение: я написал простую страницу, которая показывает "запущенные сообщения".

Однако это работает только для Chrome (не FF или IE). http://hydepark.apphb.com/display.aspx Я вижу, что это проблема на стороне сервера, но она не имеет смысла, так как зависит от браузера.

У тебя есть идея?

    var msgsList = [{"Guid":"c281e6ec-acdc-4c35-80ee-12c9ba1ab95e","Author":"2","Content":"222","Email":"22","CreationDate":"\/Date(1321389457043)\/","Rating":0,"Path":"D:\\websites\\b1\\08c47\\4f839e3\\_PublishedWebsites\\TB.Site\\c281e6ec-acdc-4c35-80ee-12c9ba1ab95e.html"},{"Guid":"58aaa80d-f09e-439a-bec6-60b090f39c26","Author":"1","Content":"111","Email":"11","CreationDate":"\/Date(1321389451653)\/","Rating":0,"Path":"D:\\websites\\b1\\08c47\\4f839e3\\_PublishedWebsites\\TB.Site\\58aaa80d-f09e-439a-bec6-60b090f39c26.html"}];
    var pagePath = window.location.pathname;

    //parses the list
    $(document).ready(function ()
    {
    parseList = function(pos,list)
    {   
    if  (pos < list.length)
    {
            var obj = list[pos];
            TextArea1.value = obj.Content;
            Author.value = obj.Author;
        var newHeading = encodeURIComponent( window.location.href +"?id="+ obj.Guid );
        var likeFrame = $('.fb-like iframe');

        //var likeFrame = $('iframe.fb_ltr')[0];
        var newHref = 'href=' + newHeading + '&layout=';
        var newSrc = likeFrame.attr('src').replace(/href=.+&layout=/, newHref);
        likeFrame.attr('src', newSrc);

            setTimeout(function(){parseList(++pos,list);}, 5000);
    }
    else
        {
        //PageMethod('RefillMessages', [], AjaxSucceeded, AjaxFailed);
         WebMethod('RefillMessages', [], AjaxSucceeded, AjaxFailed);
        }
    }

    setTimeout(function(){parseList(0,msgsList);}, 2000);
    //parseList(0,msgsList);
    });

2 ответа

Решение
TextArea1.value = obj.Content;

Вы никогда не должны просто ссылаться на элемент по его идентификатору. Некоторые браузеры будут поддерживать это для старого старого>10 лет назад способа кодирования.

document.getElementById("TextArea1").value = obj.Content;

Если вы откроете Firebug на Firefox, вы увидите, что TextArea1 не определено

Похоже, что Chrome рассматривает его как глобальную переменную, а FF - нет.

Простой способ чтения форм - это получить его по id и прочитать поле с его именем, например:

var frm = document.getElementById('form1');
//then get it by frm.TextArea1.value
Другие вопросы по тегам