window指定で困っています。

WebサイトにUPしたいWebページがフレーム転送を使っているため、
ローカルやテスト用サーバの環境とフレームツリーが変わってしまいます。

その環境でツリー最下層から2つ上のFrameのform内容を読み書きしたいのです。

できればローカルにフレーム転送環境を作りたくないのですが、
良い方法はないでしょうか。

ローカルでは top.aaa.bbb.ccc.ddd の位置から
top.aaa.bbb.document.forms.elements.value ="aaa";
とアクセス可能。

しかしUP後は top.xxx.aaa.bbb.ccc.ddd の位置から
top.xxx.aaa.bbb.document.forms.elements.value ="aaa";
にアクセスすることになる。

フレーム分割をまとめればよさそうですが、parentのフォームに
データを保管しておいて、フレーム分割を縦横で変えたいので…

parent.parent.document.forms...とやってみましたがダメでした。

なんかクイズみたいになってしまいますが、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

フレームを入れ子にしているのですよね?


その場合、topは最も上の階層のフレームのことですが、
parentはひとつ上の階層のフレームを指します。

で、parent.parentとやってみてダメでしたか?その際の環境は
どのようなものでしょうか。それで出来ると思うのですが。

ちょうどそういうツールがありますのでよろしければお使いく
ださい。

参考URL:http://shingo.org/domt122hta.zip

この回答への補足

すみません、早とちりでした。
他のバグの為parent.parent~がオブジェクトとして認識されていませんでした。

書き込み後すぐ気づいたのですが、回答者がいないと質問を締め切れなかったもので(^^;
お手数をかけました。

補足日時:2001/01/18 15:13
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qvar aaa=bbb?cccl:ddd; の意味を教えて下さい。

タイトルそのままです。
function内にある
var aaa=bbb?cccl:ddd;
の意味を教えて下さいませ。

Aベストアンサー

がると申します。
これは、三項演算子と呼ばれるものになります。
基本的には
式 ? trueの値 : falseの値
という形を取ります。
上述ですと、
もしbbbが判定式としてtrueを取るのならaaaにccclを、falseになるのならdddを代入する
という感じになるかと思います。

Qネスケではdocument.main.日本語.valueは絶対だめ?

下記のように日本語のテキストボックスの場合、ネスケではエラーになってしまいますが、日本語のままでできる裏技はないものでしょうね・・・。

function zipsearch()
{
n = document.main.郵便番号.value;
subWin = window.open('zipsearch.cgi?zip=' + n ,"zipsearch","width=300,height=100")
}

Aベストアンサー

それ以前にNetscape以外でも日本語は使わない方がいいですよ。
ただでさえ日本語処理にはバグや妙な仕様が多いですから。

どうしても日本語を使いたいのなら、属性名ではなく、値の扱いをすればなんとかなるのではないでしょうか。
n = document.main["郵便番号"].value;
ただ、どちらにせよこのCGIにGETメソッドで渡す動作はうまくいかないと思います。
nの内容がURLエンコードされませんので。

このエンコードに関することは、ブラウザに任せるのが最良、というのが私の意見です。
JavaScriptでもescape()やencodeURI()等の一見使えそうな関数がありますが、
実は文字コードの問題でうまく動作しません。
なので、既存のフォームと異なる動作を実現する場合にはFORMを動的に生成する、等の手法が必要になります。
単にFORMを新しいページにsubmitしたいのであれば、HTMLの記述で
<FORM target="_blank ...>
とすればOKです。

QChromeの document.getElementById(...).click() が無効

下記のサンプルプログラムが期待した動作をしません。

〇期待している動作
button1 をクリックすると、2つのタブが表示される。

〇IEとChrome(バージョン 43.0.2357.130 m)
IEでは、期待している動作をしますが、Chromeでは、button1のタブしか表示されません。

対応方法を、ご存知の方は教えて下さい。

<html>
<body>

<form method="post" target='_blank' name="FORM1">
<input type="submit" name='button1' id='button1' value="button1" onclick='javascript:func1()'>
</form>

<form method="post" target='_blank' name="FORM2">
<input type="submit" name='button2' id='button2' value="button2">
</form>

<script type='text/javascript'>
function func1(){
// alert('button1!') ;
document.getElementById('button2').click();
}
</script>

</body>
</html>

<?php
var_dump($_POST) ;
?>

下記のサンプルプログラムが期待した動作をしません。

〇期待している動作
button1 をクリックすると、2つのタブが表示される。

〇IEとChrome(バージョン 43.0.2357.130 m)
IEでは、期待している動作をしますが、Chromeでは、button1のタブしか表示されません。

対応方法を、ご存知の方は教えて下さい。

<html>
<body>

<form method="post" target='_blank' name="FORM1">
<input type="submit" name='button1' id='button1' value="button1" onclick='javascript:func1()'>
</form>

<...続きを読む

Aベストアンサー

>逃げ手が他に無いか

ポップアップブロックさえ回避できるのであれば
(特定のサイトでユーザーに任意にブロック解除させることができるなら)
setTimeoutすればいけそうですけどね

function func1(){
setTimeout(function(){document.getElementById('button2').click();},0);
}

Qdocument.getElementById( ).style.displayについて

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.display = 'inherit';
document.getElementById(Cid).style.display = 'inherit';
document.getElementById(Did).style.display = 'none';
document.getElementById(Eid).style.display = 'none';
}
★スタイルシートの内容
#page {width: 910px;}
#ai{height: 33px;display:inherit;}
#kaki{height: 33px;display:none;}
#img_ai{margin: 0px;float: left;display:none;}
#img_kaki{margin: 0px;float: left;display:inherit;}

