*.chmの呼び出し

windows.showHelpの引き数の書き方による差異。
「../../../Help/Book/invcpp5.chm」では表示されない(相対パス指定)。
Programming Visual C++ 5th : 書き方(A)


「D:/Help/Book/invcpp5.chm」では表示できる(絶対パス指定)。
Programming Visual C++ 5th : 書き方(A)



次のような呼び出し方ではページの head 部に「base target=""」の指定がある場合には動作しないので注意する。
Programming Visual C++ 5th : 書き方(A)による。

しかし、次のようなボタンから呼び出す方法は「base target」の指定があっても動作する。
すなわち、「input type="button"」または「button」にすれば「base target」の指定があっても実行できる。



問題点(1)

フレーム分割でない単独のページ(*.html)から上のようにshowHelpを使う方法で*.chmを起動させた場合、その*.chmを終了させた後に*.htmlを見ると、そのページの文字がひと回り小さくなるという現象が起こる。下記の画像を参照。

また、*.chm内で表示される文字も小さくなって見えるという欠点もある。これは別に単独ファイルとして実行した場合は元に戻るから後遺症的な問題は生じない。しかし、いずれにしても、この点からみると、showHelpで呼び出さずに、単独のファイルとして見る方がよいことになる。


これは上の方法で起動させた*.chm内の文字が極端に小さくなるという現象と関連があるようである(tpc_0174参照)。


問題点(2)

「a href=」リンクを使っていなくても、ロボットは「それ」らしい文字列があれば取得する。
参考
66.249.74.15 - - [13/May/2013:10:57:17 +0900] "GET #marine#php_manual_ja$chm HTTP/1.1" 401 482 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)"
66.249.74.15 - - [13/May/2013:10:57:33 +0900] "GET #mermaid#invcpp5$chm HTTP/1.1" 401 482 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)"
66.249.74.15 - - [13/May/2013:10:57:54 +0900] "GET #marine#pgadmin3$chm HTTP/1.1" 401 482 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)"
66.249.74.15 - - [13/May/2013:10:58:53 +0900] "GET #mermaid#progmfc2$chm HTTP/1.1" 401 482 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)"
この場合は、「a href=" "」の中にURLらしき文字列がある。ロボットはそれを取得しているようである。
メモ
こういうURLの取得については数あるロボットの中でもGoogleのロボットは断然群を抜いている。他のロボットが取得しない(できない)URLまで探し出して取得している。


問題点(3)

呼び出すファイル名の書き方は、「../../mermaid/invcpp5.chm」という書き方では実行できるが(ただし、上で書いたように今は実行できない/2021/10/19)、「..\..\mermaid\invcpp5.chm」という書き方では実行できない。

同様に「C:/Users/Editor/Documents/Excel_Macro/VBAXL10.CHM」は実行できるが、「C:\Users\Editor\Documents\Excel_Macro\VBAXL10.CHM」では実行できない。


書き方の統一

なお、この種のJavaScriptの書き方には下記の2種類のものがある。

書き方(A)
×<a href="javascript:window.showHelp('D:/Help/Book/invcpp5.chm')">Programming Visual C++ 5th</a>
この書き方はかなり以前に使っていたものである(たぶんWindows95時代)。
しかし、今はこの部分は次のような書き方にしたほうがいいだろう。

書き方(B)
○<a href="javascript:void(0)" onclick="window.showHelp('D:/Help/Book/invcpp5.chm')">Programming Visual C++ 5th</a>
これからは(B)の方法に統一した方がよいだろう。
ちなみに、(A)のような書き方は今ではしていない。すべて(B)のような形になっている(はずである)。

書き方(B)による実行例である。
実行例
Programming Visual C++ 5th
vba2.chm

- 2014/08/05 -



今では次のようなもの、プログラミングもどきのことをしている者、は絶滅危惧種であろう。
LOG
182.164.245.149 [22/Feb/2019:14:57:45] tpc_0220 chmファイル 実行方法 c++
「c++」という漠然とした書き方はいかにもドシロウト丸出しである。実際はC++などはやっていないはずである。





Windows8.1と*.chmの文字サイズ(tpc_0174)
IEでの*.chmファイルの呼び出し方(tpc_0329)


HtmlHelpの使い方(win_0249)
HtmlHelpの呼び出し方とファイルの指定(win_0250)
HtmlHelpでの[F1]キーヘルプ(win_0251)
HtmlHelpファイル単位での状況依存のヘルプ(win_0252)
HtmlHelp関数の一般的な使い方(win_0253)
HtmlHelp関数の高度な使い方(win_0254)
HtmlHelpの*.chmの作成(win_0257)
HtmlHelpの*.chmの作成の注意点(win_0259)
連結ヘルプの作成(win_0258)
連結ヘルプ作成の注意点(win_0260)