2010年1月12日火曜日

XP 削除できないFramework2.0を再インストール

※追記:一部「アンインストール」が「再インストール」になっていたので修正。
先週金曜日から判明していた問題なのですが、今日解決したので記念にメモ。

授業のVB.NETの課題を行うために、基本開発環境であるVS2005を使用しているのですが、
ある生徒のマシンでは、既存のプロジェクトを開くどころか、プロジェクトを新規作成しようとしても、
「致命的なエラーが発生しました」のようなエラーが発生し、非常に困った状態でした。
エラー状態のキャプを撮ってなかったのが残念。

VS2005本体をアンインストールし、再インストールしてもエラー発生。
困り果てていたので、VS2005と同時にインストールされたであろうソフトウェアも削除していきました。
その間で唯一エラーでアンインストールできなかったのが「Framework2.0」です。

仕方がないので、以下を参考にFramework2.0を再インストールすることに。

削除するのは、
  1. Windows Installer CleanUp」を使って、インストール情報のレジストリを削除
  2. Framework2.0関係のファイルを削除
  3. Framework2.0関係のレジストリを削除
という過程で。 方法自体は書かれている通りですが、一部ファイルが通常では削除できなかったので、 セーフモードに入ってから削除しました。 あとはレジストリを削除し再起動したあと、リンク先にあるFramework2.0をインストールして完了。 この状態でVS2005をインストールし実行すると、元通り使用出来る状態へ。 やはり、Framework2.0が原因だったようです。 なぜ壊れたかの判別が出来ればいいのですが・・・。

2009年11月30日月曜日

XP/Vista PC起動時に起こる無限ループへの対処法

先日1,2年生が作業で困っていたので、闘ってみました。
PC起動時に起こる無限ループは今まで何度も困ってきたので、この際解決してしまおうという事です。

そもそも、無限ループが起こってしまう現象は、今までの経験上2つに限られています。
  • BIOSを読み込んですぐ後に再起動→無限ループ。
  • OSのロゴが出ている間(出た後)に再起動→無限ループ。
更にその経験上、これら2つの現象を解消するには、OS再インストールが手っ取り早い事が多いです。 その理由は下にまとめるとして、まずは無限ループを止めることが先決です。 無限ループを止めるには、PCを起動し「F8」キーを押して表示する、 「詳細ブートオプション(XPでは「Windows拡張オプションメニュー」)」から、 「システム障害時の自動的な再起動を無効にする」を選択し、OSを呼び出します。 こうすることで、BSOD(ブルスク)が起こってしまった際に、自動的に再起動することを防ぐことが出来ます。 ということは、BSODから「無限ループが起こる理由」が引き出せるわけです。 この作業を行った上で、無限ループの原因を突き止めます。 まずは、BIOSを読み込んですぐ後に再起動→無限ループしてしまう場合。 この場合は、OSを呼び出す際に失敗しているのでBSODが表示されます。 前回無限ループが起きた際は、「0x0000007B」エラーでした。 Windows XP における "STOP 0x0000007B" エラーのトラブルシューティング方法 このリンク先を見てみると、ブートセクタの問題に思えます。 つまり、OSを呼び出すためのMBR(マスターブートレコード)が破損している可能性があるわけです。 MBRを修復する方法も、検索してみるとあるようですが、 OSを再インストール出来る環境の場合は、再インストールしたほうが手っ取り早いというわけです。 次に、OSのロゴが出ている間(出た後)に再起動→無限ループしてしまう場合。 こちらは、MBRによってOSが呼び出された後のBSODなので、MBRの破損では無いようです。 この場合は、OSを起動しシステムを準備している際に失敗しているので、 OSのシステムファイルが破損していて読み出せず、BSODになってしまいます。 このBSODでは、下部にシステムファイルの名前が表示されているかもしれません。 Windows XP を修復するために回復コンソールを実行する方法 このリンク先のように、破損したファイルを置き換えて対処することも可能な事もあります。 Vistaのスタートアップ修復での対処も可能な場合があります。 ただ、「何故ファイルが破損されたのか」が分からないままPCを使用することになるので、 OS再インストールを行い、ドライバなどを見つめ直しながらセットアップすることをお勧めします。 こういった「方法」を知っているか知らないかで大きく状況が変わる時があります。 今回の場合も、解決出来なければ「壊れたPC」として扱われるところでした。 だからといって、「知る」為には経験しかないので、どうしようも無いのですが。

