DITA WebHelp Issues in Internet Explorer 8

Having trouble installing Oxygen? Got a bug to report? Post it all here.
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Greetings.

I'm having 2 issues with DITA WebHelp output.

Oxygen Author v 13.0.
Internet Explorer 8. (This is not an issue in other browsers, but we are a Microsoft partner, so we must support IE.)


Issue 1: Script Running Slowly

When I open the WebHelp, I receive a message:

"Stop running this script?
A script on this page is causing your web browser to run slowly..."

I click "No" several times to complete the page load, and it works fine.

According to the following Microsoft KB, this can be one cause of this issue:

http://support.microsoft.com/kb/175500

I added the suggested registry entry. The error went away, but the script still runs slowly.

This is at least a workaround, but I would prefer not to have to ask our users to create a Registry entry to view our documentation, and the performance is slow. Is there any other solution -- e.g., a script patch?


Issue 2: 404 Error on "With Frames"

Our customer support team has a requirement to send URLs to specific WebHelp topics to our customers. So, we have to find the URLs without the page frames in view.

However, if the user then clicks the "With Frames" link to view the Contents/Search pane, the Contents/Search pane opens, but the content pane displays a 404 error.


Any help would be appreciated.

Thank you,
Michael
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi Michael,

You found the right answer for your first problem. The JavaScript engine in IE has a limitation on the number of method calls allowed for Javascript invocations.

We are using the JQuery engine and this problem indeed occurs when the DITA Map has a very large number of topic references. Could you tell me in your case how many topics are referenced in the DITA Map?

We made some improvements in the past for this by using an older JQuery library in our WebHelp implementation but we are still working on a final solution which would remove the problem completely.
I'll update this post when this happens.

About this second issue:
Issue 2: 404 Error on "With Frames"
Is the WebHelp used by the client on a local machine or is it delivered via a Web server?
We recently made a small fix for this for a client running Webhelp locally on a Mac.
On what operating system was the issue encountered?

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

Re: DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Could you tell me in your case how many topics are referenced in the DITA Map?
Between 1500 and 2000.
a final solution which would remove the problem completely.
Thank you. That will be required before we can fully commit to migrating to Oxygen Author. Our product leads confirmed that we can't ask all of our users to create Registry entries on their machines just to use our documentation. :(
Is the WebHelp used by the client on a local machine or is it delivered via a Web server?
On what operating system was the issue encountered?
The WebHelp is served from an IIS web server. The issue was found in IE 8 on Windows 7.

Again, this appears to only be an issue in IE over the Internet. It works fine on my local machine in IE, or in Chrome or Safari locally or over the Internet on Windows or Mac.

However, we have a strict requirement to fully support IE.

Cheers.
Michael
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi Michael,

We reproduced the problem with IIS and the With Frames link.
In the Javascript file:
OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/webhelp/resources/assets/frames_redirect.js

there is a condition like:

Code: Select all

//With Frames
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) && currentUrl.search("/") == '0'){
currentUrl = currentUrl.substr(1);
}
which seems to be causing this problem. Removing the condition should fix the problem when delivering content from IIS to an IE 8 or 9 browser. We'll see on our side how we can improve the condition.

I'll also let you know when the problem with timeouts is solved in the WebHelp TOC.

Regarding the migration to Author, will everybody in the team be required to generate WebHelp output? Because this publishing part can still be done with the old tool until the issues are resolved by us and the editing part can be done using Author.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

Re: DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Hi Radu.

Code: Select all

//With Frames
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) && currentUrl.search("/") == '0'){
currentUrl = currentUrl.substr(1);
}
I commented this out, and it seems to be working in IE 8 and IE 9 over the Internet. We would definitely welcome an official code fix, but in the meantime, this seems to be working.

It seems like this code was created to account for some exception case in IE, so I'm wondering if there's another issue we haven't encountered yet.
I'll also let you know when the problem with timeouts is solved in the WebHelp TOC.
We would definitely appreciate that. We've done some more testing, and cannot figure out what's causing the error. The script runs with no error on some machines, but we get the error on other machines. We've eliminated:

