• 締切済み

フレーム復元をさせない!事は可能ですか?

とっても初心者です。 これまで、既存ページ(こちらでは変更不可)のフレームのメインにだけリンクを貼り、別のメニューを上につけてページを表示していました。 こちら側は、CSSとHTMLで作ったページです。 ところが、先日、メインコンテンツの方に下記のようなjava scriptが追加され、これまでのままだと、メニューがダブルで表示されてしまうようになってしまいました。 もし、こちら側のページの記述で、「フレーム復元」を解除できる事が可能でしたら、お教えいただけないでしょうか? 宜しくお願いします。 //-------------------- // フレーム復元 //-------------------- if(navigator.userAgent.indexOf('Opera') == -1) { if (self.name != 'audio_main' && self.name != 'visual_main' && self.name != 'shop_main') { document.open(); document.write('\ <html>\ <head />\ <frameset rows="100,*" frameborder="NO" border="0" framespacing="0">\ <frame src="http://xxxx.html" name="visual_top_frame" scrolling="NO" noresize>\ <frame src="" name="visual_main">\ </frameset>\ </head>\ '); document.close(); window.open(location.href, 'visual_main'); } }

みんなの回答

回答No.3

No.2のfujillin氏が仰っている, > 仮に既存のフレームセットのソースを変更しても良いのなら、「メイン」とおっしゃっているフレーム名をスクリプトではじいているnameにしてしまえば実行されなくなると思われます。 とは, 「iframeに指定してるname属性を "audio_main", "visual_main", "shop_main" のいずれかにすると, スクリプトは例外として記述されているそれらにより中断され実行されない」 ということです. 質問者様の最初の質問文では iframe なのか frameset なのか区別がつかない(どちらかといえばframesetに取れる)のでフレームセットと仰られたのだと思われます. > これまで、既存ページ(こちらでは変更不可)のフレームのメインにだけリンクを貼り、別のメニューを上につけてページを表示していました。 私が勘違いしているかもしれないから聞いておきますが, 他所のサイトのコンテンツを自分のサイトのフレームに表示させてるのですか?

shihorinn
質問者

補足

mazimekko3様、 ご回答、ありがとうございます。 最後のご質問なのですが、 >他所のサイトのコンテンツを自分のサイトのフレームに表示させてるのですか? 実際、そういう事になると思います。 fujillin様のご回答の下に補足で書かせていただいたのですが、同じ会社様(A社)のサイト制作なのですが、既に存在する膨大な量の作品情報ページを流用して、別バージョンで女性向けに特化したレイアウトのページを作成しようとしています。 既に存在するA社の作品情報ページがリニューアルされ、そちらのコードを元に戻してもらう事は、実質不可能なんです。 やはり、こちら側で操作する事は難しいようですね。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

質問者様がどこまで変更が可能なのかが不明なので、どのような対処法が可能なのか判断できません。 >既存ページ(こちらでは変更不可) ということで、既存のページは一切変更できなくて、 >下記のようなjava scriptが追加され、 これは変更可能なのでしょうか?(不可とは書いてないので) 可能ならば、無効にしてしまうのが一番簡単。 スクリプトもいじれないとすると、質問者様の裁量で変更可能なものは何が残っているでしょうか? 既存のソースもスクリプトも一切いじれないとなると、相当に難しいかと… (というか、何が変更可能なのか不明) 仮に既存のフレームセットのソースを変更しても良いのなら、「メイン」とおっしゃっているフレーム名をスクリプトではじいているnameにしてしまえば実行されなくなると思われます。 あるいは質問ソース中の http://xxxx.html で呼び出されている xxxx.htmlにjavascriptを追加して、フーム構成を調べてメニューがダブっていたら、解除するようにしてあげるとかでも対処可能かと思います。 いずれにしろ、既存ソースまたは追加されたスクリプトのどこかを変更するのが簡単そうですが… 

shihorinn
質問者

補足

