許多朋友經(jīng)常摘錄一些網(wǎng)頁內(nèi)容到其他地方苇经,供查閱、編輯等铅歼,在這時公壤,常常要復(fù)制兩次换可,一次是內(nèi)容,接著一次是內(nèi)容所在的網(wǎng)址厦幅。腳本比較簡單沾鳄,只有一個熱鍵,當(dāng)我們粘貼從網(wǎng)頁中復(fù)制的內(nèi)容時确憨,它會自動附加上網(wǎng)頁的地址译荞。
腳本
最初我寫了這種功能的腳本,但一些方面處理不太好缚态,下面這個腳本是 Lexikos 重寫的磁椒,比較完善堤瘤,不影響其他復(fù)制粘貼操作玫芦。
原理是,從網(wǎng)頁復(fù)制內(nèi)容時其中的內(nèi)容實際上包含了來源本辐,所以直接從中提取桥帆。
~^v::
; 最初靈感:http://ahk8.com/thread-4198.html
; 腳本來源(英文):http://www.autohotkey.com/board/topic/82393-auto-attach-its-url-when-copy-from-a-webpage/#entry525258
Sleep 100
CF_HTML := DllCall("RegisterClipboardFormat", "str", "HTML Format")
bin := ClipboardAll
n := 0
while format := NumGet(bin, n, "uint")
{
size := NumGet(bin, n + 4, "uint")
if (format = CF_HTML)
{
html := StrGet(&bin + n + 8, size, "UTF-8")
RegExMatch(html, "(*ANYCRLF)SourceURL:\K.*", sourceURL)
break
}
n += 8 + size
}
if !sourceURL
return
Clipboard := "`nSource: " sourceURL
Send ^v
Sleep 250
Clipboard := bin
return
使用時開啟腳本后與平常一樣復(fù)制, 然后使用 Ctrl + V 粘貼就行(鼠標(biāo)粘貼無效)慎皱。
實際效果
我復(fù)制【其他】Copyheart老虫、改版中的部分內(nèi)容,如下:
![復(fù)制網(wǎng)頁內(nèi)容](http://amnesiac10.github.io/assets/images/20140812000.png)
復(fù)制網(wǎng)頁內(nèi)容
粘貼到 Word 中后(因內(nèi)容過寬茫多,右邊部分被截除)
![粘貼到 Word 中](http://amnesiac10.github.io/assets/images/20140812001.png)
粘貼到 Word 中
可以看到在原內(nèi)容后自動增加了文章的網(wǎng)址祈匙,以后復(fù)制網(wǎng)頁內(nèi)容(包括從瀏覽器、CHM 文件等復(fù)制的情況)時開啟這個腳本就方便多了天揖。
小結(jié)
可根據(jù)需要調(diào)整腳本夺欲,上面的腳本中沒有注釋,如果有興趣進(jìn)一步了解原理今膊,請參閱:
- CF_HTML 剪貼板格式的數(shù)據(jù)結(jié)構(gòu):HTML Clipboard Format
- 最初的實現(xiàn)思路及改進(jìn)過程: 上面腳本中的來源鏈接