UPDATE: I recommend you to use the official qlranks.com script now, wn has added this type of in-game announcing into his script. Also his script supports CA and TDM Elo:
http://userscripts.org/scripts/show/111519


During my attempt to make a QL-TV I have found the way to make in-game Elo announcing without an additional software, just using the userscript. Truly cross-platform and so on.

So here is modified wn's script:
http://userscripts.org/scripts/show/123012

If you're already using qlranks userscript from http://userscripts.org/scripts/show/111519/ , uninstall it before using this script.
Install this script as usual, then add the following commands to your QuakeLive config:

seta elo_print "vstr elo_print0"
seta elo_print2 "seta cl_qlr_announce say; set elo_print vstr elo_print0; print ^7in-game elo announce: ^2say"
seta elo_print1 "seta cl_qlr_announce say_team; set elo_print vstr elo_print2; print ^7in-game elo announce: ^2say_team"
seta elo_print0 "seta cl_qlr_announce print ; set elo_print vstr elo_print1; print ^7in-game elo announce: ^2print"
bind o "vstr elo_print"
bind p "seta cl_qlr_request 0; seta cl_qlr_request 1"

Change in-game binds however you want, defaults, as you see, are the key O to change type of announcing (print, say_team, say), and the key P to display Elo information.

Tested in Chrome on Windows and Mac, Firefox and QLPrism.

Credits go to wn, szr and syncore. I've just added the in-game announcing feature.

There was one problem with the script, the print command was reassigned to cvar (weird ql bug), so the print did not work after the second try to use this script. Update the script and change binds - we need to do seta cl_qlr_announce print ; instead of seta cl_qlr_announce print;. Somehow the space matters.