Einbindung – 1 top
Den Code in den Head-Bereich kopieren, das sieht in etwa so aus(eigentlichen Code, wegen der Übersicht weggelassen):
Einbindung – 2 top
Oder man speichert den Code in einer extra Datei und bindet diese in der Seite mit dem Code ein.
Diese Variante ist zu bevorzugen, denn so kann der Browsercache benutzt werden(der Code muss nicht bei jeder Anfrage neu geschickt werden).
Der Code top
Der angehängte Text kann an seine eigene Bedürfnisse angepasst werden, siehe dazu in den Code.
(function(){
var c =
{
suffixText: '<strong>Quelle:</strong> <a href="{url}">{url}</a>' //hier der angehängte Text, wobei {url} die Quell-URL ist.
};
var undefined;
var onCopy = function()
{
addSuffix();
};
var addSuffix = function()
{
if( c.suffixText == undefined || c.suffixText == "" )
return;
var text = c.suffixText;
var body = document.body;
var e = document.createElement("div");
e.style.height = "1px";
e.style.width = "1px";
e.style.overflow = "hidden";
text = text.replace(/{url}/gi, document.location);
e.innerHTML = text;
body.appendChild(e);
if (document.selection && document.selection.createRange)
{
var originalSelect = document.selection.createRange();
e.innerHTML = originalSelect.htmlText + "<br />" + e.innerHTML;
var textRange = body.createTextRange();
textRange.moveToElementText(e);
textRange.select();
window.setTimeout(
function()
{
e.parentNode.removeChild(e);
originalSelect.select();
}
, 0
);
}
else if(document.createRange && window.getSelection)
{
var range = document.createRange();
range.selectNode(e);
window.getSelection().addRange(range);
window.setTimeout(
function()
{
e.parentNode.removeChild(e);
}
, 0
);
}
}
var startUp = function()
{
var body = document.getElementsByTagName("body")[0];
if( body == undefined || body == null )
{
window.setTimeout(startUp, 100);
return;
}
var body = document.getElementsByTagName("body")[0];
if( body.addEventListener != undefined )
body.addEventListener("copy", onCopy, false);
else
body.attachEvent("oncopy", onCopy);
};
startUp();
})();
var c =
{
suffixText: '<strong>Quelle:</strong> <a href="{url}">{url}</a>' //hier der angehängte Text, wobei {url} die Quell-URL ist.
};
var undefined;
var onCopy = function()
{
addSuffix();
};
var addSuffix = function()
{
if( c.suffixText == undefined || c.suffixText == "" )
return;
var text = c.suffixText;
var body = document.body;
var e = document.createElement("div");
e.style.height = "1px";
e.style.width = "1px";
e.style.overflow = "hidden";
text = text.replace(/{url}/gi, document.location);
e.innerHTML = text;
body.appendChild(e);
if (document.selection && document.selection.createRange)
{
var originalSelect = document.selection.createRange();
e.innerHTML = originalSelect.htmlText + "<br />" + e.innerHTML;
var textRange = body.createTextRange();
textRange.moveToElementText(e);
textRange.select();
window.setTimeout(
function()
{
e.parentNode.removeChild(e);
originalSelect.select();
}
, 0
);
}
else if(document.createRange && window.getSelection)
{
var range = document.createRange();
range.selectNode(e);
window.getSelection().addRange(range);
window.setTimeout(
function()
{
e.parentNode.removeChild(e);
}
, 0
);
}
}
var startUp = function()
{
var body = document.getElementsByTagName("body")[0];
if( body == undefined || body == null )
{
window.setTimeout(startUp, 100);
return;
}
var body = document.getElementsByTagName("body")[0];
if( body.addEventListener != undefined )
body.addEventListener("copy", onCopy, false);
else
body.attachEvent("oncopy", onCopy);
};
startUp();
})();
Kompatibilität top
Ich habe es auf
- Firefox 3.6(Linux(Ubuntu) und Windows 7)
- Internet Explorer 8(Windows 7)
testen können. Opera soll “oncopy” nicht unterstützen kommen, konnte das aber noch nicht überprüfen. Und natürlich muss auch JavaScript aktiviert sein.