2010年9月26日日曜日

外部ファイルの読み込みで苦労したこと2点

静的HTMLに外部ファイルを読み込むことを依頼された。
本業ではないが、自分のところのサイトでも応用できたらいいなと思っていたので、
お引き受けして研究したが、これが苦労した。

PHPが使えない環境だったので、JavaScriptで読み込もうとしたのだが、どうもうまくいかなかった。

最初に試みたのが「incl.js」。
テストサーバではIE・Firefoxともちゃんと表示されたので、アップしてIEでのみ確認しておいた。
ところがある日、Firefoxでは「読み込み中」で止まっている(IEはOK)ことが分かった。

すぐにエラーコンソールを見れば解決が早かったのだが、普段この機能を使っていないので(汗)、とっても遠回りしてしまった。

スクリプトかなぁ?というわけで、jQueryのloadにチャレンジ。
ところが今度は、ローカルでもテストサーバでもFirefoxが「読み込み中」で止まる。
タスクバーを見ると「google-analyticsに接続中」で止まっている感じ。
ググってみると「google-analyticsと衝突する」というような記述を発見。

確かにgoogle-analyticsは入れているが、使えないのか? それは困る。
HTMLから解析コード部分を消して、キャッシュをクリアしても同じ状態。

そこでようやく答えが分かった。

読み込まれる側のHTMLにもgoogleの解析コードがあったのだ。
そちらが“衝突”しているらしい。
読み込まれる側からコードを消し、読み込む側には入れてみると、OK。
(ここがポイント2)

テスト環境で確認して本番に投入。
ところがやっぱりFirefoxが「読み込み中」で止まる。
ここに至ってようやくエラーコンソールを見ることを思いつく。

エラー: geovisit is not definedソースファイル: http://???????.???/行: 0

エラー: document.getElementById(divId) is nullソースファイル: http://bc.geocities.yahoo.co.jp/js/no.js行: 32

そう、本番環境は「ジオシティーズ」だったのだ。
(テスト環境は自分のところのサーバ。)
つまり、ジオシティーズのサーバが勝手に付けるコードが原因。
最初の段階で気がつけば良かった。(ここがポイント1の答え)

結局スクリプトを「prototype.js」に変えてで両方表示できた。
(何故かローカルでは表示できなかった)

prototype.jsはlightboxでも使ってるスクリプトで、競合しそうなので、
できれば使いたくない。
何より、便利なjQueryが使えないのは痛い。

以上が本当の答えなのかどうかわからないが、
釈然としないなぁ…

2010年4月13日火曜日

Excelがダブルクリックで開けない

突然、Excelファイルがダブルクリックで開けなくなった。

Excelファイルが見つからないというようなエラーが出る。
Excelを起動してからファイル⇒開くと進めば開ける。

ツール⇒オプション⇒全般タブで、「他のアプリケーションを無視する」のチェックを外すことで解決。

2010年4月5日月曜日

XPでのRDPマルチセッション

あるアプリをインストールする都合上、
XPのSP3でリモートデスクトップを複数できるようにしてみた。

ターミナルサービスでも動くのだが、
データフォルダがインストールフォルダに固定されるので、
複数のサーバで運用している環境では、サーバが変わったとき困る。

そこで、XPのPCにインストールしてRDPで利用することにした。
ソフト個々にPCを置くわけにもいかないので、
既存のRDP用PCの一台に兼用させることにするが、
同時利用もありうるので、その対策。

こちらでできるはずなのだが、なぜかダメ。
http://gigazine.net/index.php?/news/comments/20091205_universal_termsrv_dll_patch/
「ノーマルモードで良い」とあるので、
セーフモードで試してないが、やはりセーフモードでないとダメか?
と思ったら、レジストリ設定が必要らしい。
DLした中にレジストリ設定があったが、それをやれとは書いてなかったので、何もしなかった。

結局、こちら
http://alonbilu.wordpress.com/2008/05/17/enabling-multiple-concurrent-remote-sessions-on-windows-xp-sp3-patched-file-included/
でできた。
セーフモードでtermsrv.dllを入れ替えれて、レジストリを追加。

しかし、universal_termsrv_dll_patchはやっぱり便利なので、再チャレンジ。
やはりレジストリ設定(Xp.reg)が必要だとわかったが、
今度はPCを再起動すると無効になってしまう現象に遭遇。
この事象は発生するマシンとしないマシンとがあった。
この違いは、ドメイン参加しているかいないかの違い。
ドメイン参加しているマシンでは、再起動するとレジストリ設定が元に戻ってしまう。
システム起動時にレジストリ設定を行うようスケジュールすることで解決した。

2010年2月24日水曜日

.htaccessで拡張子.htmlのままPHP実行可能にする

既存ページにPHPを組み込む際、ファイル名を変更せずに、拡張子もそのまま.htmlを使いたい。

.htaccessに
AddType application/x-httpd-php .htm .html
と1行追加する。

2010年1月28日木曜日

IE6の文字間隔

IE6と、7・8とでなんとなく文字の大きさが違うなとは、漠然と感じていた。
あるサイトでデザイン上IE8で1行に収まっているページがIE6で崩れるとの指摘。

確かに、IE6だと微妙に文字間隔が広く、スペースに収まらない。
結果的にfloatもいまくいかなくて表示が崩れる。

この問題は、font-family指定の“最初”に日本語フォントを指定すると解決する。
これまでは、英字フォントを最初に指定していたが、“MS Pゴシック”を最初に指定するようにしたら、キレイに収まった。