Одностраниченые приложения является основным форматом работы сервиса, но не исчерпывает этим его возможности. Открытый API порождает различные сценарии использования в т.ч. реализацию альтернативных представлений. Встраиваемый компонент может служить наглядной иллюстрацией этого тезиса.
Активные состояния меняются ссылками в теле виджета, точки на графиках — переключатели контекста
var widget = new window.Enw({
type: "ege",
host: "school.elasticnode.ru",
container: "#widgetContainer"
});
widget.setConfig({
type: "gia",
host: "school.elasticnode.ru"
// container: "#widgetContainer" — наследуется
});
widget.setMode({
subject: "math",
year: "2012"
});
// or
widget.setMode("math", "2012");
widget.destroy();
widget.getNode();
<script>
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
w.myWidget = new window.Enw({
type: "ege",
host: "school.elasticnode.ru",
container: "#widgetContainer"
});
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.setAttribute("data-main", "http://st.elasticnode.ru/widget/js/app/main-cdn.js");
s.type = "text/javascript";
s.async = true;
s.src = d.location.protocol + "//cdn.jsdelivr.net/requirejs/2.1.11/require.min.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "enwCallback");
</script>
<script>
window.enwCallback = [function(){
var widget = new window.Enw({
type: "ege",
host: "school.elasticnode.ru",
container: "#widgetContainer"
});
}];
</script>
<script src="//cdn.jsdelivr.net/requirejs/2.1.11/require.min.js"
data-main="http://st.elasticnode.ru/widget/js/app/main-cdn.js">
</script>