2009年11月26日木曜日

新幹線の学割料金計算方法

最近プログラム系の投稿が出来ないで困ってます。
ただひたすらにすることが詰まっている感じであたふたしてます。
授業の課題やソフトウェアアップロード関係、学校の卒業進級制作、
会社の研修の勉強もしないといけないし、車の免許合宿の用意もぼちぼちと。
さらに先日のスポーツ交流会で筋肉痛、結構ハードですね。

ひとつひとつが片付いたら、何か開発したいなぁ。
まだAnalytics Data Export APIも中途半端にしかしてないですし。

で。
来週に会社の研修があるので、横浜へ行っちゃうのですが、
その前に交通費の内訳を会社へ連絡しました。
その内訳の中には当然新幹線も含まれ、
それは「学割等を用いて出来る限り安く抑える」ものなのです。

数回新幹線に乗って、東京or新横浜まで行ったことがありますが、
実はきちんと「安く抑える」計算をしたことがなかったので、改めて調べることにしました。

学割に関しては、JR西日本のサイトに書かれていました。
JRおでかけネット - きっぷについて - 2.乗車券

ここに書かれている通り、学割を利用した際の料金は「2割引」となります(端数切り捨て)。

これを踏まえて、Googleマップで「新大阪-新横浜」間の料金を調べます。
ここでよく調べていなかった弊害発生。
時間重視で購入していたので、いつも「のぞみ」を乗っていたらしく、
「新大阪-新横浜」間では300円安い「ひかり」の存在を知りませんでした。
なんてこった。
安くするためには「ひかり」を利用することが必須条件のようです。

この時点で13,230円、往復必要なので26,460円。
さらにそこから学割2割を引くと、21,160円(端数切り捨て)となります。

が。
ここからが本題です。
すでに上に挙げた金額を含めた交通費内訳を、会社へ連絡していたものの、
今日窓口で買った金額は「23,180円」だったのです。
なぜ計算した金額よりも高かったのか。
それは、「乗車券」と「特別料金」が関係します。


これは同じ新幹線をYahoo!路線情報で表示した状態です。
元々新幹線の料金は「乗車券」分となり、その場合は自由席のみです。
そこに「特別料金」を上乗せすることで、「指定席」に座ることが出来ます。
難しいことに、その「特別料金」は学割適用外のようなのです。
結果として、今回の場合の計算式はこのようになります。
( 8,190 * 2 / 0.8 ) + 5,040 * 2 = 23,180 (端数切り捨て)

まったく、ややこしいなぁ。
というか、今までをきちんと見返せば分かったはずなんですが・・・。

2009年11月18日水曜日

ブログの横幅を広げました

横幅が狭いのは、始めた頃から悩んでいたのですが、
昨日先生に「狭くね?」と言われたので、思い切って広げました。

とは言っても、変えること自体は少なく、全体の横幅の値と背景ぐらいです。
値は難なく変更できたのですが、画像について困ったのでメモ。

背景に使われている画像は透過GIFで、
ダウンロードした画像を引き延ばして用意しました。
その画像は、ブログをきちんと表示するために「いつでも問題無く取れる場所」に置く必要があったので、
Picasaに新しくアルバムを作成し入れることに。
ブラウザから普通にアップロードすると、GIFからJPGに変換されてしまいました。

これじゃ背景部分が真っ黒になってしまうので使用出来ません。
どうにかPicasaで出来ないものかと調べてみると、以下の様なサイトで解決法が書かれていました。

つまりBloggerの投稿ページからなら、透過画像(GIT,PNG)はその透過画像のままアップロード出来るという事です。
Picasaにアップロードする際の隙間を突いているような感じですが、利用できるものはしちゃいましよう。

