|
一、腳本功能介紹
正常情況下,如果你在會員搜索結果頁通過相片看好某個會員(所謂眼緣好的會員),想快速記錄下這個會員的信息并不是一件容易的事情,你也許會在會員相片上單擊右鍵,然后把這個會員的主頁地址先記下來,一個頁面如果有較多看好的會員想收藏的話,你還得重復上面的操作。默認搜索結果頁顯示效果如下圖:
安裝我寫的Greasemonkey腳本后,搜索結果頁就會發生一點改變,“給我寫信”按鈕會變成“收藏”復選框,效果如下圖,注意紅框標識與前面圖片的變化對比:
現在假設你想收藏第一排右邊兩位美女信息的話,你就點擊“收藏”復選框(不想收藏就再次點擊取消選擇即可),這樣在頁腳翻頁位置的文本框里就會生成你選中會員信息的HTML,并且默認處于選中狀態,你右鍵復制它,如下圖:
最后把復制的HTML代碼粘貼到一個預定義樣式的html頁面的指定位置(比如把復制的LI標簽代碼粘貼到jiayuan.html文件的UL標簽之間,以后新的收藏一直往后面堆就行了,最后這個jiayuan.html文件就是你收藏會員的記錄文件),結果如下圖:
jiayuan.html模板文件代碼如下,把它復制后用記事本另存為html后綴的文件即可。
復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>佳緣會員收藏</title>
<style type="text/css">
* {margin:0; padding:0}
li {list-style:none}
body {font-size:12px; line-height:1.5em; padding:20px}
li {width:130px; height:200px; float:left; text-align:center}
li img {border:3px solid #F4F6F9}
li strong {display:block; color:#0043B7}
</style>
</head>
<body>
<ul>
<!--把你復制的代碼放到這里,然后保存預覽即可看到效果-->
</ul>
</body>
</html>
二、安裝和使用腳本
要使用本腳本功能,你必須安裝Firefox(火狐)瀏覽器,而且這個瀏覽器裝上了Greasemonkey插件,然后在本地或網絡能找到JiaYuan.user.js腳本文件(就是我寫的Greasemonkey腳本,后面會提供代碼),然后在本地拉這個JS腳本到瀏覽器窗口,或者通過網絡地址訪問這個JS腳本(JiaYuan.user.js),就會彈出腳本安裝界面,如下圖:
成功安裝瀏覽器和插件,以及腳本后,訪問佳緣網會員搜索表單頁:http://search.jiayuan.com,
提交一次搜索請求,在出來的結果頁,如果不是照片顯示模式,把它切換過來,確保看到的搜索結果頁與本文一開始提供的界面那樣,此時不出意外的話就可以看到“收藏”復選框了,接下來的操作參考“腳本功能介紹”。
溫馨提示:想知道Greasemonkey插件是否安裝成功,請查看瀏覽器【工具】是否有【Greasemonkey】選項,以及瀏覽狀態欄右側是否有“小猴子”圖標,而且這個“小猴子”圖標不是灰色的,如果都有則表明Greasemonkey插件成功安裝,如下圖:
三、相關下載
(1)Firefox(火狐)瀏覽器:(本版本已集成Greasemonkey插件)
(2)Greasemonkey插件:http://releases.mozilla.org/pub/mozilla.org/addons/748/greasemonkey-0.8.20080609.0-fx.xpi(訪問即安裝)
(3)保存佳緣會員信息腳本:http://snsapps.googlecode.com/svn/trunk/JiaYuan.user.js(訪問即安裝)
四、腳本預覽
Greasemonkey腳本都是用JavaScript語言寫的,要想寫出優秀的Greasemonkey應用,你必需熟悉JavaScript編程,了解JavaScript DOM編程,以及會分析HTML代碼結構。如果你想更多地了解Greasemonkey,請閱讀《深入淺出 Greasemonkey》。下面本人把本應用腳本代碼公布如下,希望對大家能起到拋磚引玉的作用。
復制代碼 代碼如下:
// ==UserScript==
// @name 保存會員信息
// @namespace http://www.ucoolweb.com
// @description 收集世紀佳緣交友網會員搜索結果頁你喜歡的會員信息,并把它們保存成本地HTML文件,以方便日后查閱。
// @include http://search.jiayuan.com/result.php*m=1*
// ==/UserScript==
/**
* 定義一個類
*/
function clsJiaYuan()
{
/**
* 定義getElementById快捷方式
* @param {String} objId DOM ID
* @return {DOM}
*/
var $ = function(objId)
{
return document.getElementById(objId);
}
/**
* 定義getElementsByTagName快捷方式
* @param {String} tagName 標簽名
* @return {Array} DOM Array
*/
var $$ = function(tagName)
{
return document.getElementsByTagName(tagName);
}
/*
if (window.HTMLElement)
{
HTMLElement.prototype.$=$;
HTMLElement.prototype.$$=$$;
}
*/
/**
* 按樣式名查找DOM對象
* @param {String} className 要查找的樣式名,即標簽的class屬性值
* @param {String} tagName 篩選標簽名,可選參數,用于縮小查找范圍
* @return {Array} DOM Array
*/
var getElementsByClassName = function(className, tagName)
{
var selector = tagName || '*';
var allDom = $$(selector);
var domList = [];
for (var i in allDom)
{
if (allDom[i].className == className)
{
domList[domList.length] = allDom[i];
}
}
return domList;
}
/**
* 創建每個會員頭像下的復選框
*/
var createCheckBox = function()
{
var photoBoxs = getElementsByClassName('searh_photobox', 'div');
for (var a in photoBoxs)
{
var infoList = photoBoxs[a].getElementsByTagName('a');
//提取會員信息
var url = infoList[0].href;
var face = infoList[0].getElementsByTagName('img')[0].src;
var name = infoList[0].getElementsByTagName('img')[0].alt;
//處理高級會員信息HTML
if (infoList.length == 4)
{
var about = infoList[2].innerHTML;
}
else
{
var about = infoList[3].innerHTML;
}
//插入復選框HTML
photoBoxs[a].getElementsByTagName('li')[3].innerHTML = '<label><input type="checkbox" name="love" value="' + url + '|' + face + '|' + name + '|' + about + '" />收藏</label>< /span>';
//注冊復選框單擊處理函數
photoBoxs[a].getElementsByTagName('input')[0].addEventListener('click', jiaYuan.outputHtml, true);
}
}
//創建HTML代碼輸出文本域
var createTextBox = function()
{
var loveCodeDom = document.createElement('textarea');
loveCodeDom.id = 'loveCode';
loveCodeDom.rows = 5;
var pageBox = getElementsByClassName('pageclass', 'div')[1];
pageBox.appendChild(loveCodeDom);
$('loveCode').style.width = '640px';
$('loveCode').style.margin = '10px';
}
//輸出或更新選擇會員HTML代碼,在單擊復選框時調用
this.outputHtml = function()
{
var loveHtml = '';
var loveCheckBoxs = document.getElementsByName('love');
for (var i in loveCheckBoxs)
{
//只輸出復選框打勾的會員信息
if (loveCheckBoxs[i].checked)
{
var infoList = loveCheckBoxs[i].value.split('|');
var liHtml = '<li><a href="' + infoList[0] + '" target="_blank"><img src="' + infoList[1] + '" /></a><strong>' + infoList[2] + '</strong><span>' + infoList[3] + '</span></li>';
loveHtml += liHtml;
}
}
$('loveCode').value = loveHtml;
$('loveCode').select(); //讓文本域代碼處于選中狀態,方便快速復制
}
//程序初始化公開方法
this.init = function()
{
createCheckBox();
createTextBox();
}
}
//實例化一個類
var jiaYuan = new clsJiaYuan();
jiaYuan.init();
五、注意事項
1、在安裝Greasemonkey插件到Firefox(火狐)瀏覽器的時候,請選擇安裝與瀏覽器版本對應的Greasemonkey插件。建議下載“增強便攜版” Firefox瀏覽器,這種版本一般集成Greasemonkey插件。下載參考鏈接:http://www.jb51.NET/softs/21957.html
2、本文提供腳本可能會隨著佳緣網的改版而失效,因為Greasemonkey腳本的工作是基于目標網站HTML操作的,如果你發現腳本失效請及時給我留言,讓我修正。當然,如果你也會編寫腳本的話,你還可以自己動手修改,修改方法可以參考這里,修改用戶腳本:http://www.firefox.NET.cn/dig/helloworld/editing.html
3、據了解現在很多瀏覽器都支持Greasemonkey,比如Chrome、Opera,甚至IE,本腳本并沒有在這些瀏覽器上測試過,如果你發現腳本在其它瀏覽器平臺下有問題,也可以留言告訴我。
4、必須保證Greasemonkey插件處于激活狀態,即瀏覽器右下角的“小猴子”圖標不是灰色的,不然你即使安裝了插件,也會得不到預期的效果。
作者:WebFlash
出處:http://webflash.cnblogs.com
JavaScript技術:用Greasemonkey 腳本收藏網站會員信息到本地,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。