私は、引数要素の子ノードを表示または非表示にする(レガシー)JS関数を持っています。,タグを表示/非表示にするには、mouseover
とmouseout
イベントハンドラで使用されます。 関数は次のようになります。DOCTYPEブレークstyle.display
function displayElem(elem, value, handlerRoot){
try{
var display = 'inline';
if(!value)
display = 'none';
if(handlerRoot)
elem.style.display = display;
var childs = elem.childNodes;
for (i = 0; i < childs.length; i++){
if(childs[i].nodeType == Node.ELEMENT_NODE){
childs[i].style.display = display;
alert("Node "+childs[i].tagName+" style set to " +childs[i].style.display);
}
}
}catch(e){
alert('displayElem: ' + e);
}
}
ここ
、value
とhandlerRoot
はブールフラグです。 ターゲットHTMLページにdoctypeがない場合、この関数は完全に機能します。任意のdoctype(厳密または過渡的)を追加すると、これが中断されます。警告はスタイルが適切な値に設定されていることを示しますが、子要素は表示されません。
この関数が任意のDOCTYPEで動作する場合は、良いでしょう。
elem
の子ノード)は、この(おそらく何かがここで間違っている?)のように初期化され
:標準で文書を扱うとき、私はかしら
:
var img = new Image();
img.style.cssText =
'background: transparent url("chrome://{appname}/content/dbutton.png") right top no-repeat;' +
'position: relative;' +
'height:18px;'+
'width:18px;'+
'display:none;';
どのブラウザで問題が表示されますか? –
AFAIKプロパティ 'cssText'はIEのみです。 – RoToRa
私はcssTextを1つ1つのスタイルプロパティ設定に置き換えました。同じ結果です。このように: img.style.background = 'transparent url( "chrome:// {appname} /content/dbutton.png")右上のno-repeat'; img.style.position = '相対'; img.style.height = '18px'; img.style.width = '18px'; img.style.display = 'none'; – manuna