その場合でもdocument.body.nodeNameでbodyタグかどうか判定してhtml直下にdivを設置すれば表示されるけどな。 ap = document.createElement("div");ap.style.position="fixed";ap.style.top="100px";ap.style.left="100px";ap.style.width="100px";ap.style.height="100px";ap.style.background="red";document.body.parentElement.append(ap);
SNSで言われてるが (スコア:0)
失われたはずの古の機能、frameタグのためとか
#HTML5で廃止されただけ
ああ・・ (スコア:1)
なるほど。フレームがあると拡張機能作るのめんどくさいです。
それで作るの放棄したことあり。
Re: (スコア:0)
どうめんどくさいのか気になります。
Re:ああ・・ (スコア:2)
子フレームだと読み込み完了というイベントが届かないので、DOMを書き換えるタイミングがない。
親フレームでイベントを拾って子フレームにSENDするとかなんかそういう理屈は分かるがうまくいかなかった。
Re:ああ・・ (スコア:2, 興味深い)
document.bodyがbody要素ではなくframeset要素になっていて、その下にDOMノード(この場合猫の画像)を追加しても表示されないという問題がある。自分の場合はdocument.bodyをdocument.documentElement(これは必ずhtml要素)に変えて対応した。フレーム以外のページでもJavaScriptからはhtml要素の直下(つまりbody要素の外)にDOMノードを追加できて、しかもちゃんと表示されるようなので、場合分けは不要だった
Re: (スコア:0)
その場合でもdocument.body.nodeNameでbodyタグかどうか判定してhtml直下にdivを設置すれば表示されるけどな。
ap = document.createElement("div");ap.style.position="fixed";ap.style.top="100px";ap.style.left="100px";ap.style.width="100px";ap.style.height="100px";ap.style.background="red";document.body.parentElement.append(ap);
Re: (スコア:0)
だから後半でhtml要素直下に変えて対応したって言ってるし実は場合分け不要だったって言ってるじゃん。最後まで読んでないの?