2012-04-28 3 views
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); 
} 

答えて

1

、ドキュメントへelement引数値のidを持つ要素を追加することはありません。それが原因です。

+0

あなたはそれが動作するようにフィドルコードでそれを変更していただけますか? –

+0

追加する必要がある場所と作成する場所を知っていれば(コード内にこの要素を作成していないように見えます) –

+0

要素は、htmlコードのonclickイベントによって作成されます –