2016-04-25 11 views
0

Verwenden Sie Robohelp, wenn es darauf ankommt. Wie bekomme ich den Pfad zur Laufzeit meiner Hilfedatei in HtmlHelp? Ich habe eine .chm, die zusammengeführt wird (aber nicht von mir, von der Hauptanwendung). Wie kann ich erreichen, dass der Slave .chm in einem eigenen Fenster geöffnet wird, wenn der Eintrag im Inhaltsverzeichnis angeklickt wird?
Das funktionierte eine „versteckte“ Datei mit etwas mit Javascript, aber funktioniert nicht nach der Zusammenführung:Wie kann ich meine .chm öffnen, um in eine andere .chm in ein neues Fenster zusammengeführt zu werden?

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

Dies ist in der „versteckten“ htm-Datei:

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

Das funktionierte aber nicht meinen CHM in einem neuen Fenster geöffnet:

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

Es funktionierte auch wenn ich einen harten codierten absoluten Pfad zur CHM mit einem Thema verwenden. Ich möchte einfach den Pfad finden, von dem die aktuelle .chm-Datei ausgeht, und a.chm (das sich in demselben Verzeichnis befindet) in einem neuen Fenster öffnen. Dies kann eine einfache .chm sein, die zusammengeführt wird und nur den Link/open der anderen .chm (die ich in einem neuen Fenster öffnen möchte) bereitstellt. Zum Beispiel wird SlaveA.chm in den Master-CHM der Haupt-App eingebunden (ich habe keinen Zugang, um diesen zu bearbeiten), aber SlaveA existiert einfach für einen TOC-Eintrag im Master, der meine SlaveB.chm in einem komplett neuen verbindet/öffnet Fenster (Slave B ist überhaupt nicht verschmolzen)

+0

Ich habe auch die Javascript-Methode mit window_opener den absoluten Pfad zu öffnen, die funktionierte. Problem ist, ich werde den Laufwerksbuchstaben usw. nicht kennen, wenn der Benutzer das alles installiert. –

Antwort

0

ich das Ende und leg meine Slave CHM-Datei am Ende mit dem folgende Javascript landete, um den Standort zu erhalten, entfernen, dann in einem neuen Fenster geöffnet:

<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

Dadurch konnte der Index und die Suche funktionieren, da es nicht möglich wäre, wenn die 3rd-Party-App meine Hilfe in ihre eigene zusammenführen würde, ohne Kontrolle von mir. –

Verwandte Themen