2016-04-25 16 views
0

使用Robohelp是否重要。我如何在HtmlHelp幫助文件的運行時獲取路徑?我有一個合併的.chm(但不是由我,主要應用程序)。當點擊TOC中的條目時,如何獲得slave .chm在其自己的窗口中打開?
這個工作使用帶有一些JavaScript一個「隱藏」的文件,但在合併後不工作:如何打開我的.chm以合併到另一個.chm到一個新窗口中?

<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 IS被合併到主應用程序的Master .chm中(我無權編輯此文件),但SlaveA僅存在於Master中的TOC條目中,它以全新的方式鏈接/打開我的SlaveB.chm窗口(從B不是在所有合併)

+0

我也用window_opener的javascript方法打開絕對路徑,它工作。問題是,當用戶安裝所有這些時,我不會知道驅動器號等。 –

回答

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> 
+0

這樣做可以使索引和搜索起作用,因爲當第三方應用程序將我的幫助合併到自己的幫助中時,不會受到我的控制。 –

相關問題