I recently had to fight with some odd issue with xPages and Internet
Explorer 6. Yes right IE6 !! In my brand new intranet application I use
the BASE tag in HEAD ( xpages property “pageBaseURL” ) to specifies a
default address or a default target for all links on a page.
This worked properly in all browsers like IE7, IE8, Firefox 3.x,
Safari etc. A few days ago a user called me and told me that he was not
able to open the application in his Browser. I asked for the version and
he replied IE6 !!
In this particular case, IE popups an alert saying: ” Internet Explorer cannot open the Internet site http://intranet.nsf. Operation aborted “.
I then began to investigate and after a lot of try and error I
finally found the cause and after a few hours of further investigation
and inspired by a blog post from Paul Withers I was able to implement a solution.
The problem is described in an old entry in the dojo toolkit bug tracking system .
There are also 2 solutions provided to work around this issue
- Put the BASE tag after the SCRIPT that includes dojo, or
- Revert hostenv_browser.js to rev.3024 which uses document.write for VML addition
I decided to choose the first option. But how to get the base tag
into the HEAD after the dojo stuff? Paul posted some code to put js code
into the HEAD. I tweaked it a bit and here is the result
<!-- IE6 Issue workaround START -->
<xp:headTag tagName="base">
<xp:this.attributes>
<xp:parameter name="href">
<xp:this.value>
<![CDATA[#{javascript:return applicationScope.AppBaseURL;}]]>
</xp:this.value>
</xp:parameter>
</xp:this.attributes>
</xp:headTag>
<!-- IE6 Issue workaround END -->
</xp:this.resources>
Now the BASE tag occurs after the dojo stuff and the page opens in
all browsers from IE6 on. The BaseURL is stored in a config document and
put into the applicationScope.AppBaseURL variable on application init.
APAR:
The APAR number is LO57284
Lotus Development is currently working on this issue, so far however, without any indication regarding when this may be fixed and published.