• 締切済み

エラー:書き込みができません が出てしまいます

フレーム(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>

  • noory
  • お礼率100% (9/9)

みんなの回答

  • Dennyboy
  • ベストアンサー率60% (3/5)
回答No.2

申し訳ありませんでした。 MSDNから調べた結果、hrefはストリングです。前回の回答は間違いました申し訳ありませんでした。 もし下のようにしたら、rightupの内容をrightbottomに移すはずだと思います。 window.top.rightbottom.document.location.href = window.top.rightup.document.location.href もし理解が間違いましたらごめんなさい。 :-(

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/obj_location.asp
noory
質問者

お礼

熱心に応えていただことに大変感謝しております。ところで私の行いたい事は、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の情報が消えているように見えます。う~む、不思議だ!

  • Dennyboy
  • ベストアンサー率60% (3/5)
回答No.1

window.top.rightup.location.hrefのhrefは単純なストリングではなくオブジェクトです。document.write(Object)はできないのでエラーが発生しました。 下記のようにすればいけるはずだと思います: top.rightbottom.document.location = "right_bottom.html"

noory
質問者

お礼

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

noory
質問者

補足

 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 に切り替える処理かと思いますが私の理解が違うようでしたらすみません。

関連するQ&A

  • 曼荼羅3×3の9フレームの作り方

    ホーム頁作成ソフトでは3フレームまでしか有りませんでした。 <FRAMESET rows=*,* frameBorder=yes> <FRAME name=top src="Mandara02.files/page002.html"> <FRAMESET frameBorder=yes cols=*,*> <FRAME name=lbottom src="Mandara02.files/page003.html"> <FRAME name=rbottom src="Mandara02.files/page004.html"> </FRAMESET><NOFRAMES> <BODY bgcolor=#ffffff text=#000000 link=#0000ff vlink=#800080 alink=#ff0000> <A name="_pageHead"></A> <TABLE align="center" border="0" width="640" cellpadding="0" cellspacing="0"> <TBODY> <TR align="left" valign="top"> <TD align="left" valign="top" width="640" nowrap> </TD> </TR> このHTML記述のようなもので9フレームの作り方をご指導ください 参考書は持っていますが理解出来ていません。

  • HP作成初心者です。

    HP作成初心者です。 「alphaEDIT」を利用して、フレーム設定を行っているのですが、プレビューで確認すると フレームの枠しか表示されず、別に作成したページ内容が表示されません。 以下のHTMLですが、確認しても間違いがわかりません。 <html> <head> <title>EW</title> </head> <frameset rows="150,*"> <frame src="top.html" name="top"> <frameset cols="300,*"> <frame src="left.html" scrolling="yes" name="left"> <frame src="right.html" name="right" > </frameset> <noframes> <body> <p>このページはフレームを使用しています</p> </body> </noframes> </frameset> </html> どうすれば各ページ内容が表示されるか教えてください。 どうぞよろしくお願いします。

  • フレームで、一回しか切り替わらない

    フレームで、一回しか切り替わらない理由が分からずに困っています。 HTMLは、以下のように記述しています。 index.htmlファイルの内容: <html> <head> <title>フレームテスト</title> </head> <frameset cols="230,*"> <frame src="menu.html" name="subFrame"> <frame src="top.html" name="mainFrame"> <noframes> このページはフレーム対応のブラウザでご覧ください。 </noframes> </frameset> </html> menu.htmlの内容: <html> <HEAD> <title>掲示板</title> </HEAD> <body> <table width="100%" border="1" cellspacing="1" cellpadding="1"> <tr> <td bgcolor="#99FF99"><a href="top.html" target="mainFrame"> メイン掲示板</a></td> </tr> <tr> <td bgcolor="#CCCCCC"><a href="aaa" target="mainFrame"> aaa</a></td> </tr> <tr> <td bgcolor="#CCCCCC"><a href="bbb" target="mainFrame"> bbb</a></td> </tr> <tr> <td bgcolor="#CCCCCC"><a href="ccc" target="mainFrame"> ccc</a></td> </tr> <tr> <td bgcolor="#CCCCCC"><a href="top.html" target="mainFrame"> TOPページにもどる</a></td> </tr> </table> </body> </html>

    • ベストアンサー
    • HTML
  • こんなことって出来ますか?

    <HTML> <HEAD> </HEAD> <FRAMESET ROWS="*,20%,5%" Border="0"> <FRAME SRC="top.html" NAME="main"> <FRAME SRC="menu.html" NAME="menu"> <FRAME SRC="yo.html" NAME="yo"> </FRAMESET> <NOFRAMES><BODY> このHPはフレーム対応ブラウザでしか御覧いただけません。 </BODY></NOFRAMES> </HTML> という状態で、 mainフレームに表示されているHTMLの見えない部分(スクロールさせないと表示されない部分)をyoフレームに表示させて、mainフレームがスクロールされるとyoフレームのところも随時その下の部分が表示されていく。 つまり、mainフレームの内容にmenuフレームがかぶさってる様に見せたいのですが、そんなことって出来るのでしょうか? あぁー こんな説明で伝わるだろうか とっても不安w まったく無知で、こういうことがJavaScriptの分野なのかどうかも分かって無いので、こんな質問ですいません。^^;

  • location.hrefを使用したFRAME表示

    location.hrefを使ったjavascriptを作ろうとしています。 <script type="text/javascript"><!-- location.href = "http://www.yahoo.co.jp/"; // --></script> の改良版として、http://www.yahoo.co.jp/をフレームの右側に 表示させたいと考えています。 (src使用ではなくjavascriptのlocation.hrefを使うことがMUSTです) <head> <script type="text/javascript"><!-- right.location.href = "http://www.yahoo.co.jp/"; // --></script> </head> <body> <FRAMESET cols="50%,50%"> <FRAME name="left" src="left.html"> <FRAME name="right" src="right.html"> </FRAMESET> </body> としてみましたがうまくいきません。 location.hrefはmetaタグ内でしか有効ではないにも関わらず right.の指示をメタタグ内部で指定していないことが原因かも しれません。 javascriptのlocation.hrefを使ってフレームの右側に 表示させる方法をご教授願います。

  • リンクページが表示されません

    PC歴5ヶ月弱のものです。TOPページからサブページにジャンプしようとするとアクセス不可の答えが返ってきます。初めてフレームページに挑んだのですがそのページだけリンクしません。パスの指定が悪いのか、フレーム定義が悪いのか解らず困っています、どうか助けてやってください。 <td><A href="frame.htm"><img width="20" height="20" src="a_tai3.gif">リンク先</A></td> ↑パス指定 ↓フレーム定義 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <TITLE>タイトル</TITLE> </HEAD> <FRAMESET COLS="180px,*" FRAMEBORDER="no" BORDER="0"                       FRAMESPACING="0" > <FRAME SRC="xxx.f.html" NAME="f1" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="auto" > <FRAME SRC="yyy.htm" NAME="f2" SCROLLING="auto"> <NOFRAMES><body>|<A HREF="zzz.htm">内容</A>|</body> </NOFRAMES> </FRAMESET> </HTML>

    • ベストアンサー
    • HTML
  • フレーム内の要素へのXPATHはどのように書けばよいのでしょうか?

    フレーム内の要素へのXPATHはどのように書けばよいのでしょうか? また、それは可能なのでしょうか? 実際には、firefoxのgreasemonkey で、フレームを使ったページ内のテーブル内のデータを取得したいと考えています。 下記のようにやればできるかと思ったのですが、できないようです・・・ var xpath ='/html/frameset/frame[2]/html/body/table/tbody'; var tbody = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.contentDocument; alert(tbody.rows[0].cells[0].firstChild.data); 対象としているサイトの構造は、下記のようになっています。 2つのフレームを含むソース <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=x-sjis"> <TITLE>ほげほげ</TITLE> <FRAMESET ROWS="88,*"> <FRAME SRC="frame1.html" NAME="FRM1"> <FRAME SRC="frame2.html" NAME="FRM2"> </FRAMESET> </HTML> frame2.html <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=x-sjis"> <TITLE>フレーム2</TITLE> </HEAD> <BODY> <TABLE border="0"> <TR><TD>データ1</TD>・・・</TR> ・・・・・ </TABLE> </BODY> </HTML> 以上です。 はたしてできるのかどうかもわからない状態です。 どうぞ宜しくお願い致します!!!

  • <noframes>が携帯で表示されません

    私は携帯でネットができないので確認できないのですが 携帯で閲覧するとフレームサポートやブラウザがどうのこうのと表示が出て、 見れない方がいらっしゃるそうです。 ちゃんと正しく表示されるひともいるのですが…。 原因が何か教えていただけないでしょうか? ↓ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <frameset cols="242,*" border="0"> <frame src="menu.html" scrolling="no"> <frame src="main.html" name="m" scrolling="auto"> <noframes> <body> HP内容 </body> </noframes> </frameset> </html>

  • フレームタグの四つわりについて。

    <HTML> <HEAD> <TITLE></TITLE> </HEAD> <FRAMESET cols="65,*,65"> <FRAME src="左側のファイルアドレス"> <FRAMESET rows="*,50"> <FRAME src="真ん中上のファイルアドレス"> <FRAME src="真ん中下のファイルアドレス"> </FRAMESET> <FRAME src="右側のファイルアドレス"> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY> </NOFRAMES> </FRAMESET> </HTML> のようなタグでフレーム割をしたいのですが、どこにファイルの名前を入れたら良いのですか?教えて下さい。 リンクのタグは<A href="ここにアドレス" target="frame">ここに文字</A> で良いのはわかってます。

    • ベストアンサー
    • HTML
  • インラインフレーム内でのテーブル位置指定が上手くいきません

    インラインフレームを使用したホームページ作成中なんですが 一箇所だけどうしても解決できないことがあったので質問させていただきます フリー素材サイトのメニューテーブルを左上フレームに使用しているんですが htmlとスタイルシートを上手く使いこなせてないせいで メニューテーブルの位置指定ができずにいます テーブルは縦につなげるタイプのものです 左上フレーム内のright bottomに指定したいのですが上手くいきません 大変見苦しい点が多いとは思いますが どなたか解決策、アドバイス等ありましたらよろしくお願いいたします 【index.html】 <html><head>~</head> <frameset cols="220,*" frameborder="no" border="0"> <frameset rows="90%,10%" frameborder="no" border="0"> <frame src="menu.html" name="menu" scrolling="no"> <frame src="sita.html" name="sita" scrolling="no"> </frameset> <frame src="top.html" name="main" scrolling="auto" > </frameset> <body>~</body> </frameset> </html> 【menu.html】 <html><head>~</head> <body> <table id="left" cellpadding="0" cellspacing="0"> <h2>サイト名</h2> <tr><td><img src=".gif" width="80" height="47"></td></tr> <tr><td><img src=".gif" width="80" height="4"></td><tr> <tr><td><a href="top.html" target="main"><img src=".gif" width="80" height="16" border="0"></a></td></tr> <tr><td><img src=".gif" width="80" height="4"></td></tr> <tr><td><a href="top.html" target="main"><img src=".gif" width="80" height="16" border="0"></a></td></tr> <tr><td><img src=".gif" width="80" height="4"></td></tr> <tr><td><a href="top.html" target="main"><img src=".gif" width="80" height="16" border="0"></a></td></tr> <tr><td><img src=".gif" width="80" height="4"></td></tr> <tr><td><a href="" target="main"><img src=".gif" width="80" height="16" border="0"></a></td></tr> <tr><td><img src=".gif" width="80" height="4"></td></tr> <tr><td><img src=".gif" width="80" height="16"></td></tr> </table> </body> </html> 【スタイルシート】 ~ #left{ width:180px; text-align:right; vertical-align:bottom; }

    • ベストアンサー
    • HTML