お返事が遅くなりなり申し訳ありません。 また、説明が分かりづらく、重ね重ね申し訳ありません。 私の方で作成しているのは、商品紹介サイト(A社全商品)の一部ジャンルを抜き出したサイト(A社女性向け商品)です。 コードを書きますと… <!-- HeaderArea --> <div id="frame_header"> ~抜粋~ </div> <!-- HeaderAreaEnd --> <!-- ContentsArea --> <div id="frame_content"> <iframe frameborder="0" name="xxxx" src="http://xxxx.html" > </iframe> </div> <!-- ContentsAreaEnd --> <!-- FooterArea --> ~抜粋~ <!-- FooterAreaEnd --> ここで呼び出していたhttp://xxxx.htmlは、商品紹介サイト(A社全商品)の全体に影響が出るので、このページに手を加える事はできません。 http://xxxx.htmlは、フレーム除外した個別の説明ページのアドレスですが、最初の質問時のようなスクリプトが追加され、商品紹介サイト(A社全商品)のフレームが自動で復活されるようになってしまいました。 もし、私の方で作成している=一部ジャンルを抜き出したサイト(A社女性向け商品)のページの書き方で、追加されたフレーム復活のスクリプトを解除できる方法があれば、教えていただきたいと思います。 どうぞ宜しくお願い致します。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

だめかもしれませんが、 リンクする時 <a href="http://xxxx.html" target="_parent">XXX</a> としてみる、あるいは <a href="http://xxxx.html" target="fugafuga">XXX</a> みたいに別の名前を付けてみる。 高度ないんちきとしては、 Operaははじいているみたいだから、 userAgentをoperaに偽装する。

shihorinn
質問者

お礼

yyr446様、 ご回答ありがとうございます。 早速、targetを指定する方法を両方とも試してみたのですが、うまくいきませんでした。 高度ないんちきの方は、 すいません、初心者のため、トライできませんでした。

関連するQ&A

  • フレームページが崩れる。。。

    フレームページを使っているのですが、見る人によってはページの一部が切れて 見えない部分もあるらしいです。ブラウザの大きさを変えてもレイアウトだけは 崩さない為には、どこにどんなタグが必要なんですか? 現在のフレームの親ページのソースです。 <FRAMESET rows="30%,70%" frameborder="NO" border="0"> <FRAME src="ue.html" scrolling="NO" noresize> <FRAMESET cols="20%,80%" frameborder="NO" border="0"> <FRAME src="side.html" scrolling="NO" name="menu" noresize> <FRAME src="main.html" name="main" noresize> </FRAMESET> <NOFRAMES>

    • ベストアンサー
    • HTML
  • フレームセットができない・・

    フレーム構造のページを直に呼び出すためのリンクを作ろうとしています。 要は、フレームがセットされた状態で呼び出すということです。 http://www.ほげ.net/ほげ/ほげ/021107_ほげ.html    メイン部分のURLがこうだとして。 http://www.ほげ.net/ほげ/ほげ/021107_ほげ2.html この場合は、同じディレクトリーにソースを入れ込みます。ファイル名は 021107_ほげ2.htmlです。そうすれば、例えばメルマガなどで上記URLを入れ込 めば、フレームセット状態でページが表示されるはずなんですが メインの文章の右側をスクロールさせます。で、以下のようなソースを作った のですがどうしてもメインのhtmlが出てきてくれません。 □□□□□□□□□□□□□□□□□□□□□□□               header.html □□□□□□□□□□□□□□□□□□□□□□□   □   □ ※   □ ス   □               ク menu.html  □               ロ   □               ル   □ ****.html   ※ ------------------------------------------------ </HEAD> <frameset rows="90,*" border="0" framespacing="0" frameborder="NO"> <frame src="../../header.html" name="header" noresize scrolling="NO"> <frame src="../../menu.html" name="left" noresize scrolling="NO"> <FRAME SRC="*****.html" NAME="main" SCROLLING=YES> <NOFRAMES> <BODY> このページを見るのにはフレームの表示ができるブラウザが必要です。 </BODY> </NOFRAMES> </FRAMESET> </HTML>

    • ベストアンサー
    • HTML
  • フレームがきれいになりません。

    下記のように上と、左右で3フレームを分けて表示していますが、 <frameset rows="60,*" border="0" frameborder="0" framespancing="0"> <frame src="title.html" name="head" scrolling="no"> <frameset cols="130,*" border="0" frameborder="0" framespancing="0"> <frame src="menu.html" name="menu" scrolling="auto"> <frame src="cont.html" name="main" scrolling="auto"> </frameset> </frameset> *で表示しても、左のフレームの下にスクロールバーが出てしまいます。どのようにすれば直るのか初心者のため分からなくて困っています。もし分かる方是非教えてください。 現状はこんな感じになってしまっています↓ http://www.twinklecloset.com/index.html

  • フレームページのソース

    こんにちは。 フレームページのソースについて質問させてください。 <FRAMESET COLS="20%,*" BORDER=0> <FRAME NAME="menu" SRC="menu.html" scrolling="auto" NORESIZE> <FRAME NAME="main" SRC="main.html" scrolling="auto" NORESIZE> </FRAMESET> これを どこに入れるかですが、私が知っているソースの常識は、 1、</HEAD>のすぐ後には必ず<BODY> 2、</HTML> のすぐ前は必ず</BODY> です。これを守ってソースを書き込んでみると、 <HTML> <HEAD> <FRAMESET COLS="20%,*" BORDER=0> <FRAME NAME="menu" SRC="menu.html" scrolling="auto" NORESIZE> <FRAME NAME="main" SRC="main.html" scrolling="auto" NORESIZE> </FRAMESET> <TITLE>タイトル</TITLE> </HEAD> <BODY> <NOFRAMES> <P>サイトの説明</P> </NOFRAMES> </BODY> </HTML> このようになると思うのですが、 <HEAD>と</HEAD>に入れ込んでいいのでしょうか。 </HEAD>の下に持ってこようとすると 1、2、の常識に当てはまらなくなったりするのです。 他のサイトさんのソースを見てみますと 皆さん</HEAD>下に入れていらっしゃるようです。 トップページに使用しているのでとても不安です。 どなたか、自信のある方、教えていただけないでしょうか。

    • ベストアンサー
    • HTML
  • フレーム分割した全体をスクロールバーで動かせないでしょうか?

    フレーム分割したホームページをスクロールバーで上下したいのですが、書き方が分からなくて困っています。お分かりになる方がいらっしゃいましたら、教えて下さい。 尚、当方htmlでようやく簡単なページが作れるレベルです。宜しくお願い申し上げます。 尚、フレームの割り方が違う時はそちらもお教え下さいませ。 <HTML><HEAD> <META Http-Equiv="Content-Type" Content="text/html;charset=Shift_JIS"> <TITLE>フレーム分割</TITLE></HEAD> <FRAMESET Rows="195,*,50" Frameborder="1"> <Frameset cols="10%,80%,10%" Frameborder="1"> <FRAME Src="./frame1.html" name="f1" Scrolling="no"> <FRAME Src="./frame2.html" name="f2" Scrolling="no"> <FRAME Src="./frame1.html" name="f3" Scrolling="no"> </Frameset> <Frameset cols="10%,20%,60%,10%" Frameborder="1"> <FRAME Src="./frame1.html" name="f4"> <FRAME Src="./f001.html" name="f5" scrolling="no"> <FRAME Src="./f002.html" name="f6" scrolling="no"> <FRAME Src="./frame1.html" name="f7"> </Frameset> <FRAME Src="./end.html" name="f8" scrolling="no"> <NOFRAMES>恐れ入りますがフレーム対応ブラウザでご覧下さい</NOFRAMES> </FRAMESET> </HTML>

    • ベストアンサー
    • HTML
  • 直フレーム内ページにきた場合とトップからきた場合の「戻る」について

    以前「複数フレーム内リンク」でお世話になりました。今度も煮詰まってしまいました。 ・トップ→コーナー→末端ページという構成 ・「上部・左・メイン」の3つフレームを使用している状況です。 検索でフレーム内の末端ページに飛んできた人に「戻る」ボタンでコーナーのindexにフレーム有りの状態で表示したいのです。 只今、上記については作動できるのですが、逆にトップ→コーナー→末端ページと通常の流れできた人が、その「戻る」を押すと3つのフレームの中のメインフレームにまた3つのフレームが表示されてしまいます。 戻るに「target='_top'」や「target='_parent'」とつけてもいきません。といいますか、付け方がわかりません。 ソースは↓ <script language="JavaScript"> function framepage(filename) { document.open(); document.write("<frameset rows='80,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='topFrame' src='上部.html' scrolling='NO' noresize>"); document.write("<frameset cols='152,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='leftFrame' src='左.html' scrolling='NO' noresize>"); document.write("<frame name='main' src=" + filename + ">"); document.write("</frameset>"); document.write("</frameset>"); document.close(); } </script> bodyの方は↓ <a href="javascript:framepage('../index.html')">[戻る]</a> となっています。 どなたか宜しくお願いします!

  • HPのフレーム

    境界線の色を変えて、細くしたいのですが、 色は変えられたのですが、細くすることができません。 今フレームを呼び出す?ために 『<FRAMESET rows="100,*"> <FRAME src="frame-ue.htm" name="ue">        <FRAMESET cols="100,*"> <FRAME src="frame-hidari.htm" name="hidari"> <FRAME src="frame-main.htm" name="main"> </FRAMESET> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>』 としていて、色を変えるのに、 『<FRAMESET rows="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-ue.htm" NAME="ue"> <FRAMESET COLS="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-hidari.htm" NAME="hidari"> <FRAME SRC="frame-main.htm" NAME="main">』 こうしています。 どうすれば細くできますか? もう1つこうゆうタグを使えばいいのでしょうか? わかる方、よろしえれば教えてください。

  • frameとJavaScriptの共存

    <html><head><title> INDEX.HTML </title></head> <frameset rows="70%,*"><frame src="./main.html" name="MAIN"><frame src="./menu.html" name="MENU"></frameset></html> の中に下記のJavaScriptを埋め込みたいのですが どうすればいいのでしょうか? <SCRIPT Language="JavaScript"> <!-- document.write("<img src='http:/xxx/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> Java Scriptを埋め込んだらフレームが正常に働かなくなりました。 どのようにすればいいのでしょうか?アクセス解析なのでindex.html に設置したいのですがいいアドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームがばらばらに・・・

    ホームページを上下二つのフレームに分けて作ったのですが、 ウィンドウを大きくすると二つが離れてしまいます。 <frameset rows="430,88" frameborder="NO" border="0" framespacing="0"> <frame src="top_frame_main.html" name="mainFrame" marginheight=0> <frame src="top_frame_navi.html" name="naviFrame" marginheight=0> </frameset> 上の二つのフレームが同じ距離を常に保つようにするには どうすればよいでしょうか?教えてください!

    • ベストアンサー
    • HTML
  • フレーム内から親ウィンドウにロケーション?

    こんにちは。 どなたかよい解決策をご存知でしたら教えてください。 フレームで切られたウィンドウの一部のフレームから、PHP(ver.3)でページをロケーションで呼ぶと、そのフレームの中に呼んだページが表示されてしまいます。 JavaScriptは使わずに、親ウィンドウにページを表示させることは出来ないでしょうか、、、 よろしくお願いいたします。 以下はイメージサンプルです。 ■frame.html <html> <head><title>フレームセット</title></head> <frameset cols="100,*" frameborder="NO" border="0" framespacing="0"> <frameset name="left" rows="60,*" frameborder="NO" border="0" framespacing="0"> <frame name="a" noresize scrolling="NO" src="./test1.html"> <frame name="b" noresize src="./test2.html"> </frameset> <frameset name="right" rows="44,*" frameborder="NO" border="0" framespacing="0"> <frame name="c" noresize scrolling="NO" src="./test3.html"> <frame name="d" noresize src="./locat.php3"> </frameset> <noframes> このページはフレーム対応のブラウザでご覧ください。 </noframes> </frameset> </html> ■locat.php3 <? header("Location: ./test4.html"); exit(); ?> ■test1.html <html> <head><title>テスト1</title></head> <body> 左上 </body> </html> ■test2.html <html> <head><title>テスト2</title></head> <body> 左下 </body> </html> ■test3.html <html> <head><title>テスト3</title></head> <body> 右上 </body> </html> ■test4.html <html> <head><title>テスト4</title></head> <body> このページをウィンドウ全画面に表示 </body> </html>

    • 締切済み
    • PHP

専門家に質問してみよう