0
htmlファイルのonclickイベントによってトリガーされるダイアログボックスを作成できる次のjavascriptコードがあります。 しかし、私はいつもエラーUncaught TypeError: Cannot read property 'style' of null
を取得します。ところで、TypeErrorはreopenprogram(element)関数に関係しています!!!私はすでに要素が本当にnullであるかどうかをチェックしていますが、それを警告すると、通常の要素名が表示されます。私はコードが少し荒く見えるが、私は任意の提案のために無料です知っている。ここではjsfiddle code.です。私はjavascriptにはかなり新しいので、完全にコードを調整することができれば本当にうれしいでしょう。Reopenprogram関数が型エラーを返します。 "nullのプロパティ 'style'を読み取れません。
私を助けてください!あなたのフィドルで
function executeprogram(element) {
var program = document.createElement("div");
var toolbar = document.createElement("div");
var title = document.createElement("div");
var minimize = document.createElement("div");
var close = document.createElement("div");
var iframe = document.createElement("iframe");
var container = document.getElementById("container");
// Create program Div //
program.id = element;
program.className = "dialog";
program.width = iframe.width;
add(element);
program.setAttribute("onmousedown", "dragstart(this)");
container.appendChild(program);
// Toolbar //
toolbar.id = "toolbar";
toolbar.width = iframe.width;
program.appendChild(toolbar);
// Title //
title.id = "title";
title.innerHTML = element;
toolbar.appendChild(title);
// Minimize //
minimize.id = "minimize";
minimize.innerHTML = "-";
minimize.onclick = minimizeprogram(element);
toolbar.appendChild(minimize);
// Close //
close.id = "close";
close.innerHTML = "x";
close.onclick = closeprogram(element);
toolbar.appendChild(close);
// Create Iframe //
iframe.frameBorder = 1;
iframe.width = "500px";
iframe.height = "250px";
iframe.id = "iframe";
iframe.src = "#";
program.appendChild(iframe);
}
// Minimize program //
function minimizeprogram(element) {
document.getElementById(element).style.display = "hidden";
}
function reopenprogram(element) {
document.getElementById(element).style.visibility = "visible";
}
// Close program //
function closeprogram(element) {
var container = document.getElementById("container");
var app = document.getElementById(element);
container.removeChild(app);
remove(element);
}
// Tabs //
function add(element) {
var tabs = document.createElement("li");
tabs.id = ""+element+"tab";
alert(element);
tabs.onclick = reopenprogram(element);
var add = document.getElementById("tabs");
add.appendChild(tabs);
}
function remove(element) {
var add = document.getElementById("tabs");
var app = document.getElementById(element+"tab");
add.removeChild(app);
}
あなたはそれが動作するようにフィドルコードでそれを変更していただけますか? –
追加する必要がある場所と作成する場所を知っていれば(コード内にこの要素を作成していないように見えます) –
要素は、htmlコードのonclickイベントによって作成されます –