angular.js without hashbang in non-html5 browsers - html

Has anyone managed to rid of hashbang urls for angular.js applications running in non-html5 browsers ?
I have an application targeting IE8/9, and I would prefer not to have hashbang urls. So, looking to use html5 polyfills(history.js etc) with angular. Is it recommended approach ?

Related

Does webcomponents.js replace modernizr.js?

Trying to integrate the HTML5 Boilerplate with Polymer Web Components and not entirely clear if webcomponents.js does what modernizr does when it injects all the polyfills for the missing functionality in older, less-functional browsers.
Thanks!
Modernizr just detects features, and gives you a true or false result. Polymer would be something you would load as a result of one of the modernizr tests. They work in tandem, not in place of one another

How do I call Webshims navigation.geolocation directly

I'm using HTML5 navigator.geolocation in my web application, with a Webshims fallback when the browser doesn't natively support it. However, I found that a number of browsers have broken implementations of HTML5 navigator.geolocation.
How can I call the Webshims geolocation directly after I find out that a browser that advertises itself as supporting navigator.geolocation, does in fact not?
I can't call this:
navigator.geolocation.getCurrentPosition
because the it hasn't been polyfill-ed, the browser thinks it can support navigator.geolocation.
I'm looking for something like webshims.geolocation.getCurrentPosition.

What is the Best Tool to Automate HTML5 Backwards Compatibility Testing in Various Browsers

I'm using Modernizr to make my HTML5 site backwards compatible. It's great, but is there a tool to run automated, headless tests which will parse my HTML for HTML5 features, then test each my code and its features in numerous browsers, and generate a report that I can use to add any polyfills I may have left off or know that I've successfully covered all of my bases using Modernizr?
unfortunately, no. Such a tool has not been made publicly available by anyone.
Even if there was, it would be extremely difficult to do properly. Some things have polyfills that shouldn't be used (see rounded corners and OldIE), or the polyfills that do exist may not be needed in some/most cases.
This is something that is best left to the developer to properly check and test during development.
My basic workflow whenever I am using a feature that I am unsure of, is
check caniuse.com, comparing the data to my own analytics to determine if I even need to detect it. if no - stop. If yes...
Add the Modernizr test for that feature. If a polyfill is needed, then...
Add yepnope test, loading one of the polyfills listed in the metadata filed of Modernizr v3 detect.
rinse, wash, repeat

Liferay theme - html5

I am developing a portlet for Liferay (v6.0.5, runs on JBoss). I would like to use HTML5 (canvas to be more specific) in this portlet. How can I find, if the theme I am currently using on the portal does support HTML5?
I know that themes with HTML5 support exist and I have to choose the right one? Or am I wrong and all themes automatically support HTML5?
Thanks for tips!
All the Liferay themes automatically support html5, its the browsers you should be worried about.
There is nothing special to make a theme HTML5 since its just a matter of doctype change (<!DOCTYPE html>) to make the browser know that you are rendering HTML5 stuff. So you can check the doctype in portal-normal.vm and other template files to see if the theme is HTML5.
But for scripting support I doubt if alloy-ui (Liferay's default library) provides any additional HTML5 specific modules for manipulating canvas, file-api etc.

Pure HTML5 videoconference

I want to make a single web application avoiding any flash code. This application must contain videoconference, and I want to implement it in pure HTML5. It is possible? I know about websockets, but don't know really if videoconference can be implemented through them with a relative performance (at least, 24fps + sound at a right resolution, minimum 640x480), and both endpoints being web apps (both endpoints should use browser).
Thanks in advance
Anyone following up this question - on Feb 4th, 2013 they produced the solution with WEBRTC in Chrome and Firefox. For examples see https://hacks.mozilla.org/2013/02/hello-chrome-its-firefox-calling/ or http://www.html5rocks.com/en/tutorials/webrtc/basics/ or https://code.google.com/p/sipservlets/wiki/HTML5WebRTCVideoApplication
You can't really use HTML5 video for live streaming at the moment, and it doesn't have support for web cams yet.
Ericsson has modyfied a WebKit browser and is showing how this can be done with hopfully upcoming HTML5 Stream API. See Beyond HTML5 - Implementing and stream management in WebKit
It is impossible to capture web-cam images/microphone feed just through JavaScript (although there are plug-ins which let you handle output through flash), so it would be necessary for you to have some kind of application/plug-in installed.
The speed part is just for the client to worry. I mean, web sockets will be as fast as the connection permits.
You should do some research about web workers, since they would be very useful for speeding up your application (you could have microphone interface, web-cam interface and UI all with their particular worker, thus never blocking the application or rendering it unresponsive).
EDIT: the aforementioned jQuery plug-in works through the use of <canvas>.
As Jonas said, according to the situations now, we can't build video conference with HTML5. There are many limitations with browsers also. As there is no common video codec supported by all browsers. And live-streaming is also properly supported by safari only(using HTML5 video tag). As per my experience we can't build live-streaming on windows with any browser properly.
But if you wanna get some information about live streaming see https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html
you can use this source to test your live-streaming examples
"http://xfunoonx.api.channel.livestream.com/3.0/playlist.m3u8"
This content will work only with safari on Mac.