Browser Issues

What's covered?

This article describes a number of issues that arise when running RoboHelp produced webhelp in browsers other than Internet Explorer.

It is now for the benefit of users of RoboHelp up to Version 6 only.

With the exception of bullet alignment, all the issues listed here are fixed if you have Adobe RoboHelp 7 with patch 7.0.2 applied. There is a solution for the bullet alignment problem as well.

 

See Snippets and the pages on specific versions of RoboHelp for more recent information on browser related issues.

Background

This article started life in 2006 when the current version of RoboHelp was X5. Since then, new versions have been launched and the browsers have also had new versions released. With the assistance of Harvey Kabaker, the article was updated for RoboHelp 7 and I am pleased to add that the 7.0.2 patch has now fixed many of the issues. The code in RoboHelp 8 is very different and I have yet to test these issues using that version. If you test any, I would appreciate being advised of the results.

Demo

When the article was first written, I put two RoboHelp X5 webhelp outputs on my site to demonstrate the problems that were being seen. The first is as produced by RoboHelp, the second contains any modifications described in this topic. Please note that most issues no longer occur with the latest versions so please see the information under "The Issues".

The demos can still be viewed and may help if you are using Adobe RoboHelp 6 or earlier.

Unmodified output

Modified output

The Issues

Issue

What is known

1] Auto-sizing popups don't auto-size in Firefox

Fixed in 7.0.2

Anne Riley (AuthorAnne) advises

"The only solution I've found so far is to make them custom sized, which is a bit of a pain if you then add extra text to the popup - you have to change the dimensions."

2] Bullet alignment

Note the vastly different indent although the style sheet is the same.

I found that this only occurs if you specify a left margin for your OL or UL tags. RoboHelp 8 only creates one CSS in the output, the _ns.css is a thing of the past. This gave me a problem in a project as the old fix could no longer be used so I poked around and have finally found not only the solution but also the cause!

It seems that Firefox has default padding of 40px in its own CSS so if your CSS does not have a padding definition to override that but does have a margin setting, the two get added together giving the wider indent you see in Firefox. What you need to do is set the margins you want for the OL and UL tags in your CSS and then add this line:

padding: 0px;

That's it!

I haven't tested this in older versions of RoboHelp so in case anyone needs them the older solutions can be found by clicking this link.

Originally this problem was resolved by editing the extra stylesheet that RoboHelp creates for Gecko based browsers. It will be called yourstylesheetname_ns.css. (The same as your project stylesheet but with the addition of _ns.)

The stylesheet in this project is standard.css and the definition for OL and UL tags includes

margin-left:0.25in;

After generating the help, I opened the standard_ns.css and changed that to

margin-left:-0.15in;

Note the negative value. That fixed the problem but Charles Creegan emailed me with an alternative solution. Charles made use of the way that different browsers read the stylesheet and set a definition for LI for Internet Explorer and HTML>BODY LI for Firefox, pointing out that RoboHelp carries both definitions through to both generated CSS files, so no post generation editing. Thus his stylesheet looks like this:
LI {
margin-left:0.30px;
}
/* For Firefox*/
HTML>BODY LI {
margin-left:0px;
}

After some experimenation, I found that setting the two tags to the same margin worked consistently so I used the following definitions:
LI {
margin-left:0.30px;
}
/* For Firefox*/
HTML>BODY LI {
margin-left:30px;
}

Set the indent as you want and define it in other measurements such as inches if you prefer. The only downside of this method is the minimum indent. The left margin cannot be expressed as a negative value using this method so the standard indent in Firefox is the minimum and you cannot get that to abut the left margin. If that is what you want, you need to use the original method and edit the _ns file post generation.

Charles' method will apply to all lists, ordered (numbered) and unordered (bulleted) but the idea set me thinking. If you want different indents for ordered and unordered lists, define what you want for the OL and UL tags and then create HTML>BODY OL and HTML>BODY UL definitions instead. That way you can have different indents for ordered and unordered lists. With these tags though the definition for Firefox needs to be about 0.4in less than that for Internet Explorer and again you cannot have negative values.

