そして、このページから別途JavaScriptで
<html><head><title> </title></head>
<frameset rows=70%,30%>
<frame src=”http://xxxxxxxx”>
<frameset cols=15%,85%>
<frame src=”aaaaaaa”>
<frame src=”bbbbbbbb”>
</frameset>
</frameset>
</html>
というあらかじめ用意しておいたファイルを開きたいのですが、この場合、元のページにあった「http://xxxxxxxx」
というアドレスのページを、新たに開いたウィンドウのフレームに読み込ませることはできるでしょうか?
可能であれば、そのコードを教えていただけないでしょうか。
http://www.hatena.ne.jp/1107177029#
人力検索はてな - あるhtmlファイルがあって、その中に、タグで囲むなり、記号で囲むなりした形で、「http://xxxxxxxx」というアドレスを記述してあります(どのように記述するのが最適なの..
以下のhtmlを試してみてください。
name=”test” で動的に変更するフレームを指定しています。
<html>
<head><title> </title>
<script type=”text/javascript”>
<!--
function func() {
document.all.test.src = ”c.html”;
}
// -->
</script>
</head>
<frameset rows=”70%,30%” onload=”func()” >
<frame name=”test” src=””>
<frameset cols=15%,85%>
<frame src=”a.html”>
<frame src=”b.html”>
</frameset>
</frameset>
</html>
http://www.tohoho-web.com/js/element.htm
エレメント(Element)
先ほどの回答は早とちりで外部ファイルという条件が抜けていました。すみませんでした。
外部に次のようなdata.htmlファイルがあるとすると
--- data.html ---
<html>
<body>
<p id=”file”>c.html</p>
</body>
</html>
--- data.html ここまで---
次のようなJavaScriptでフレームのソースを動的に変更することができます。
<html>
<head><title> </title>
<script type=”text/javascript”>
<!--
function func() {
temp=window.open(”data.html”,””,”left=10000,width=100,height=100”);
file=temp.document.all.item(”file”).innerText;
temp.close();
document.all.test.src = file;
}
// -->
</script>
</head>
<frameset rows=”70%,30%” onload=”func()” >
<frame name=”test” src=””>
<frameset cols=15%,85%>
<frame src=”a.html”>
<frame src=”b.html”>
</frameset>
</frameset>
</html>
こちらはソース一覧
サンプルです
[base117.htm]
<html>
<head>
<title>テスト</title>
</head>
<BODY>
<A HREF=”h117_1.htm”>テスト1</A>
<A HREF=”h117_2.htm”>テスト2</A>
<A HREF=”h117_3.htm”>テスト3</A>
</BODY>
</html>
それぞれのリンクにとぶとフレームつきで再構築されます
[h117_1〜3.htm]共通
<html>
<head>
<title>テスト</title>
</head>
<BODY BGCOLOR=”#ff80ff”>
<SCRIPT LANGUAGE=”JavaScript”>
<!--
if(parent == self )location.href=”hatena117.htm?ここに固有のURLを入れます”;
//-->
</SCRIPT>
この部分にそれぞれの内容を書きます
</BODY>
</html>
[h117a/b.htm]
<html>
<head>
<title>テスト</title>
</head>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
<!--
if(parent == self )location.href=”hatena117.htm?h117a.htm”; // <- aやbのフレームのURL
//-->
</SCRIPT>
A/Bのフレームの内容です
</BODY>
</html>
これが本体です
[hatena117.htm]
<html><head><title>
</title></head>
<SCRIPT LANGUAGE=”JavaScript”>
<!--
document.write(’<frameset rows=70%,30%>’);
document.write(’<frame src=”h117.htm” NAME=”TOP”>’);
document.write(’<frameset cols=15%,85%>’);
document.write(’<frame src=”h117a.htm” NAME=”LEFT”>’);
document.write(’<frame src=”h117b.htm” NAME=”RIGHT”>’);
document.write(’</frameset>’);
document.write(’</frameset>’);
if(location.search==””){
}
else{
link=location.search.substring(1,999);
if(link==”h117a.htm”){
top.LEFT.location.href =link;
}
else if(link==”h117b.htm”){
top.RIGHT.location.href =link;
}
else top.TOP.location.href =link;
}
// -->
</script>
</html>
http://www.tohoho-web.com/js/dom.htm
ドキュメントオブジェクトモデル(DOM)
今ひとつやりたい事が判らなかったのですが、一応こんな感じでどうでしょうか。
----- list.html -----
<html>
<head>
<title>list</title>
<script type=”text/javascript”>
<!--
function go(oid) {
nw = window.open(”frame.html?”+oid,”hoge”);
nw.focus();
}
// -->
</script>
</head>
<body>
<a href=”#” onClick=”go(’1’)” id=”1”>
<a href=”#” onClick=”go(’2’)” id=”2”>
<a href=”#” onClick=”go(’3’)” id=”3”>
http://www.infoseek.co.jp/</a>
楽天が運営するポータルサイト : 【インフォシーク】Infoseek
<a href=”#” onClick=”go(’4’)” id=”4”>
</body>
</html>
----- frame.html -----
<html>
<head>
<title>frame</title>
<script type=”text/javascript”>
<!--
function go() {
url = location.href;
oid = url.substring(url.indexOf(’¥?’)+1);
elem = window.opener.document.getElementById(oid);
openUrl = elem.firstChild.nodeValue;
tgt.location.href=openUrl;
}
// -->
</script>
</head>
<frameset rows=”70%,30%” onLoad=”go()”>
<frame name=”tgt” src=””>
<frameset cols=”15%,85%”>
<frame src=””>
<frame src=””>
</frameset>
</frameset>
</html>
外部ファイルは任意で同じ書式になっていればいいはずです。
あとdocument.allやelement.innerTextはIE依存なのでdocument.getElementById()やelement.firstChild.nodeValueを使う方がいいかと思います。
みなさまありがとうございます。おかげさまで、実現できました。
ありがとうございます。ただ、これだとdata.htmlというファイル名は固定ですよね? 開く元の外部ファイル名もそれぞれ異なるので、そのファイル名を取得させて欲しいのですが… いかがでしょうか?