脚本在Chrome甚至IE中都有效,但在Firefox中则无效

时间:2013-08-29 17:27:44

标签: javascript jquery wordpress firefox

以下脚本的目的是刷新wordpress小部件,只要你不通过firefox查看页面就可以正常工作......

我对javascript很新,所以我并不总是知道代码的每个部分都发生了什么。 ;-)

这实际上不是我的脚本,而是它的开源,所以不用担心。

这里是麻烦制造者:

    retrieveData = function()
    {
        var nbre = jQuery('.wp_jschat_widget_form').length;
        var index = 1;
        jQuery('.wp_jschat_widget_form').each(function(){
            var t = jQuery(this);
            var _dateStr = t.find('.wp_jschat_last_date').val();
            jQuery.ajax({
               type: "POST",
               url:  t.find('.wp_jschat_widget_form').attr('action'),
               data: { wp_jschat_last_date: (_dateStr.trim()!='')? _dateStr : '', action : 'retrieve', wp_jschat_channel: t.find('.wp_jschat_canal').val() },
               dataType :'json',
               success: function(_data)
               {
                 if(null!=_data && _data.hasResult)
                 {
                    for(var i=0;i<_data.result.length;i++)
                    {
                        var _urlPath = t.find('.blog_url').val();
                        var bSmiles = (t.find('.hasSmileys').val()=='true');
                        var _message = _data.result[i].message;
                        if(bSmiles)
                        {
                            var oReg = new RegExp(":([a-z]+):",'g');
                            _message = _message.replace(oReg,'<img src="'+_urlPath+'/wp-includes/images/smilies/icon_$1.gif" alt="$1" />');
                        }
                        var _html = '<p><span class="author"><u>'+_data.result[i].pseudo+'</u></span> : '+_message+'</p>';
                         t.find('.wp_jschat_widget_text').prepend(_html);
                         t.find('.wp_jschat_last_date').val(_data.result[i].created_at);
                    }
                 }
                 if(nbre==index)
                 {
                    setTimeout(retrieveData,50);
                 }
                 index++;
               }
             });
            });
    }

    jQuery(document).ready(function(){
        jQuery('.wp_jschat_widget_refresh').click(function()
        {
            jQuery(this).parent().find('.wp_jschat_widget_text').html('');
            return false;
        });
        jQuery('.wp_jschat_widget_form').submit(function(){
            var t = jQuery(this);
            var obj = {};
            obj.wp_jschat_text = t.find('.wp_jschat_text').val();
            obj.action = 'post';
            obj.wp_jschat_canal = t.find('.wp_jschat_canal').val();
            obj.wp_jschat_submit = 'true';
            jQuery.ajax({
               type: jQuery(this).attr('method'),
               url: jQuery(this).attr('action'),
               data: obj,
               success: function(){
                 t.find('.wp_jschat_text').val('');
                 t.find('.wp_jschat_text').focus();
               }
             });
             return false;
        });
        jQuery('.wp_jschat_smile').click(function(){
           var icon = jQuery(this).find('img').attr('alt');
           var _val = jQuery(this).parent().parent().find('.wp_jschat_text').val();
           _val += ' :'+icon+':';
           jQuery(this).parent().parent().find('.wp_jschat_text').val(_val);
           return false;
        });
        setTimeout(retrieveData,100);
    });

从我到目前为止所读到的内容来看,浏览器的javascript引擎似乎存在差异,这可能导致“不正确”的代码正常工作。

所以我想这是一个小错误导致firefox拒绝工作,但我已尽力找到它,遗憾的是这似乎不足:-P

如果你们能帮助我,或者至少可以提出某种想法,我会很高兴的!

谢谢!

0 个答案:

没有答案