--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<html xmlns:v="urn:schemas-microsoft-com:vml"><!-- InstanceBegin template="/Templates/base.dwt" codeOutsideHTMLIsLocked="false" -->\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+ <meta http-equiv="Content-Language" content="ja">\r
+ <meta http-equiv="Content-Script-Type" content="text/javascript">\r
+ <meta http-equiv="Content-Style-Type" content="text/css">\r
+ <meta http-equiv="imagetoolbar" content="no">\r
+ <link rel="stylesheet" type="text/css" href="../stylesheets/common.css">\r
+ <!-- InstanceBeginEditable name="doctitle" -->\r
+ <title>ぺったんR html 実証サンプル version 0.3 | pettanR</title>\r
+ <!-- InstanceEndEditable -->\r
+ <!-- InstanceBeginEditable name="head" -->\r
+ <style type="text/css">\r
+ \r
+/* PettanR Comic\r
+--------------------------------------------------------------------------------------*/\r
+.test_pettanr-comic-wrapper {\r
+ margin : 1em auto;\r
+}\r
+ .test_pettanr-comic-panel {\r
+ border-style : solid;\r
+ border-color : #111;\r
+ position : relative;\r
+ margin : 1em 0;\r
+ overflow : hidden;\r
+ }\r
+ .test_pettanr-comic-panel img,\r
+ .test_pettanr-comic-balloon {\r
+ position : absolute;\r
+ }\r
+ .test_pettanr-comic-balloon img {\r
+ width : 100%;\r
+ height : 100%;\r
+ }\r
+ .test_pettanr-comic-speech {\r
+ margin : 0 !important;\r
+ padding : 0 !important;\r
+ display : table;\r
+ table-layout : fixed;\r
+ position : absolute;\r
+ top : 0;\r
+ left : 16.6%;\r
+ width : 66.6%;\r
+ height : 100%;\r
+ *height : auto;\r
+ *top : 50% !important;\r
+ }\r
+ .test_pettanr-comic-speech-inner {\r
+ vertical-align : middle;\r
+ display : table-cell;\r
+ *display : block;\r
+ zoom : 1;\r
+ *position : relative;\r
+ *top : -50%;\r
+ }\r
+ .test_pettanr-comic-speech p {\r
+ padding : 0.5em 0 !important;\r
+ margin : 0 !important;\r
+ }\r
+ .test_pettanr-comic-speech strong {\r
+ font-weight : bold;\r
+ }\r
+ .test_pettanr-comic-speech em,\r
+ .test_pettanr-comic-speech i {\r
+ font-style : italic;\r
+ }\r
+ .test_pettanr-comic-speech samp,\r
+ .test_pettanr-comic-speech code {\r
+ font-family : monospace;\r
+ }\r
+ .test_pettanr-comic-ground {\r
+ position : absolute;\r
+ top : 0;\r
+ left : 0;\r
+ width : 0;\r
+ *width : 100%; /* for ie5.5- */\r
+ height : 100%;\r
+ overflow : hidden;\r
+ padding-left : 100%;\r
+ background-repeat : repeat;\r
+ background-position : 0 0;\r
+ }\r
+\r
+ .show-border .test_pettanr-comic-speech {\r
+ border : 1px solid green;\r
+ } \r
+ .show-border .test_pettanr-comic-speech div {\r
+ border : 1px solid red;\r
+ }\r
+ .show-border .test_pettanr-comic-speech p {\r
+ border : 1px solid orange;\r
+ }\r
+ .show-border .test_pettanr-comic-speech span,\r
+ .show-border .test_pettanr-comic-speech strong,\r
+ .show-border .test_pettanr-comic-speech em,\r
+ .show-border .test_pettanr-comic-speech i,\r
+ .show-border .test_pettanr-comic-speech samp,\r
+ .show-border .test_pettanr-comic-speech code {\r
+ border : 1px solid blue;\r
+ }\r
+ </style>\r
+ <!-- InstanceEndEditable -->\r
+</head>\r
+\r
+<body>\r
+ <div id="general-content">\r
+ <div id="outer-wrapper">\r
+ \r
+ <div id="header">\r
+ <div class="base-content-width" style="position:relative;">\r
+ <h1><a href="../index.html">pettanR</a></h1>\r
+ <!-- global navi -->\r
+ <div id="global-navi">\r
+ <noscript id="noscript-alert">You need to have JavaScript enabled.</noscript>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ \r
+ <div id="inner-wrapper" class="base-content-width">\r
+ <!-- InstanceBeginEditable name="main_content" -->\r
+ <div id="main">\r
+ <div id="breadcrumb"><a href="index.html">テスト インデックス</a> > ぺったんR html 実証サンプル version 0.3</div>\r
+ \r
+ <h2>ぺったんR html 実証サンプル version 0.3 2013.09.23</h2>\r
+ <h3>はじめに</h3>\r
+ <p>html + css の表現力を活用してマンガ状の表示を行うのことが ぺったん、及び ぺったんR の肝です.</p>\r
+ <p>この文書では ぺったんR API などで作られたマンガ作品データがブラウザ上でどのような html になるのか? を示す.文書はあくまで実証サンプルであり、必ずしもここで示した html に従わなくてはいけないわけではない.</p>\r
+ <p>また、ぺったんR API によって提供されたマンガデータが、必ずしも html によって表示されなければいけないわけでもない.</p>\r
+ <p>この文書で示された html 構造と css は ぺったんR プロジェクトのライセンスの元でユーザーが自由に利用できる.</p>\r
+ \r
+ <h3>機能一覧</h3>\r
+ <dl class="dl-table clearfix">\r
+ <dt>正常動作確認済みブラウザ</dt>\r
+ <dd>ie5+, Firefox3.6+, NN6.2+, Opera7.11 & 9.64+, Konqueror4.8, Safari3.2, Iron5</dd>\r
+ <dt>吹きだしの語調</dt>\r
+ <dd>通常の語調のほかに、強調、コンピュータの合成音声</dd>\r
+ <dt>脚本情報</dt>\r
+ <dd>テキストブラウザ・音声読み上げブラウザでも作品を読むことができる(はず)</dd>\r
+ <dt>リッチテキスト機能</dt>\r
+ <dd>まだ、、、</dd>\r
+ </dl>\r
+ <p>実際の運用時には、js によって吹き出し画像がベクター画像に置き換えられたり、クライアント側で反転画像の生成を行うが、本文書では扱わない.</p>\r
+ \r
+ <h3>表示サンプル</h3>\r
+ <p>表示サンプルは今後充実していくこととする.</p>\r
+ \r
+ <div id="swbutton" class="button" onclick="switchBorder();" style="width:100px;margin:10px auto;">show border</div>\r
+ \r
+ <div id="html2comic">\r
+ <div class="test_pettanr-comic-wrapper" style="width: 400px;">\r
+ <div class="test_pettanr-comic-panel" style="border-width: 2px;height: 300px;">\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 200px; height: 200px; left: -4px; top: -10px; z-index: 3;"\r
+ >\r
+ <img src="../system_pictures/_w7.gif" alt="ようやく口を開くと">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner"\r
+ style="font-size: 1em; text-align: left; color: rgb(0, 0, 0);"\r
+ >\r
+ <p>それじゃほとんど意味がないじゃねえか</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <img src="2.gif"\r
+ alt="頭を抱えるキンイチであった"\r
+ title="キャラクター名:キンイチ, 絵師:yas"\r
+ longdesc="http://sourceforge.jp/projects/pettanr/wiki/AboutKinichi"\r
+ width="247" height="273" style="top: 101px; left: 86px; z-index: 2;">\r
+ <div class="test_pettanr-comic-ground" style="z-index: 1; background-color: #003;">深いため息に空気までが暗く重々しい…</div>\r
+ </div>\r
+ <div class="test_pettanr-comic-panel" style="border-width: 2px; height: 235px;">\r
+ <img src="../resource_pictures/1.png"\r
+ alt="目の血走ったペンギンが拳を握り締めている"\r
+ title="キャラクター名:キンイチ, 絵師:yas"\r
+ longdesc="http://sourceforge.jp/projects/pettanr/wiki/AboutKinichi"\r
+ width="166" height="272" style="left: 148px; top: -2px; z-index: 0;"\r
+ >\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 200px; height: 160px; left: -29px; top: 39px; z-index: 1;"\r
+ >\r
+ <img src="../system_pictures/_w5.gif" alt="ペンギン曰く">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner">\r
+ <p>どの環境でもそれなりにセリフを表示する</p>\r
+ <p>これには慎重を要する</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 100px; height: 80px; left: 300px; top: 80px; z-index: 2;"\r
+ >\r
+ <img src="../system_pictures/_w19.gif" alt="ペンギン一息ついて">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner">\r
+ <p>そやそや</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ \r
+ <h3>画像や css に対応しない Web ブラウザでの表示</h3>\r
+ <p>マンガコンテンツとして推奨ブラウザや対応ブラウザで意図したとおりに表示できるだけでなく、html 文書として正しく書かれていなくてはいけない.</p>\r
+ <p>テキストブラウザや web クローラ、音声読み上げブラウザでの表示のされ方を勘案し html 構造を設計する.</p>\r
+ <p>同様の着眼で代替テキストを用意する.</p>\r
+ <h4>テキストブラウザでの表示イメージ</h4>\r
+ <pre><samp>\r
+\r
+ようやく口を開くと\r
+「それじゃほとんど意味がないじゃねえか」\r
+頭を抱えるキンイチであった\r
+深いため息に空気までが暗く重々しい…\r
+\r
+目の血走ったペンギンが拳を握り締めている\r
+ペンギン曰く\r
+「どの環境でもそれなりにセリフを表示する」\r
+これには慎重を要する\r
+ペンギン一息ついて\r
+「そやそや」\r
+ </samp></pre>\r
+ \r
+ <h3>ブラウザ検証</h3>\r
+ <h4>対応ブラウザ</h4>\r
+ <p>NN6.2+, firefox3.6, ie5+, Safari3.2, Iron5, opera7.11 & 9.64+, Konqueror4.8(windows)</p>\r
+ <h4>準対応ブラウザ</h4>\r
+ <p>Opera6.06( <code>overflow:hidden</code> が孫要素に対して利かず(?)要素がパネルをはみ出す z-index が overflow:hidden なパネルを超えて効いてしまう)</p>\r
+ <p>Opera8.02 パネルの枠線が一部欠けてしまう.alt タグの内容が画面に表示される.opera7.11 ではこの不具合は起こらない.</p>\r
+ <h4>非対応ブラウザ</h4>\r
+ <p>NN6(テキスト表示位置がずれる.z-index 指定が画面にゴミを出してしまう), Opera5( 日本語に非対応で文字化けする )</p>\r
+ \r
+ <h3>ソースコード</h3>\r
+ <h4>html 部分</h4>\r
+ <p>パネルピクチャはひとつの <img> タグで表示されます.</p>\r
+ <p>バルーンは、位置とサイズを決めるための <div> の中に吹きだし画像のための <img> と テキストを上下中央配置するための <p> と <span> からなる.</p>\r
+ <pre class="brush: xml;">\r
+<div class="test_pettanr-comic-wrapper" style="width: 400px;">\r
+ <div class="test_pettanr-comic-panel" style="border-width: 2px;height: 300px;">\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 200px; height: 200px; left: -4px; top: -10px; z-index: 3;"\r
+ >\r
+ <img src="../system_pictures/_w7.gif" alt="ようやく口を開くと">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner"\r
+ style="font-size: 1em; text-align: left; color: rgb(0, 0, 0);"\r
+ >\r
+ <p>それじゃほとんど意味がないじゃねえか</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <img src="2.gif"\r
+ alt="頭を抱えるキンイチであった"\r
+ title="キャラクター名:キンイチ, 絵師:yas"\r
+ longdesc="http://sourceforge.jp/projects/pettanr/wiki/AboutKinichi"\r
+ width="247" height="273" style="top: 101px; left: 86px; z-index: 2;">\r
+ <div class="test_pettanr-comic-ground" style="z-index: 1; background-color: #003;">深いため息に空気までが暗く重々しい…</div>\r
+ </div>\r
+ <div class="test_pettanr-comic-panel" style="border-width: 2px; height: 235px;">\r
+ <img src="../resource_pictures/1.png"\r
+ alt="目の血走ったペンギンが拳を握り締めている"\r
+ title="キャラクター名:キンイチ, 絵師:yas"\r
+ longdesc="http://sourceforge.jp/projects/pettanr/wiki/AboutKinichi"\r
+ width="166" height="272" style="left: 148px; top: -2px; z-index: 0;"\r
+ >\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 200px; height: 160px; left: -29px; top: 39px; z-index: 1;"\r
+ >\r
+ <img src="../system_pictures/_w5.gif" alt="ペンギン曰く">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner">\r
+ <p>どの環境でもそれなりにセリフを表示する</p>\r
+ <p>これには慎重を要する</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <div class="test_pettanr-comic-balloon"\r
+ style="width: 100px; height: 80px; left: 300px; top: 80px; z-index: 2;"\r
+ >\r
+ <img src="../system_pictures/_w19.gif" alt="ペンギン一息ついて">\r
+ <div class="test_pettanr-comic-speech">\r
+ <div class="test_pettanr-comic-speech-inner">\r
+ <p>そやそや</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+</div>\r
+ </pre>\r
+ <h4>css 部分</h4>\r
+ <h5>上下中央配置(モダンブラウザ)</h5>\r
+ <p>css2 の <code>display: table, display: table-cell</code> を使って吹き出し内のテキストの上下中央配置を行う.</p>\r
+ <h5>上下中央配置(old IE)</h5>\r
+ <p><code>display: table</code> をサポートしない ie7 以下は、入れ子になった要素を上下に 50% ずらす、という手法で上下中央配置している.その様子を、show border ボタンを使って確認されたし.( 参考 <a href="http://scuderia-web.com/tips/xhtml_css/div_vertical_align.php" target="_blank">tableを使わずdivで縦位置を指定</a> )</p>\r
+ <h5>レイアウト計算負荷を提げる</h5>\r
+ <p>.test_pettanr-comic-ground でテキストをコマの外に飛ばしているのは、<code>padding-left : 100%; になる.</code></p><p><code>width : 0; *width : 100%; overflow : hidden </code>はどちらも無くても表示に変わりが無いが、それぞれレイアウト計算負荷が下がりそうなので指定してある.</p>\r
+ <pre class="brush: css;">\r
+.test_pettanr-comic-wrapper {\r
+ margin : 1em auto;\r
+}\r
+ .test_pettanr-comic-panel {\r
+ border-style : solid;\r
+ border-color : #111;\r
+ position : relative;\r
+ margin : 1em 0;\r
+ overflow : hidden;\r
+ }\r
+ .test_pettanr-comic-panel img,\r
+ .test_pettanr-comic-balloon {\r
+ position : absolute;\r
+ }\r
+ .test_pettanr-comic-balloon img {\r
+ width : 100%;\r
+ height : 100%;\r
+ }\r
+ .test_pettanr-comic-speech {\r
+ margin : 0 !important;\r
+ padding : 0 !important;\r
+ display : table;\r
+ table-layout : fixed;\r
+ position : absolute;\r
+ top : 0;\r
+ left : 16.6%;\r
+ width : 66.6%;\r
+ height : 100%;\r
+ *height : auto;\r
+ *top : 50% !important;\r
+ }\r
+ .test_pettanr-comic-speech-inner {\r
+ vertical-align : middle;\r
+ display : table-cell;\r
+ *display : block;\r
+ zoom : 1;\r
+ *position : relative;\r
+ *top : -50%;\r
+ }\r
+ .test_pettanr-comic-speech p {\r
+ padding : 0.5em 0 !important;\r
+ margin : 0 !important;\r
+ }\r
+ .test_pettanr-comic-speech strong {\r
+ font-weight : bold;\r
+ }\r
+ .test_pettanr-comic-speech em,\r
+ .test_pettanr-comic-speech i {\r
+ font-style : italic;\r
+ }\r
+ .test_pettanr-comic-speech samp,\r
+ .test_pettanr-comic-speech code {\r
+ font-family : monospace;\r
+ }\r
+ .test_pettanr-comic-ground {\r
+ position : absolute;\r
+ top : 0;\r
+ left : 0;\r
+ width : 0;\r
+ *width : 100%; /* for ie5.5- */\r
+ height : 100%;\r
+ overflow : hidden;\r
+ padding-left : 100%;\r
+ background-repeat : repeat;\r
+ background-position : 0 0;\r
+ }\r
+ </pre>\r
+ <h3>履歴</h3>\r
+ <dl class="dl-table-small">\r
+ <dt>version 0.3</dt>\r
+ <dd>2013.09.23 公開.<br>\r
+ 脚本情報を html タグとして書き出し、通常の閲覧に際しては非表示、テキストブラウザ等に対しては表示となるように html と css を拡張.参考 <a href="http://sourceforge.jp/forum/message.php?msg_id=70069">RE: 脚本機能について</a><br>\r
+ あるパネルで指定されたパネル要素の z-index が、他のパネルに影響しないか?調査の追加.参考 <a href="http://sourceforge.jp/forum/message.php?msg_id=70116">RE: パネルのZインデックスが適切でない</a>\r
+ </dd>\r
+ <dt>version 0.2</dt>\r
+ <dd>2013.08.10 公開.<br>\r
+ 吹き出し内での <p> タグによる段落分け(改行)に対応.<br>\r
+ デフォルトでテキストの中央配置をやめる.<br>\r
+ 外す.<del>font-size : 14px; /* opera6 で使用 13px は不可 */</del><br>\r
+ レンダリング負荷を下げる為の css 指定を追加 ( テキストの上下中央配置のための display:table に対して tabel-layout:fixed を追加 ).<br>\r
+ <img> タグに longdesc を追加.title 属性で説明しきれなかった画像に関する情報が書いてある url を指示する手段としてとして適切ではないか、と考える.\r
+ </dd>\r
+ <dt>version 0.1</dt>\r
+ <dd>2012.05.04 公開.</dd>\r
+ </dl>\r
+ <h3>懸案</h3>\r
+ <p>スピーチの上下中央配置に使っている display:table を使ったテクニックに Firefox 3.5 で起きる不具合が報告されている.<a href="http://ie-style.blogspot.jp/2009/08/firefox-35-display-tabletable-row-table.html">Project IE: Firefox 3.5 の display: table;(table-row; table-cell;) 関連の挙動について:</a></p>\r
+ </div>\r
+ <!-- InstanceEndEditable -->\r
+ </div>\r
+ </div>\r
+ </div>\r
+ \r
+ <div id="footer-content"><!-- #BeginLibraryItem "/Library/footer.lbi" -->\r
+\r
+ <div id="footer">\r
+ <div id="footer-item-container" class="base-content-width clearfix">\r
+ <div class="footer-item-wrapper">\r
+ <div class="footer-item">\r
+ <h2>ぺったんR にようこそ</h2>\r
+ <ul>\r
+ <li>サンプル</li>\r
+ <li>ぺったんRの特徴</li>\r
+ <li>沿革</li>\r
+ </ul>\r
+ <h2>Test</h2>\r
+ <ul>\r
+ <li><a href="index.html">Test Index</a></li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+ <div class="footer-item-wrapper">\r
+ <div class="footer-item">\r
+ <h2>ドキュメント</h2>\r
+ <ul>\r
+ <li><a href="http://sourceforge.jp/projects/pettanr/wiki/ForAuthors" rel="me" target="_blank">作家向けドキュメント</a></li>\r
+ <li>絵師向けドキュメント</li> \r
+ <li><a href="http://sourceforge.jp/projects/pettanr/wiki/ForDevelopers" rel="me" target="_blank">開発者向けドキュメント</a></li>\r
+ <li><a href="http://sourceforge.jp/projects/pettanr/wiki/ForWebmasters" rel="me" target="_blank">編集長向けドキュメント</a></li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+ <div class="footer-item-wrapper">\r
+ <div class="footer-item">\r
+ <h2>プロトタイプ</h2>\r
+ <ul>\r
+ <li><a href="http://pettanr.heroku.com/" rel="me" target="_blank">pettanr.heroku.com</a></li>\r
+ <li><a href="../work.html" rel="console">ユーザーコンソール</a></li>\r
+ </ul>\r
+ <h2>Ajax contents</h2>\r
+ <ul>\r
+ <li><a href="../help/jp.xml">help | jp</a></li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+ <div class="footer-item-wrapper" style="width:170px;">\r
+ <div class="footer-item" style="padding-right:0;">\r
+ <h2>ぺったんRチーム</h2>\r
+ <ul>\r
+ <li>わたしたちについて</li>\r
+ <li>ミッション</li>\r
+ <li><a href="../diary/itozyun.xml">itozyun's diary</a></li>\r
+ <li>個人情報保護方針</li>\r
+ <li>作品の取り扱い</li>\r
+ <li>お問い合わせ</li>\r
+ </ul>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <div id="copyright">Copyright (c) 2011-2012 pettanR team, some rights reserved.</div>\r
+ </div><!-- #EndLibraryItem -->\r
+ </div>\r
+ <script type="text/javascript">\r
+ var has_server_support = false;\r
+ </script>\r
+ <script type="text/javascript" src="../javascripts/common.js"></script>\r
+<!-- InstanceBeginEditable name="script" -->\r
+ <script type="text/javascript" src="../lib/syntaxhighlighter/scripts/shCore.js"></script>\r
+ <script type="text/javascript" src="../lib/syntaxhighlighter/scripts/shBrushJScript.js"></script>\r
+ <script type="text/javascript" src="../lib/syntaxhighlighter/scripts/shBrushXml.js"></script>\r
+ <script type="text/javascript" src="../lib/syntaxhighlighter/scripts/shBrushCss.js"></script>\r
+ <link type="text/css" rel="stylesheet" href="../lib/syntaxhighlighter/styles/shCoreDefault.css">\r
+ <script type="text/javascript">\r
+ SyntaxHighlighter.all();\r
+ \r
+ var btn = document.getElementById( 'swbutton' );\r
+ var elm = document.getElementById( 'html2comic' );\r
+ var cls = 'show-border';\r
+ var val = btn.firstChild.data\r
+ \r
+ function switchBorder(){\r
+ var current = elm.className;\r
+ elm.className = cls === current ? '' : cls;\r
+ btn.firstChild.data = cls === current ? val: 'hide border';\r
+ }\r
+ </script>\r
+<!-- InstanceEndEditable -->\r
+</body>\r
+<!-- InstanceEnd --></html>\r
case Node.IS_RAW_HTML :\r
if( xnode = Node._getXNode( v ) ) return xnode;\r
// dom2 || dom0\r
- this.parent = v !== document.body && ( parent = v.parentNode || v.parentElement ) && Node._getXNode( parent );\r
+ this.parent = v !== document.body && ( parent = v.parentNode || v.parentElement ) && parent.tagName /* ie7- */ && Node._getXNode( parent );\r
this._rawNode = v;\r
this._nodeType = 1;\r
v.setAttribute( 'UID', '' + uid );\r
return node;\r
}) :\r
document.all ? (function( skipRemove, skipContainsDirty ){\r
- var id, html, attrs, attr, children, i, l, child;\r
+ var id, html, attrs, attr, children, i, l, child, toName, noValue, name;\r
if( this._nodeType !== 1 ) return this._text;\r
\r
if( this._rawNode || this._ie4getRawNode() ){\r
};\r
};\r
id = this._id || ( 'ie4uid' + this._uid );\r
- html = [ '<', this._tag, ' id=', id ];\r
+ html = [ '<', this._tag, ' id="', id, '"' ];\r
if( attrs = this._attrs ){\r
- for ( i = 0, l = attrs.length; i < l; ++i ){\r
+ toName = X.Dom.Attr.toName;\r
+ noValue = X.Dom.Attr.noValue;\r
+ for( i in attrs ){ //\r
attr = attrs[ i ];\r
- //if( attr.name === 'id' ) continue;\r
- html[ html.length ] = ' ' + ( attr.name || attr ) + '="' + ( attr.escaped || attr ) + '"';\r
+ if( attr === true ){\r
+ html[ html.length ] = ' ' + name;\r
+ } else {\r
+ html[ html.length ] = ' ' + name + '="' + attr + '"';\r
+ };\r
+ /*\r
+ = 0, l = attrs.length; i < l; ++i ){\r
+ if( attr = attrs[ i ] || attr === 0 ){\r
+ name = toName[ i ];\r
+ if( noValue[ name ] ){\r
+ html[ html.length ] = ' ' + name;\r
+ } else {\r
+ html[ html.length ] = ' ' + name + '="' + attr + '"';\r
+ };\r
+ };*/\r
};\r
};\r
html[ html.length ] = '>';\r
};\r
// イベントの復帰\r
( elm = this._ie4getRawNode() ) && X.Dom.Event.restore( elm );\r
+ elm.setAttribute( 'UID', '' + this._uid );\r
}) :\r
(function(){});\r
\r
Node.prototype._ie4getRawNode = function(){\r
var elm, uid;\r
if( elm = this._rawNode ) return elm;\r
- if( ( uid = this._id ) && ( elm = this._rawNode = document.all[ uid ] ) ){\r
+ if( this._id && ( elm = this._rawNode = document.all[ this._id ] ) ){\r
return elm;\r
};\r
if( elm = this._rawNode = document.all[ 'ie4uid' + this._uid ] ){\r
};\r
\r
/* --------------------------------------\r
- * className, cssText, cssObject\r
+ * className, addClass, removeClass, hasClass, cssText, css\r
*/\r
\r
+Node.prototype.css = function( name /* , valuOrUnit */ ){\r
+ var args = arguments,\r
+ css = this._css,\r
+ v, node;\r
+ if( 1 < args.length && 'px|em|cm|in|%'.indexOf( v = args[ 1 ] ) === -1 ){\r
+ if( node = this._ie4getRawNode ? this._ie4getRawNode() : this._rawNode ){\r
+ node.style[ name ] = v;\r
+ };\r
+ if( !css ) css = this._css = {};\r
+ css[ name ] = v;\r
+ return this;\r
+ };\r
+ if( !css ) return;\r
+ return css[ name ];\r
+};\r
+\r
\r
/* --------------------------------------\r
* attribute\r
+ * X.Dom.Attr.toIndex に定義されている 属性の場合\r
*/\r
Node.prototype.attr = function( v ){\r
- if( v.length && v[ v.length - 1 ] ) this._attrs = v;\r
+ var attrs, attr, l, i;\r
+ if( v.length && v[ v.length - 1 ] ){\r
+ //\r
+ } else\r
+ if( 2 < arguments.length ){\r
+ // setter\r
+ } else\r
+ if( typeof v === 'string' ){\r
+ // getter\r
+ if( attrs = this._attrs ){\r
+ //i = X.Dom.Attr.toIndex[ v ];\r
+ //if( i || i === 0 ){\r
+ // return attrs[ i ];\r
+ //};\r
+ return attrs[ v ];\r
+ };\r
+ };\r
};\r
\r
/* --------------------------------------\r
* Width, Height\r
*/\r
Node.prototype.width = function(){\r
- var parent = this.parent, elm;\r
- if( !parent ) return 0;\r
+ var elm;\r
+ if( !this.parent ) return 0;\r
if( document.getElementById ){\r
return ( elm = this._rawNode ) ? elm.offsetWidth : 0;\r
} else\r
};\r
\r
Node.prototype.height = function(){\r
- var parent = this.parent, elm;\r
- if( !parent ) return 0;\r
+ var elm;\r
+ if( !this.parent ) return 0;\r
if( document.getElementById ){\r
return ( elm = this._rawNode ) ? elm.offsetHeight : 0;\r
} else\r
alert( _xnode._tag + ' !== ' + child.tagName + ' * ' + child.outerHTML );\r
} else {\r
_xnode._rawNode = child;\r
- !child.getAttribute( 'id' ) && child.setAttribute( 'id', ( _xnode._ie4uid = 'ie4uid' + _xnode._uid ) );\r
- child.setAttribute( 'UID', _xnode._uid );\r
+ !( _xnode._id = child.getAttribute( 'id' ) ) && child.setAttribute( 'id', ( _xnode._ie4uid = 'ie4uid' + _xnode._uid ) );\r
+ child.setAttribute( 'UID', '' + _xnode._uid );\r
child.children.length && createTree( _xnode, child.children );\r
f = true;\r
++j;\r
- break; \r
+ break;\r
};\r
} else\r
if( _xnode._nodeType === 3 ){\r
r._children.push.apply( r._children, X.Dom.parse( elm.innerHTML, true ) );\r
createTree( r, elm.children );\r
r._ie4reserveUpdate();\r
- //alert(n + ' ' + elm.innerHTML)\r
+ //alert(n + ' ' + elm.innerHTML);\r
+ r._ie4startUpdate();\r
+ //alert(n + ' ' + elm.innerHTML);\r
} else {\r
\r
};\r
\r
+ r.width = new Function( 'return X.View.getSize()[ 0 ]' );\r
+ r.height = new Function( 'return X.View.getSize()[ 1 ]' );\r
+ \r
return X.Callback.UN_LISTEN;\r
} );\r
\r