網(wǎng)上關(guān)于這個(gè)名片的相關(guān)資料很少,我也不知道它為什么寫(xiě)home.php?mod=space&uid=1就可以彈出,我寫(xiě)的鏈接為什么就不行。
看了下common.js的相關(guān)代碼:
function cardInit() {
var cardShow = function (obj) {
if (BROWSER.ie && BROWSER.ie < 7 && obj.href.indexOf('username') != -1) {
return;
}
pos = obj.getAttribute('c') == '1' ? '43' : obj.getAttribute('c');
USERCARDST = setTimeout(function () { ajaxmenu(obj, 500, 1, 2, pos, null, 'p_pop card'); }, 250);
};
var cardids = {};
var a = document.body.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
if (a[i].getAttribute('c')) {
var href = a[i].getAttribute('href', 1);
if (typeof cardids[href] == 'undefined') {
cardids[href] = Math.round(Math.random() * 10000);
}
a[i].setAttribute('mid', 'card_' + cardids[href]);
a[i].onmouseover = function () { cardShow(this) };
a[i].onmouseout = function () { clearTimeout(USERCARDST); };
}
}
}
|
坦白說(shuō)我看不懂,只知道里面用了ajaxmenu,生成了隨機(jī)id。
沒(méi)有關(guān)于home、space、uid等詞,說(shuō)明它并不限制這種鏈接形式,那就可能是鏈接到的頁(yè)面的問(wèn)題了。
前段時(shí)間我將站上一些彈出的插件頁(yè)面改成了xml,今天想到了這個(gè)問(wèn)題,可能是頁(yè)面需要可以以xml形式訪問(wèn)。
打開(kāi)home.php?mod=space&uid=1&inajax=1,看了下確實(shí)是名片頁(yè)面,看來(lái)這個(gè)c=1是自動(dòng)給鏈接加上&inajax=1來(lái)顯示的。
測(cè)試一下:
我將forumdisplay.htm頁(yè)面從<!--{template common/header}-->以下至<!--{template common/footer}-->以上部分,加上$_GET['inajax']判斷
<!--{template common/header}-->
<!--{if !$_GET['inajax']}-->
forumdisplay.htm文件里除頭尾以外所有代碼
<!--{else}-->
從forumdisplay.htm里復(fù)制出來(lái)關(guān)于版塊信息部分的代碼
<!--{/if}-->
<!--{template common/footer}-->
復(fù)制代碼
保存后訪問(wèn)鏈接forum.php?mod=forumdisplay&fid=43&inajax=1,顯示的xml是else部分后加的代碼。
在首頁(yè)帖子列表的版塊鏈接里加上c=1試試:
<a href="forum.php?mod=forumdisplay&fid={$value['fid']}" c=1>{$value['name']}</a>
復(fù)制代碼
|
結(jié)果:
哎呦不錯(cuò)哦!
測(cè)試而已,好看不好看不重要,數(shù)據(jù)能出來(lái)就OK。
其他頁(yè)面,包括自定義頁(yè)面也如此,只要頁(yè)面里加上inajax的判斷,那么就可以利用c=1彈出
<!--{template common/header}-->
<!--{if !$_GET['inajax']==1}-->
正常的內(nèi)容
<!--{else}-->
給c=1的
<!--{/if}-->
<!--{template common/footer}-->
|
復(fù)制代碼
對(duì)同樣在學(xué)習(xí)階段的站友補(bǔ)充說(shuō)下,這里的彈出是動(dòng)態(tài)的,不是類似導(dǎo)航下拉菜單那種固定代碼。
它彈出的div是臨時(shí)加載到<div id="append_parent"></div>里的,只不過(guò)在common.js里ajaxmenu部分里的cache參數(shù)是1(緩存),所以檢查元素的時(shí)候可以看到彈出層代碼,但是瀏覽器查看源代碼的時(shí)候是看不到的。
不足:我需要個(gè)好看的loading,直接彈出比較突兀。
當(dāng)初還有另外一種嘗試,網(wǎng)上復(fù)制個(gè)彈出層的jq,a元素data-xx=用戶uid,彈出user.php?uid=獲取的uid&type=card頁(yè)面,card頁(yè)面里用uid作為數(shù)據(jù)的查詢條件,這樣做也有效果,只不過(guò)需要做的事兒就多了,不如自帶的省事兒。
本文測(cè)試使用discuz X3.4 utf-8,php7.0,F(xiàn)irefox 61.0.1。