UL {
margin-left:0.4in;
}

HTML>BODY UL {
margin-left:0.00in;
}

Play around a bit to get the style you want.

3] Help fails to complete loading

Fixed in 7.0.2

Linux Rules posted this solution:

Please go to your generated files and open whskin_info.htm in a plain text editor (such as Notepad). Scroll down to the bottom you will see this:

<table>
</body>
</html>

The table <table> has NOT been closed...close it:

</table>
</body>
</html>

SAVE the file and launch your generated project in Firefox.


That didn't work for me and Linux Rules has since indicated it may have been one of a number of changes. Here's the previous solution which does work for me. It was provided by David W but note it only works if your output is on a Windows server. In the output you need to find the file whnjs.htm. In it replace the string

if (window.gsTopic)
frames["bsscright"].document.location = window.gsTopic;

with

if (location.hash.length > 1)
frames["bsscright"].document.location = location.hash.substring(1);


Of course whnjs.htm gets overwritten every time you rebuild the help, so you need to save a copy of the edited file, and overwrite the output version with the edited one whenever you regenerate the help.

It is also important that you implement the solution to the TOC resizing problem at the same time. Seems there is a link.

This solution does not quite work on a Unix box. If you click the modified project link above, it will most times still fail to complete loading. If it does load, click Refresh and then it will probably fail to load. Now click Topic Two and it will finish loading. Click Topic One and that will load.

I tried putting a blank topic in as the default topic and having a redirect to the real default topic in the hope it would have the same effect as the clicking described above. Click here to see a demo of that idea. The first time it did complete loading on a Unix box but now it is intermittent. Let's hope something better can be discovered!

Andrea Fine posted a simple solution that works regardless of platform provided you can educate the users. Just hit the Esc key!

Otherwise, as Harvey Kabaker has pointed out, the problem only arises when you use a skin so you could generate the help without using one.

4] Improve the speed of loading WebHelp in Firefox and Netscape (No discernable effect on IE)

Not an issue with Adobe RH7 output viewed in Firefox 2.0.0.12

Harvey Kabakers suggests:

Open whstart.js in a text editor.

Locate near the beginning

if (gbNav6)
{
var gnReload=0;
setTimeout("delayReload();",5000);
}

Amend the value from 5000 to 2000.

5] TOC does not display or continually refreshes

Fixed in 7.0.2

I believe this may be limited to Safari which is an Apple Mac browser. No solution has been found.
6] Improve the pace of loading the left pane after displaying the launch topic in Firefox and Netscape, and perhaps IE

Not an issue with Adobe RH7 output viewed in Firefox 2.0.0.12

Harvey Kabaker suggests:

Open the startpage as defined in the first page of the wizard and locate the following HTML.

<title>eFinancials Version 3.4 Help Version 1.3</title>
<meta name="generator" content="Adobe RoboHelp - www.adobe.com">
<meta name="description" content="WebHelp 5.50">
</head>
<script type="text/javascript" language="javascript" src="whver.js"></script>

Remove the </head> tag from that location.

Locate the following HTML near the end of the file.

</script>
<frameset cols="100%,*" frameborder=no border=0>
<frame src="whnjs.htm">
<frame src="whskin_blank.htm" noresize>
</frameset>

Add the tags shown in red

</script></head>
<frameset cols="100%,*" frameborder=no border=0>
<frame src="whnjs.htm">
<frame src="whskin_blank.htm" noresize>
</frameset>
<body></body>

7] TOC resizing problem

Fixed in 7.0.2

Resizing the TOC causes the contents of the toolbar to also appear in the minibar.

When you open the help you can resize the TOC and it does not cause any problems. See how the width has been increased in the screenshot below.

 

However, if the help has failed to complete loading which it usually does, then if you select another topic and resize, as soon as you release the mouse, the contents of the toolbar appear in the minibar. Only a refresh will get rid of this. Also once this problem occurs, you can no longer select anything from the TOC.

