アプリ版:「スタンプのみでお礼する」機能のリリースについて

フレーム(rightup) が表示しているURLを調べて表示させるJavaScriptを書きました。rightupの表示内容が初期状態のときは動きます。ところが、初期状態と異なるURLを表示させると以下のようなエラーが出てしまいます。

エラー:書き込みができません

以下、フレーム定義のHTML、URLを調べて表示させるJavaScriptの含まれているHTMLの抜粋を示します。
理由等お分かりの方教えていただけないでしょうか。よろしくお願いします。

フレーム定義のHTML(抜粋)

<FRAMESET cols="59%,41%">
<FRAME src="left.html" name="left" id="left">
<FRAMESET rows="85%,15%">
<FRAME src="right_up.html" name="rightup" id="rightup">
<FRAME src="right_bottom.html" name="rightbottom" id="rightbottom">
</FRAMESET>
<NOFRAMES>
<BODY>
<P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>
</BODY>
</NOFRAMES>
</FRAMESET>


JavaScriptの含まれているHTML(抜粋)

<HTML>
<HEAD>

<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
<SCRIPT LANGUAGE = "JavaScript">
<!--
function ShowProperty()
{top.rightbottom.document.write(window.top.rightup.location.href)}
//-->
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<FORM NAME = "fom">
<INPUT TYPE="button" value="GO" onclick=ShowProperty()>
</FORM>
</CENTER>
<TABLE border="1" width="100%">
<TBODY>
<TR><TD><A href="http://www.asahi.com" target="rightup">朝日</A></TD></TR>
<TR><TD><A href="http://www.yahoo.co.jp" target="rightup">Yahoo</A></TD></TR>
</TBODY>
</TABLE>
</BODY>
</HTML>

A 回答 (2件)

window.top.rightup.location.hrefのhrefは単純なストリングではなくオブジェクトです。

document.write(Object)はできないのでエラーが発生しました。

下記のようにすればいけるはずだと思います:
top.rightbottom.document.location = "right_bottom.html"

この回答への補足

 Dennyboy 様たいへんありがとうございます。

>window.top.rightup.location.hrefのhrefは単純なストリングではなくオブジェクトです。
>document.write(Object)はできないのでエラーが発生しました。

教えていただいたおかげでエラーの発生した場所が document.write で、オブジェクトを表示しようとして失敗していること分かりました。

 ところであらためて自分の質問を読み返してみると、質問の内容が分かりにくかった気がします。

 2番目のJavaScript入りHTMLはフレーム(left)のものです。(それを書かずに質問してしまったので私の状況説明が伝わらなかったと思います。すみません。)
 フレーム(left)のフォームのボタンをクリックするとフレーム(rightup)に表示されているURLがフレーム(rightbottom)に表示されるようにしたかったということです。また、フォームのボタンの下にasahi.com と yahoo.com のリンクがあり、フレーム rightup にこれらが表示されるようになっています。

+------------------+
|   |           |
|   |           |
| left |  rightup     |
|   |           |
|   |           |
|   |           |
|   |           |
|   +-----------+
|   |  rightbottom   |
+------------------+


>下記のようにすればいけるはずだと思います:
>top.rightbottom.document.location = "right_bottom.html" 

このご説明は、フレーム rightbottom の表示を right_bottom.html に切り替える処理かと思いますが私の理解が違うようでしたらすみません。

補足日時:2004/05/01 22:27
    • good
    • 0
この回答へのお礼

補足の方でお礼を申し上げましたがあらためて、
お答えいただきありがとうございます。

お礼日時:2004/05/01 22:31

申し訳ありませんでした。


MSDNから調べた結果、hrefはストリングです。前回の回答は間違いました申し訳ありませんでした。

もし下のようにしたら、rightupの内容をrightbottomに移すはずだと思います。
window.top.rightbottom.document.location.href = window.top.rightup.document.location.href

もし理解が間違いましたらごめんなさい。 :-(

参考URL:http://msdn.microsoft.com/library/default.asp?ur …
    • good
    • 0
この回答へのお礼

熱心に応えていただことに大変感謝しております。ところで私の行いたい事は、rightbottom の表示を切り替えることではありません。
************************************************
私の行いたい事は"rightup が現在表示中のURLを調べたい"ということです。
************************************************
今調べてきて分かったことですが、2つ変なことを発見しました。
(1)フレーム「rightbottom」のlocationを
top.rightbottom.document.write(parent.rightbottom.location)で調べると、right_bottom.htmlではなくleft.html が入っています。→frameset で明確にrightbottom の src をright_bottom.htmlに設定しているのに。不思議です。
(2)フレーム「rightup」は、<A href="http://www.asahi.com" target="rightup">
により表示を切り替えると、window.top.rightup で参照できなくなる。→rightupの情報が消えているように見えます。う~む、不思議だ!

お礼日時:2004/05/03 11:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!