Requirements: We have a form for users to submit.
On submission, form data is used for calculations and generation of reports.
On postback, a confirmation message and further options are displayed.
We want to display report in a new window/tab.
Conditions:
We do not want to use JavaScript on postback to open a new window onload as this will stop users who have JavaScript disabled.
Possible solutions:
- Open a new window on button click with a unique id (let the postback happen for code execution). The new window should request report but code waits until report is generated. On report page, show a wait message which timeouts and allows user to refresh or use page refresh in meta.
- Use JavaScript but detect if JS is enabled on postback (by setting a variable value using JS on form load), if JS is disabled show a link to the user for report else open a window using JS on page load after postback.
Questions:
- Is there any better way to do this?
- Any tips to improve above solutions?
- Which one will you prefer and why?
Make a link with
target=_blankwhich redirects to a page that generates the report and then show it.IMO users that want to access your site WILL have javascript enabled. The web without javascript is not a web, maybe it was a few years ago, but now…
If you want to test for js, you can register a script after postback: