Hatena::Grouphakka

記録

about
 | 

2012年12月20日(木)

12:40

"Uncaught ReferenceError: uneval is not defined" とのこと

toString でやる。

// ==UserScript==
// @name           Hatena Diary: append datetime to ins/del
// @namespace      http://lowreal.net
// @include        http://d.hatena.ne.jp/*
// @include        http://*.g.hatena.ne.jp/*
// @include        https://*.g.hatena.ne.jp/*
// ==/UserScript==

location.href = "javascript:(" + (
  function () {
    if (!(Hatena && Hatena.Diary && Hatena.Diary.Section)) return;

    var orig_update = Hatena.Diary.Section.prototype.update;
    Hatena.Diary.Section.prototype.update = function (data, obj, meth) {
      if (data.body) {
        data.body = data.body.replace(/<(ins|del)>/g, function (_, n) {
          return '<' + n + ' datetime="' + w3cdtf(new Date) + '">';
        });
      }
      orig_update.apply(this, arguments);
    };

    function w3cdtf(d) {
      var date = [
      String(10000 + d.getFullYear()).slice(1),
      String(100 + d.getMonth() + 1).slice(1),
      String(100 + d.getDate()).slice(1)].join("-");

      var time = [
      String(100 + d.getHours()).slice(1),
      String(100 + d.getMinutes()).slice(1),
      String(100 + d.getSeconds()).slice(1)].join(":");

      var offset = d.getTimezoneOffset();
      var plsmns = (offset < 0) ? "+" : "-",
        offset = Math.abs(offset);
      var zone = plsmns + String(100 + offset / 60).slice(1) + ":" + String(100 + offset % 60).slice(1);

      return date + "T" + time + zone;
    }
  }
).toString() + ")()";

12:40

マイクチェック

 | 
クリエイティブ・コモンズ・ライセンス
このサイトは クリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下に提供されています。