JavaScriptを外部呼び出し(内部に記述でもいいのですが)で使用したいのですが、

その外部JavaScriptの中のdocument.writeの中に、
htmlを記述することは出来るのでしょうか?
用は、htmlの中に

document.open();
document.write(’<src=”****.html”>’);
document.close();

こんな感じで、htmlファイルの内部にhtmlファイルをさらに呼び出したいのです。
正しい記述方法を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答9件)

id:harakachi No.1

回答回数18ベストアンサー獲得回数0

ポイント15pt

こちらのHPのソースに、たぶんやりたいことが書かれています。

InnerHTMLを使用していますね。

タグも使えるようです。

<script language=”JavaScript”><!--

function getElm(obj)

{

if (document.getElementById) return document.getElementById(obj);

else if (document.all) return document.all(obj);

}

function getTextFile(textData)

{

getElm(”content”).innerHTML=textData.replace(/¥&lt¥;/g,”<”).replace(/¥&gt¥;/g,”>”);

}

//--></script>

id:ageharock

うーん、ちょっと違うように思えます。

そのhtmlの内容を直接表示したいのですが…?

2004/08/09 17:53:38
id:kazuya0x01 No.2

回答回数31ベストアンサー獲得回数0

ポイント35pt

document.write(

’<???>’+

’<???>’+

’<???>’

);

こんな感じで。

呼び出すところは

<script language=”JavaScript” src=”ファイル名”></script>

参考URLで使ってます。

id:ageharock

やりたいことは確かにそれに近いのですが、外部にhtmlを記述するのではなく、htmlファイル自体を呼び出したいのです。

2004/08/09 18:00:23
id:lowcarbo No.3

回答回数25ベストアンサー獲得回数0

ポイント5pt

結論からいうと、できます。

たとえば以下のページのJavaScriptなどでも、write()メソッドで書き出すようになっています。

id:ageharock

呼び出したいのは、イメージではなく、html文書(というか、ファイル)そのものもです。

記述するのでもなく、ファイル自体を呼び出すことは可能でしょうか?

2004/08/09 18:01:56
id:fk_2000 No.4

回答回数249ベストアンサー獲得回数1

ポイント10pt

以下のように記述します。

<PRE>

<%

Set objFile = Server.CreateObject(”Scripting.FileSystemObject”)

sFilename = Server.MapPath(”read_text.txt”) ’<--- 表示するファイル名を指定

Set InStream = objFile.OpenTextFile(sFilename, 1, False)

buf = InStream.ReadAll ’<--- ReadAll メソッドで全行を buf に格納

Response.Write buf

%>

</PRE>

id:ageharock

これって、JavaScript何ですか?

勉強不足で申し訳ないです。

ちょっとわたしには難しすぎるかも……冷汗。

でもこの場合のサンプルを見る限りは、表示するファイル名がtxtですよね?

htmlでも可能なのでしょうか?

2004/08/09 18:08:00
id:garyo No.5

回答回数1782ベストアンサー獲得回数96

ポイント15pt

そのまま素直に行ったら<body>タグ内に呼び出したファイルの<head>タグが出てきたりとなってしまうと思うのですが。フレームは使用できないのでしょうか?

id:ageharock

フレームは使用したくないのです。

フレームでやれば、簡単なのは解っているのですが……。

2004/08/09 18:11:16
id:kazuya0x01 No.6

回答回数31ベストアンサー獲得回数0

ポイント10pt

JavaScriptを使うという意味でははずれますが

HTMLを呼び出すのであればインラインフレームで

実現できます。

<IFRAME HEIGHT=”500” WIDTH=”500” FRAMEBORDER=”0” MARGINHEIGHT=”0” MARGINWIDTH=”0” SCROLLING=”NO” ALLOWTRANSPARENCY=”TRUE” SRC=”表示したいhtml”>

</IFRAME>

思いっきり的はずれな回答スマソorz

id:ageharock

申し訳ないですが、的はずれです(苦笑)。

インラインフレームも使用したくないのです。

2004/08/09 18:13:12
id:fk_2000 No.7

回答回数249ベストアンサー獲得回数1

ポイント5pt

すみません。先ほどの4番です。

ASPと間違えました(汗)

ポイントは要りません。

ちなみに<IFRAME>をつかうと出来るようです。

id:ageharock

やっぱりJavaScriptじゃなかったんですね(苦笑)

インラインフレームではダメです。

2004/08/09 18:24:02
id:harakachi No.8

回答回数18ベストアンサー獲得回数0

ポイント30pt

>HTML中に記述する Client Side JavaScript ではファイル操作は出来ません。

らしですが。。。

id:ageharock

出来ないんですか……

では、次の解答あたりで締め切らせていただきます。

2004/08/09 18:25:32
id:Mars No.9

回答回数203ベストアンサー獲得回数20

ポイント10pt

かなり無理やりですが。

iframeに読み込んだファイルのbody配下の内容を<div id=”sampleB”>の中に書き出します。

htmlファイルの全部を取り込むというわけにはいかないし、フレームも使っているのでダメなのかもしれませんが。

<div id=”sampleB”></div>