これで横幅が広がりました。投稿の有効範囲は600pxほどです。
画像も文章も大きく取れるようになったので、こう色々とやりやすいです。

2009年11月12日木曜日

Googleの認証サーバが返答しないようです

※追記:2009/11/13の朝10時の時点で復活していました。
昨日から「Google Analytics Data Export API」を利用して、
サイトの解析情報を取得しようとしています。
Analytics Data Export API でデータ表示

今日の昼頃も認証を済ませてデータ表示出来ていたのですが、
ついさっき実行してみると、正常に動きませんでした。

ひとまずよく分からないので、Firefoxの「Firebug」を利用して、
接続情報を覗いて見ると、以下のようなエラーが発生していました。
「Could not sign in, invalid response from server.
  Please try again.」
エラー元はこの行。
「Ye[t].Ps=function(a,d,e)
  {if(!e||!e[Za]||...][Ja](d,""),h=a[Ja](d,"");return e==h};\n」

エラーを読む分には、どうやらサーバからの返答が無いみたいです。
さっきまでは動いていたのですから、本当にサーバ側の問題だと思いたいですね。

2009年10月16日金曜日

IE8 【C:\fakepath】って何なのよ

今月14日に上げた「IEditor」をバージョンアップしようと思い、
先生のサイトの「ファイル選択ダイアログを開く」を参考に、
ローカルファイルを参照しようと思ったのですが、思わぬエラーが発生です。

IE8の環境で、
「InternetExplorer.Application」を利用してパスを取得すると、
「C:\fakepath\TeraPad.exe」というパスを取得しました。
また自分のソースをちゃんと読まないクセのせいか、と思って見直しても、
もちろんそんな内容が含まれたサンプルじゃありません。

Googleで検索してみると、どうやらIE8のセキュリティ対策のようです。

リンク先の情報によれば、以下の様な対処法があるようです。
  • IEのセキュリティレベルを下げる。
  • 「信頼するサイト」に登録する。
  • ファイルパスの取得方法を変更する。
セキュリティレベルを下げるのは困りものですし、 上で挙げた、ファイル選択のための仮ページを「信頼するサイト」に登録できるわけでもなく、 パスの取得方法を変える以外、方法はなさそうです。 まぁ、今回のツールに関してのIE8は対象外なので、 そもそもIE8の場合は処理しなければ、それはそれで良いのですが。

2009年10月13日火曜日

Accsess/MDB 日付リテラルまとめ

今日、授業内で使用することがあったのでメモ。

授業で使用しているDBにはAccess/MDB以外に、
Oracle、MySQLがあります。
Javaで作成したプログラム内でOracle用に作成したSQL文を、
MDBに転用しようとするとエラー発生。
ちなみに、その時のSQL文は以下のもの。
select * 
 from 社員マスタ 
 where 氏名 like '%浦%' 
   and 性別 = 0 
   and 作成日 between '2005/01/01' 
   and '2007/12/31'
最初は、列名に「[]」が無いせいなのかと思いましたが、反応無し。 仕方がないので調べてみると、MDB特有の日付リテラルに行き着きました。 MDBでのBETWEENについて ※リンク先を間違えていたので修正。 つまりは、MDBでは「'2005/01/01'」という書式が、 日付型でなく文字列型で扱われるということですね。 なので、「between a and b」など日付を扱う場合には、 「#2005/01/01#」とし、型変換する必要があります。 以下が処理成功時のSQL文です。
select * 
 from 社員マスタ 
 where 氏名 like '%浦%' 
   and 性別 = 0 
   and 作成日 between #2005/01/01# 
   and #2007/12/31#
正直分かりづらいなぁ、と。

2009年9月17日木曜日

Java ==とequals()による初歩的問題について

