*Another approaches can fall into the Popup Blocker issue if they are asynchronous.
As Aaron said, it's a known issue on Chrome for iOS:
I could not get window.top.open() to work with Chrome for iOS. Chrome for iOS ignores this command.
You can easily workaround it using window.top.open() inside the iframe, but if you have cross-domain limitations or need to handle the window.opener correctly within the iframe, you'll need another approach*.