Autor Zpráva
djlj
Profil
Všiml jsem si hezké vychytávky na idnesu - když označíte a zkopírujete třeba větu nebo odstavec (u jednotlivých slov to nefunguje), přidá se Vám za kopírovaný text ještě i odkaz na zdroj, například:

    Chřiby neboli Buchlovské hory se příliš výraznými kopci chlubit nemohou. Jeden z nich však stojí za to – vypíná se naproti známému Buchlovu, jmenuje se Holý kopec a měří 548 m. Budete-li mít štěstí na počasí, spatříte z něj Beskydy i Alpy.

    Zdroj: http://cestovani.idnes.cz/odkud-dohlednete-od-beskyd-az-po-alpy-utajeny-holy-kopec-ve-chribech-1pr-/igcechy.asp?c=A101115_142325_igcechy_tom
  


Zkoušel jsem kuchat jejich javascript, ale nemá to smysl... Rád bych ale tuhle vychytávku taky někde použil. Víte někdo, jak na to? Já nad tím strávil kus soboty, ale nepřišel jsem na to.
Chamurappi
Profil
Reaguji na djlje:
Zkus službu Tynt.com.
Nedávno jsem takový skript narychlo vyráběl, protože zadavatel nechtěl použít Tynt, možná o něm napíšu článeček na Interval, až ho trochu učešu a vylepším.
__construct
Profil
djlj:
Já nad tím strávil kus soboty, ale nepřišel jsem to.
Možno sa časom naučíš lepšie hľadať: je to skript na 16. riadku <script type="text/javascript" src="http://g.idnes.cz/js/uni/uni.js?rr=014"></script>
Nenašiel si ho pretože je "zpakovaný" Stačí použiť nejaký JSBeautifier a máš to… Tu máš objekt ktorý sa o to stará:
var Copylink = {
    tweakSelection: function () {
        if (document.selection) return Copylink.tweakSelectionIE();
        return Copylink.tweakSelectionMoz()
    },
    tweakSelectionIE: function () {
        var top = document.documentElement.scrollTop;
        var range = document.selection.createRange();
        if (!Copylink.lengthTest(range.text)) return null;
        var selectedHTML = range.htmlText;
        var temp = Copylink.createCopy(selectedHTML);
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(temp);
        textRange.select();
        return function () {
            temp.parentNode.parentNode.removeChild(temp.parentNode);
            range.select();
            document.documentElement.scrollTop = top
        }
    },
    tweakSelectionMoz: function () {
        var selection = window.getSelection();
        if (!selection) return null;
        if (!Copylink.lengthTest(selection.toString())) return null;
        var range = selection.getRangeAt(0);
        var temp = Copylink.createCopy();
        temp.insertBefore(range.cloneContents(), temp.firstChild);
        var tempRange = document.createRange();
        tempRange.selectNode(temp);
        selection.removeAllRanges();
        selection.addRange(tempRange);
        return function () {
            temp.parentNode.parentNode.removeChild(temp.parentNode);
            selection.removeAllRanges();
            selection.addRange(range)
        }
    },
    createCopy: function (selectedHTML) {
        var div = document.createElement("div");
        div.style.cssText = "position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden";
        var bq = document.createElement("blockquote");
        bq.innerHTML = (selectedHTML || "") + "<p>Zdroj: <a href=\"" + location.href + "\">" + location.href + "</a></p>";
        document.body.appendChild(div);
        div.appendChild(bq);
        return bq
    },
    catchSelection: function () {
        var revert = Copylink.tweakSelection();
        if (revert) setTimeout(revert, 1)
    },
    lengthTest: function (text) {
        if (text.replace(/^\s*|\s*$/g, "").split(/\s/).length > 10) return true
    },
    init: function () {
        if (document.cookies.read("pernament")) return;
        if ("oncopy" in document.documentElement) document.documentElement.oncopy = Copylink.catchSelection;
        else if (window.addEventListener) {
            window.addEventListener("copy", Copylink.catchSelection, false)
        }
    }
};
Chamurappi
Profil
Reaguji na __constructa:
Hm, to je krasavec, sám bych to lépe nenapsal… až na to slůvko pernament.
K použití tohoto skriptu ovšem těžko dostane od idnes.cz licenci :-)
djlj
Profil
__construct:
Já věděl, že to je zakodované, ale nevěděl jsem, jak to dostat do čitelné podoby, díky moc!

Chamurappi:
Nevadí, podle tohoto už jsem si našel téměř stejný kód zdarma ke stažení: http://molily.de/weblog/selectionmenu-copylink

Tak díky oběma!
Chamurappi
Profil
Reaguji na djlj:
podle tohoto už jsem si našel téměř stejný kód zdarma ke stažení
Hm, tak to je bomba. Člověk se s tím zdlouhavě programuje a ladí to, pak pro to pár hodin vymýšlí nějaký pěkný název … a ono celou dobu stačilo jen vymyslet ten název a hodit ho do vyhledávače? To není fér! :-)
(Skript uvedený v [#3] jsem psal já. Připadám si jak Cimrman před patentovým úřadem…)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: