<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/xml.xsl" type="text/xsl"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>nulog, NULL::something : out of the headphone &gt; 2006 &gt; June &gt; 11 &gt; behaviour.js とか</title>
  <link href="http://lowreal.net/logs/2006/06/11/3"/>
  <icon>http://lowreal.net/img/banner.png</icon>
  <link rel="self" type="application/atom+xml" href="http://lowreal.net/logs/2006/06/11/3.atom"/>
  <link rel="alternate" type="application/xhtml+xml" href="http://lowreal.net/logs/2006/06/11/3.xhtml"/>
  <updated>2006-06-11T02:28:34+09:00</updated>
  <author>
    <name>cho45(砂糖)</name>
  </author>
  <id>http://lowreal.net/2006/06/11/3</id>
  <entry>
    <title>behaviour.js とか</title>
    <link rel="alternate" type="text/html" href="http://lowreal.net/logs/2006/06/11/3.html"/>
    <link rel="alternate" type="application/xml+xhtml" href="http://lowreal.net/logs/2006/06/11/3.xhtml"/>
    <updated>2006-06-11T02:28:34+09:00</updated>
    <published>2006-06-11T02:28:34+09:00</published>
    <id>http://lowreal.net/2006/06/11/3</id>
    <category term="js"/>
    <content type="xhtml" xml:base="http://lowreal.net/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>分離の問題って、単純に <code class="ECMAScript">Event.observe("load", window, func) </code> とかやるとページが完全にロードされるまで JS が一切実行されないことにあるよねぇ。画像を多く含むページとかは特に最悪。前に作った <a href="/playing">now playing のページ (バグって動いてないかも) </a> なんてもうそれに当てはまってて結構アレだった。</p>
        <p>で、このライブラリはどう解決してくれるんだうへへへとか期待して覗いてみたけど現バージョンでは特に対応されていない。すなわち上で書いたようにページが完全にロードされるまで、一切のイベントをキャッチできない。</p>
        <hr/>
        <p>と、いったところで、Google Group をほげーっと眺めてみると <a href="http://groups.google.com/group/behaviour/browse_thread/thread/fc3a2e6da47e0e87/b060283a0277f7dc#b060283a0277f7dc">Google Groups: Behaviour Javascript Library</a> というまさにソレなトピックがあって、コードが示されている。結局めんどくさいブラウザの独自拡張に手を出さないといけないみたいだ。</p>
        <p>Gecko は <code>DOMContentLoaded</code> イベント (GreaseMonkey の実行タイミングと一緒かな？) を登録する。<abbr title="Internet Explorer">IE</abbr> は script 要素の <code>defer</code> という属性を書いてあげればいいらしい。けど、実際試してみると IE でうまくいってないように見える。</p>
        <p>どっちにしても Opera でうまくいかない以上、最速にしてストレスを減らすなら <abbr title="Hyper Text Markup Language">HTML</abbr> 直書きになってしまうような。個人的には直書きが好きじゃないから分離してるけど、分離するだけなら別に behaviour.js はいらないかな (ちゃんとクラスとか id ふっておけばあんまり困らない)。</p>
        <p>場合によっては、ポリシーを現実的なほうにズラして直で書く、と思う。諦めが肝心</p>
        <ul title="参考">
          <li>
            <a href="http://dean.edwards.name/weblog/2005/09/busted/">The window.onload Problem - Solved!</a>
          </li>
          <li>
            <a href="http://linguiste.org/projects/behaviour-DOMContentLoaded/example.html">Example of Improved Behaviour.addLoadEvent</a>
          </li>
          <li>
            <a href="http://my-chunqiu.cocolog-nifty.com/blog/2006/06/_javascript_htm_d49c.html">我的春秋: 続 JavaScript ソースが HTML から消える日</a>
          </li>
        </ul>
      </div>
    </content>
  </entry>
</feed>