a) IE browser version. No error on one machine, but error on another, using exact same version of IE.
b) 64 bit vs. 32 bit - Results are the same (error or no error) on the same machine using either 32-bit or 64-bit versions of IE.
c) Memory on the machine - Same results (error or no error) can happen on a machine with 4GB or 6GB RAM.
d) Registry Entry - If a particular machine gets the error, the MaxScriptStatements registry entry fixes it. However, machines that do not receive the error to begin with do not have this MaxScriptStatements registry entry.
Regarding the migration to Author, will everybody in the team be required to generate WebHelp output? Because this publishing part can still be done with the old tool until the issues are resolved by us and the editing part can be done using Author.
Thanks for the suggestion. This might be better to discuss outside the forum -- maybe email?

Best regards,
Michael
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi Michael

Here are some more answers:
It seems like this code was created to account for some exception case in IE, so I'm wondering if there's another issue we haven't encountered yet.
The code was in place in order for the "With Frames" to work when using the WebHelp from a local hard drive installation with IE.

In order to fix the problem both for local and remote WebHelp distribution our Web developer suggested this fix (which will make it in Oxygen 13.1, in a couple of weeks):

Code: Select all

function redirectFrames(currentUrl){
if (parent.window.location.pathname != window.location.pathname){
//No Frames
parent.window.location = "http://" + location.hostname + currentUrl;
} else {
//With Frames
if(/MSIE (\d+\.\d+);/.test(navigator.userAgent) && location.hostname == '' && currentUrl.search("/") == '0'){
currentUrl = currentUrl.substr(1);
}
window.location = prefix + "?q=" + currentUrl;
}
}
We would definitely appreciate that. We've done some more testing, and cannot figure out what's causing the error. The script runs with no error on some machines, but we get the error on other machines. We've eliminated:...
IE should show these timeout messages when the number of method calls of a JavaScript code reaches a certain peak. For example we are using the JQuery library to parse the TOC content and depending on how large the TOC is the message should be consistently displayed.
Our user manual has about 1200 topics and does not show the warning so your project is probably on the edge right now. Quoting from the same link you posted previously:
Because of this mechanism, it is possible to execute more than the default limit without the dialog if the entire script execution finishes before the script engine polls Internet Explorer.
We are working to replace JQuery with another similar library and I'll let you know how things work out.
This might be better to discuss outside the forum -- maybe email?
Our support email address is support@oxygenxml.com

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi,

In Oxygen 13.2 (in about a month or so) you will no longer have the problem with IE showing the warning message when the WebHelp TOC is loaded.
If you want to test it, you can contact us using the support email address and we'll try to prepare a beta kit for you.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by adrian »

Hello,

I just wanted to let you know that the Issue 2: 404 Error on "With Frames" problem has been resolved in the latest version of Oxygen, v13.1.

You can download it from our web site:
http://www.oxygenxml.com/download.html

Please let us know if you encounter further problems with this version.

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

Re: DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Thanks for the update, Adrian, and getting this fix into the release.

If I upgrade to 13.1, can I still use my 13.0 template files for PDF and WebHelp output?

Cheers,
Michael
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi,

Each version of Oxygen comes with a bundled DITA OT.
You can install 13.1 side by side with 13.0 and migrate your changes made to be DITA OT from 13.0 to the 13.1 bundled DITA OT.

Or you can wait a couple of weeks for 13.2 which will also fix the problem with the large TOC giving timeout warnings in the IE JavaScript engine.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

Re: DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Oh,thanks very much, Radu. We are very happy you all are fixing the TOC script error. We'll wait for that fix.

I searched the site, but I didn't see a centralized repository for Release Notes. Is there a Release Notes document that explains fixes to the output templates? I don't see this 404 fix here: http://www.oxygenxml.com/whatisnew13.1.html

Best regards,
Michael
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi Michael,

We currently show only features in the list of changes for each version.
We fix hundreds of issues on each release and we do not yet have a way to present all of them in an HTML report (and in an user friendly way), but we'll try to provide this in the future. Despite of this we usually notify via email (or forum) users who have requested the changes.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
Radu
Posts: 9434
Joined: Fri Jul 09, 2004 5:18 pm

Re: DITA WebHelp Issues in Internet Explorer 8

Post by Radu »

Hi,

WebHelp output generated with Oxygen 13.2 which was just released will handle large TOCs better and you should no longer see warnings when the TOC is loaded in the browser.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
MichaelDa
Posts: 29
Joined: Fri Oct 14, 2011 3:41 am

Re: DITA WebHelp Issues in Internet Explorer 8

Post by MichaelDa »

Our testing confirms that these 2 issues appear to be fixed in 13.2.

Thanks,
Michael
Post Reply