This topic is locked
[SOLVED]

 Problem with phprunner app in Joomla iframe wrapper

12/10/2012 4:50:28 PM
PHPRunner General questions
G
giles author

I have a phpruner 6.0 app using pop-up boxes for adding/editing that works properly if the app url is called directly. But the pop-ups will not respond to the Save button if the app is started in an Joomla 2.5 wrapper iframe using Internet Explorer 9.
The app is not in any way changed from a standard phprunner app - no other integration with Joomla (e.g. not using Joomla login).
The problem does not occur with Firefox or other browsers.
Any tips?

G
giles author 12/10/2012

Did a bit more testing and have found the following...

  1. IE9 in a Joomla 2.5 wrapper throws a Joomla javascript error if height of the wrapper is set automatically. If the height of the wrapper is fixed then no problem. So that's not a phprunner issues.
    But...
  2. Attempting to Save throws the following error:

    DOM Exception: INVALID_CHARACTER_ERR (5) RunnerAll.js, line 1083 character 52.
    The line in question is this.ioEl=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');
    Again, any ideas?

Sergey Kornilov admin 12/11/2012

It's hard to tell if this is Internet Explorer issue or Joomla issue or something else in between.
I would suggest to try another browser just in case. Another option is to try the latest version of PHPRunner.

G
giles author 12/11/2012

Hi Sergey,

It's definitely an IE issue but only when it runs inside the Joomla wrapper. Works fine with IE outside the Joomla wrapper and works fine inside the wrapper with other browsers.
In this case I don't have the option of changing browsers as we can't tell the customers what to use. IE users are still a significant part of our market.
I'll try the later version of 'runner...
UPDATE:

Hi Sergey,

The issue is with the creation of the iframe element when phprunner detects an IE browser. Apparently IE9 more strictly follows standards

Changing the way Allrunner.js creates the iframe element from the way I highlighted above to do it as 1. createElement, 2. Then set id and name attribute works. As shown below in bold.

if(Runner.isIE)

{

this.ioEl=document.createElement('iframe');

this.ioEl.id=frameId;this.ioEl.name=frameId;


if(Runner.isSecure)

{

this.ioEl.src='javascript:false';

}

}

else

{

this.ioEl=document.createElement('iframe');this.ioEl.id=frameId;this.ioEl.name=frameId;

}
I don't know why this only causes a problem inside Joomla wrapper module.
Also, hasn't been tested with earlier versions of IE yet...

Sergey Kornilov admin 12/14/2012

Really hard to tell if this is Joomla, IE or PHPRunner issue.
If you need more help contact support directly at http://support.xlinesoft.com sending your application URL. We'll see what we can do.

H
herb200mph 1/11/2013

Just a little input here re: Joomla.
If I recall, the "auto" height/width in the Joomla iFrame only works if the iFrame content is in the same domain location as Joomla, re: a sub-directory.
The Joomla iFrame is a terrible feature in that it really doesn't work as people expect it to.
And, don't think Joomla 3 has changed it any.