我在 Yii 中制作了一个基本的 shoutbox,一切都很好。它设置为通过 ajax 每 10 秒刷新一次,这也很好用,但是如果我在加载时单击另一个页面(当小微调器在那里时),则会出现一个空白的 javascript 警报,另一个页面加载并且警报消失,但是我不知道它来自哪里,它不在我的代码中。 Firebug 不会给出任何错误,我们将不胜感激。
这是刷新代码:
<script type="text/javascript">
$(function() {
function callAjax(){
$.fn.yiiListView.update('Shoutbox');
return false;
}
setInterval(callAjax, 10000 );
});
</script>
这是 ListView :
<?php $this->widget('zii.widgets.CListView', array(
'id' => 'Shoutbox',
'dataProvider'=>$dataProvider,
'itemView'=>'shoutbox.views.shoutbox._view',
#'afterAjaxUpdate'=>'js:function(id, data) {$("abbr.timeago").timeago();}', //for ajax update
'summaryText' => '',
'emptyText' => '',
)); ?>
我试过输入 return: false;在刷新中,但它没有用,我注释掉了 afterAjaxUpdate,但它仍然发生。
最佳答案
好的,希望这最终能帮助到其他人。
在 Yii 框架(版本 1.1.12)中打开文件:
\yii\zii\widgets\assets\listview\jquery.listview.js
找到第 117 行:
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('#'+id).removeClass(settings.loadingClass);
//alert(XMLHttpRequest.responseText);
}
注释掉警告,问题解决了!
看起来好像是因为请求被打断了,Yii 抛出了一个错误,这很合理,但是空白的警报很烦人。
另外记得在更改文件后清除您的 Assets 文件夹和浏览器缓存。
关于javascript - Ajax 刷新 Yii ListView 中的空白 Javascript 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944784/