今日のJavaの授業の終わりかけに、ちょっと困ったことが発生しました。 それは「Ifによる判断が、合っているはずなのに合わない」こと。 確かに、文字列一致の判断を行うために「==」で処理してるのになぁと、 しばらくソースを見直して、首をかしげてまた見直して・・・の繰り返し。 その時に、先生の一言でパッとみんな解けたわけですね。 「文字列一致の判断は、==ではなくてequals()。」 あぁなるほどな、と。
ということで、下にまとめます。 今回はこちらのサイトを参考にさせていただきました。 Javaにおける文字/文字列の扱い方 - ITアーキテクト [IT Architect] 上リンクにあることをさっぱり書くと、 「==」は「同オブジェクト参照チェック」で、 「equals()」は「同格納値チェック」です。 「==」は、他言語と動作(というか判断基準)が違うので、注意が必要です。
// それぞれに同じ"初期値"を与えた場合
String a1 = new String("abc");
String b1 = new String("abc");
System.out.println("それぞれに同じ\"初期値\"を与えた場合");

// == の場合
if ( a1 == b1 ) {
    System.out.println("◆==:True");   
} else {
    System.out.println("◆==:False");
}

// equals() の場合
if ( a1.equals( b1 ) ) {
    System.out.println("◆equals():True");
} else {
    System.out.println("◆equals():True");   
}

// **********************
// * 実行結果
//
// それぞれに同じ"初期値"を与えた場合
// ◆==:False
// ◆equals():True
// **********************
この場合は、a1,b1共に「同じ値」が代入されているにもかかわらず、 Javaの判断としては、「違うオブジェクトを参照」している、と取られます。 その結果、「同じオブジェクトを参照しているか」チェックする「==」はFalse、 「同じ値かどうか」チェックする「equals()」はTrueとなります。
// それぞれに同じ"オブジェクト"を与えた場合
String xy = new String("xyz");
String x1 = xy;
String y1 = xy;
System.out.println("それぞれに同じ\"オブジェクト\"を与えた場合");

// == の場合
if ( x1 == y1 ) {
    System.out.println("◆==:True");   
} else {
    System.out.println("◆==:False");
}
// equals() の場合
if ( x1.equals( y1 ) ) {
    System.out.println("◆equals():True");
} else {
    System.out.println("◆equals():True");   
}

// **********************
// * 実行結果
//
// それぞれに同じ"オブジェクト"を与えた場合
// ◆==:True
// ◆equals():True
// **********************
このソースの場合、x1,y1は同じxyを参照しています。 よって、「==」でも「equals()」でもTrueが返されます。 今後かなり多用すると思うので、憶えておかないとですね。

2009年9月10日木曜日

XP システムファイル破損によってOSが起動出来ない問題に対する対処法

ブルースクリーンはとうに見慣れましたが、
それでも表示される度に口を大きく開いてしまいます。
とにかく、あの青い画面は強烈なものなのです。

で。
時折発生するブルースクリーンに、「Ntfs.sys」が絡んでいることがあります。

(画像はVistaのモノですが、XPもほぼ同等です。)
この「Ntfs.sys」は、「%Systemroot%\System32\drivers(C:\Windows\System32\drivers)」に存在するファイルです。
これが何らかの原因で破損することがあり、結果的にこのファイルが読めず、
OSが起動出来ない、再起動ループなどを起こします。

この場合の対処法としては2つあります。
1つは、WindowsXPディスクからの回復コンソールでの修復。
壊れている「Ntfs.sys」を、WindowsXPディスクにあるそれと置き換える方法です。
それに関しては、以下のようなページが参考になります。

2つ目は、別に起動しているXPから「Ntfs.sys」をコピーする方法です。
エラーが発生しているHDDを、何らかの方法で別のXPマシンに接続し、
「Ntfs.sys」を直に書き直すことで、ひとまず対処できます。
この「ひとまず」が重要で、あくまでも別XPから取得したものなので、
今後何らかの問題が起こる可能性を含めています。
「Ntfs.sys」が何者か分からない以上、応急処置として考えるべきです。


また、「Ntfs.sys」以外にも、「dnsapi.dll」のエラーも発生しました。

