Это работает правильно
var s = $.tmpl(url, dataContext).get()[0].data;
Я был не прав, приведенный выше пример работает только в том случае, если возвращено что-то отличное от HTML. В случае HTML я использую
var s = $.tmpl(url, dataContext).get()[0].outerHTML
РЕДАКТИРОВАТЬ: После некоторых копаний я обнаружил различия между Chrome и FF (приведенные выше примеры работают в Chrome).
Наконец-то я нашел кросс-браузерный метод работы, давайте предположим, что нам нравится создавать теги. Таким образом, наш шаблон будет выглядеть как
<a href='${url}'>${text}</a>
Самый простой способ получить результат в виде строки - это обернуть шаблон внутри любого тега, а затем использовать функцию .html ()
var t = '<div><a href='${url}'>${text}</a></div>'
var d = {url: 'stackoverflow.com', text: 'best site'};
var html = $.tmpl(s, d).get()[0];
html = $(html).html(); // trick is here