Показать сообщение отдельно
  #8 (permalink)  
Старый 12.08.2013, 03:37
Интересующийся
Посмотреть профиль Найти все сообщения от moskitos80
 
Регистрация: 11.08.2013
Сообщений: 28

Держите

<!doctype html>
<html>
<head>
    <title>;)</title>
    <meta charset="utf-8">
    <style type="text/css"></style>	
</head>
<body>

    <div class="text1">Этот текст скопируется без ссылки</div>
    <div class="text2">И этот текст скопируется без ссылки</div>
    <div class="my_text">
        <div class="news_777">
            А этот текст скопируется со ссылкой
        </div>
    </div>
    <div class="my_text">
        <div class="news_77">
            <div>
                <div class="news_777">
                    И этот текст скопируется со ссылкой
                </div>
            </div>
        </div>
    </div>
    
    <script type="text/javascript">
    
    // Определение ф-ции
    var addLink = (function (G) {    
        return function (targetClass) {    
        
            G.document.oncopy = function () {
            
                var body_element    = this.body,
                    selection       = G.getSelection(),
                    pagelink        = "<br/>Источник: " + G.location,
                    copytext        = selection + pagelink,
                    newdiv          = this.createElement('div'),
                    checkNode       = function (node) {
                        while (null !== node) {
                            if (node.className && node.className === targetClass) {
                                return true;
                            }
                            node = node.parentNode || null;
                        }
                        return false;
                    };
                    
                if (false === checkNode(selection.anchorNode.parentNode)) {
                    return;
                }
                
                newdiv.style.position   = "absolute";   
                newdiv.style.left       = "-99999px";  
                
                body_element.appendChild(newdiv);  
                
                newdiv.innerHTML = copytext;   
                selection.selectAllChildren(newdiv);        
                
                G.setTimeout(function() {   
                    body_element.removeChild(newdiv);   
                }, 0);
            };
        };
    } (this));
    
    // Вызов.
    // Вызывать 1 раз на странице! 
    // Передавать имя класса элементов, при копировании из которых нужно
    // Вставлять ссылку.
    addLink("my_text"); 

    </script>
</body>
</html>

Последний раз редактировалось moskitos80, 12.08.2013 в 04:04. Причина: Поправил код
Ответить с цитированием