我用下面的函數來動態地加載的JavaScript:警報或CONSOLE.LOG不從動態工作負載的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);
}
下面是包含在動態添加文件中的功能中的一個:
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);
}
我知道JavaScript文件被正確添加並且函數被執行,因爲option
被添加到select
元素。爲什麼alert
和console.log
不能執行?如果我點擊檢查,那麼沒有錯誤消息。
編輯
這是我用來調用函數的代碼:
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);
}
我不想最初包括它,因爲我已經知道這是工作,這將是不清楚如何它認爲它正在使用動態數據。
另外,我還編輯了loadJS功能:
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);
}
這個問題似乎現在要解決。
不顯示調用'formelements_SELECT_add()'的位置 – charlietfl
函數名稱是動態生成的。我沒有包含該代碼,因爲考慮到它並不真正相關,我已經確認函數被調用。 –
如果這個函數被調用,你肯定會看到'console.log'和'alert'。如果你不是,那個函數沒有被調用。如果你看到一個選項,它不會被該功能添加。 –