質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1483閲覧

document.createElement で作成したElementがちょっとだけ大きいのを解決したい

ma2hiro

総合スコア159

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/09/07 05:23

お世話になっております。

document.writeが推奨されないので代替で実装したつもりだが表示されない
にて

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE> two forums </TITLE> <SCRIPT type="text/javascript"> // HTML要素を作るヘルパー関数 var createTag = function( tagname, attrs ) { var elm = document.createElement( tagname ); if ( attrs ) for ( var name in attrs ) { elm.setAttribute( name, attrs[name] ); } return elm; } window.onload = function() { var frameset = createTag("FRAMESET", { name: "rfp", // rows: "50%,50%", rows: "45%,45%", border: "1" }); var frame1 = createTag("FRAME", { name: "forum1", src: "http://192.168.5.24/aquarius/forum/forum1/wforum.pl" // CGI#1 }); var frame2 = createTag("FRAME", { name: "forum2", src: "http://192.168.5.24/aquarius/forum/forum2/wforum.pl" // CGI#2 }); // 未表示の要素にappendChild()すると、DocumentFragment / ShadowDOM 的な操作 frameset.appendChild( frame1 ); frameset.appendChild( frame2 ); // 表示中の要素(<BODY>)にappendChild()するとツリーに追加&リフローが発生 // もしかしたら、 html 要素を取得して appendChild() する必要があるかもしれません(追記 document.body.appendChild( frameset ); } </SCRIPT> </HEAD> <BODY></BODY> </HTML>


document.createElement で作って
elm.setAttribute でセットして2つのframeを表示させる方法をご教授頂けたのですが
上記実装では IE,Chromeともに表示する部分が少しだけ大きくて
スクロールバーが表示されてしまいます。

createElementやらsetAttributeやらでグーグルさんで調査したのですが
解決方法は見つかりませんでした。

どうしたらスクロールバーが表示され無いように実装出来るのか
何という語句でグーグルさんで調べれば良いかご存知な方はお教え頂けますようお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/09/07 05:24

結局非推奨のframeを使い続けなければならない理由は何でしょうか。 宣言もHTML4ですし。
ma2hiro

2020/09/07 05:28

m.ts10806さん コメントありがとうございます。 勉強不足故失礼しました。 これってhtml4なのですね…… frameは別に使い続けないので良いので iframeで実装方法を調べてみます。 コメントありがとうございました。
ma2hiro

2020/09/07 07:28

m.ts10806さん ご指摘ありがとうございます。 http://www.htmq.com/html5/doctype.shtml には ``` HTML 4.01では、DOCTYPE宣言は以下のように記述していました。(HTML 4.01 Transitionalの場合) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> HTML5では、以下のようなシンプルな記述となります。大文字と小文字は区別されません。 <!DOCTYPE html> ``` との事なので変更しました。 他にiframeを利用するにはどのように変更するのか調査中です。 以上ご連絡いたします。
m.ts10806

2020/09/07 07:30

質問するのでしたら、要件確定してからの方が良いです。 今のところHTML4でframeの質問であることには変わりないですし。 方針転換するのでしたらいったん質問取り下げ(削除依頼)して出直した方が良いでしょう。
ma2hiro

2020/09/08 05:20

m.ts10806さん コメントありがとうございます。 仰る通り情報を整理して出直した方が良いですね…… 本当に申し訳ございませんでした。
guest

回答2

0

frameは非推奨なのは何度も指摘しましたよね?

HTML

1rows: "45%,*",

投稿2020/09/07 05:30

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/09/07 05:32

かりにどうしてもframeが必要だとしても frameをjsで書き起こす必要はないと思います HTMLないに直にframesetを書いてください
ma2hiro

2020/09/07 05:49 編集

>yambejpさん 本当に申し訳無いです…… 私の理解が足りないのかと思うのですが 下記のようにiframeにするとIEでは表示されないのです…… ``` //             ↓ var frame1 = createTag("IFRAME", { name: "forum1", src: "http://192.168.5.24/aquarius/forum/forum1/wforum.pl" // CGI#1 }); ``` >HTMLないに直にframesetを書いてください ``` : </head> <BODY onLoad="getName()"> </body> </html> ``` を どのようにすると仰っているのか理解が足りないのです…… 本当に申し訳無いですが何という語句でグーグルさんで調べると理解が深まるのかお伺いいたします。 ちなみに `` rows: "45%,*", `` ではIEだと表示されませんでした……
yambejp

