私の推測では(html を表示していないため)、IE が無視している空白 (おそらく改行) があるが、どの FF がテキスト ノードとして返されているかということです。もしそうなら、あなたは次のようなものでそれをスキップできるはずです:
function PopupTest() {
var hdnButton = document.getElementById('div_btn').firstChild;
while (hdnButton.nodeType === 3)
hdnButton = hdnButton.nextSibling;
hdnButton.click();
}
... プロパティを使用して、がテキスト ノード (テキスト ノードを意味します。詳細についてはMDN.nodeType
を参照してください) であるかどうかをテストすることによって機能します。存在する場合は、次の兄弟を取得してその をテストし、テキスト ノードではない要素が見つかるまで繰り返します。(もちろん、これはあることを前提としています。).firstChild
3
.nodeType
または、(非テキスト ノード) 最初の子がどのタグであるべきかがわかっている場合は、それに基づいて選択できます。たとえば、実際に<button>
要素である場合は、次のようになります。
hdnButton = document.getElementById('div_btn').getElementsByTagName("button")[0];
hdnButton.click();
または、IE<=7 をサポートする必要がない場合:
document.querySelector("#div_btn > :first-child").click();