bookmarklet
by
suteadolife
2018-02-26 [2018/02/26 23:13:11]
my bookmarklet
@@ -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 です。