Note that above, I made the point " if the help has failed to complete loading". So obviously the best solution is to get the help to complete loading so try [3] above first.

If that does not work for you, then here is the rest of the original part of this section.


Fortunately after a lot of poking around, Harvey Kabaker found a fix, albeit with one wrinkle in IE that was not unacceptable. More recently Debbie Korn emailed me to say her developer had come up with a different solution, which I believe avoids the IE problem. It has only been tested with output from Adobe RoboHelp 7 so both methods are shown. For simplicity, I have added Debbie's method alongside so that you can try both and use whichever works for you. I would appreciate feedback if anyone tries Debbie's method with an older version of RoboHelp.

 

Here's what Harvey emailed to me.

I have found a solution to this TOC problem in Firefox:

1. Launch WebHelp
2. Select a different topic.
3. Resize the TOC pane.
4. The Minibar is violated and TOC seems to freeze

Resizing the TOC pane does not always result in trouble. But steps 1, 2, 3 above seem guaranteed to do it.

It appears that a reload routine is trying to stuff everything into the Minibar after step 3 above. It puts in the main toolbar and can't figure out what to do with the rest, so it loops in the reload until you quit Firefox.

Harvey's Method

Debbie's Method

The offending code is
document.location.reload

In whtbar.js, just under
function tryReload()



comment out the line document.location.reload as below

// document.location.reload();

Do not comment out
document.location.reload

Instead amend the tryReload function
function tryReload()

Change the line
if (gnRE==1)
to
if (gnRE==1 && !gbNav6)

 


In my environment, this worked. It did not interfere with IE 6, Opera or Netscape 7.1. I didn't need to change it anywhere else.

The document.location.reload line appears in many other places. Depending on the options you selected when generating WebHelp, the problem may show up again, I think.

These are the JavaScript files:
ehelpdtm.js
whfhost.js
whform.js
whghost.js
whihost.js
whphost.js
whtbar.js
whthost.js
whtopic.js

The line also appears in most of the whskin_***.htm files in myproject.htm, and in all of the topic files.

I didn't have to change any of these. A lot of it appears to deal with Netscape 4.x.
Disclaimer:
As always,
Back up everything and proceed cautiously.
I can't guarantee this will work for everyone.
I can't be certain whether this will or will not interfere with something else.
This probably won't solve every TOC problem that may arise in Firefox or other browsers.
.... at your own risk, etc.

In setting up this topic, the only issue I found is that using Harvey's original method, the amended line of code does cause one issue if the help is then viewed in IE. Normally if you resize the TOC pane in IE, the X will adjust to the right, after making this modification it stays where it was. My own view is that is far less of an issue than the duplicated toolbar. I understand that this issue does not arise using Debbie's method but that has only been tried in Adobe RoboHelp 7.

8] Wrong topic displayed

Anne Riley (AuthorAnne) advises

"Selecting a topic from a hyperlink or from the index or search results can display the wrong topic. If the real target topic is in a book that has a link to a topic, you get the topic linked to the book rather than the selected topic."

Anne's solution is simple even though it may not be what you want. Don't link books to topics!

Update

This problem was reported as having been fixed in 7.0.2. It seems though that if the topic is opened from a URL rather than the index or a search, then the problem persists.

What happens is that you create a call to a topic that is below one of the books. Instead of that topic being displayed, the topic linked to the book is displayed. Here is a quick example.

If your default browser is Firefox, click the link below, otherwise paste it is the Firefox address bar, it works as expected. The topic opens and is synchronised.
http://www.grainge.org/test/cshcall/startpage.htm#csh.htm

Now do the same with this link. It should open New Topic but instead it too opens the CSH topic. Expand the book and you will New Topic does exist.

http://www.grainge.org/test/cshcall/startpage.htm#New_Topic.htm

