<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unbland.org blog &#187; JavaScript</title>
	<atom:link href="http://unbland.org/blog/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://unbland.org/blog</link>
	<description>発見の日々の備忘録。主に Web にまつまる技術ネタ。</description>
	<lastBuildDate>Wed, 18 Nov 2009 03:31:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>以前作成した JavaScript の透明フロートレイヤー</title>
		<link>http://unbland.org/blog/2008/10/30/186.html</link>
		<comments>http://unbland.org/blog/2008/10/30/186.html#comments</comments>
		<pubDate>Thu, 30 Oct 2008 09:06:04 +0000</pubDate>
		<dc:creator>muta244@admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://unbland.net/blog/?p=186</guid>
		<description><![CDATA[前に MT アップデートした時に一式データが消えてしまったけど、101LAB さんに保管されてた、感謝。忘れないうちに貼付けておきます。
]]></description>
			<content:encoded><![CDATA[<p>前に MT アップデートした時に一式データが消えてしまったけど、<a href="http://101lab.net/javascript/2007/07/post-5.html" target="_blank">101LAB さん</a>に保管されてた、感謝。忘れないうちに貼付けておきます。</p>
<div style="position:relative;top:18px;margin-top:-18px;"><small><strong>JavaScript</strong></small>
</div>
<pre name="code" class="jscript" style="margin:18px 0;">
function FloatLayer() {
    this.initialize.apply(this, arguments);
};

FloatLayer.prototype = {

    initialize:function () {},

    add:function () {
        var container = document.createElement(&quot;div&quot;);
        $(container).attr(&quot;id&quot;, &quot;floatLayer&quot;);
        $(container).css({margin:0, padding:0, background:&quot;none&quot;});
        $(document.body).append(container);
        var input = document.createElement(&quot;input&quot;);
        $(input).attr(&quot;type&quot;, &quot;button&quot;);
        $(input).attr(&quot;value&quot;, &quot;クリックで閉じる&quot;);
        $(container).append(input);
        $(input).click(function () {
            $(&quot;#floatLayer&quot;).remove();
        });

        if($.browser.msie) {
            if(!window.XMLHttpRequest || !document.compatMode.match(/CSS/i)) {
                $(container).css({position:&quot;absolute&quot;, background:&quot;#000000&quot;, filter: &quot;alpha(opacity=50)&quot;});
                this.optimizeScroll();
                $(window).scroll(this.optimizeScroll);
                this.optimizeSize();
                $(window).resize(this.optimizeSize);
            }
        } else {
            $(container).css({width:&quot;100%&quot;, height:&quot;100%&quot;, position:&quot;fixed&quot;, left:0, top:0,
                background:&quot;#000000&quot;, opacity: 0.5
            });
        }
    },

    optimizeScroll:function () {
        var scrollLeft = (document.compatMode.match(/CSS/i)) ?
                document.documentElement.scrollLeft : document.body.scrollLeft;
        var scrollTop  = (document.compatMode.match(/CSS/i)) ?
                document.documentElement.scrollTop : document.body.scrollTop;
        $(&quot;#floatLayer&quot;).css({
            left:scrollLeft,
            top:scrollTop
        });
    },

    optimizeSize:function () {
        var windowWidth = (document.compatMode.match(/CSS/i)) ?
            document.documentElement.clientWidth : document.body.clientWidth;
        var windowHeight = (document.compatMode.match(/CSS/i)) ?
            document.documentElement.clientHeight : document.body.clientHeight;
        $(&quot;#floatLayer&quot;).width(windowWidth);
        $(&quot;#floatLayer&quot;).height(windowHeight);
    }
};

var floatLayer = new FloatLayer();
floatLayer.add();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unbland.org/blog/2008/10/30/186.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript で型判別</title>
		<link>http://unbland.org/blog/2008/10/30/173.html</link>
		<comments>http://unbland.org/blog/2008/10/30/173.html#comments</comments>
		<pubDate>Wed, 29 Oct 2008 16:52:12 +0000</pubDate>
		<dc:creator>muta244@admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://unbland.net/blog/?p=173</guid>
		<description><![CDATA[ActionScript 3 なら is 演算子で一発な型判別。JavaScript では is 演算子が使えないのでそうもいかず、typeof だと null が object として扱われる（Array とか自作クラ [...]]]></description>
			<content:encoded><![CDATA[<p>ActionScript 3 なら is 演算子で一発な型判別。JavaScript では is 演算子が使えないのでそうもいかず、typeof だと null が object として扱われる（Array とか自作クラスも同じ）し、instanceof ではすべてのクラスが Object のインスタンスとして判別されるため、この二つは役不足。なにか方法がないかと模索してみた結果、constructor プロパティで判別するのが良さそうです。</p>
<p>以下、テストコード。</p>
<div style="position:relative;top:18px;margin-top:-18px;"><small><strong>JavaScript</strong></small>
</div>
<pre name="code" class="jscript" style="margin:18px 0;">
function Test() {};
var test = new Test();

alert(test.constructor == Object); // false
alert(test.constructor == Test); // true
alert(null.constructor); // TypeError: null has no properties
alert(undefined.constructor); // TypeError: undefined has no properties
</pre>
<p>InternetExplorer, Firefox, Safari などのブラウザですべて同じ動作なので、これが試した限りでは一番確実っぽいです。他に良い方法があればコメント欄で教えてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://unbland.org/blog/2008/10/30/173.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.397 seconds -->
