2015-05-26 57 views
3

我在網站上的黑色背景上有白色文字。當訪問者複製這些文本並將其粘貼到支持HTML的文字處理器(如電子郵件應用程序)中時,文本將以白色複製。我已經通過c.bavota改編this solution來改變文本的顏色和背景,應用由KingKongFrog建議的an IE9+ friendly change。你可以在這個JSBin演示中看到效果,你可以在下面找到完整的腳本。更改從HTML頁面複製到剪貼板的文本的顏色

這適用於Mac和Mac上的Chrome和Safari以及Opera,但它不適用於最新的Firefox(38.0.1)。我還沒有在任何版本的Internet Explorer上進行測試。

使用Firefox時,如果您粘貼到忽略樣式的地方(如電子郵件應用程序的地址欄),則將粘貼文本,因此至少會複製某些內容。

你能提出一些可以說服Firefox讓這項工作的改變嗎?

編輯:在Firefox上不做任何事。 Firefox已經爲你做了所有這些,並且更好。解決方法是在Firefox上禁用這個腳本,一切都會好的。

<!DOCTYPE html> 
<html> 
<head> 
<style> 
html, body{ 
height: 100%; 
margin: 0; 
color: #fff; 
font-size: 32px; 
background: #000; 
} 

div { 
height: 100%; 
} 

span::selection { 
color: #000; 
background: #FFF; 
} 

span::-moz-selection { 
color: #000; 
background: #FFF; 
} 

.copy { 
color: #000; 
background: #FFF; 
} 
</style> 


</head> 
<body> 
    <div> 
    <p> 
     <span>Select, then copy and paste this text </span> 
     into an HTML aware word processor. 
    </p> 
    </div> 

    <script> 
    function blackOnWhite() { 
    if (/mozilla/.test(navigator.userAgent.toLowerCase()) && !/webkit/.test(navigator.userAgent.toLowerCase()) { 
     return; 
    } 
    var body = document.getElementsByTagName('body')[0]; 
    var selection = window.getSelection(); 
    var more = "<br /><br />More text"; // change this 
    var copyDiv = document.createElement('div'); 
    copyDiv.style.position='absolute'; 
    copyDiv.style.left='-99999px'; 
    body.appendChild(copyDiv); 
    copyDiv.innerHTML = selection + more; 
    copyDiv.classList.add("copy"); 
    selection.selectAllChildren(copyDiv); 
    window.setTimeout(function() { 
     body.removeChild(copyDiv); 
    },1); 
    } 
    document.body.oncopy = blackOnWhite; 
    </script> 
</body> 
</html> 

回答

0

在Mac上可以粘貼未格式化與V