bookmarklet Fork

    @@ -5,18 +5,62 @@ * @license MIT License * @require */ - $.ajaxSetup({ xhrFields: { withCredentials: true } }); + void((function(f){ + var script = document.createElement('script'); + script.src = '//code.jquery.com/jquery-3.2.1.min.js'; + script.onload = function(){ + var $ = jQuery.noConflict(true); + f($); + }; + document.body.appendChild(script); + })( + function($, undefined){ - function getCsv() { - $.ajax({ - type: 'post', - url: 'https://p.eagate.573.jp/game/2dx/25/p/djdata/score_download.html', - async: false, - data: { style: 'SP' }, - success: function(data) { - scores = $(data).find('#score_data').text() - } - }); + count=0; + $('div.srg>div.g').each(function(i,e){ + + href=$(e).find('a[href]').first().attr('href'); + score = $(e).find('div._score_'); + if( score.length ){ + console.log(score.text()); + }else{ + count++; + if( count>5 ){ + console.log('break function'); + return false; + } + console.log(count + '(' + i + ')' + href); + + + $.ajax({ + type: "get", + url: "https://www.googleapis.com/pagespeedonline/v4/runPagespeed", + timeout: 20000, + cache: false, + data: {'url':href, 'strategy':'desktop'}, + dataType: 'json' + }) + .done(function (response, textStatus, jqXHR) { + console.log(response); + if (response.status === "err") { + console.error("err: " + response.msg); + } else { + score = response['ruleGroups']['SPEED']['score']; + console.log(href+'=>' + score); + $(e).prepend('<div class="_score_">'+score+'</div>'); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + + console.log(jqXHR); + alert("失敗: サーバー内でエラーがあったか、サーバーから応答がありませんでした。"); + }) + .always(function (data_or_jqXHR, textStatus, jqXHR_or_errorThrown) { + // done,failを問わず、常に実行される処理 + }); + } + }); + console.log('end function'); } - getCsv(); + ) - console.log(scores); + );
  • /*
     * @title bookmarklet
     * @description my bookmarklet
     * @include http://*
     * @license MIT License
     * @require 
     */
    void((function(f){
        var script = document.createElement('script');
        script.src = '//code.jquery.com/jquery-3.2.1.min.js';
        script.onload = function(){
          var $ = jQuery.noConflict(true);
          f($);
        };
        document.body.appendChild(script);
    })(
    function($, undefined){
    
        count=0;
        $('div.srg>div.g').each(function(i,e){
    
            href=$(e).find('a[href]').first().attr('href');
            score = $(e).find('div._score_');
            if( score.length ){
                console.log(score.text());
            }else{
                count++;
                if( count>5 ){
                    console.log('break function');
                    return false;
                }
                console.log(count + '(' + i + ')' + href);
    
    
                $.ajax({
                    type: "get",
                    url: "https://www.googleapis.com/pagespeedonline/v4/runPagespeed",
                    timeout: 20000,
                    cache: false,
                    data: {'url':href, 'strategy':'desktop'},
                    dataType: 'json'
                })
                .done(function (response, textStatus, jqXHR) {
                    console.log(response);
                    if (response.status === "err") {
                        console.error("err: " + response.msg);
                    } else {
                        score = response['ruleGroups']['SPEED']['score'];
                        console.log(href+'=>' + score);
                        $(e).prepend('<div class="_score_">'+score+'</div>');
                    }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
    
                    console.log(jqXHR);
                    alert("失敗: サーバー内でエラーがあったか、サーバーから応答がありませんでした。");
                })
                .always(function (data_or_jqXHR, textStatus, jqXHR_or_errorThrown) {
                // done,failを問わず、常に実行される処理
                });
            }
        });
        console.log('end function');
    }
    )
    );
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。