大家好:
是這樣的,我想在點擊串列的按鈕 ( btnCopy_{id} )發起 ajax 的 success 的回呼函式中再呼叫另一個按鈕(btnHidCopy)的click事件進行呼叫 clipboard 復制ajax回傳成功的資料,在蘋果ios系統中的微信測驗通過,ajax回傳資料后,能成功復制資料,但在安卓中,卻復制失敗,老是回傳 clibboard 的 error 函式的內容!
哪位大俠能幫我看看是怎么回事,或如何改寫才能在安卓中也能成功復制資料呢?待復,衷心感謝!
界面圖片見本文最底部!
具體實作部分html及全部 js 代碼如下:
部分主要html代碼:
<table>
..........
<section ...........> {* 回圈輸出的串列“一鍵復制”按鈕,按鈕ID名稱為 btnCopy_+回圈ID php的smarty模板檔案注釋符 *}
<td align="right" style="border-top:none;border-bottom:none;border-left:none;" width="35%">
<button id="btnCopy_{$smarty.section.sec1.index}" class="btn">一鍵復制</button> {* 串列中的一鍵復制按鈕 *}
</td>
</tr>
{/section}
........
</table>[/color]
<button id="btnHidCopy" hidden="hidden"></button>{* 點擊“一鍵復制”按鈕發起ajax后,再呼叫點擊這個按鈕復制內容 *}
<textarea id="txtTkl" rows="10" cols="20" hidden="hidden"></textarea> {* 用于保存轉鏈后待復制的淘口令及文案 *}
<input type="text" id="txtOPenid" value="https://bbs.csdn.net/topics/{$openid}" hidden="hidden" /> {* 隱藏域保存用戶openid以用ajax發過去查代理的PID以便轉鏈回傳 *}
<input type="text" id="actRecs" value="https://bbs.csdn.net/topics/{$actRecs|@count}" hidden="hidden" /> {* 保存活動記錄數,用于下面回圈注冊復制按鈕點擊事件 *}
<br/>
ajax和發起復制的JS代碼如下:
<script type="text/javascript">
var clipboard = new Clipboard('#btnHidCopy',
{
text: function(){
return $("#txtTkl").text();
}
}
);
clipboard.on('success', function(e){ // ios微信中能復制成功
console.log(e);
alert('活動口令及文案復制成功,請打開【手機淘寶App】進入活動或粘貼分享!');
});
clipboard.on('error', function(e){ //安卓微信中,老是復制失敗,回傳這里的內容
alert('【復制失敗】:\n' + JSON.stringify(e));
});
$(function(){
function showBtnCopy(index){ //setTimeoutr延遲3秒呼叫該函式,恢復[一鍵復制]按鈕為原樣
$('#btnCopy_' + index).html('一鍵復制');
$('#btnCopy_' + index).css('backgroundColor','orange');
};
var actRecs = parseInt($("#actRecs").val()); //當頁活動記錄數
var adzone_id = $("#txtAdzoneId").val();
var site_id = $("#txtSiteId").val();
var list = $(".btn");
$(".btn").click(function(){
var index = list.index(this);
var activityId = $("#" + "txtActivityId_" + index).val();
var spanActName = $("#spanActName_" + index).text();
var imgActPic = $("#imgActPic_" + index)[0].src;
$.ajax(
{
async: false,
type: "POST",
url: "index.php",
dataType: "text",
data: {
'op': 'transLink',
'activityId': activityId,
'adzone_id': adzone_id,
'site_id': site_id,
'spanActName': spanActName,
'imgActPic': imgActPic
},
success: function(result){
if(result.indexOf('錯誤') != -1){
alert(result);
}else{
//構造隨機口令文案,活動標題+后綴
var rnd = parseInt(Math.random()*(0-11+1)+11); //產生 1-10 的隨機整數(x-y+1)+y, 不包括x和y,所以要x-1,y+1
var wenan = spanActName + '\n' + '[太陽]';
var wenan_suffix = ''; //文案后綴
if(rnd <=2){
wenan_suffix = '限時促銷,售完即止!';
}else if(rnd > 2 && rnd <= 4){
wenan_suffix = '活動火爆,限量特惠中!'
}else if(rnd > 4 && rnd <= 6){
wenan_suffix = '全場特惠,實力回饋,不容錯過!';
}else if(rnd > 6 && rnd <= 8){
wenan_suffix = '品質好貨,全場特惠,不怕不識貨,最怕貨比貨哦!';
}else if(rnd > 8 && rnd <= 10){
wenan_suffix = '難得一回血本價,看過才知道!';
}
var tkl = result.replace(/^.?|.?$/g,''); //把淘口令首尾特殊字符去掉
tkl = '(' + tkl + ')'; //把淘口令首尾字符改為()號
wenan += wenan_suffix + '\n' + '--------' + '\n' + '[愛心]【參與方法】:長~按~福~制此條訊息全部內容,再打開【手機啕寶App】即可參與!活動密令:' + tkl;
$('#txtTkl').text(wenan);
$('#btnHidCopy').click(); //呼叫這個按鈕進行復制內容
$('#btnCopy_' + index).html('復制成功');
$('#btnCopy_' + index).css('backgroundColor','green');
setTimeout(function(){showBtnCopy(index)}, 3000);
}
},
error: function(xhr, textStatus, errorThrown){
alert('錯誤狀態碼:' + xhr.status + '.錯誤資訊:' + xhr.statusText);
}
})
})
})
</script>
界面圖片如下:

uj5u.com熱心網友回復:
有人愿意幫忙解答下嗎?感謝!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/88274.html
標籤:JavaScript
上一篇:求助大神 js基礎
