我想使用JavaScript來清理從我的網站複製的文本。從複製文本中刪除文本
我用的片段是這樣的:
body {
vertical-align: middle; ➊
}
凡➊表示稍後評論。我希望讀者複製此代碼段並使用它 - 所以我需要刪除該Unicode標記。我如何訪問正在複製的文本並對其進行更改?
我認爲當用戶點擊(mousedown)時,會從代碼片段中刪除標記,因此她可以選擇文本並複製它,然後恢復標記,但這似乎是一個很長的路要走。
我想使用JavaScript來清理從我的網站複製的文本。從複製文本中刪除文本
我用的片段是這樣的:
body {
vertical-align: middle; ➊
}
凡➊表示稍後評論。我希望讀者複製此代碼段並使用它 - 所以我需要刪除該Unicode標記。我如何訪問正在複製的文本並對其進行更改?
我認爲當用戶點擊(mousedown)時,會從代碼片段中刪除標記,因此她可以選擇文本並複製它,然後恢復標記,但這似乎是一個很長的路要走。
只要把span標籤unicode的標誌,並把顯示器沒有他們,當用戶點擊
body {
vertical-align: middle; <span class="marker">➊</span>
}
然後爲此在jQuery的
$('.code')
.mousedown(function() {
$(this).find('.marker').css('display','none');
})
.mouseleave(function() {
$(this).find('.marker').css('display','inline');
});
作爲獎勵,你可以再.marker
元素應用以下樣式:
.marker
{
position:absolute;
right:0;
}
有一個oncopy處理程序,但我懷疑它是廣泛支持。還有像onselectstart這樣的選擇事件處理程序(對於不同的瀏覽器也是不同的)以及使文本的一部分不可選的各種屬性,例如-moz-user-select: none(又是非跨瀏覽器)。你可能更好地使用絕對定位的標記或通過z-index使標記不可訪問。
用戶選擇:不適用於Mozilla和WebKit,是的,它不會選擇標記。但他們無論如何都被複制。 :/ – riddle 2010-05-08 12:22:28
恕我直言,這接縫是最合理的方式! +1 – 2010-05-08 12:00:27
你測試成功了嗎?我無法使它工作(我精通JavaScript,所以代碼執行,但我仍然複製標記。) – riddle 2010-05-08 12:21:38
http://www.jsfiddle.net/92En5/絕對在鉻中工作。也許不會在別人 – Eric 2010-05-08 12:24:35