「document.getElementById( ).style.display」を使って
スタイルシートを書き換え、画像とテキストの表示替えをしています。
Firefoxでは正常に動作するのですが、
IEでは「displayプロパティ」を取得できずに動作しません。
htmlは以下のとおりです。
どなたかお分かりになる方、教えていただけないでしょうか?
よろしくお願いします。

★javascriptの内容
function toggle(Aid,Bid,Cid,Did,Eid) {
document.getElementById(Aid).style.display = 'none';
document.getElementById(Bid).style.displ...続きを読む

Aベストアンサー

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit';  ※
  document.getElementById(Cid).style.display = 'inherit';
  document.getElementById(Did).style.display = 'none';
  document.getElementById(Eid).style.display = 'none';
}

現在は、※の箇所でエラーが発生します。
試みに、一行目の'none'を'xxxx'に変えると、そこでエラーが発生します。
これは、代入値が受付可能なものでないとエラーとなる事を示しています。

ちなみに以下のMSDNのライブラリでも、displayプロパティに対する設定値として'inherit'は
出てきません。
(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/css/reference/css_ref_attributes_entry.asp)

一方で、FirefoxのCSS対応表
(http://f57.aaa.livedoor.jp/~motohiko/CSS/css2.1.html)
「'run-in', 'inline-block', 'inline-table' には非対応。」とありますが、'inherit'は対応している
ようです。

代替手段はありそうですが、質問者の方が'inherit'をどのような意図で使っているかわかりかねるので
その点はお答えかねます。

いろいろ調べてみましたが、結論として
「inherit」をIE系(IE5.x、IE6)がサポートしていないのが原因の様です。

「displayプロパティの値を取得できませんでした。引数が不正です。」
のメッセージは、~~.style.displayのプロパティが参照できない事が原因ではなく、右辺値'inherit'が
受け付けられない事によって起こっています。

function toggle(Aid,Bid,Cid,Did,Eid) {
  document.getElementById(Aid).style.display = 'none';
  document.getElementById(Bid).style.display = 'inherit'...続きを読む

Qif(document.all && navigator.appVersion.indexOf('Mac')!=-1)returnの意味

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ、で、falseが返されるのでしょうか?
しかし、そもそもnavigatorオブジェクトはブラウザの種類のことではないのか?と混乱してしまっています。
また、document.allがどのような役割を果たしているのかも分かりません。なぜここでdocument.allが出てくるのでしょうか?

どなたか分かる方いらっしゃいましたら、ご教授宜しくお願いします。

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ...続きを読む

Aベストアンサー

「document.all」は昔はIEにだけ存在するオブジェクトだったのでIEであるかどうかの判定に使われました。

今ではOperaやNetscape等でもIEへの互換の為に存在するのでIEかどうかの判定に使われる事は減ってきています。
IEであるかどうかの判定ではなく、純粋にdocument.allが在る(使える)かという判定にはもちろん使用されますが。

「navigator.appVersion」は確かにブラウザの種類なんですが、実際にはOS名も含まれていたりすのでOSの判定にも使われたりします。

また、 != -1 というのは indexOf関数の結果が 0~なら文字列が見つかったという意味(真偽ではなく、見つかった位置を返す関数)になるのでこういう比較式を使用しています。
(1でなかったらMacユーザという解釈はちょっと違います。)

参考URL:http://www.openspc2.org/JavaScript/ref/


人気Q&Aランキング

おすすめ情報