ich die folgende Funktion verwenden dynamisch JavaScript laden:Alarm oder console.log nicht von dynamisch arbeit geladen JavaScript
function loadJS(file, c)
{
var jsEl = document.createElement("script");
jsEl.type = "application/javascript";
jsEl.src = file;
jsEl.async = false;
document.body.appendChild(jsEl);
if (c) { jsEl.addEventListener('load', function (e) { c(null, e); }, false); }
document.getElementsByTagName("head")[0].appendChild(jsEl);
}
Unten finden Sie eine der Funktionen innerhalb einer dynamisch hinzugefügt Datei enthalten:
function formelements_SELECT_add(x)
{
console.log("add");
alert("add");
var id = x[1];
var value = x[2];
var index = x[3];
var select = document.getElementById(id);
var option;
option = document.createElement("option");
option.text = value;
select.add(option, index);
}
Ich weiß, dass die JavaScript-Datei korrekt hinzugefügt wird und die Funktion ausgeführt wird, da ein option
zum select
Element hinzugefügt wird. Warum werden die alert
und console.log
nicht ausgeführt? Wenn ich auf inspizieren klicke, dann gibt es keine Fehlermeldungen.
EDIT
Dies ist der Code verwende ich die Funktion aufzurufen:
var typeAndElement = x[0][0] + "_" + x[0][1];
start = i + 1;
if (!window[typeAndElement])
{
loadJS("https://websemantica.org/scripts/" + x[0][0] + "/" + x[0][1] + ".js", continueManipulatingElements(typeAndElement, actions, x, start, total));
return;
}
else
{
fn = window[typeAndElement + "_" + x[0][2]];
if (typeof fn === 'function')
fn(x);
}
Ich wollte es nicht ursprünglich enthalten, weil ich es schon wusste arbeitete, und es wird nicht klar, wie Es funktioniert, wenn man bedenkt, dass dynamische Daten verwendet werden.
Auch habe ich die loadJS Funktion bearbeitet:
function loadJS(file, c)
{
var jsEl = document.createElement("script");
jsEl.type = "text/javascript";
jsEl.src = file;
jsEl.async = false;
if (c) { jsEl.addEventListener('load', function (e) { c(null, e); }, false); }
document.getElementsByTagName("head")[0].appendChild(jsEl);
}
Das Problem scheint nun gelöst werden.
wird nicht angezeigt wo 'formelements_SELECT_add()' aufgerufen wird – charlietfl
Der Funktionsname wird dynamisch generiert. Ich habe diesen Code nicht aufgenommen, weil es nicht wirklich relevant ist, wenn man bedenkt, dass die Funktion bereits aufgerufen wurde. –
Wenn diese Funktion aufgerufen würde, würden Sie definitiv "console.log" und "alert" sehen. Wenn nicht, wird diese Funktion nicht aufgerufen. Wenn Sie eine Option sehen, wird sie von dieser Funktion nicht hinzugefügt. –