SQLの窓

2013年11月10日


JS : ページの最後へスクロール( Math.max.apply でページ長さを取得 )

以下の4つのうちの一番大きいものを使って、window.scroll を実行します
1) document.body.clientHeight
2) document.body.scrollHeight
3) document.documentElement.clientHeight
4) document.documentElement.scrollHeight
<script>
function scrollBottom() {
	var target = [document.body.clientHeight,document.body.scrollHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight];
	var top = Math.max.apply( null, target );
	window.scroll(0,top);
}
</script>
<input
	type="button"
	value="スクロール"
	onclick='scrollBottom();'
>

Function オブジェクトの apply メソッド

apply メソッドは、第一引数を省略して、第二引数に配列を指定して実際の引数に引き渡す方法です。
( Math.max は関数なので )


posted by at 01:50 | JavaScript | このブログの読者になる | 更新情報をチェックする



タブキーで一括インデント可能なテキストエリア

更新履歴
2009-05-04 : 初回投稿
2013-11-10 : ライブラリを最新に更新しました

複数行を選択してタブキーで一括インデントします
※ SHIFT+タブキーで逆一括インデントです
以下のようにして貼り付けるだけで実装できます
<script type="text/javascript" src="http://homepage2.nifty.com/lightbox/tabtextarea.js">
</script>
<script type="text/javascript">
createTabTextArea("sample1",60,15,"myclass");
</script>


1) name
2) cols
3) rows
4) class
5) style
6) その他属性




posted by at 00:28 | JavaScript | このブログの読者になる | 更新情報をチェックする


2012年12月08日


SyntaxHighlighter 2.0.296 用 貼り付けコード作成(3) : data-name 仕様





ブラシ     幅を固定 TAB幅 Font size
SyntaxHighlighter.all()を使う   単独記事で動作するようにする
ハイライト行 a-b と指定できます
※ ,と併用はできません




posted by at 14:43 | JavaScript | このブログの読者になる | 更新情報をチェックする


2010年08月19日


右クリックメニューのプロテクト

ヘッド部分に記述する事を想定しています。無名関数を登録しているので解除はできないので、あまり誰にもメリットは無いと思いますが、方法としては容易です。
<script type="text/javascript">

if (window.attachEvent){
	document.attachEvent('oncontextmenu', function(){ return false; });
}
else {
	document.addEventListener('contextmenu', function( event ){ event.preventDefault();}, false);
}

</script>

onload 後に body に対して イベント追加したほうがオーソドックスだと思いますが多少複雑です
※ Google Chrome は、onload 後で無くても body が存在するようです。

▼ jQuery だと以下のようにして動作しました(内部でうまく IE を扱っているようです)。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(function(){
	$(document).bind("contextmenu",function(event){
		event.preventDefault();
	});
});
</script>



posted by at 20:13 | JavaScript | このブログの読者になる | 更新情報をチェックする


2010年07月09日


JavaScript による入力制限( attachEvent と addEventListener を使った場合 )

JavaScript による入力制限( 0〜9 と BackSpace と左右矢印キーしか入力できないフィールド )
のイベントを attachEvent と addEventListener で登録しています。
メソッドで登録した場合、function の第一引数には、イベントオブジェクトが
引き渡されます。
<script type="text/javascript">

function numField(evt) {

	var btype = window.navigator.userAgent.toLowerCase();

	// *************************************************
	// IE、Opera
	// *************************************************
	if ( btype.indexOf("msie") > -1 || btype.indexOf("opera") > -1	) {
		if ( 48 <= evt.keyCode && evt.keyCode <= 57 ) {
			return;
		}
		if ( evt.keyCode == 8 ) {
			return;
		}
		if ( btype.indexOf("opera") > -1 ) {
			if ( evt.keyCode == 37 || evt.keyCode == 39 ) {
				return;
			}
		}

		evt.returnValue = false;
	}
	else {
		if ( 48 <= evt.charCode && evt.charCode <= 57 ) {
			return;
		}
		if ( evt.charCode == 0 ) {
			if ( evt.keyCode == 8 ) {
				return;
			}
			if ( evt.keyCode == 37 || evt.keyCode == 39 ) {
				return;
			}
		}
		evt.preventDefault();
	}

}

function numKeyDown(evt) {

	var btype = window.navigator.userAgent.toLowerCase();

	// *************************************************
	// IE
	// *************************************************
	if ( btype.indexOf("msie") > -1	) {
		if ( evt.keyCode == 46 ) {
			evt.returnValue = false;
		}
	}
	// *************************************************
	// Chrome
	// *************************************************
	if ( btype.indexOf("chrome") > -1	) {
		if ( evt.keyCode == 46 ) {
			evt.preventDefault();
		}
	}

}

</script>

<INPUT id="num" type=text>

<script type="text/javascript">

var obj = document.getElementById("num")

// *************************************************
// IE 用
// *************************************************
if (window.attachEvent){
	obj.attachEvent('onkeypress', numField);
	obj.attachEvent('onkeydown', numKeyDown);
}
// *************************************************
// IE 以外
// *************************************************
else {
	obj.addEventListener('keypress', numField, false);
	obj.addEventListener('keydown', numKeyDown, false);
}

</script>



posted by at 09:07 | JavaScript | このブログの読者になる | 更新情報をチェックする