Trial version - Webhelp ToC in Chrome

Please post all questions and comments regarding Help & Manual 7 here.

Moderators: Alexander Halser, Tim Green

Post Reply
Daniel Leigh
Posts: 1
Joined: Mon Aug 06, 2018 2:28 pm

Trial version - Webhelp ToC in Chrome

Unread post by Daniel Leigh »

Hello,

I downloaded the trial version today and have published my first Webhelp site. Works OK in Firefox and IE11 but in Chrome I notice that the "folders" in the ToC do not expand or collapse. The ToC opens fully expanded in Chrome. In the Chrome browser console I see errors when clicking next to a folder in the ToC:

Code: Select all

hmcontent.htm:49 Uncaught ReferenceError: hmNodeClicked is not defined
    at clicked (hmcontent.htm:49)
    at HTMLLIElement.onclick (hmcontent.htm:62)

helpman_topicinit.js:19 Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.
    at HMSyncTOC (file:///C:/Users/daniel.leigh/Documents/HelpAndManual%20Projects/Examples/My%20Webhelp/html/helpman_topicinit.js:19:17)
    at file:///C:/Users/daniel.leigh/Documents/HelpAndManual%20Projects/Examples/My%20Webhelp/html/documenttype.htm:60:6
Any ideas?
User avatar
Tim Green
Site Admin
Posts: 23156
Joined: Mon Jun 24, 2002 9:11 am
Location: Bruehl, Germany
Contact:

Re: Trial version - Webhelp ToC in Chrome

Unread post by Tim Green »

This is happening because you are testing your WebHelp locally without a web server. Once it is online it will work fine in Chrome, and you can also test locally in Chrome if Chrome is your default browser, so that the WebHelp opens in Chrome automatically after being generated by Help+Manual. Alternatively, you can let it open in your default browser and then copy the URL from the Address: field of that browser and then paste that into Chrome. Then it will work, because that uses the address of the mini web server that Help+Manual uses to open WebHelp automatically.

Actually, you will also find that Internet Explorer is affected as well: Users who open WebHelp locally without a web server with IE will have to click away an annoying yellow safety warning bar that cannot be disabled. This all has nothing to do with Help+Manual -- it is the same for all complex web pages opened locally.

Webhelp opened from a web server or on the Internet or an intranet is not affected. So if you are just testing locally and deploying on a server you will not have any problems with Chrome.

In Help+Manual we have implemented an integrated mini web server that is started automatically to display WebHelp when you display it automatically after publishing. This will then display in your default browser in the mini server and if that browser is Chrome it will work fine directly. If it is another browsers, you can then also test it in Chrome because the mini server will still be running. You just need to copy the 127.0.0.1... URL from the Address: bar of the default browser to the Address: bar in Chrome or any other browser to test there as well.

If you must open the help locally and without a web server in Chrome It is possible to work around it in a number of ways:

1: Use the new EWriter format supported by Help+Manual 7 instead. EWriter gives you all the benefits of WebHelp in a single file with its own integrated server and viewer. See here for details:

https://www.helpandmanual.com/help/inde ... writer.htm

2: Use the new V3 Responsive skins from the Premium Pack 3 add-on. These use new technologies that allow local use without a web server at all in all browsers. See here for details:

https://www.helpandmanual.com/products_hm_pluspack.html

3: Start Chrome with the --allow-file-access-from-files switch in the command line.
This will work but it's not really something you can ask users to do.

4: Use a local web server and integrate it in your help system. There are a number of free mini web servers available with which this is possible, and they also make it possible to display Webhelp locally in Internet Explorer without a security warning.

Help+Manual's own mini web server is called HM2Go, and you can also integrate it in your WebHelp to be able to deliver it locally without a fully configured server environment. It is a single file less than 2MB in size. You can include this server with your own products and documentation free of charge and it even works on optical media like CDs and DVDs. Look up HM2Go in the Help & Manual help index for full details.
Regards,
Tim (EC Software Documentation & User Support)

Private support:
Please do not email or PM me with private support requests -- post to the forum directly.
Simon_Dismore
Posts: 205
Joined: Thu Jul 13, 2017 2:57 pm

Re: Trial version - Webhelp ToC in Chrome

Unread post by Simon_Dismore »

Tim Green wrote:2: Use the new V3 Responsive skins from the Premium Pack 3 add-on. These use new technologies that allow local use without a web server at all in all browsers. See here for details: https://www.helpandmanual.com/products_hm_pluspack.html
Hi Tim, that page says "Local WebHelp – deploy WebHelp locally without a web browser, even for Google Chrome and Internet Explorer". Should that read "server"?

It's a neat feature IMO, what's the secret?
User avatar
Tim Green
Site Admin
Posts: 23156
Joined: Mon Jun 24, 2002 9:11 am
Location: Bruehl, Germany
Contact:

Re: Trial version - Webhelp ToC in Chrome

Unread post by Tim Green »

Simon_Dismore wrote:Hi Tim, that page says "Local WebHelp – deploy WebHelp locally without a web browser, even for Google Chrome and Internet Explorer". Should that read "server"?

Yes, of course. Damn, I'll fix that right away. Thanks,. :oops:
It's a neat feature IMO, what's the secret?
I wrote a framework called xMessage that uses postmessage messages to communicate between the main page and the iFrames containing the TOC, keyword index and search (and between the frames). It uses plain text telegrams that are interpreted by instances of the framework in each page. This both gets around the same origin restrictions on local iFrames and radically accelerates internal communication: Normally, any access between pages and frames in the browser has to go via the server, but postmessage is browser-internal and effectively instant. At the same time, however, it's also asynchronous, so you have to poll when you are doing things like passing and receiving variables or performing operations that depend on timing of any kind. 8)
Regards,
Tim (EC Software Documentation & User Support)

Private support:
Please do not email or PM me with private support requests -- post to the forum directly.
Post Reply