はまった問題の最近のブログ記事
2013年2月21日
ie8、filterをかけた子要素の:hoverでのbackground-position
2012年1月16日
iPhone Safari での jQuery .live()
2011年8月23日
ページ内にswfがある and urlに#がある場合のタイトル挙動 ie
ちょっと前回わかりにくすぎたので反省。端的に。
【はまり問題&詳細】
■ 発生条件
ページ内にswfがある
ブラウザはie
アンカーをクリックor最近多い#でajax系
上記条件でブラウザタイトルバー(<title>)に#〜が追記される
swfをクリックすると
タイトルバーの内容は#〜に差しかわる
【原因】
IEのバグみたい
【回避方法】
回避方法はないので力業で対応するしかない
1. タイトルを書き換えるjavascript functionを用意
2. 1のfunctionをaクリック時と、swfのステージクリック時にswfから呼び出す
3. 別ページから#付きでリクエストされることがあれば、onload時に呼び出す
以上
2011年8月22日
jQuery $(this).text()のie6、7
【はまり問題】
jQuery、拾ってきた.text()が実際のテキストと異なる
【詳細】
<ul id="selectUl">
<li>テキストA</li>
<li>テキストB</li>
</ul>
<table id="selectTable">
<tr>
<td>hogehoge</td>
<td>テキストA</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
<tr>
<td>hogehoge</td>
<td>テキストB</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
...
</table>
というようなhtml。
目的は、liクリックでtableに同じワードがある行だけ表示。
var clickText = $(this).text();
とliのテキスト内容を入れて
tr.each()で1行ずつtdのテキストを
selectText= $(this).text();
に代入する。
if(clickText == selectText){
で表示。
ie6、7のみ動かず。
すべてfalseになる。
【原因】
text();
に余計な文字が入る。おそらく改行コード。
clickText.length() が6。
selectText.length() が5。
そりゃ一致しない。
【回避方法】
clickText = jQuery.trim($(this).text());
2011年8月20日
windows+safariでのswf
【はまり問題】
windows safari、バージョンによってswfオブジェクトがみあたらない
【詳細】
<object id="hoge01" 〜
<!--[if !IE]>-->
<object id="hoge02" 〜
<!--<![endif]-->
と通常にswfを読み込む
↓
javascriptでswfのasを呼び出す
↓
windows safariなら、#hoge02.asfunction()でアクセスできるはずがundefined
【原因】
win safariのバージョンによっては、最初の#hoge01に入っている模様
ver 5.1では起きず、5.0.5と5.0.1で発生。それ以外のバージョンでは未確認。
【回避方法】
どっちかにはswfオブジェクトが入ってるので、見つからなかったらもう片方を指定する。
以上