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>