HP作成に関する質問です。

Javascriptで、サブウインドウを
subWin.document.write()で書き出すように、
フレーム内のHTML情報を書き出す方法などありませんか?

なお、フレームの作成は以下のように行っております。
<iframe src="test#siori1" name="frame" ></iframe>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/08 23:02:31
  • 終了:2007/04/11 21:54:01

ベストアンサー

id:studioes No.3

studioes回答回数522ベストアンサー獲得回数612007/04/09 13:39:44

ポイント50pt

 あの・・・

  ダブルクォーテーションの文字列内でもそのままダブルクォーテーションでタグのパラメータ書いてません・・・?

  IEでもOperaでも問題なくタグははき出せますが。

<pre>

document.getElementById('testframe').contentWindow.document.write('<table border="1"><td>a</td><td>b</td></table>');

document.getElementById('testframe').contentWindow.document.write("<table border='1'><td>a</td><td>b</td></table>");

document.getElementById('testframe').contentWindow.document.write("<table border=\"1\"><td>a</td><td>b</td></table>");

</pre>

  いずれも動作しましたが。

http://q.hatena.ne.jp/

id:harunoharuno

回答ありがとうございます。コピペし確認したところ正常動作を確認しました。おそらく、先ほど表示できなかったのはコーディングミスによるものだと思います。再度回答していただけたことに感謝します。

2007/04/09 13:57:09

その他の回答(3件)

id:susie-t No.1

susie-t回答回数99ベストアンサー獲得回数182007/04/08 23:40:17

ポイント50pt

name属性指定ではないのですが、id属性指定であれば以下で可能です。(要望と違っていたらすみません。)

<html>
<head>
<script>
function getIFrameDocument(aID){
  if (document.getElementById(aID).contentDocument){  
    return document.getElementById(aID).contentDocument;
  } else {
    return document.frames[aID].document;
  }
}
</script>
</head>
<body>
<iframe src="test#siori1" id="frame"></iframe>
<script>
var frameDoc = getIFrameDocument('frame');
frameDoc.write("<html><head></head><body>aaa</body></html>");
frameDoc.close();
</script>
</body>
</html>

getIFrameDocument関数は指定idのIFrameのdocumentを返却します。IEとFirefoxで取得方法が違うので作成しています。

参考になれば幸いです。

ダミー:http://q.hatena.ne.jp/

id:harunoharuno

回答ありがとうございます。教えていただいた方法で、

一応フレームに対する書き出しはできました。

ですが、あんまし細かい書式の指定とかはできないのですね。。。

frameDoc.write("<html><head></head><body>

ab
</body></html>");

とするとこけてしまいました。

もう少し、多くのタグに対応する書き出し方法などありましたらそれについても

教えていただきたく宜しくお願いします。

[追記]

そもそもの目的は

クリックするたびにYOUTBEの動画をはったHTMLを

書き出したかったのですが、それには向いていないのかもしれませんね。

リンクをクリックしたときに、

下記タグの????の部分をJavascriptで埋め込む方法とか

ありましたら、それでもかまいませんので宜しくお願いします。

<object width="425" height="350"><param name="movie" value="?????"></param><param name="wmode" value="transparent"></param><embed id="movie1" src="?????" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>


以下のコーディングで試してみましたが、失敗しました。

parent.frame.document.getElementById("movie1").src="??????"

parent.frame.document.getElementById("movie").value="??????"

2007/04/09 11:11:19
id:studioes No.2

studioes回答回数522ベストアンサー獲得回数612007/04/08 23:42:16

ポイント50pt

function ifwrite(){

document.getElementById('testframe').contentWindow.document.write('this is a test');

}

JavaScriptはこんな感じで・・・

<iframe src='sam2.html' id="testframe" name="frame" ></iframe>

<input type='button' onclick='ifwrite();' value='ボタン'>

みたいな感じでIDを付けて、こんな感じでどうでしょ?

http://q.hatena.ne.jp/

id:harunoharuno

ab

のように細かいタグなどの設定はできないようですね。

クリックするたびにYOUTBEの動画をはったHTMLを

書き出したかったのですが、それには向いていないのかなぁ。

リンクをクリックしたときに、

下記タグの????の部分をJavascriptで埋め込む方法とか

ありましたら、それでもかまいませんので宜しくお願いします。

<object width="425" height="350"><param name="movie" value="?????"></param><param name="wmode" value="transparent"></param><embed id="movie1" src="?????" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>


以下のコーディングで試してみましたが、失敗しました。

parent.frame.document.getElementById("movie1").src="??????"

parent.frame.document.getElementById("movie").value="??????"

2007/04/09 11:09:43
id:studioes No.3

studioes回答回数522ベストアンサー獲得回数612007/04/09 13:39:44ここでベストアンサー

ポイント50pt

 あの・・・

  ダブルクォーテーションの文字列内でもそのままダブルクォーテーションでタグのパラメータ書いてません・・・?

  IEでもOperaでも問題なくタグははき出せますが。

<pre>

document.getElementById('testframe').contentWindow.document.write('<table border="1"><td>a</td><td>b</td></table>');

document.getElementById('testframe').contentWindow.document.write("<table border='1'><td>a</td><td>b</td></table>");

document.getElementById('testframe').contentWindow.document.write("<table border=\"1\"><td>a</td><td>b</td></table>");

</pre>

  いずれも動作しましたが。

http://q.hatena.ne.jp/

id:harunoharuno

回答ありがとうございます。コピペし確認したところ正常動作を確認しました。おそらく、先ほど表示できなかったのはコーディングミスによるものだと思います。再度回答していただけたことに感謝します。

2007/04/09 13:57:09
id:aside No.4

aside回答回数339ベストアンサー獲得回数312007/04/09 14:01:05

ポイント30pt

>とするとこけてしまいました。

「border="1"」を「border='1'」にするとおk

http://q.hatena.ne.jp/

コメントはまだありません

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません