• ベストアンサー

HTMLとJavaScriptのインクルードについて教えて下さい。

いつも利用させて頂いてます。 またご教授をお願いします。 ヘッダー部分のHTMLをインクルードしようと思ったのですが、 ヘッダー部分にJavaScriptも組み込まれており、インクルードで読み込んだ 場合にはそのJavaScriptが停止した状態になってしまっています。 そこで、ヘッダー部分をインクルードした時に、動作も可能なJavaScriptを ご存知ありませんでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

> var inc = document.createElement("iframe"); > > inc.id = "inc-" + id; > inc.src = filename; HTMLではsrc属性ですが、JavaScriptからはwindowオブジェクトとして扱うので、locationプロパティになります。 たぶん、createElementでも同様かと思います。 IEの注意点 document.createElement('<iframe src="'+filename+'">'); としないとファイルを読みません。 inc.contentWindowではなくinc.bodyだったかも。 DOCTYPE(互換モード、標準モード)にも影響するかも知れません。 IE7以前にはHTMLとXHTMLの違いはないと思います。

nepiapi
質問者

お礼

talooさん ご回答ありがとうございます。 DOCTYPEにも影響されることがあるんですね。 そこは見落としていました^^; ご意見を参考にさせて頂きながら、もう少しがんばって みようと思います。 ありがとうございました。

その他の回答 (3)

noname#176215
noname#176215
回答No.3

#2の方に質問に対する返答が的外れです。 同じことをお聞きしますが「何を使って」インクルードしたのですか? > ヘッダー部分にJavaScriptも組み込まれており、インクルードで読み込んだ > 場合にはそのJavaScriptが停止した状態になってしまっています。 どのようにそれぞれのデータを作成して インクルードしたのか説明して 下さい。

nepiapi
質問者

補足

Chiquilinさん ご回答ありがとうございます。 指摘頂いて申し訳ありません・・・。 以下のようなJavaScriptを利用して、 ヘッダをインクルードする箇所には、 <div>要素で表示させるものでした。 こちらを利用するとHTMLの表示は可能なのですが、 JavaScriptを読み込むとエラーになってしまいます。 ■JSファイル: function include(filename, afterfunc) { include.seq = (include.seq)? include.seq + 1: 1; var id = new Date().getTime() + "-" + include.seq; var inc = document.createElement("iframe"); inc.id = "inc-" + id; inc.src = filename; inc.style.display = "none"; document.write("<span id=\"" + id + "\"></span>"); var incfunc = function() { var s = (function() { var suffix = (n = filename.lastIndexOf(".")) >= 0 ? filename.substring(n): "default"; if (suffix == ".html") return inc.contentWindow.document.body.innerHTML; if (suffix == ".txt") return inc.contentWindow.document.body.firstChild.innerHTML; if (suffix == "default") return inc.contentWindow.document.body.innerHTML; })(); var span = document.getElementById(id); var insertBeforeHTML = function(htmlStr, refNode) { if (document.createRange) { var range = document.createRange(); range.setStartBefore(refNode); refNode.parentNode.insertBefore(range.createContextualFragment(htmlStr), refNode); } else { refNode.insertAdjacentHTML('BeforeBegin', htmlStr); } }; insertBeforeHTML(s.split("&gt;").join(">").split("&lt;").join("<"), span); document.body.removeChild(inc); span.parentNode.removeChild(span); if (afterfunc) afterfunc(); }; if (window.attachEvent) { window.attachEvent('onload', function() { document.body.appendChild(inc); inc.onreadystatechange = function() { if (this.readyState == "complete") incfunc(); }; }); } else { document.body.appendChild(inc); inc.onload = incfunc; } } ■表示用<div>部分 <div> <script type="text/javascript" > include("header.html"); </script> </div>

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

何でそれをやろうとしたの? SSI?PHP?ASP?Javascript? どれであるかで回答がそれぞれ全然違う

nepiapi
質問者

補足

SAYKAさん ご回答ありがとうございます。 説明不足で申し訳ありませんでした。 通常のHTMLで、メニュー項目などを入力した 「header.html」というファイルをメインのコンテンツに 表示させたいと思っていました。 このheader.htmlファイルにJavaScriptを組み込んで いるんですが、どうもうまく動いてくれませんでした。 よろしくお願いします。

回答No.1

インクルードってなんですか? 辞書は引いてみましたが。

