So @Johg_Ananda is on the right track. This is actually to work around some limitations the browser enforces on opening URLs. Browsers today have some built in mechanisms to prevent undesired pop-ups, and this is our way of working around that.
To go into a bit more detail:
Most browsers today have some form “Block opening any URL that is not in response to a user action”. The heuristics between browsers vary slightly, which is why you see the difference between them.
- On Chrome/Firefox (includes Android): If a url is opened later than ~500ms after button click event, it is blocked
- On Safari (desktop and iOS, which includes “Chrome”, since all browsers on iOS are required to use WebKit underneath): If the url is not opened in direct response to the button click event, it is blocked.
So going back to Coda buttons. Ones that you’ve setup with static urls we are able to detect, so when you click the button we immediately open the URL, which will work for both heuristics above. However, buttons that have a formula have to run through our formula engine which is asynchronous. In this case, the formula is fast enough that the url can still open on most browsers, however in Safari based browsers, that delay is too long.
This dialog lets us open the URL in direct response to a button click, since at this point we have the results of the formula and can open the moment the user clicks ‘Open’ in the dialog.