有没有办法用ajax加载插件?我要加载Quick Chat 支持使用PHP和短代码初始化的插件
[quick-chat height="400" room="default" userlist="1" userlist_position="left" smilies="1" send_button="0" loggedin_visible="1" guests_visible="1" avatars="1" counter="1"]
或
<?php
global $quick_chat;
if(is_object($quick_chat) && method_exists($quick_chat, \'quick_chat\')){
echo $quick_chat->quick_chat(400, \'default\', 1, \'left\', 0, 0, 1, 1, 1, 1);
}
?>
我的JS侧
key = \'1\';
jQuery.ajax({
type : \'POST\',
url : apfajax.ajaxurl,
data : {
action : \'loadMyChat\',
key: key
},
dataType: "json",
success : function(data) {
jQuery("#chatModal").find(".modal-body").html(data.html);
},
error: function(MLHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
})
PHP端
function loadMyChat() {
$key = $_POST[\'key\'];
$count = 1;
$html = 2;
global $quick_chat;
//$ak = $quick_chat->quick_chat();
$ak = $quick_chat->quick_chat(\'300\', \'default\', \'1\', \'left\', \'0\', \'0\', \'1\', \'1\', \'1\', \'1\');
die(json_encode(array(
\'html\' => $ak,
\'count\' => $count
)));
}
输出:
<div class="quick-chat-container" data-quick-chat-id="X3LUUGVZNhuG" data-quick-chat-height="300" data-quick-chat-room-name="default" data-quick-chat-userlist="1" data-quick-chat-userlist-position="left" data-quick-chat-smilies="0" data-quick-chat-send-button="0" data-quick-chat-loggedin-visible="1" data-quick-chat-guests-visible="1" data-quick-chat-avatars="1" data-quick-chat-counter="1"><div class="quick-chat-loading">LOADING...</div></div>
正如您所看到的,集装箱只包括装载块,其他块在哪里?text区域和历史?
好的,还有一个有趣的问题,这里有一个用于初始化聊天的公共函数。
public function quick_chat($height = 400, $room = \'default\', $userlist = 1, $userlist_position = \'left\', $smilies = 1, $send_button = 0, $loggedin_visible = 1, $guests_visible = 1, $avatars = 1, $counter = 1) {
$content = \'\';
ob_start();
echo \'<div class="quick-chat-container" data-quick-chat-id="\'.wp_generate_password(12, false, false).\'" data-quick-chat-height="\'.$height.\'" data-quick-chat-room-name="\'.$room.\'" data-quick-chat-userlist="\'.$userlist.\'" data-quick-chat-userlist-position="\'.$userlist_position.\'" data-quick-chat-smilies="\'.$smilies.\'" data-quick-chat-send-button="\'.$send_button.\'" data-quick-chat-loggedin-visible="\'.$loggedin_visible.\'" data-quick-chat-guests-visible="\'.$guests_visible.\'" data-quick-chat-avatars="\'.$avatars.\'" data-quick-chat-counter="\'.$counter.\'">\';
echo \'<div class="quick-chat-loading">\'.__(\'LOADING...\', \'quick-chat\').\'</div>\';
echo \'</div>\';
if(!isset($this->options[\'hide_linkhome\'])){
echo \'<div class="quick-chat-linkhome"><a href="\'.self::link.\'" target="_blank">\'.__(\'Powered by Quick Chat\', \'quick-chat\').\'</a></div>\';
}
$content = ob_get_contents();
ob_end_clean();
return $content;
}
由此判断,我的脚本正确地返回了所有符号。没有加载js或设置了任何ajax处理程序。在我看来,问题是
data-quick-chat-id
.
我做了一些小把戏,比如在页面加载时返回quick\\u聊天功能,页面加载是隐藏的,在我的用户设置他的cookie(用户和房间)后,我请求我的ajax并用返回的ajax更改这个div。
当然,它仍然不起作用,但我没有改变改变data-quick-chat-id
但那是因为我不知道如何更改data.html
(从ajax返回)然后将其插入html。
我走的方向对吗?只是想更新一下,谢谢