views:

28

answers:

1

Hi all im struggling to find an answer to my problem here. I've made a IM application the same as facebooks but it is having problems in IE.

The problem started as I kept seeing rn at the beginnning of every post made via IE. That was due to stripslashes function. But as I was investigating I noticed my tag was being added an attribut 'done';

<li><UL done67="7">rn<LI class=name>ACTwebDesigns</LI>rn<LI class=speech>hello</LI></UL></li>
<li><UL done1="4">rn<LI class=name>ACTwebDesigns</LI>rn<LI class=speech>foo</LI></UL></li>
<li><UL done84="10">rn<LI class=name>ACTwebDesigns</LI>rn<LI class=speech>barr</LI>rn<LI class=speech ?>foobar</LI></UL></li>
<li><UL done88="14">rn<LI class=name>ACTwebDesigns</LI>rn<LI class=speech>this is a test</LI></UL></li>

does anyone know of a reason why IE would add this attribute?

EDIT:

    function checkForm() {
    $(".chat_input").keydown(function(e){
        if ( e.keyCode == 13 ) {
            var data = strip_tags($(this).val());
            var username = $("#users_username").val();
            var box = $(this).parents('div:eq(0)');
            $(this).val("");

            if( box.find('.conversation_box li.' + session_number ).length == 0 ) {
                var conversation_list = box.find('.conversation_box').html();
                var insert_data = '<li class="' + session_number + '"><ul><li class="name">' + username + '</li><li class="speech">' + data + '</li></ul></li>';
                box.find('.conversation_box').html(conversation_list + insert_data);
                bottom();
            }else{
                var conversation_list = box.find('.conversation_box li.' + session_number + ' ul').html();
                var insert_data = '<li class="speech"">' + data + '</li>';
                box.find('.conversation_box li.' + session_number + ' ul').html(conversation_list + insert_data);
                bottom();
            }
            return false;   
        }
    });
}

    function store_chat(){
    try{
        var token = $("#token").val();
        var openedBoxes = $("li.conversation_list");
        openedBoxes.each(function(){
            var boxContainer = $(this).parents('div:eq(0)');
            var amount = boxContainer.find('.conversation_box li').length;
            var p = boxContainer.find('.open_trigger').html();
            var u = $("#users_username").val();
            if( amount != 0 ){
                if( $(this).parents('div:eq(0)').find('.conversation_box li.' + session_number ).length != 0 ) {
                    var session_contents = $(this).parents('div:eq(0)').find('.conversation_box li.' + session_number ).html();
                    alert( session_contents );
                    $.ajax({ 
                        type: 'POST', url: './', data: 'token=' + token + '&re=7&s=' + amount + '&sd=' + session_contents + '&u=' + u + '&p=' + p, cache: false, timeout: 5000,
                        success: function(html){ 
                            auth(html); 
                            boxContainer.find('.conversation_box').html(html); 
                            bottom();
                        }                           
                    });
                }
            }
        });
    }catch(er){}
}
+1  A: 

IE definitely won't do that automatically. Chances are it's some erd party script adding the attribute to keep track of some data against the node.

Evan Trimboli
I've removed all debugging and third party software from IE and It is still doing it.
Phil Jackson
the only script being loaded in is jquery
Phil Jackson
it's a messy fix for now until I can figure out whats wrong;$data = preg_replace("#UL done[0-9]*=\"[0-9]*\">rn<LI class=name>#is", "ul><li class=\"name\">", $data); $data = preg_replace("#</LI>rn<LI class=speech>#is", "</li><li class=\"speech\">", $data); $data = preg_replace("#</LI>rn<LI class=speech \?>#is", "</li><li class=\"speech\">", $data);
Phil Jackson