2010年1月22日 (金)

外部スクリプトの引数を解析

/***************************************************
 *
 *  外部スクリプトの呼び出し時に渡された引数を解析
 *
 *  Copyright (c) 2010 AOK <soft@aokura.com>
 *
 ***************************************************/
var getScriptArguments = function() {
  var doc = document;
  var scripts;
  if (doc.getElementsByTagName)
    scripts = doc.getElementsByTagName('script');
  else if (doc.scripts)
    scripts = doc.scripts;
  else if (doc.all && doc.all.tags)
    scripts = doc.all.tags('script');
  else
    return;
  var script = scripts[scripts.length - 1];
  if (script) {
    this.href = script.src;
    if (this.href.match(/(.*)(\?)(.*)/)) {
      if (RegExp.$3) {
        this.parameter = RegExp.$3;
        var args = this.parameter.split('&');
        var len = args.length;
        for (var i = 0; i < len; i++) {
          var arr = args[i].split('=', 2);
          if (arr[0] != '') this[arr[0]] = arr[1];
        }
      }
    }
  }
};

/***************************************************
 *
 *  この関数は最後に読み込まれた script タグの
 *  記述を解析するため、自スクリプト内で呼び出
 *  さないと、希望する値が取得出来ない。
 *
 ***************************************************/
var ARGV = new getScriptArguments();

|

2009年7月31日 (金)

指定したオブジェクトを取得

JQuery もどきの関数を書いてみました。

/***************************************************

    指定したオブジェクトを取得する

    #id, .class, それ以外はタグ名と看做す。
    id の場合はオブジェクトを、
    それ以外はオブジェクトの配列を返す。

 ***************************************************/
var $ = function(selector) {
  if (selector.charAt(0) == '#')
    return document.getElementById(selector.substring(1));
  else if (selector.charAt(0) == '.') {
    var elems = new Array();
    var all = document.getElementsByTagName('*');
    var re = new RegExp("\\b" + selector.substring(1) + "\\b");
    for (var i = 0; i < all.length; i++) {
      if (re.test(all[i].className))
        elems.push(all[i]);
    }
    return elems;
  }
  return document.getElementsByTagName(selector);
};

|

2009年6月23日 (火)

jQuery.validator.addMethod

①半角カタカナでの入力を強制する。

jQuery.validator.addMethod("hankaku", function(value, element) { 
  return this.optional(element) || /^[。-゚]+$/i.test(value); 
}, " 半角カタカナで入力して下さい");

②全角カタカナでの入力を強制する。

jQuery.validator.addMethod("zenkaku", function(value, element) { 
  return this.optional(element) || /^[ァ-ヾ]+$/i.test(value); 
}, " ※全角カタカナで入力して下さい");

|

2009年6月 4日 (木)

フレーム内のスクロール

window.onload = function() {
  /* 配置した画像の年月 */
  var m = new Array('2009.5', '2009.6', '2009.7', '2009.8', '2009.9');
  /* 画像の幅 */
  var w = 300;
  /* フレームのスクロール */
  var d = new Date();
  var s = d.getFullYear() + '.' + (d.getMonth() + 1);
  for (var i = 0; i < m.length; i++) {
    if (m[i] == s) {
      window.frames[0].scrollTo(w * i, 0);
      break;
    }
  }
};

|

2009年4月24日 (金)

イベントハンドラの登録

function addEvent(obj, ev, handler) {
  if (obj.addEventListener)
    obj.addEventListener(ev, handler, false);
  else if (obj.attachEvent)
    obj.attachEvent('on' + ev, handler);
  else /* Caution! Override */
    obj['on' + ev] = handler;
}

function onEventHandler(e) {
  if (e == null) e = window.event;
  var obj = e.srcElement || e.target;
  /* ... Insert user code here ... */
}

|

«Excel → 加工しやすい HTML