70 строки
2.3 KiB
JavaScript
70 строки
2.3 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
var { AppConstants } = ChromeUtils.import(
|
|
"resource://gre/modules/AppConstants.jsm"
|
|
);
|
|
|
|
// Set the default content pack to the Mozilla content pack. Use the
|
|
// setHelpFileURI function to set this value.
|
|
var helpFileURI;
|
|
|
|
// openHelp - Opens up the Mozilla Help Viewer with the specified
|
|
// topic and content pack.
|
|
// see http://www.mozilla.org/projects/help-viewer/content_packs.html
|
|
function openHelp(topic, contentPack)
|
|
{
|
|
// helpFileURI is the content pack to use in this function. If contentPack is defined,
|
|
// use that and set the helpFileURI to that value so that it will be the default.
|
|
helpFileURI = contentPack || helpFileURI;
|
|
|
|
// Try to find previously opened help.
|
|
var topWindow = locateHelpWindow(helpFileURI);
|
|
|
|
if ( topWindow ) {
|
|
// Open topic in existing window.
|
|
topWindow.focus();
|
|
topWindow.displayTopic(topic);
|
|
} else {
|
|
// Open topic in new window.
|
|
const params = Cc["@mozilla.org/embedcomp/dialogparam;1"]
|
|
.createInstance(Ci.nsIDialogParamBlock);
|
|
params.SetNumberStrings(2);
|
|
params.SetString(0, helpFileURI);
|
|
params.SetString(1, topic);
|
|
|
|
let openFeatures = "chrome,all,dialog=no";
|
|
|
|
if (AppConstants.platform == "win") {
|
|
openFeatures += ",alwaysRaised";
|
|
}
|
|
Services.ww.openWindow(null, "chrome://help/content/help.xul", "_blank",
|
|
openFeatures, params);
|
|
}
|
|
}
|
|
|
|
// setHelpFileURI - Sets the default content pack to use in the Help Viewer
|
|
function setHelpFileURI(rdfURI)
|
|
{
|
|
helpFileURI = rdfURI;
|
|
}
|
|
|
|
// Locate existing help window for this content pack.
|
|
function locateHelpWindow(contentPack) {
|
|
const iterator = Services.wm.getEnumerator("suite:help");
|
|
var topWindow = null;
|
|
var aWindow;
|
|
|
|
// Loop through help windows looking for one with selected content
|
|
// pack.
|
|
while (iterator.hasMoreElements()) {
|
|
aWindow = iterator.getNext();
|
|
if (!aWindow.closed && aWindow.getHelpFileURI() == contentPack) {
|
|
topWindow = aWindow;
|
|
}
|
|
}
|
|
return topWindow;
|
|
}
|