I am writing a script to append attribution linking to a user's clipboard -- similar to the functionality that you see from Tynt.
Functionally, the script below is working fine, except that it is removing line breaks and formatting. Is there anyway to preserve -- at the very least -- the line breaks?
function addLinktoCopy() {
// Define tracking parameter
var trackingparam = "source=copypaste";
// Set document body as body_element variable
var body_element = document.getElementsByTagName('body')[0];
// Create a selection variable to store copied value
var selection;
// Populate selection variable with user's selected copy
selection = window.getSelection();
// Create a variable to store the selection length
var selectionlength;
// Convert the selection to a string and get the string's length
selectionlength = selection.toString().length
// If the selectionlength is >34, then append tracking
if ( selectionlength > 34 ){
    // Set the current page's URL as a variable
    var page = document.location.href;
    // Create a seperator variable
    var seperator;
    // Create a locationURL variable to store the URL and associated tracking parameters
    var locationURL;
    // Check to see if the URL already contains the tracking paramater
    // If the URL doesn't contain the tracking code, append it to the end
    if ( page.indexOf(trackingparam) == -1 ) {
        // Check to see if the URL already includes a ? in it
        if ( page.indexOf("?") != -1 ) {
            // If ? is present in the URL string, set seperator variable to &
            seperator = "&";        
        }
        else {
            // If ? is not present in the URL string, set seperator variable to ?
            seperator = "?";
        }
        // Set locationURL variable with URL + tracking code
        locationURL = document.location.href + seperator + trackingparam;
    }
    // Othwerise, the tracking code already exists in the URL string, so append nothing
    else {
        // Set the locationURL variable with the URL as is      
        locationURL = document.location.href;
    }
    // Build link to page with editorial copy, URL, seperator, and URL tracking parameters
    var pagelink = "<br/><br/>Read more at: "+ locationURL;
    // Create new variable with user's selection and page link
    var copytext = selection + pagelink;
    // Create a new div and add associated styling and hide it off the page
    var newdiv = document.createElement('div');
    // Append new div to document
    body_element.appendChild(newdiv);
    // Select text from the new (hidden) div
    newdiv.innerHTML = copytext;
    // Replace clipboard values with new selection + link value
    selection.selectAllChildren(newdiv);    
}
// Otherwise, selectionlength <= 34, so do nothing
// We are not appending any copy or URLs to the user's selection
}
 
    