Új hozzászólás Aktív témák

  • dqdb

    nagyúr

    válasz fatal` #15246 üzenetére

    Ha a linkifier user JS, akkor a * helyett próbáld meg a file://*-ot beírni.

    Itt van egy olyan user JS, ami egyben tartalmazza a szükséges dolgokat, de csak Opera alatt működik.
    1. txt fájlokon fut csak le
    2. az összes linket kattinthatóvá teszi
    3. létrehoz egy gombot, ami egyszerre megnyitja az összes linket (feltéve, ha a popup blocker ki van kapcsolva)

    Egy linkifier forrásának segítségével ollóztam össze gyorsan.

    // ==UserScript==
    // @include file://*.txt
    // @include http://*.txt
    // ==/UserScript==

    window.addEventListener(
    "load",
    function()
    {
    var pre = document.getElementsByTagName("pre")[0];
    var source = pre.innerHTML;
    var re = /\b(?:(?:(?:file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp|irc):\/\/(?:[^:@\s\.\,\/\\]+(?::[^:@\s\.\,\/\\]+)?@)?)|(?:www\.|ftp\.|irc\.))(?:(?:[\w\.-]+\.[a-zA-Z]{2,6})|(?:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(?:\:\d+)?(?:\/(?:[\w\-\.\?\!\,\'\/\\\+&%\$#\=~:;\[\]\(\)]+[\w\-\/\\\+&%\$#\=~]+)?)?/gi;

    if (source.match(re))
    {
    source = source.replace("&", '&amp;').replace("<", '&lt;').replace(">", '&gt;');
    source = source.replace(
    re, function(s)
    {
    var url = s;
    if (url.indexOf('www.') == 0)
    url = 'http://' + url;
    else if (url.indexOf('ftp.') == 0)
    url = 'ftp://' + url;
    return "<a href=\"" + url + "\" target=\"_blank\">" + s + "</a>";
    });

    }

    pre.innerHTML = source;

    var button = document.createElement("button");
    button.textContent = 'Open All Links';
    button.onclick = function()
    {
    var urls = document.links;
    var event = document.createEvent("MouseEvent");
    event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    event.dynamicEvent = 1;
    for (var n = 0; n < urls.length; n++)
    urls[n].dispatchEvent(event);
    };

    document.documentElement.insertBefore(button, document.body);
    },
    false);

Új hozzászólás Aktív témák