0

重要な場合は Robohelp を使用します。HtmlHelp でヘルプ ファイルの実行時のパスを取得するにはどうすればよいですか? マージされた.chmがあります(ただし、メインアプリケーションによってではありません)。TOC のエントリがクリックされたときにスレーブ .chm を独自のウィンドウで開くにはどうすればよいですか?
これは、いくつかの JavaScript を含む「隠し」ファイルを使用して機能しましたが、マージ後は機能しません。

<a href="Hidden.htm">Click For SlaveB.chm through hidden</a> 

これは「隠し」htm ファイルにあります。

<object
      classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"
      id="window_opener"  type="application/x-oleobject">
      <param  name="Command"  value="Shortcut" />
      <param  name="Font"  value="Microsoft Sans Serif,8,0,," />
      <param  name="Item1"  value=",hh.exe,./SlaveB.chm::/MyTopic.htm"/>
    </object>

    <!--Metadata type="DesignerControl" endspan-->
     <script type="text/javascript">window_opener.hhclick();
    history.back();</script> 

これは機能しましたが、新しいウィンドウで .chm を開きません:

<p><a href="SlaveB.chm::/MyTopic.htm">Click For MyTopic.htm in same window</a></p>

トピックで .chm へのハードコードされた絶対パスを使用する場合にも機能しました。現在の .chm が動作しているパスを見つけて、(同じディレクトリにある) a.chm を新しいウィンドウで開きたいだけです。これは、他の .chm (新しいウィンドウで開きたいもの) のリンク/オープンのみを提供する、マージされる単純な .chm にすることができます。たとえば、SlaveA.chm はメイン アプリの Master .chm にマージされます (これを編集するアクセス権がありません) が、SlaveA は単に、私の SlaveB.chm を完全に新しいウィンドウ (スレーブ B はまったくマージされません)

4

1 に答える 1

0

次のJavaScriptを使用して場所を取得し、最後を削除してスレーブ.chmファイルを最後に配置し、新しいウィンドウで開きました。

<button onclick="showExternalHelp()">Show Help</button> 

<script type="text/javascript">function showExternalHelp()
{
var location = window.location.pathname;
var splitter = "\\";
var lastIndex = location.lastIndexOf(splitter);

location = location.substring(0, lastIndex);
location = location + "\\External.chm";

window.showHelp(location);

}</script>
于 2016-04-26T17:37:15.177 に答える