For a long time there has not been a fix but I am pleased to say that Adam Ots has come to the rescue. Just one proviso, the code was edited using RoboHelp 2002 so the file may have changed. I am publishing this without testing it or looking inside a later version of RoboHelp for now.

Here's what Adam sent me.

****************************************

I have just spent the last bit of time going through the RoboHelp code (I needed this to work!) and the good news is I have isolated the problem and designed a work-around.

I can't claim with *absolute* certainty that this does not break compatibility in any specific scenario or with any specific browser, but I have no reason to believe that it would. I am mainly interested in targeting IE and Firefox (and Chrome, though there's *unrelated* TOC issues there!) and from my testing it appears to work fine with these browsers. I haven't yet tried earlier versions of IE, though again I have no reason to doubt it would work fine.

My fix is as follows:

FIRST

In the whthost.js file, at the end of the variable declarations at the top of the file add:

var gExpandSuppress = true;

function endExpandSuppression()
{
    gExpandSuppress = false;
}

setTimeout('endExpandSuppression()', 5000);


SECOND

At the very top of function checkBookItem(nIdx), add the following line:

if(gbNav6 && gExpandSuppress) return;

This will basically block the loading of the parent book topic during expansion -- but only if the browser is Firefox (Navigator-heritage) and only for 5 seconds.

In essence, I believe that the only downside of this hack (though my testing has been fairly limited) is under the scenario whereby a user is using Firefox AND decides to click on a new book (which contains a linked topic) within the first 5 seconds after loading the webhelp system.

If these conditions are met, then the linked topic for the book will not be displayed (though the book will still be highlighted in the navigation frame and receive the focus, etc) -- certainly nothing critical and also unlikely to happen much of the time. And better than the alternative!

None of this will affect IE behaviour (which already works fine) because it is filtered out from any of the above behaviour modifications.

****************************************

Thanks to Adam of http://www.otslabs.com for providing this fix.

I suggest you start by modifying the file in your output first. Once you are happy it is working as you want, then you could change the source file in Program Files. Create a backup of that first though.

This has been reported to Adobe but, as always, the more people who report it, the more likely it is to get fixed.

9] X on the minibar fails to appear

This was fixed in Adobe RH6

Here's a screenshot of the help opened in Internet Explorer. Note the X that allows you to close the Table of Contents.

Here's a screenshot of the help opened in Firefox. Note the absence of an X to allow you to close the Table of Contents. This problem does only arise where the webhelp is hosted on a Unix based server.

Thanks again to Harvey Kabaker for a solution.

In whtbar.js, find the line

else if(sType=="hide2"&&(!gbNav4)&&(!gbOpera))

and change it to

else if(sType=="hide2")

This does indeed cause the X to appear. It does not move when resized but clearly that is less of an issue.

This one is reported as fixed in RoboHelp 6.

10] Improve loading the toolbar and navigation bar

Not an issue with Adobe RH7 output viewed in Firefox 2.0.0.12

Harvey Kabakers suggests:

Locate the following HTML near the start of the whskin_tbars.htm and whskinmbars.htm files:

<meta name="generator" content="Adobe RoboHelp - www.adobe.com">
<meta name="description" content="WebHelp 5.50">
</head>
<style>
<!--
body {margin:0;}
-->
</style>
<script language="javascript" src="whver.js"></script>
<script language="javascript1.2" src="whutils.js"></script>
<script language="javascript1.2" src="whmsg.js"></script>
<script language="javascript1.2" src="whproxy.js"></script>
<script language="javascript1.2" src="whmozemu.js"></script>
<script language="javascript1.2" src="whtbar.js"></script>
<body marginheight="0" marginwidth="0" bgcolor="#99ccff" scroll="no">

Move the </head> tag as shown below:

