先日、
TeraPadでWebファイルを編集するときは文字コードをUTF-8Nにする
という記事を書きました。
PHPが意図通りに動かなかったのは、
タイトルのように、Web上にアップロードするファイルを
「BOMあり」にしていたためでした。
しかし、そこまで至るのに、いろいろな人に教えてもらって
かなり時間がかかりました。
ただ、そこで使った問題解決の手段は、
はじめてWebサービスを作る人にとっては、
結構使えるかもっていう感じがします。
その手段を紹介していきましょう。
問題のコード
問題のコードは、次の通りです。
この<script type=”text/javascript”>// <![CDATA[
コードの何が読み込まれてて、
読み込まれていないのか、はっきり分かりませんでした。
[php]
<script type="text/javascript">// <![CDATA[
$(function() { $(‘.deleteLink’).click(function() { if (confirm("削除してもよろしいですか?")) { $.post(‘./delete.php’, { id: $(this).data(‘id’) }, function(rs) { $(‘#entry_’ + rs).fadeOut(800); }); } }); });
// ]]></script>
[/php]
Google developer toolを使う
まず試してみたのが、Google developer tool。
手順は以下の通りです。
F12キー
↓
Resourcesタブ
↓
Frames
↓
(当該ファイルが入ったフォルダ)
↓
Scripts
↓
jQuery-○.○.○.min.js
jQueryが読み込まれていると、こんな画面が出ます。
緑色の文字で、jQueryのバージョンがで表示されます。
<a href=”http://e-yota.com/wp-content/uploads/2014/02/jQuery12.jpg”><img src=”http://e-yota.com/wp-content/uploads/2014/02/jQuery12-400×154.jpg” alt=”jQuery1″ width=”400″ height=”154″ class=”alignnone size-medium wp-image-417″ /></a>
alert()と.fail()をコード中に追加する
[php]
<script type="text/javascript">// <![CDATA[
$(function() { $(‘.deleteLink’).click(function() { if (confirm("削除してもよろしいですか?")) { $.post(‘./delete.php’, { id: $(this).data(‘id’) }, function(rs) { alert( escape(rs) ); alert( $(‘#entry_’ + rs).length ); $(‘#entry_’ + rs).fadeOut(800); }).fail(function(xhr){ alert("error"+xhr.status); }); } }); });
// ]]></script>
[/php]
このファイルを実行すると、alertが2回出てきます。
1回目のalertはこの通り。
2回目のalertはこの通り。
1回目のalertで現れる%uFEFFはUnicodeファイルのBOMを示すらしい。
これによって読み込むファイルにBOMがついていることが分かりました。