修改自動產生分享書籤的按鈕
石頭閒語的作者提供了自動增加分享書籤的簡便寫法,我做了小修改使能運用於Xuite上;也換了Digg圖片,以避免版權問題;另外取得文章標題的方法也做了符合Xuite的調整:
function addBookmarklets() { var u = document.URL; if (isXuite && !(/\/\d+/.test(u))) { var oTag = findTag('span','titlename'); // 取回span,第1個Node為 a u = oTag.childNodes[0].href; // 本篇文章的URL } var index = u.indexOf('#'); // 以回應進入時未帶不到資料,因此要trim掉 if (index > 0) { u = u.substring(0, index); } // title: 標題 var t = ""; t = findTag('span','titlename','text'); t = encodeURIComponent(t); t = t.replace(/: 簡睿隨筆 《科技篇》:Xuite日誌:/,""); // description: 取出文章內容,最多512個字元 var d = ""; var iMaxLength = 512; d = findTag('div', 'blogbody','text'); if (d !== null) { var iStopIndex = d.indexOf("(繼續閱讀)"); d = d.substring(0, iStopIndex > 0? iStopIndex : iMaxLength); d = d.replace(/"/g,"'"); // 文章內容裡有雙引號時會造成錯誤 } if (d === null) { d = ""; } var sCategory = getArticleCategory(isXuite); var myYahooImg = document.createElement('img'); with (myYahooImg) { src = 'http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/11331240/1.gif'; alt = '[+]My Yahoo!'; border = '0'; } var myShareImg = document.createElement('img'); with (myShareImg) { src = 'http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/11331240/2.gif'; alt = '[+]My Share'; border = '0'; } /* var hemidemiImg = document.createElement('img'); with (hemidemiImg) { src = 'http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/11331240/0.gif'; alt = '[+]HEMIDEMI'; border = '0'; } */ var delicioImg = document.createElement('img'); with (delicioImg) { src = 'http://blog.roodo.com/emisjerry/5507ca4d.png'; alt = '[+]del.icio.us'; border = '0'; } var technoratiImg = document.createElement('img'); with(technoratiImg) { src = 'http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/11331240/3.gif'; alt = '[+]technorati fave'; border = '0'; } /* var furlImg = document.createElement('img'); with (furlImg) { src = 'http://blog.roodo.com/emisjerry/09034406.png'; alt = '[+]FURL'; border = '0'; } var _365keyImg = document.createElement('img'); with(_365keyImg) { src = "http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/10834132/17.gif"; alt = '[+]365Key 天天網摘'; border = '0'; } var _funpImg = document.createElement('img'); with(_funpImg) { src = "http://funp.com/images/tools/funpLogo80x15b.gif"; alt = '[+]funP 推推王'; border = '0'; } */ var _udnImg = document.createElement('img'); with(_udnImg) { src = "http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/12319909/0.gif"; alt = '[+]UDN 共享書籤'; border = '0'; } http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/10834132/17.gif var allImg = document.createElement('img'); with(allImg) { src = 'http://b.blog.xuite.net/b/3/a/c/11893557/blog_10351/txt/10406834/2.gif'; alt = '[+]HemiDemi+Yahoo!+MyShare bookmarks'; border = '0'; } var bookmarklets=[ /*[ hemidemiImg, false, 'http://www.hemidemi.com/user_bookmark/new?via=sticker&url='+u+ '&title='+t+'&tag_string='+sCategory+'&description='+d, 'HEMiDEMi黑米書籤' ], [ _funpImg, false, 'http://funp.com/pages/submit/?popup&url='+u+'&t='+d+'&tags[]='+sCategory, 'funP推推王' ],*/ [ _udnImg, false, 'http://bookmark.udn.com/add?f_URL='+u+'&f_TITLE='+t+'&f_TAG='+sCategory+'&f_DIGEST='+d, 'UDN共享書籤' ], [ myYahooImg, false, 'http://tw.myweb2.search.yahoo.com/myresults/bookmarklet?ei=UTF-8&u='+u+'&tag='+sCategory+'&t='+t+'&d='+d, '雅虎分享書籤' ], [ myShareImg, // 4000會造成MyShare錯誤 false, 'http://myshare.url.com.tw/index.php?func=newurl'+ '&NewsMaster=1&url='+u+'&tag='+sCategory+'&desc='+t+'&contents='+d.substring(0,500), 'MyShare網路書籤' ], [ delicioImg, false, 'http://del.icio.us/post?url='+u+'&tags='+encodeURIComponent(sCategory)+ '&title='+t+'¬es='+d, 'del.icio.us美味書籤' ], [ technoratiImg, false, 'http://technorati.com/faves?sub='+t+'&add='+u, 'Technotati bookmark' ] /* [ _365keyImg, false, 'http://www.365key.com/storeit.aspx?t='+t+'&u='+u+'&c='+d, '365Key 天天網摘' ],*/ /* [ furlImg, false, 'http://furl.net/storeIt.jsp?&u='+u+'&t='+t, 'FURL bookmark' ], [ allImg, false, '***', 'HEMiDEMi+Yahoo!+MyShare bookmark' ] */ ]; var posted = null; if (isXuite || isRoodo) { posted = findTag('div','posted'); } posted.insertBefore(document.createElement('br'), posted.firstChild); //var frame = document.getElementById("frameHemi"); //posted.insertBefore(frame, posted.firstChild); for (var i = bookmarklets.length - 1, a; i >= 0; --i) { a = document.createElement('a'); a.target = '_blank'; var bk = bookmarklets[i][2]; //console.log(i + "=" + bk); if (bk=='***') { // for HemiDemi+Yahoo!+MyShare a.href = 'javascript:window.open("' + bookmarklets[0][2]+'"); '+ 'window.open("' + bookmarklets[1][2]+'"); ' + 'window.open("' + bookmarklets[2][2]+'");'; //console.log(a.href); } else { a.href = bk; } a.title = bookmarklets[i][3]; a.appendChild(bookmarklets[i][0]); if (bookmarklets[i][1]) { a.appendChild(document.createTextNode(bookmarklets[i][1])); } posted.insertBefore(document.createTextNode(' '), posted.firstChild); posted.insertBefore(a, posted.firstChild); } var iframe = createHemiButton(posted); // 建立frameHemo element posted.insertBefore(iframe, posted.firstChild); posted.insertBefore(document.createTextNode(' '), posted.childNodes[1]); //posted.insertBefore(document.createTextNode(' '), posted.firstChild); } //~addBookmarklets
##
您可能也會有興趣的類似文章
- 把文章的分類當做HEMiDEMi的標籤:Xuite自動書籤按鈕 V1.3 (2則留言, 2007/02/27)
- Xuite自動書籤按鈕 V1.1 (0則留言, 2007/02/13)
- [Blog] Furl與del.icio.us的快速按鈕 (0則留言, 2005/03/05)
- [Blog] 加入Furl與del.icio.us的連結 (0則留言, 2005/03/04)
- 變更文章底端的【黑米共享書籤】推文/貼文按鈕 (2則留言, 2007/06/03)
- 「網頁載入中,請稍候...」的簡單作法 (17則留言, 2007/05/02)
- 自動填Google搜尋的輸入字串:Xuite自動書籤按鈕 V1.4 (9則留言, 2007/03/13)
- 增加推推王的摘錄推文按鈕 (7則留言, 2007/05/20)
- 常見的收錄書籤網址寫法之彙總表格 V1.1 (2則留言, 2007/04/01)
- [Blog] 在文章底部隨機顯示相關文章的功能說明 (6則留言, 2007/04/26)
- [Blog] FireFox用來整合del.icio.us的擴充套件 (0則留言, 2005/03/05)
- 書籤小貼紙工具:Ultra Network轉址系統 (1則留言, 2007/02/16)
- 用樣式控制Google AdSense廣告顯示的位置 (13則留言, 2007/05/03)
- 在Xuite測試 jQuery (0則留言, 2007/09/12)
- Xuite自動書籤按鈕 V1.2 (4則留言, 2007/02/15)
謝謝站長大大的教學文章,不好意思我想請問一下,有沒有將udn書籤按鈕加到 google blog 範本裡的教學呢?
按鈕的樣式,就如我的blog http://weboss001.blogspot.com/ 哪樣
(部落格中punp和黑米的按鈕 我已經加到google blog 範本裡了,但udn書籤按鈕 我是在每篇文章中加上去的 ) 謝謝站長
檢視UDN部落格的文章複製其程式碼再測試。
這則留言是悄悄話。
我看到了。
但在 Xuite 中,第18行的
if (ds[i].className == ‘main’)
似乎要改成
if (ds[i].className == ‘blogbody’)
才能正確地幫你抓出要傳給書籤系統的說明文字。