●SBサイト覚え書●
◆ここは?
SB対応中に気付いた点をずらずら挙げてます。
大抵のタグは反映するので絵文字以外はezのページをそのまま使っても差し支えないレベルだと思います。
主にレイアウトに関する要素が多いと思いますが、802N特有の性質かもしれないものもありますので、その点はお許しをw;;
@たぶん全機種
UAでキャリアを振り分けていて、UP.Browserの有無でezか判別している場合はif文の順番に注意。SBもこれに引っかかる。
UAは4種類存在、j-phone+Vodafone+Softbank+MO端末専用UA(激謎)
HTTP_X_JPHONE_MSNAMEというSB/Voda/J-PHONE特有の環境変数があり、ここに機種名も入っているのでこの変数の有無で振り分けしたりすると便利。
タグ反映基準がezに比べて若干厳しい…<div>〜<font>〜</div></font>みたいに妙な挟み方(タグの途中から別のタグをまたいで指定する方法)をすると、それの行より前にdivで何か指定していても強制的にキャンセルされておかしなことになります。特に閉じタグの順番は適当になりやすいので一番注意するところです。
ページ全体をdiv align=CENTERで囲っても↑のように途中で変な記述があったり、特定のタグを使った場合、それ以降で無効になってしまう場合がある。(エミュが参考になります)
同様の理由でA name=#nextのようにname属性を使う場合は問題の無い場所で/Aを書いて閉じとかないと表示がおかしなことに
2G端末はフォントサイズは何やっても通常サイズで固定、CSSは無効扱い。
font size=-6〜+6/1〜6(一部機種では-7が最小フォント)はたぶん3G全機種で有効、でもpx単位の指定は反映しない端末が極一部あり、xx-smallといった指定法は全端末で不可(CSSでは有効)。
Ezのブックマーク禁止のmetaタグ有効(でもURL表示機能があるので無意味カモ)
端末製造番号は端末設定で表示のON/OFF切り替え可能
EzのサブスクライバIDに該当するHTTP_X_JPHONE_UIDという環境変数があり、UAに含まれる製造番号は非表示にできるがこちらは非表示不可。
@/n/d/Vなどの機種依存文字は非推奨(802N/802SHで非表示確認)
画像データ:ezは同じURLの画像ならページが変わっても一瞬でキャッシュから表示されるが、SBはキャッシュからの読み込みに時間がかかるため(1〜2秒)不必要に画像を多用しないほうがいいかも
SB絵文字はメタ文字(\$?][*など)を含む独特の表記方法なのでCGI/PHPで表示させる場合は$icon = '';というカンジでクォートで指定してその変数を使うか、全てのメタ文字の前に\入れて使用(CGIのみ)しないと文字化けします。
URLに日本語が含まれると正常に飛ばない、必ずURLエンコードする必要がある。
ありがちなのが、検索結果の表示をページ分けする場合にページめくりのAリンクに検索語句の変数を日本語そのままで載せてしまうケース。
×:http://xx.jp/x.php?w=うぐぅ
○:http://xx.jp/x.php?w=%82%A4%82%AE%82%A3
A機種によって違うかも
<font size=-6><font size=-6></font></font>やCSSのfont-size:xx-small+HTMLのfont size=-6のように重ね合わせなどで実質-10や-20など無茶な値を指定した場合ezでは最小になるが、SBでは無効扱いになり通常サイズの大きさになる機種がある。
テキストやタグのみで20〜25KB以上のページはバグるか(表示が一部飛ぶ)、エラーになって全く表示できない機種がある(802N/802SHで確認)
うぇぶTool集にあるEZ絵文字一覧2の464〜642番までの絵文字はez用のimg localsrc=番号でも一応有効(画像で表示される)、ドコモ用絵文字は全部だめp
2G端末/V801SH/V801SAはGIF形式非対応(割合少ないので無視していいかも?)
絵文字にもfont size有効
HRタグはsize=1としない場合は2〜3pxくらいの太線になる
BODYタグ内のlink/alink/vlink指定有効、div mode=nowrap有効、spanタグによる文字単独の背景色有効、smallタグ3G有効(機種による?)
nowrapでスクロールになっている行にカーソルを合わせると、その行の背景色はBODYタグのLINK色で指定した色になり、文字色は背景色になります。つまりLINK色と背景色を一緒にすると何も見えなく…(汗)
div mode=nowrap内にCENTERタグを入れてもezは行の長さに関係なく左寄せになるが、SBではその行が1行に収まる場合はCENTERタグが反映される。
1行の途中にfontタグを入れる場合、その行が画面端まで行く場合はfontタグの後ろに強制的に改行が入る(エミュでは入らない)
例:
文字文字なんたらかんたらたんたらさんたらまんたら

文字文字
なんたらかんたらたんたらさんたらまんたら
リンクについても同様で、Aリンクを含む行が画面端まで行く場合はリンクの最後で改行が入る(エミュでは入らない)
スカイウェブ・スカイウォーカー・スカイメロディ絵文字など、いわゆるj-phone/Vodafoneサービス特有の絵文字は見えない
input/textarea:テキスト入力部分のtitle指定無効(INPUTボタンは有効)、font size=-6有効、CSSによる背景色・文字色有効
wmlによるソフトキー指定有効:ただezwebでいう左下のところではなく、[ブラウザメニュー]に追加される形のためユーザーは気付きにくいと思います(accept指定は無し)
wml:card属性有効、タイマーも動作するので「うぐぅのるつぼ」みたいなページも作れますw
Aリンクのtitle指定は一応有効、でも機種によって表示方法は様々(802Nではezwebと同様に左下に表示、802SHはブラウザメニュー内に表示←あんま意味無いorz)
tableタグで□□みたいにtd2個で横に並べる場合、必要なくても全体を一度trで囲い[□□]のようにしないと反映しない([]がtr〜/tr:□がtd〜/td)
cgi内などでURLを記載する際、<a href=?xx=yy>としても通常の機種では?の前にCGIのURLを補ってくれるがSBの一部(T機種で確認)では補ってくれずアクセスエラーになる(c-board.cgiでこの記述がありました)
おまけ:メールでURLを送る場合、機種によってはURLの最後で改行を入れないと続いてる文字すべてをURLとして認識するので注意
http://ugukan.net/←缶詰め
↑だと「←缶詰め」もURLに…(汗)
Bエミュレータ
SBの技術者ページでウェブコンテンツヴューアが公開されていて、PCでSB端末の挙動をシュミレートできます。
特徴:割としっかり作られていてある程度忠実に反映されてます
問題:絵文字が実機のものと若干違う(実機のほうが少し堅いカンジのデザインです)
問題:font size=-6〜+6/1〜6の指定が反映されない(CSSのxx-smallは反映)
問題:color=#FF0といった3桁でのカラー指定が反映されない
問題:<div>〜<BR></div>とすると実機では最後の改行は反映されないが、エミュでは反映してしまう