<script type=”text/javascript”>

<!--

function LoadHtml() {

document.getElementById(’sampleB’).innerHTML=

document.frames[’sampleA’].document.getElementsByTagName(’body’)[0].innerHTML;

}

document.write(’<iframe src=”〜.html” onload=”LoadHtml()” id=”sampleA” style=”display:none”></iframe>’);

//-->

</script>

id:ageharock

えっと……インラインフレームを使用するのはダメです。

では、終了いたします。

皆様ありがとうございました。

2004/08/09 18:26:18
  • id:garyo
    なぜJavaScriptを使用するのか

    なぜJavaScriptを使用する必要があるのかという点をもう少し説明してもらえたら、何か回答ができたかも知れません。

    例えば、一部(ロゴとか部品)を共通で使っているからそれを入れたいが、その中一部は違うのでプログラムで書き換えたいとか

    あるいは色々異なるhtmlファイルを入れたいのでプログラムで読み込むファイル名を指定しなくてはいけないとか。

    通常はフレームやIFRAMEを使用するのでそちらではできない理由をもう少し書いていただければこういう方法があるとか紹介があったかも知れません。

    何のためにJavaScriptでhtmlファイルを読み込ますのか

    ○○のため (1次原因)

    何のために「○○のため」をするのか

    ××のため (2次原因)

    何のために「××のため」をするのか

    △△のため (3次原因)

    と3回「なぜ?」を繰り返せば、大抵いい方法が見つかりますよ。
  • id:ageharock
    Re:なぜJavaScriptを使用するのか

    好みの問題……ではダメでしょうか?
    フレームは現在使用しているのですが、どうも自分ではしっくりとこないので、フレームなしのページにしたいのです。
    しかし、ページ数が数百以上にもなるので、メニューを共通で読み込ませたいのです。
    ページが増えるたびに、いちいち全頁にそれを書き込むのは至難の業なので。
    http://rock.fem.jp/
  • id:ageharock
    Re:なぜJavaScriptを使用するのか

    追記として。
    JavaScriptだと思ったのは、フレームを使用しないで、同じようなページするために、方法が浮かばなかったから…と言ったところですが。

    CGIとかで読み込むのでも良いのですけれど。
    質問を立てたときには、思い浮かばなかったもので……。
    とにかくフレームなしにしたいなぁ、と。

    garyoさんのおっしゃるとおり、ひとつのページに
    複数のhtmlを組み込みたいというのも、理由としてはあります。
  • id:Mars
    Re(2):なぜJavaScriptを使用するのか

    >好みの問題……ではダメでしょうか?
    好み・・・というのは見た目の問題でしょうか?
    私の回答は確かにiframeを使用しますが、styleで非表示に設定し、画面上にはbodyの中身を書いたように表示されるはずですが。
  • id:souki
    Re(2):なぜJavaScriptを使用するのか

    もう見てないかもしれませんが一応。

    質問文そのものに対して回答するなら
    ・document.writeの中に、htmlを記述することは出来るのでしょうか?
    →できません。
    ・htmlファイルの内部にhtmlファイルをさらに呼び出したいのです。
    正しい記述方法を教えてください。
    →それをするためにHTMLにはobjectタグというものが用意されています。
    <object data=”(ファイルのある場所)” type=”(MIMEタイプ―ここではtext/html―)” width=”(表示させたい幅)” height=”(表示させたい高さ)”>(表示できないときの内容)</object>
    のように記述するのが正しい方法です(なぜか某タブブラウザではスクリプトと解釈されちゃいますが)。

    そして追記を読んだところ、上記の方法ではターゲットを指定できないのでageharockさんのやりたいことはやっぱりできないのです。

    よって別の手段として
    ・shtmlを使う
    という方法もあります。
    簡単に言うと拡張子を.shtmlにしてファイル内の表示させたい部分に
    <!--#include virtual=”〜.html”-->
    と記述すれば表示されます……htmlファイルの中にhtmlファイルがあるのでちょっと邪道ですが。短所としては
    ・サーバがSSIに対応していなくてはならない。
    ・ページが重くなりがち。
    といったところです。

    この方法もダメ、と言う場合やはりJavaScriptを使うことになります。ただしやり方は少し面倒になりますが。
    Javascriptで行う場合、document.writeに直接HTMLファイル名を記述するのではなく、該当部分で
    <script type=”text/javascript”src=”〜.js”></script>
    のように外部呼出しで呼び出した.jsファイル内に
    document.write(¥”¥<タグ¥>¥”);
    のように一々記述していきます。
    これで一つのファイルで管理することができます。
    短所はもちろんScriptを切ってる環境では表示されないことです。


    http://cocohome.hp.infoseek.co.jp/ssi/include.html
  • id:ageharock
    Re(3):なぜJavaScriptを使用するのか

    いえ、まだ見てます。
    一応、iフレームをhpに入れてみたのですが、どうもしっくりこなくて。

    shtmlですか、なるほど。
    とりあえずjavaスクリプトは今は諦めていて、
    phpかcgiにしようかと思っていましたが、
    shtmlも考えてみます。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません