I want to convert a webpage html5/js page to a desktop application. Something they can use on their desktop without a live internet connection. (I do not want to recode my html5 or js.)
If the end user has Internet Explorer installed, I can easily port this to an hta file. However, what if they are using Vista or above and have uninstalled Internet Explorer (as you are permitted to do)? What if their main browser is Firefox or Chrome?
I was searching around for Firefox, and it seemed Prism was an alternative to hta files, but if you go to Mozilla's Prism page it says it is a technology that is no longer being pursued.
So I have several questions:
Actually HTAs are not run by Internet Explorer. They are run by mshta.exe, which is installed in Windows/System32 (Windows7). However, HTAs use IE's rendering engine, and can't be run without IE. Also they are available for Windows users only.
HTML5 support can be added by using <meta http-equiv="x-ua-compatible" content="ie=9">
. By my own experience also <!DOCTYPE html>
is needed.
More info in MSDN: Introduction to HTAs
In SO: HTA's; use other browser to host?
I'd say that .hta applications are way out of date since they don't support modern design standards. you can still use them or use another HTML Compilers like the one by David Esperalta, it's good enough for very simple apps, but they all depend on IE and we all know how limited and slow it is.
both mentioned options are based on Chromium (same as Chrome), Node.js and V8. they support HTML5, CSS3 and latest JavaScript engine including latest ECMAScript features and beyond!
and since they use node.js you can use any of its built-in libraries (like FileSystem) or any of npm packages right in your DOM!
The npm registry hosts over a quarter million packages of reusable code — the largest code registry in the world.
both options are FREE and open sourced but electron supports ffmpeg codecs without downloading or building them.
your app will be 100% standalone and you can build same app for Windows, macOS and Linux.
electron can also provide simple solutions to automatically compile and use CoffeeScript, Babel, LESS, SASS and more.
• You'll always have to ship the whole thing with you application since there's no run-time solution and you'll end up with a relatively big package.
• startup time is less than ideal for some applications
• although there is some methods to make it harder but your code will be available for anyone with an idea of what they are doing.
electron and nwjs are just as viable as ever but if you're looking for a more lightweight UI I'd also recommend Sciter.JS it made big leaps in recent updates and it does not ship a whole browser with your application, the developer seems committed to follow up-to-date HTML/CSS/JS Standards with some nice additions. it comes with good collections of samples to get you started. and prebuilt binaries for major OS editions. one thing to note is that it uses QuickJS instead of Node.js if that matters to you.
I've been following its development closely and I recommend trying it.
1.Is the hta file still a modern technology for Internet Explorer which is still going to work in IE9, IE10?
Most likely yes. The underlying technology is based on embedding the IE browser control as an activex object. Even if mshta was no longer distributed with windows a replica could still be created using c# and the browser control.
2.Will hta files, with no security issues or local access issues, automatically fire up Firefox/Chrome if IE is not installed on Windows (or other operating systems)?
Nope, although the .hta extension can be associated with those browsers, the mshta directives are not supported by either - the result is that the browser prompts you to save the document as an external file like an exe or zip file would.
3.Can I add some of html5's local storage stuff to my hta file and will it still work on IE, FF and Chrome?
Yes you can add html5 support, but again it will only work on IE.
4.If these things will not work on FF or Chrome, do they have any alternatives which are modern and are not deprecated techs?
Adobe produced a competing product called Adobe AIR - http://www.adobe.com/products/air.html. This product offers a limited intersection of features available in hta's. Local file access is restricted to a specific path, and generally access to the parent operating system is very restricted. However they do operate across all major platforms, including mobile devices, so they are probably the technology you are looking for. AIR uses webkit for the embedded browser engine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With