ファイルの場所は「%Systemroot%\System32」です。
この場合は、OSが起動出来ないのではなく、
起動するもののファイルが読めないので進めない、状態でした。
これも、対処法2つ目で応急処置しましたが、正直どうなるかわかりません。


そもそも、WindowsXPディスクから持ってきて可能なのであれば、
それはもうそのシステム固有のものでは無いはずなので、
大丈夫だと思い込んでおきたいのですが・・・。

2009年7月28日火曜日

何かしらエラー アセンブリとSQLServerCompact


とりあえずエラーが出たのでメモ。
まだ調べてないのですが、ブラウザ上で「.application」でのソフトウェアインストールを行おうとすると表示されました。

そもそもアセンブリって何?
ちゃんと勉強していないからかも知れませんが、とにかく「アセンブリ」とは何なのか?
アセンブリとは (assembly): - IT用語辞典バイナリ
アセンブリとは、Microsoft .NET Frameworkの環境における、アプリケーションなどの管理単位となるコンパイル済みのコード群のことである。(一部引用)
つまりは、パッケージ化された関数。 さらに「グローバル アセンブリ キャッシュ(GAC)」はマシン全範囲に参照できるアセンブリ。 @IT:インサイド .NET Framework [改訂版]第3回 アセンブリのロード この場合はどうすればいいのか? エラーを読んでみる限り、ここから得られる情報は1つで、「System.Data.SqlServerCe バージョン3.5.1.0」が無いということです。 「System.Data.SqlServerCe 3.5.1.0 download」でGoogle検索すると、これの本名が発覚しました。 「SQL Server Compact 3.5」というようです。 さらに参考になりそうなMicrosoftの文章(Microsoft SQL Server Compact 3.5 Readme)も。 この文章とPCのプログラム一覧を見比べてみると、「SQL Server Compact 3.5」はインストールされているものの、その「SP1」がインストールされていないことを発見。 ダウンロードの詳細 : Windows デスクトップ向け SQL Server Compact 3.5 SP1 および Synchronization Services for ADO.NET v1.0 SP1 ここからダウンロードしてインストールしてみると、やっと目当てのソフトウェアをインストールすることが出来ました。 と、このように、大抵のエラーはそのヒントから答えが導き出せるものです。 今回のエラーはきちんと状況が表示されていたので簡単でしたが、ワケの分からない英文だけのエラーでもどうにかなります。 実際には、探す時間が無駄になることもありますが、そこは一長一短です。 経験上「できそうなことはしてみる」時間は設けてみて、それでも無理ならひとまず置いておけばいい感じです。 あとで思い出して解決出来たりすることも多々ありますしね。

2009年7月8日水曜日

ブルースクリーンの原因の探り方

ブルースクリーン続きです。
せっかくブルースクリーンが表示されたのであれば、「まぁいいや」で済まさずに原因究明するのが紳士のたしなみ(?)です。
昨日、滅多に見られないブルースクリーンの画像が撮れたので、それを元に原因の探り方をまとめます。

と言えども、最終的にはGoogleで検索するだけなのですが。
以下のとおりです。
▼続きを読む/たたむ

XPでブルースクリーン時の再起動を阻止

基本的には、そもそもブルースクリーンなんて見たくもないものですが、ドライバのエラーやメモリのリードエラーのせいで表示されてしまうことも多々あります。
さらに「何のエラー?」と見ている間に再起動されてしまい、原因が掴めないまま困ってしまうこともしょっちゅうです。
ですので、ブルースクリーンになってしまったときに勝手に再起動しないように設定しておくことをお勧めします。
昨日体験しましたが、ブルースクリーンでない強制再起動でも有効のようです。

手順は以下のとおり。
▼続きを読む/たたむ

2009年6月28日日曜日

HTML+CSS エラーメモ

※追記:書いてから見てみると出来てますね。
    え、なんで?
※さらに追記:原因(?)がわかりました。
       別のCSSファイルに書いたCSSをclass名で当てていたものが、
       うまく反映されていないようです。
       理由が分からないから余計に混乱します・・・。
作ってるうちにムカついてきたので、頭を冷やすついでにメモ。

HTMLとCSSを組み合わせてとあるページサンプルを作っている途中なのですが、テーブルのセル内でのレイアウトについて困っています。
それは、1行内に左右両端にそれぞれオブジェクトを配置して表示するということ。
物体1
物体2
とすると、ご覧の通り物体2が1行下に表示されます。
<div>
 <div style="float:left;">物体1</div>
 <div style="text-align:right;">物体2</div>
</div>
原因は、<div>を使用しているせいです。 <DIV>-HTMLタグリファレンス <div>は、自動的にその前後で改行を行う「ブロック要素」なのです。 それでは困ってしまうので、改行されない<span>を使います。
物体1物体2
すると今度は、物体2が左に並べられてしまいます。
<div>
 <span style="float:left;">物体1</span>
 <span style="text-align:right;">物体2</span>
</div>
これも原因は<span>を使用しているせいで、「text-align」が適用されないのです。 text-align - CSS Dencitie こちらにある通り、「text-align」は「ブロック要素」に適用されるものであり、<span>のような「インライン要素」には適用されないのです。 んー、これはどうしたものか・・・。 1行に左右両端とも表示出来るような違うやり方があるのか、はたまたこれに似た方法があるのかわからないです。 もう少し考えてみることにします。

2009年6月25日木曜日

珍しい画像

珍しい画像が取得出来たのでメモ。

どうも、モニタの情報が取得出来ない場合に発生するようです。
実際には、解像度が800*600で4ビット表示だったと思います。
表示された時にはド肝を抜かれ「うおあぁー!」と叫んでしまいましたが、モニタケーブルを挿し直すと元の設定に戻せました。

細かい話ですが、最近のモニタは「プラグアンドプレイ」形式なので、USBメモリなどのようにドライバが不要・自動でドライバを割り当てる事により、複雑な割り当て設定は不要です。
なので、何も知らない人からしてみたら、僕以上に困惑して「パソコンに詳しい人」に泣きつくんだろうなぁと思います。
再起動して急にこんな画面になっても、ケーブルのせいだとは思わないでしょうし。

2009年6月23日火曜日

表示エラーについて

追記:右メニューを見てみると「読者」がうまく表示されていなかったので、
   ひとまず削除しました。
   これで落ち着けばいいのですが・・・。

今日友達から聞いた症状なのですが、このブログを表示しようとすると「ブラクラ的」な事が起こってしまうようです。
ここで言う「ブラクラ的」とは、同じページを複数自動で生成しようとする動作のことです。
僕の方では全く感じていなかったことですが、「Sleipnirで表示してもIEで開こうとする」など、不思議な動作も起こるようです。

当方ではそういった症状は起こっていないものの、時折「開けません」のエラーは表示されます。
閲覧環境が「IE8」で、上に挙げた動作は「IE6,7」で起こっているとの情報をもらったので、その間に何か動作の差が起こっているような気がしないでもないです。

画面の表示を見ている限り、どこかでJavaScriptのエラーが起こっている気がします。
こちらとしては、ブラクラ的なスクリプトを仕組むことはありませんし、意図的にエラーを発生させようとはしませんので、もしそのようなエラーが発生した場合には出来ればキャプチャを添えて連絡してもらえたらと思います。

2009年6月16日火曜日

WinXPにおけるフォルダ共有

ひとまずは、就職活動は落ち着きました。
昨日の東京散歩の甲斐あって、無事に1つ内定を得ましたので、会社から通知書が届き次第正式な雇用の段取りに進みます。
やっと一張羅のスーツもクリーニングに出せます。

さて、今日の授業の中での一コマ。
WindowsXPのマシンにみんなが接続するOracleが入っていて、そのマシンのフォルダ共有についての話がありました。
まずは「C:」ルートに入れたら良いのですが、「C:」の共有の設定内「アクセス許可」を開こうとするとエラーが表示されました。
内容は「このリソースは管理のために共有されています。アクセス許可は設定出来ません。」。

