insight diary title rewrite

  • /*
     * @title insight diary title rewrite
     * @description 先見日記の題名を title に表示する
     * @include http://www.nttdata.com/jp/ja/diary/*
     */
    
    (function() {
    	// base
    	var base = '//*[@id="bass-content-body"]/div/table[2]/tbody/tr/td[2]/table[2]';
    
    	// http://www.nttdata.com/jp/ja/diary/diary2003/06/20030613.html
    	var title1 = './tbody/tr/td[5]/font[1]/b';
    	var subtitle1 = './tbody/tr/td[5]/font[2]';
    
    	// http://www.nttdata.com/jp/ja/diary/diary2003/06/20030614.html
    	var title2 = './tbody/tr/td[2]/font[1]';
    	var subtitle2 = './tbody/tr/td[2]/font[2]';
    
    	var node = $X(base)[0];
    	var title = $X(title1 + '|' + title2, node)[0].textContent;
    	var subtitle = $X(subtitle1 + '|' + subtitle2, node)[0].textContent;
    	document.title = title + " (" + subtitle + ") " + " : " + "先見日記 Insight Diaries";
    
    	// https://gist.github.com/os0x/3242
    	// simple version of $X
    	// $X(exp);
    	// $X(exp, context);
    	// @source https:/raw.github.com/gist/3242
    	function $X(exp, context) {
    		context || (context = document);
    		var expr = (context.ownerDocument || context).createExpression(exp, function(prefix) {
    			return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) ||
    				context.namespaceURI || document.documentElement.namespaceURI || "";
    		});
    
    		var result = expr.evaluate(context, XPathResult.ANY_TYPE, null);
    		switch (result.resultType) {
    			case XPathResult.STRING_TYPE:
    				return result.stringValue;
    			case XPathResult.NUMBER_TYPE:
    				return result.numberValue;
    			case XPathResult.BOOLEAN_TYPE:
    				return result.booleanValue;
    			case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
    				// not ensure the order.
    				var ret = [],
    					i = null;
    				while (i = result.iterateNext()) ret.push(i);
    				return ret;
    		}
    		return null;
    	}
    })()
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2019/02/05 14:13:49 - 2019-02-05
  2. 2015/02/05 18:49:37 - 2015-02-05
  3. 2015/02/05 18:41:30 - 2015-02-05