2010-05-08 195 views
1

我想使用JavaScript來清理從我的網站複製的文本。從複製文本中刪除文本

我用的片段是這樣的:

body { 
    vertical-align: middle; ➊ 
} 

凡➊表示稍後評論。我希望讀者複製此代碼段並使用它 - 所以我需要刪除該Unicode標記。我如何訪問正在複製的文本並對其進行更改?

我認爲當用戶點擊(mousedown)時,會從代碼片段中刪除標記,因此她可以選擇文本並複製它,然後恢復標記,但這似乎是一個很長的路要走。

回答

2

只要把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; 
}​ 
+0

恕我直言,這接縫是最合理的方式! +1 – 2010-05-08 12:00:27

+0

你測試成功了嗎?我無法使它工作(我精通JavaScript,所以代碼執行,但我仍然複製標記。) – riddle 2010-05-08 12:21:38

+0

http://www.jsfiddle.net/92En5/絕對在鉻中工作。也許不會在別人 – Eric 2010-05-08 12:24:35

0

只是在註釋中設置標記?因此複製後使用時不會造成任何傷害

+0

豎起大拇指的想法,但這不是我正在尋找。 – riddle 2010-05-08 12:28:52

1

您可以將unicode標記轉換爲圖像,因爲複製純文本時會忽略圖像。

+0

這實際上我可能會嘗試。謝謝! – riddle 2010-05-08 12:22:51

0

有一個oncopy處理程序,但我懷疑它是廣泛支持。還有像onselectstart這樣的選擇事件處理程序(對於不同的瀏覽器也是不同的)以及使文本的一部分不可選的各種屬性,例如-moz-user-select: none(又是非跨瀏覽器)。你可能更好地使用絕對定位的標記或通過z-index使標記不可訪問。

+0

用戶選擇:不適用於Mozilla和WebKit,是的,它不會選擇標記。但他們無論如何都被複制。 :/ – riddle 2010-05-08 12:22:28