Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IE8 caused error: "Porthole: Could not find window proxy object on the target window" while FF works fine #7

Closed
leszekgruchala opened this issue Feb 8, 2012 · 14 comments

Comments

@leszekgruchala
Copy link

Hi,
I know the demo is working fine on IE7/8, but I am completely unable to make it working with IE8 on my application.
It works fine on Chrome, FF and IE9, but not on IE8.

My parent and iframe uses SSL.

This is what I get on IE9 with IE8 compatibility mode:

LOG: Porthole: Using legacy browser support 
Porthole: Could not find window proxy object on the target window 

but it still works well on IE9 and other normal browsers with the same code.

Unfortunately I know JS just a bit, but I google and found an idea to wrap postMessage call in setTimeout:

var func = function () {
        windowProxy.postMessage('sid=B099000003&msisdn=48791464671');
};
window.setTimeout(func, 0);

But it doesn't help. Another strange this is that for pure IE8 I even don't get any LOG message from Porthole on console.

Do you have any idea what might cause the problem? Or anything I could do to help you find it?
Thanks.

@ternarylabs
Copy link
Collaborator

Doubled checked and SSL does not seem to cause any problems. There was an issue with the console.log creating problem with IE8 if the developer tool was not open. An updated version of Porthole will be posted later today that should fix this.

@DirtyDeeds
Copy link

This page http://sandbox.ternarylabs.com/porthole/ does not work in ie8 or ie7. As though I didn't hate these browsers and MS enough.

@dennisbaum
Copy link

sad to say, but my own tests and the demo above doesn't work in IE8:

The Demo still outputs the following:
PROTOKOLL: Porthole: Using legacy browser support
Porthole: Could not find window proxy object on the target window

@tolar
Copy link

tolar commented Apr 8, 2013

I have the same experiance - both my application does not work and the http://sandbox.ternarylabs.com/porthole/ does not work in IE8.
Is there any solution/workaround withing porthole?

@DirtyDeeds
Copy link

I wish my clients would realize less than 5% of the public now uses IE8 and no one should code for it anymore.

@mikepuerto
Copy link

Has anyone found solution to this?

@DirtyDeeds
Copy link

IE 8 is a dead monster, I can't see anyone spending the time on it anymore, even Microsoft won't support it anymore.

@baileyjames9
Copy link

Is there any chance this can be made backward compatible for IE8? I have the same issue and our clients are big companies that are not keen to migrating very fast.

@DirtyDeeds
Copy link

http://www.w3schools.com/browsers/browsers_explorer.asp - think is says it all, IE8 is almost in the 2% usage range now. The only work around I ever found is you load an iframe with a form at your local domain. Then when that form loads you put data in hidden fields, then submit it to the 2nd domain that is different. This works but will have a popup warning everytime in most browsers but then works. It's ugly and clients don't like it. Just went through this with clients and had to make it clear if they want cross domain communication in browsers then it will not work in IE8, ever. Send your client this link and it is one of many, IE8 is by far the least secure browser any company can use at this point, even MS won't stand behind it anymore. http://www.computerweekly.com/news/2240183579/Microsoft-issues-security-advisory-on-IE8-zero-day-exploit

@zmonteca
Copy link
Contributor

zmonteca commented Mar 7, 2014

@baileyjames9 You're welcome to try our fork (https://github.com/zmonteca/porthole/commits/master). We made some very minor and subtle changes that were never pulled into the main project for whatever reason. These updates work for us, however.

We used this a few years ago to make the embed for our product function on more browsers. You can see a working example here, if you like: https://www.fleapay.com/support/general/payment-buttons

@DirtyDeeds
Copy link

Thanks for the head up. At this point I'm passing, some other 3rd party
things we use also have issues in IE8 and this is an odd part of being a
web programmer. At some point you have abandon old browsers, my company
makes it clear at this point we don't support browsers that are 3
versions old nor IE8. It's cost us so much money over the years, IE in
general, can't ever follow the rules. I think that is why IE use of all
IE versions is down to 10% now from like 80% 10 years ago. They suck.
Time permits I'll take a look but all of our clients have come to
realize IE8 is dead, but thanks again for the invite and sharing porthole.

Ken

On 3/7/2014 10:50 AM, zmonteca wrote:

@baileyjames9 https://github.com/baileyjames9 You're welcome to try
our fork (https://github.com/zmonteca/porthole/commits/master). We
made some very minor and subtle changes that were never pulled into
the main project for whatever reason. These updates work for us, however.

We used this a few years ago to make the embed for our product
function on more browsers. You can see a working example here, if you
like: https://www.fleapay.com/support/general/payment-buttons


Reply to this email directly or view it on GitHub
#7 (comment).

@baileyjames9
Copy link

@zmonteca Thanks for the fork and response. Works great on IE8.

I do wish as developers we were always in a position to dictate to clients using our software what browser to use, but alas, some of us are not. There are big money contracts involved and large corporations are slow to migrate in certain industries.

@jrodri2001
Copy link

I had this problem today when having IE9 running in IE8 mode. same for IE9 running in IE8 mode. What worked for me was to comment out line 463 of porthole.js:

if (w[i] !== null &&
    typeof w[i] === 'object' &&
    //w[i] instanceof w.Porthole.WindowProxy &&
    w[i].getTargetWindowName() === sourceWindowName) {
    return w[i];
}

for some reason w.Porthole.WindowProxy is not the an instance of w[i] when forcing IE8 mode, although it does work on IE8 directly.

Hope it helps someone.

@georges
Copy link
Member

georges commented Jan 28, 2015

Native IE8 browser seemed to work fine. There was a problem with newer IE browser running in IE8 compatibility mode. I've merge many changes contributed over the last year to address this kind of problems. Master is up to date now. Did a quick sanity check on IE8-IE11 and demo code works fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants