嗯,上星期五Alina在我寫的連結部落格的貼紙(LOGO)語法教學問我該如何製作讓人方便複製的語法
因為想說那天晚上是我打算要架站的時間,因此就很簡單地寫了幾個顯示框讓裡面可以秀出語法的方式
但後來自己在測試的時候才發現,那樣寫並不好,因為在有鎖copy的IE瀏覽器中,還是無法全選複製
因此後來就想說再研究一下(我不喜歡感覺那樣事情做一半的樣子)
之後寫了一個簡單的button可以按,按完以後語法就自動複製了,但因為我前面少寫了很多東西,因此在複製成功的同時也會看到錯誤訊息的語法
結果只好在前面補上一個script來解決這個問題啦!(不然別人在copy的時候看到警語搞不好還會被嚇到)
只是這樣的語法就比較長,沒有辦法像之前簡單的小語法可以馬上回覆在迴響裡跟Alina說
因此我答應他這個週末會寫教學出來,所以今天這篇自動複製語法教學就誕生啦XD
我想先從簡單的寫起好嘍!(免得一開始就嚇到人@@)
簡單的基本上只要您的BLOG沒有使用鎖複製的功能的話,基本上就很好使用嘍^^
如果您要讓人複製的內容很簡短的話可用單行的:
<input type="text" id="您想幫他取的名字(記得給半形的英文或數字)" size="您想顯示的長度(記得給半形的數字)">語法放這裡</textarea>
想要讓人指到就自動反白的話可以加上onfocus="this.select()" onmouseover="this.focus()"變成:
<input type="text" id="您想幫他取的名字(記得給半形的英文或數字)" size="您想顯示的長度(記得給半形的數字)" onfocus="this.select()" onmouseover="this.focus()">語法放這裡</textarea>
單行的size可以決定顯示出來的框有多長一條
而如果您的語法比較長的話,建議可以使用多行的唷^^
<textarea rows="您想顯示的縱向長度(記得給半形的數字)" id="您想幫他取的名字(記得給半形的英文或數字)" cols="您想顯示的橫向長度(記得給半形的數字)">語法放這裡</textarea>
或
<textarea rows="您想顯示的縱向長度(記得給半形的數字)" id="您想幫他取的名字(記得給半形的英文或數字)" cols="您想顯示的橫向長度(記得給半形的數字)" onfocus="this.select()" onmouseover="this.focus()">語法放這裡</textarea>
當然,如果能提供一個複製的按鈕的話,我想會更方便的
只是語法就要加上滿多東西的嘍@@"
一開始,必需先在前面加一個script,然後再放上剛剛上面寫的那種讓人複製語法用的東西,最後才在下面放一個複製的扭讓人按^^語法如下:(注意script的中文部份都不要改唷!語法也不要改-.-除非您看的懂且知道如何修改XD可以自行設定的我都有用粗體與底線顯示唷^^)
<script type="text/javascript">
function copyToClipboard(txt)
{
if(window.clipboardData)
{
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
}
else if(navigator.userAgent.indexOf("Opera") != -1)
{
window.location = txt;
}
else if (window.netscape)
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e)
{
alert("被瀏覽器拒絕!\n請在瀏覽器地址欄輸入'about:config'之後退回\n將'signed.applets.codebase_principal_support'設置為'true'");
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
alert('已經複製');
}
</script>
<textarea rows="6" id="watermay" cols="20" onfocus="this.select()" onmouseover="this.focus()"><a target="_blank" href="連結網址" _fcksavedurl="連結網址"><img src="圖片網址" _fcksavedurl="圖片網址" border="0" /></a></textarea><br><button onclick="copyToClipboard(watermay.value);">複製</button>
複製
嗯~這樣...應該...不會...太難...吧......
好久沒寫教學了,感覺說的好心虛orz...
有問題可以留在回響問我嘍!希望對大家都能有幫助^^

嗚..... 不知道是哪裡出問題>"< 我點你的"複製"按鈕後.... 雖然有出現"已經複製"對話框... 但要貼在我的後台卻貼不上去XD 好像沒有複製到耶! 試了幾次都一樣!
疑 會這樣唷 我再檢查一下 還是你要把你想讓人copy的東西給我 我直接寫給你呢? 給我你要讓人連的網址、跟你logo圖片的網址就可以了^^
黑默:每次看到這些 就開始頭暈>///<哈
@@ 不暈不暈厚~
嗚~真的很不好意思XD 我的網址是 http://smw1222.pixnet.net/blog 貼紙的網址是 http://p6.p.pixnet.net/albums/userpics/6/2/766062/4a3b5c3be6ceb.gif 麻煩你了!非常感謝ㄋㄟ~
不客氣 幫您做好了 我會留到您的留言版 (怕迴響的字數比較少)
不是很懂, 你能幫我嘛??
怎麼個幫法呢?
喔... 不太懂那個語法耶, 也不知要怎麼複製走....
點選複製的按鈕就可以複製了
複製完語法後,有要打連結網址和圖片網址的地方,可是如果我只是想打字讓別人複製的話,語法該怎麼改,可以再分享嗎?
嗯 好的,我這幾天再寫一篇新的吧
謝謝分享,我學會了謝謝你 :)
不客氣^^
謝謝分享,已拿走了~感恩~~
不客氣^^ 很高興幫的上大家^^
幫了大忙呢!高手
很高興能幫上您的忙^^
請問,如果把右鍵鎖了,會影響這個語法的執行嗎?我試了好幾次都沒成功QAQ
不影響啊! 因為是按複製 或是在要給人複製的那個框架裡面的文字是可以用左鍵選取的 文章本身因為鎖右鍵所以無法用左鍵選取 不知道這樣你有沒有理解我說的@@" 當然也有可能是你的瀏覽器沒支援「複製」功能的語法 可以換一個瀏覽器試試唷 :)
如雲版主您好! 這編內容很棒! ▲但如果“網頁只需要放一個連結網址” 的按鈕“”“也就是說→當別人想把我的網頁或部落格網頁的網址“ 複雜下來。然後可以放到→line 或QQ 或 Email 。的按鈕。 ▲請問““那些””語法是怎麼編寫?? 不知是否能夠教導?? 謝謝喔!!!
您好 我不是很懂您的問題@@" 但就網頁只放一個連結網址的話,那為什麼不直接做轉址就好了呢? 您問的問題是要一像我寫的用一般HTML語法,最多加上javascript而已 還是要像PHP、JSP…之類可以做到更強大的功能呢?