• 10-08-2014, 00:22:21
    #1
    <script type="text/javascript">
    function addLink() {
     var body_element = document.getElementsByTagName('body')[0];
     var selection;
     selection = window.getSelection();
     var pagelink ='<p> Kaynak: <a title="Web Tasarım,Web Yazılım,Profesyonel Web Tasarımcı" href="'+document.location.href+'">'+document.location.href+'</a></p>'; //
     var copytext = selection + pagelink;
     var newdiv = document.createElement('div');
     newdiv.style.position='absolute';
     newdiv.style.left='-99999px';
     body_element.appendChild(newdiv);
     newdiv.innerHTML = copytext;
     selection.selectAllChildren(newdiv);
     window.setTimeout(function() {
     body_element.removeChild(newdiv);
     },0);
    }
    document.oncopy = addLink;
    </script>
    Ustalar bu kodları kullanıyorum. Bu kod <br /> taglarını kaldırıyor. Bunu nasıl iptal edebiliriz. Mesela kaynak şöyle olsun;

    aaaaaaaaaaaaa
    bbbbbbbbbbbbb
    ccccccccccccc
    ddddddddddddd

    şiir gibi düşünün. Adam geldi bu paragrafı aldı kendi sitesine yapıştırdı. Şu şekilde oluyor.

    aaaaaaaaaaaaa bbbbbbbbbbbbb ccccccccccccc ddddddddddddd

    bunu nasıl düzeltebiliriz. kodlarda hangi değişikliği yapmalıyız.
  • 11-08-2014, 01:07:27
    #2
    Edit: yanlış Bilgi
  • 11-08-2014, 10:42:05
    #3
    hocam ilginiz için teşekkürler. belirttiğiniz bölümü silince bi değişiklik olmuyor. selection.selectAllChildren(newdiv); kısmını silince düzeliyor ancak bu seferde yapılmak isten yapılmıyor. Sayfa linkini almıyor. innerHTML kısmına bazı şartlar getirilecek galiba.


    <script type="text/javascript">
    if(document.location.protocol=='http:'){
     var Tynt=Tynt||[];Tynt.push('cdsPpQYx0r45F_acwqm_6l');
     (function(){var s=document.createElement('script');s.async="async";s.type="text/javascript";s.src='http://tcr.tynt.com/ti.js';var h=document.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);})();
    }
    </script>
    bu kodlar istenen işlemi görüyor ama kodlara müdahale edip eklenmesi gereken linki istediğim şekilde ekletemiyorum. Düzeltmeye çalıştığım kodlarda sayfa linki ile birlikte kategori linkini de ekletebiliyorum.



    bilgmuh adlı üyeden alıntı: mesajı görüntüle
    window.setTimeout(function() {
    body_element.removeChild(newdiv);
    },0);

    Bu kısmı silmeyi dene div elementinin içindeki bütün elementleri siliyor.br tagıda div tagı içerisinde muhtemelen.
  • 11-08-2014, 11:11:57
    #4
    Önce Bu Fonksiyonu ekle :

    function getSelectionHtml() {
        var html = "";
        if (typeof window.getSelection != "undefined") {
            var sel = window.getSelection();
            if (sel.rangeCount) {
                var container = document.createElement("div");
                for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                    container.appendChild(sel.getRangeAt(i).cloneContents());
                }
                html = container.innerHTML;
            }
        } else if (typeof document.selection != "undefined") {
            if (document.selection.type == "Text") {
                html = document.selection.createRange().htmlText;
            }
        }
        return html;
    }
    Sonra İlk verdiğin koddaki

    var selection;
     selection = window.getSelection();
    kısmındaki Yeri değiştir :

    selection = getSelectionHtml();
    Problem düzelecektir.
  • 11-08-2014, 12:00:58
    #5
    Hocam ilgilendiğin için çok sağolasın. Bu şekilde br taglarını iptal etme işi düzeldi. Ancak link çıkmadı. Yabancı forumlarda bi kod buldum oldu. Bu kodda kopyalanan içeriği <div> kodları arasına alıyor. Bunu iptal etmiş olsam tam isteğim olmuş olacak. Kodu wordpress te kullanıyorum. Lazım olanlar için ekliyorum.

    <?php $cats = get_the_category();
    foreach( $cats as $cat ) { ?>
    <script type='text/javascript'>
    function addLink() {
        var selection = window.getSelection();
    
        var htmlDiv = document.createElement("div");
        for (var i = 0; i < selection.rangeCount; ++i) {
            htmlDiv.appendChild(selection.getRangeAt(i).cloneContents());
        }
        var selectionHTML = htmlDiv.innerHTML;
    
    	var pagelink = "Source: <?php the_title(); ?> <a href='<?php echo get_permalink(get_the_ID()); ?>'><?php the_title(); ?></a> | <a href='<?php echo get_category_link($cat->term_id); ?>'><?php echo $cat->name; ?>"; 
    
        var copytext = selectionHTML + pagelink;
    
        var newdiv = document.createElement('div');
        newdiv.style.position = 'absolute';
        newdiv.style.left = '-99999px';
    
        document.body.appendChild(newdiv);
        newdiv.innerHTML = copytext;
        selection.selectAllChildren(newdiv);
        window.setTimeout(function () { document.body.removeChild(newdiv); }, 0);
    }
    document.oncopy = addLink;
    </script>
    <?php break;
    } ?>


    bilgmuh adlı üyeden alıntı: mesajı görüntüle
    Edit: yanlış Bilgi
    bilgmuh adlı üyeden alıntı: mesajı görüntüle
    Önce Bu Fonksiyonu ekle :

    function getSelectionHtml() {
        var html = "";
        if (typeof window.getSelection != "undefined") {
            var sel = window.getSelection();
            if (sel.rangeCount) {
                var container = document.createElement("div");
                for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                    container.appendChild(sel.getRangeAt(i).cloneContents());
                }
                html = container.innerHTML;
            }
        } else if (typeof document.selection != "undefined") {
            if (document.selection.type == "Text") {
                html = document.selection.createRange().htmlText;
            }
        }
        return html;
    }
    Sonra İlk verdiğin koddaki

    var selection;
     selection = window.getSelection();
    kısmındaki Yeri değiştir :

    selection = getSelectionHtml();
    Problem düzelecektir.
  • 11-08-2014, 12:07:16
    #6
    Yardım edebildiysem ne mutlu bana