<meta name="generator" content="Adobe RoboHelp - www.adobe.com">
<meta name="description" content="WebHelp 5.50">
<style>
<!--
body {margin:0;}
-->
</style>
<script language="javascript" src="whver.js"></script>
<script language="javascript1.2" src="whutils.js"></script>
<script language="javascript1.2" src="whmsg.js"></script>
<script language="javascript1.2" src="whproxy.js"></script>
<script language="javascript1.2" src="whmozemu.js"></script>
<script language="javascript1.2" src="whtbar.js"></script>
</head>
<body marginheight="0" marginwidth="0" bgcolor="#99ccff" scroll="no">

You need to check whether or not RoboHelp has overwritten these changes whenever you generate.

11] TOC Books do not open in Firefox

Fixed in 7.0.1

Alan Davidson reported this problem after upgrading to RoboHelp 7.

"In Mozilla and IE, the output is fine. When the help opens, the book containing my default topic is open in the TOC and all the other books open and close when I click them. But in the Firefox, all the TOC books are closed when the help first opens. None of the books will open until I click the book containing my default topic. After I open that book, the others open as they should."


Kath33 responded with:

You need to modify the following file: whthost.js, line 272, enter « gsTP=null; » just after « sHTML+=" ». Therefore: sHTML+="markBook("+nIdx+") needs to be changed to: sHTML+="gsTP=null;markBook("+nIdx+").

Alan confirmed that worked but got overwritten every time you generate.


Rick Stone suggested:

You may modify the source in the following location. (Assuming a default install)

C:\Program Files\Adobe\Adobe RoboHelp 7\RoboHTML\WebHelp5Ext\template_stock

After that, the tweak should be present in any build.


I would just like to add the simpler solution is of course not to have the default topic in a book but just shown above all the books. It is likely to be a topic such as Welcome or Introduction and the reader's focus will be more on the topic. They will only look at the books when they want to delve deeper.

This has been fixed in Adobe RH7 with the first update applied (Build 7.01.001). You need to generate the help again before the update works.

12] TOC does not display using Firefox 3

A number of people have reported this and it was reported to occur if the Firebug add-on was installed. IHeartHelp on the RoboHelp forum identified that this only occurs on Windows XP, not on Vista.

The only solution known is to unintall the add-on.

Donations

If you find the information and tutorials on my site save you time figuring it out for yourself and help improve what you produce, please consider making a small donation.

Topic Revisions

Date

Changes to this page

14 Jan 2014 What's Covered revised as page is now only relevant to old versions of RoboHelp.
28 Oct 2009

"When calling a CSH topic within a book, the topic opened is the topic linked to the parent book" removed. Was a duplicate of 8.

Item 8 revised to include Adam Ots solution.

07 Mar 2009 Background updated to indicate nothing tested in RH8.
28 Oct 2008 Item 8 updated. Was shown as having been fixed in 7.0.2 but is now being found to be broken.
14 Aug 2008 Firebug issue added.
29 May 2008 Topic revised to reflect the changes in Adobe RH7.0.2.
24 May 2008 Aligning lists updated.
27 Feb 2008 Topic revised to reflect the changes in Adobe RH7.0.1.
17 Feb 2008 Fix for TOC Books not opening added.
02 Dec 2007 TOC Books do not open in Firefox added.
22 Jun 2007

With thanks to Harvey Kabaker, the following solutions have been added:

  • Improve loading the toolbar and navigation bar
  • Improve the pace of loading the left pane after displaying the launch topic in Firefox and Netscape, and perhaps IE
  • Improve the speed of loading WebHelp in Firefox and Netscape (No discernable effect on IE)
12 Mar 2006

"Help is slow to complete loading..." amended. Use of Escape key added.

Opera section amended to cover need to use a skin.

25 Feb 2006

"Help is slow to complete loading..." amended. Problem does occur on Windows servers.

Section added re Opera 8.52.

22 Feb 2006

Amended TOC Resizing problem. Instead of changing document.location.reload to document.reload, comment out the line.

Solution to "Help is slow to complete loading or it fails to complete loading" posted.

Solution to missing X in Firefox added.

20 Feb 2006 Topic revised with several new issues added.

18 Feb 2006

New topic.