2020/09/07 05:52

frameでわけるとき2分割の場合片方をスタティックに指定して もう片方は「*」するということです。 すでにかいてありますがframeをjsで書くことが不要 iframeなら最初からiframeタグをbodyに埋め込んでください
ma2hiro

2020/09/07 07:59

yambejpさん 大変申し訳無いです。 その最初からiframeタグをbodyに埋め込む方法が分からないのです…… 一応下記のようかな?と思い実装してみたのですが 上手く表示されません…… なんという語句でググると良いかヒントだけでもお教え頂けないでしょうか? changeTagみたい命令が欲しいのですが見つからないのです…… ``` <!DOCTYPE html> <HTML> <HEAD> <TITLE> two forums </TITLE> <SCRIPT type="text/javascript"> window.onload = function() { //↓changeTagみたいなのがほしい…… var frame1 = createTag("FRAME", { name: "forum1", src: "http://192.168.5.24/aquarius/forum/forum1/wforum.pl" // CGI#1 }); //↓changeTagみたいなのがほしい…… var frame2 = createTag("FRAME", { name: "forum2", src: "http://192.168.5.24/aquarius/forum/forum2/wforum.pl" // CGI#2 }); // 未表示の要素にappendChild()すると、DocumentFragment / ShadowDOM 的な操作 // frameset.appendChild( frame1 ); // frameset.appendChild( frame2 ); // 表示中の要素(<BODY>)にappendChild()するとツリーに追加&リフローが発生 // もしかしたら、 html 要素を取得して appendChild() する必要があるかもしれません(追記 // document.body.appendChild( frameset ); } </SCRIPT> </HEAD> <BODY> <iframe name="forum1"></frame> <iframe name="forum2"></frame> </BODY> </HTML> ```
ma2hiro

2020/09/07 08:15

yambejpさん それだと表示領域が小さいのでだめなのです…… 画面いっぱいに大きく取りたいのでどうするのか分からなくて色々質問して申し訳無いです……
yambejp

2020/09/07 08:26

iframeにwidth="45%"をそれぞれ記載すればよいのでは? 50%を指定すると余白のカラミで二行にわかれちゃいそうですね
ma2hiro

2020/09/07 08:42

yambejpさん 度々ありがとうございます。 縦に2つ並べたいと思っております。 ``` <!DOCTYPE html> <HTML> <HEAD> <TITLE> two forums </TITLE> <SCRIPT type="text/javascript"> </SCRIPT> </HEAD> <BODY> <iframe name="forum1" width="100%" height="100%" src="http://192.168.5.24/aquarius/forum/forum1/wforum.pl"></iframe> <iframe name="forum2" width="100%" height="100%" src="http://192.168.5.24/aquarius/forum/forum2/wforum.pl"></iframe> </BODY> </HTML> ``` と実装するとページの上部に(固定幅?)こじんまりと表示されるのですが 2つでいっぱいに表示したいのですがどのような語句でグーグルさんで調べれば良いのか ご助力頂けないでしょうか? 本当に申し訳無いのですが上記お問い合わせいたします。
yambejp

2020/09/07 08:55

高さは好きなサイズ大きめに書いてみては?
ma2hiro

2020/09/08 01:42

yambejpさん コメントありがとうございます。 ``` <iframe name="forum2" width="100%" height="100%" src="http://192.168.5.24/forum.pl"></iframe> ```                     ↑をheight="100px" とすればその大きさで固定出来るのですがユーザーがウィンドウの高さを変更するので自由に変更出来る%で指定したいのです…… ググって出てきた http://www.tohoho-web.com/html/iframe.htm には ``` height=n LS/H5/H4T/e3/Ch/Fx/Sa/Op/N6 フレームの高さをピクセルまたはパーセンテージで指定します。 ``` とあるのにどうして height="50%" が効かないのか悩んでます……
guest

0

自己解決

本当は削除依頼をした方が良いのは重々承知なのですが
Teratail事務局のお手を煩わせるのが申し訳無いので削除しませんが(やり方が分からない)

質問しなおした次
https://teratail.com/questions/290399
で解決したので 解決とさせて頂きます。

コメント下さった皆様
初心者ゆえ要点がまとまりない質問にコメント頂きありがとうございます。

投稿2020/09/08 07:14

ma2hiro

総合スコア159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問