以下脚本的目的是刷新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
如果你们能帮助我,或者至少可以提出某种想法,我会很高兴的!
谢谢!