au と Softbank の input要素や textarea要素内にタグが入っていた場合の表示の違い
昨日仕事で、携帯からサイトの更新ができる、ちょっとしたCMSツールみたいなのを作っていたんですが、新たな発見があったのでメモ。
作っていたツールというのは「普段PCで更新しているPC向けサイトを、緊急時なんかに外出先でも更新できるようにする」という目的のものです。
ケータイのブラウザでツールにログインして、更新するページの項目を選択。その後表示されるフォームで、コンテンツを携帯から書き換える。というような処理をしています。
で、サイトのコンテンツを更新するツールなので、フォームの input要素や textarea要素には、現在のコンテンツが入った状態で出力されます。
当然、HTMLタグも入っているわけです。下記のような感じ。
<input type="text" name="header" value="<strong>新着情報</strong>" /> <textarea name="content">クリスマス中止のお知らせ!<br />今年のクリスマスは中止!</textarea>
動作確認をしてみると、ソフトバンクのケータイでは input要素や textarea要素内にHTMLタグが入っていても、普通にフォームが表示されました。
auのケータイではアウト。 input要素の value属性内や、textarea要素内の、HTMLタグがある部分で入力欄の内容が終わっちゃいます。
まあ双方一機種ずつしか確認してないので、ソフトバンクでも駄目なケータイがあるかもしれないし、au でも OKなケータイがあるかもしれません。
au とソフトバンクの違いというか、搭載しているブラウザの違いと言うべきでしょうか。
ちなみに、PCで表示した場合、IEだと普通に見れます。
DoCoMo のケータイは持ってないので確かめてません。
どっちにしろ、これは横着した結果こうなったというだけで、ほんとは全部「<」は「<」、「>」は「>」と出力するべきです。
というわけで、そのフォームを出力する前に、
$content =~ s/</</g; $content =~ s/>/>/g;
みたいにしてから、
print qq|<input type="text" name="header" value="$content" />\n|;
とか、
print qq|<textarea name="content">$content</textarea>\n|;
とやれば、au でもちゃんと表示できました。
- 関連するブログ記事
-
- 現在位置
- TOP > Web制作技術 > モバイル(携帯電話・ケータイ)Web > au と Softbank の input要素や textarea要素内にタグが入っていた場合の表示の違い
- 前のブログ記事
- 「愛のバクダン」 - B'z [2007年12月19日 23:59]
- 次のブログ記事
- 「THE CIRCLE」 - B'z [2007年12月21日 05:22]



コメント(2)
BBSなどに携帯から画像添付でアップロードする場合、HTMLでinput要素をtype='file'にすると、Vodafone携帯だとうまく画像添付ができるのですが、Docomo、auの携帯では添付できないんです。何か別の対応方法ってありますか?
> taketanさん
現状、基本的に携帯電話では input type="file" は使えない、と割り切ってしまった方が良いかもしれませんね。
携帯電話でファイル添付してアップロードする手段としては、添付ファイル受付用のメールアドレスを作って、そのアドレス宛に、携帯から添付メールを送ってもらう、という手法が一般的かと思います。
有名なところで言うと、mixiモバイルで写真つき日記を書くときとかがそうですね。
メールを受信して、色々処理する方法に関しては、下記記事「メール受信時に perl スクリプトを起動して自動処理させる方法」が参考になるかもしれません。
http://www.abe-tatsuya.com/web_prog/perl_cgi/mail2perl.php
コメントする