nepiapi
質問者

補足

dongri5656さん ご回答ありがとうございます。 説明不足で申し訳ありませんでした。 通常のHTMLで、メニュー項目などを入力した 「header.html」というファイルをメインのコンテンツに 表示させたいと思っていました。 このheader.htmlファイルにJavaScriptを組み込んで いるんですが、どうもうまく動いてくれませんでした。 よろしくお願いします。

関連するQ&A

  • JavaScriptからPHP呼び出しHTML出力で…

    現在phpにてブログのカテゴリリストを取得して、投稿ページ (HTML)上にカテゴリのプルダウンを表示しようと試みている のですが、JS(JavaScript)からPHPを呼び出しHTML上に出力する 際にPHPファイルにincludeがあるとjavascriptエラーとなって しまいます。 ちなみに参考にしたホームページはこちらです。 http://www.res-system.com/item/383 PHPソース(init.php)↓ <?php include_once('entry.php'); // ←エラーの箇所 // ヘッダ header("Content-Type: application/x-javascript; charset=UTF-8"); // インスタンス生成 $obj = new XMLComm(); // 初期設定 $obj->XMLComm(); // カテゴリ取得 echo "document.write(\"$obj->getCategories()\")"; ?> HTMLソース(entry.html)↓ <HTML> <HEAD> <TITLE>BLOG ENTRY</TITLE> </HEAD> <BODY> ブログエントリー</br> <script type="text/javascript" src="/init.php"></script> </BODY> </HTML> ちなみに、include等が無い状態で任意の文字で試したのですが こちらはきちんと表示されます。 javascriptでincludeなど呼び出しているphpを起動することは できないのでしょうか… 解決策、別案などありましたらご教授いただけたら幸いです。 phpを始めたばかりの初心者で、質問自体おかしい点があるかも しれませんが、、どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでincludeを使うと?が入る。

    さらくインターネットのレンタルサーバを使用していますが、 index.phpに include('header.php'); を入れてヘッダー部分のHTMLの呼び出しを行なっていますが 表示されるソースを見ていると、includeで呼び出しているヘッダー部分の手前に「?」が 入ってしまいます。 include(dirname(__FILE__).'/header.php'); include($_SERVER['DOCUMENT_ROOT'] . "/header.php"); など使っても同じ現象のため、どうしたら「?」を無くすことができるでしょうか。

    • ベストアンサー
    • PHP
  • JavaScriptで外部htmlをインクルード

    至らないところがありますが、どうぞよろしくお願い致します。 目的はhtmlとJavascriptだけで、html内に他のhtmlの内容を表示することです。 Makeshop.jpを使用しているのでPHP、CGI、SSI等は使用できません。   下記リンクを参考にローカル上で外部htmlファイルの読み込みは出来ましたが、   includeの関数を呼び出す所でhttpから始まるパスを指定すると   外部htmlファイルの読み込みは出来ませんでした。   ”静的HTMLで、インクルードを実現するためのJavaScript”   http://d.hatena.ne.jp/kenpoco/20080501/1209636103   現状のパスの指定はこんな感じです。 <div> <script type="text/javascript" > include("http://www.XXX/hoge.htm"); </script> </div>   エラーが発生する部分は、関数の下記の一文です。   insertBeforeHTML(s.split("&gt;").join(">").split("&lt;").join("<"), span);   原因は分かっていません。 上記の原因解決や、また他の方法があれば教えていただきたいです。 読んで頂きありがとうございます。

  • インクルードしているheadの中に記述するには?

    htmlのヘッダーを関数化して全画面でインクルードしています。 ある画面でだけ、ちょっとしたjavascriptの記述をヘッダー内に記述したいのですが、どうしたらいいでしょうか? 現状ではヘッダー関数の中でJSを外部ファイルで読み込んでいますが、JSのスクリプトでwindow.onloadなどを使う場合、すべてのページに該当してしまいよろしくありません。 うまい方法がありましたらご教授宜しくお願いします。 またheadの終わりからbodyの始まる間にscriptを書いても問題はないのでしょうか? 動作的にはエラーは通知されませんでしたが。 原則的にはheadの中だと思うので。 <html> <head> </head> ●ここにjavascriptを記述 <body> ・・・ 【環境】 php5

    • 締切済み
    • PHP
  • SSIのincludeを使用しているHTMLを、SSI負荷のサーバに移行したい

    SSIのincludeを使用してヘッダ・フッダ等を持たせていたHTMLを、SSIが使用できないサーバに移行することになりました。 トータルで500pほどあり、ヘッダ・フッダは共通ではないため全文置換するにしても手間と時間がかかります。 includeのタグの部分にそのままそのソースを引っ張ってきて吐き出してくれるようなソフトはないでしょうか?

    • 締切済み
    • CSS
  • include無しにclassが書けない

    粗末な質問タイトルで申し訳ありません。 Visual C++2010で、includeを書かずにclass宣言を行おうとすると「Error:PCH警告」が発生します。 この理由をご教授ください。 IntelliSense: PCH 警告: 適切なヘッダー停止位置が見つかりません。 というエラーメッセージが表示されるのですが、これはプロトタイプ宣言がないときに発生する警告らしいですね。私が書こうとしているソースコードを次に示します。 -----main.cpp---- class TestClass {}; int main(void) { return (0); } ----------------- このソースで、"class"の部分に赤波線が引かれて先述のエラーメッセージが表示されます。 このソースの先頭に#include<iostream>なり#include<stdlib.h>なり何かインクルードを記述すると警告はなくなります。 しかしクラスはその枠のみですし、ライブラリ関数も何も使用していないのでとくに必要なインクルードファイルも何もないと思うのですが、どうしてこのようなエラーが発生するのでしょうか。 あと、蛇足になりますが、本来はクラス宣言部分を別のヘッダーファイルに分けたいのです。 クラス宣言部分を別のヘッダーに分離してヘッダーの先頭に #pragma once を記述するか、分離したヘッダをmain.cpp内でインクルードしてもエラーは解消されます。 (何からもインクルードされなかったらエラーになる) もう何が何やらさっぱりわからないです><

  • HTMLファイルのインクルードで文字化けしてしまう

    下記のサイトを参考にHTMLファイルのインクルードを試したところ、 インクルードされた側のHTMLで文字化けしてしまいます。 http://tani.dank-hearts.com/2008/03/javascripthtml.html ↓の文字コード指定を記述してもダメでした。。。 <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <script type="text/javascript" src="js/ajaxcodedisplay-or.js" charset="shift_jis"></script> 原因がわかる方いらっしゃいましたら、 ご教授お願いいたします。

    • ベストアンサー
    • HTML
  • HTML #include file について

    初心者ですみません><  使用OS:windowsXP Home Edition  動作環境:自分のPC 1台 HTML文に下記のテスト文を作成したのですが、#includeの"header.inc" ファイルが読み込めないのです。 html文自体は c:\test\test.html に保存しています。 includeファイルは c:\test\INC\header.inc としています。   *** test.html *********************************  <html> <head>   <#include file="./INC/header.inc"> </head> <body> <h1>test</h> </body> </html> *******************************************  *** header.inc **************************** <title>Title_TEST</title> ******************************************* 簡単なテスト文なのですが、header.inc の部分が読み込めないので困っています。どこかに必要な設定があるのでしょうか? すみませんがおしえてください。

  • PHPのインクルード

    WEBサイトをPHPで構築したいと考えています。 PHPの場合、ヘッダーやフッターなどの共通部分をインクルードできると思いますが、 ヘッダー内でもTitleやDescriptionなどのメタタグでページごとに変わる部分はどうすればよいのでしょうか? PHPでサイト構築している方はどうやってるのでしょうか?

    • ベストアンサー
    • PHP
  • phpでのHTMLの表示(特にJavascriptの部分)についてご教

    phpでのHTMLの表示(特にJavascriptの部分)についてご教授下さい。 phpで以下のhtmlを表示させ、Javascriptを実行させたい時にエラーが出るので <a href="" onclick="Hoge(’hoge’);return=false”>リンク</a> Firefoxでソースを見てみると以下の通りになります。 <a href="" onclick="Hoge(" hoge="" );return="" false;="">リンク</a> PHPで表示させたい場合(特にJavascriptの部分)はどのような書き方をすればよいのでしょうか?? ちなみに、IE8だとソースはきれいでしたが、Javascriptが実行できませんでした。 お急がしところ申し訳ございませんが、 ご教授いただけましたら幸いです。

    • ベストアンサー
    • PHP

専門家に質問してみよう