mirror of
https://github.com/bendtherules/opencharts.git
synced 2026-08-19 00:33:17 +00:00
118 lines
3.0 KiB
JavaScript
118 lines
3.0 KiB
JavaScript
function load_html_css_js(fileType, fileName, contextDict, targetDiv)
|
|
{
|
|
if (fileType.toLowerCase() == "css")
|
|
{
|
|
tmp_ele = document.createElement("style");
|
|
append_to("head", tmp_ele);
|
|
}
|
|
else if (fileType.toLowerCase() == "js")
|
|
{
|
|
tmp_ele = document.createElement("script");
|
|
append_to("head", tmp_ele);
|
|
}
|
|
else if (fileType.toLowerCase() == "html")
|
|
{
|
|
if (!targetDiv)
|
|
{
|
|
tmp_body = document.getElementsByTagName("body")[0];
|
|
targetDiv = tmp_body;
|
|
|
|
console.log(document.getElementsByTagName("body")[0]);
|
|
}
|
|
tmp_ele = targetDiv;
|
|
}
|
|
else
|
|
{
|
|
//raise error
|
|
}
|
|
|
|
targetDiv = tmp_ele;
|
|
|
|
function func_success(xhr)
|
|
{
|
|
load_template(targetDiv, remove_multi_comment(xhr.responseText), contextDict);
|
|
}
|
|
do_xhr(fileName, func_success);
|
|
|
|
return tmp_ele;
|
|
}
|
|
|
|
function append_to(tagName, tmp_ele)
|
|
{
|
|
tmp_head = document.getElementsByTagName(tagName)[0];
|
|
tmp_head.appendChild(tmp_ele);
|
|
}
|
|
|
|
function load_template(targetDiv, fileText, contextDict)
|
|
{
|
|
func_template = doT.template(fileText);
|
|
targetDiv.innerHTML = func_template(contextDict);
|
|
console.log(targetDiv.innerHTML);
|
|
// think about returning func_template for efficient drawing of multiple similar graphs
|
|
}
|
|
// regexp to remove multi-line comment -> /\/\*(.*)\*\//g
|
|
// only /* or */ -> (\/\*)|(\*\/)
|
|
function remove_multi_comment(tmp_str)
|
|
{
|
|
regexp_multi_comment = /(\/\*)|(\*\/)/g; // compile and re-use it
|
|
replaced_str = tmp_str.replace(regexp_multi_comment, "");
|
|
return replaced_str;
|
|
}
|
|
|
|
function do_xhr(fileName, func_success)
|
|
{
|
|
var xhr = createXHR();
|
|
xhr.onreadystatechange = function ()
|
|
{
|
|
if (xhr.readyState == 4)
|
|
{
|
|
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304)
|
|
{
|
|
func_success(xhr);
|
|
}
|
|
else
|
|
{
|
|
alert("Request was unsuccessful: " + xhr.status);
|
|
}
|
|
}
|
|
};
|
|
xhr.open("get", fileName, true);
|
|
xhr.send(null);
|
|
}
|
|
|
|
function createXHR()
|
|
{
|
|
if (typeof XMLHttpRequest != "undefined")
|
|
{
|
|
return new XMLHttpRequest();
|
|
}
|
|
else if (typeof ActiveXObject != "undefined")
|
|
{
|
|
if (typeof arguments.callee.activeXString != "string")
|
|
{
|
|
var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"],
|
|
i, len;
|
|
|
|
for (i = 0, len = versions.length; i < len; i++)
|
|
{
|
|
try
|
|
{
|
|
new ActiveXObject(versions[i]);
|
|
arguments.callee.activeXString = versions[i];
|
|
break;
|
|
}
|
|
catch (ex)
|
|
{
|
|
//skip
|
|
}
|
|
}
|
|
}
|
|
|
|
return new ActiveXObject(arguments.callee.activeXString);
|
|
}
|
|
else
|
|
{
|
|
throw new Error("No XHR object available.");
|
|
}
|
|
}
|