実際、LANでは共有「C$」に入れたので問題は無いのですが、エラーが気になったので調べてみました。
するとトップにそのまま出てきたサイトが教えてくれました。
Windows NT/2000/XP/2003 管理共有を無効にする方法

どうも、ハードディスクに自動で付加される共有は「管理共有」と言われているらしいです。
システムでの必要性からOSが勝手に作る共有のようですね。
ただ、「フォルダオプション」内「表示」タブ→「簡易ファイルの共有」を一度無効にしないと管理共有は作成されないようなので、必ずとも必要というわけでは無いよう。
結果として、システムが自動で作成した共有なので、システムが知らないうちに設定を書き換えられるのを防ぐためにエラーを吐いて変更出来ないようにしている、という事です。

はぁー、勉強になった。

2009年5月28日木曜日

IE6以前でのエラー発生 無事解決です

なぜか、と聞かれると正直わかりません。
ただ、何事も無かったかのように正常に使えているので解決メモ。


まず、前回での「Syntax error」が気になったので「showhide.js」を見てみました。
エラーでは8行目と出ていたので参照するとコメント行です。
function showHide(targetID) { //functionの宣言。受けとったIDは変数targetIDに格納。
        if( document.getElementById(targetID)) { //指定のIDのついたオブジェクトがあったら処理する
                //指定されたIDのstyle.displayがnoneなら
                if( document.getElementById(targetID).style.display == "none") {
                    //blockに変更する
                    document.getElementById(targetID).style.display = "block";
                } else { //noneでなければ、つまりblockなら
                    //noneにする
                    document.getElementById(targetID).style.display = "none";
                }
        }
}
JavaScriptではコメントのみの行がダメなのか?と思ったのですが、それならむしろ3行目の時点でエラーが発生しているはずです。 そもそもインラインフレームで呼び出しているものが使用出来ているので、コメントには問題が内容に思えるのですが・・・。 とりあえず怪しげなので、コメント行を全て削除してみました。 するといけたんですね、これが。 うーん、わからない。 もしコメント行手前に全角スペースが入っていたとしたら、インラインフレーム側でもエラーが発生するわけですもんね。 まぁとりあえず、きちんと動作しているようなので良しとします。 このまま使えないのは、学校でも見られないのと同等ですから。

2009年5月27日水曜日

IE6以前でのエラー発生

※追記:無事解決しました。
   →IE6以前でのエラー発生 無事解決です

先日の「続きを読む」風JavaScriptからIE6以前でのエラー発生について未だに解決出来ていませんが、今確認できていることをメモとして。


1, showhide.jsをロードしなければエラーが発生しない。
2, JS自体は使用出来る(インラインフレーム内では使用出来ている点より明らか)。
3, なぜか毎回ページロード時「Syntax error」が発生する。

 →JS呼び出しの記述がおかしい?
 →BloggerではこのJSが、何らかの理由で使用出来ない?

4, 他のJSは使用出来ている(SyntaxHighlighterが使用出来ているので)。
5, Seesaaのファイル置き場が悪いわけではない(3,と同じ+別サーバで試しても無理)。
 →外部サーバに.jsファイルを置いているのは問題ではない。


んー、正直何が何だかわからないです。
一番強い要因としてはやはり「Blogger」だからだとは思うのですが。
あと、一番のヒントは「Syntax error」でしょうね。
僕は「メモ帳」と言う意味で、あまり問題は無いのですが、他人が見る可能性とプログラマであることを含めて考えるとやはり解決しておくべきですし、こういう「エラー対処」も一つの勉強になり得ますので、いずれは解決しようと思います。
でも、あんまり時間をガチガチに使ってもなぁ、と思うので途中で放り投げるかも・・・。

今のところIE7以上では使用出来るので、この問題を解決するまではIE7での閲覧を推奨します。

ちなみに、IEのテストで使用しているのは「IETester」というソフトです。
My DebugBar | IETester / HomePage
ソフトの解説はまた後日。