あるサンプルjavascriptを見ていて何をしているのかよく分からなかった箇所について教えてほしいと思います。

コードは下記になります。
親画面→子画面を呼び出して、子画面のボタンを押下すると親画面のメインフレームを更新します。
下記は子画面のボタン押下時のjavascriptに記述されています。

opener.parament.document.all.tags("frameset")[cnt-1].setAttribute("rows", "*,100%")
※ cntはframesetの数が設定されているようでした。
  フレームは4つあり、上下左右の構成です。

自分なりに調べた感じでは親画面の一番下のフレームの幅を変更するような記述にみえました。
ただ"*,100%"の記述が何を意味するのかがよくわかりません。幅といっても画面自体なのか、他のフレームとの幅の比率なのか・・・。

実際に色々値を変えて動かしてみたのですが、何が変わっているのかよくわかりませんでした。

もしよろしければどなたか教えて頂けないでしょうか。

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

A 回答 (2件)

cntはフレームの数ではなくframeset数じゃないかなと思いますが・・・


framesetというのは、各フレームを包括するタグです。
<frameset>
<frame src="frame1.html" name="frame1">
<frame src="frame2.html" name="frame2">
</frameset>
やじるしこんな感じですね。

つまり、opener.parament.document.all.tags("frameset")[cnt-1]は
開いたページの中にある最期のフレームセットではないかなと推測します。
[cnt-1]はインデックス番号です。インデックスは0からカウントされるので、HTML上一番最後に出現するframesetのインデックス番号は[framesetの数-1]になるわけです。

で、本題の.setAttribute("rows", "*,100%")についてですが、要はこのframeset[cnt-1]の属性「rows」に「*,100%」を設定するという意味です。
つまりこれがセットされたタグを書いてみると、上記のタグが

<frameset rows="*,100%">
<frame src="frame1.html" name="frame1">
<frame src="frame2.html" name="frame2">
</frameset>

と言うことです。
こう書いた場合、frame1とframe2は縦並びになり、1段目のframe1の高さは余った高さ分になり、frame2の高さは100%になることになります。これはframesetの基本的なHTMLの記述方法なのでHTMLのリファレンスなど見ればすぐに分かると思います。

ご参考まで。
    • good
    • 0
この回答へのお礼

お返事遅れてすみません。
なるほどフレームの数ではないのですね。とてもよくわかりました。
有難うございました。

お礼日時:2011/04/14 23:36

「*」はブラウザに計算させるような意味合いで、ウィンドウサイズと指定したサイズから決まってくる(残りの)サイズなどになります。


ご質問の例の場合は、rows属性の値を "*,100%" にしています。

詳しくは↓を
 http://w3g.jp/xhtml/dic/frameset
    • good
    • 0
この回答へのお礼

お返事遅れてすみません。
お答え有難うございます。サイトもあわせてみてみます。

お礼日時:2011/04/14 23:35

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

QIE8β2のjscript.dllはどこにあるでしょうか?

Sleipnirでjavaの表示が速くなると聞いて
IE8β2のjscriptを利用したいのですが
落としたIE8-WindowsXP-x86-JPN.exeファイルを
lachaで解凍してもjscript.dllが見つかりません。
私がDLしたファイルが元々違うのか解凍の方法に問題があるのでしょうか?

Aベストアンサー

『Microsoft ダウンロードセンター:Windows XP 用 Windows Internet Explorer 8 リリース候補 1』
http://www.microsoft.com/downloads/details.aspx?FamilyID=821025fe-9adf-487e-b58c-561b7c8c25db&DisplayLang=ja

↑のことでしたら、普通に解凍すれば、直下のフォルダに"jscript.dll"がありますが・・・。
jscript.dll version:5.8.6001.18372 2009年01月15日、02:03:58

Qjavascriptで .jpg , .jpeg , .pdfファイルであることを判定

HTMLのフォーム文で、ファイルをアップロードしてもらい、それが.jpg, .jpeg , .pdf ファイルであった場合のみ、アップロードできるような仕組みをJavascriptを利用して作成中ですが、うまく行きません

(ソース: test.php)
--ここから--
<html></body>
<SCRIPT language="JavaScript">
function mailSubmit(){
if (document.form_mail.upfile.value == "" ) {
alert (" ファイルを選択してください。");
flag = 1;
return;
} else {
if (document.form_mail.upfile.value.match(/[jpg]$/i)||(/[pdf]$/i)){
alert ("添付ファイルはJPEG,PDFに限ります");
flag = 1;
// return;
}
}
if(flag){
return false;
} else {
document.form_mail.submit();
return true;
}
}
</script>

<table>
<!-- === FORMここから === -->
<!-- <FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data> -->
<FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data onSubmit="return mailSubmit()">
ファイル選択<INPUT TYPE=file NAME="upfile" SIZE=50 VALUE=\"$upfile\">
<br>
<INPUT TYPE="button" VALUE=" 送信 " onClick=" javascript:mailSubmit() ">
<INPUT TYPE="button" VALUE=" キャンセル " onClick="javascript:history.back()">
</FORM></body>
</html>
--ここまで--
JPG,JPEG,またはPDFファイルのみにアップロードの許可を与えるにはどうしたらいいでしょうか、(大文字・小文字は不問とします)ご回答いただければ幸いです。

HTMLのフォーム文で、ファイルをアップロードしてもらい、それが.jpg, .jpeg , .pdf ファイルであった場合のみ、アップロードできるような仕組みをJavascriptを利用して作成中ですが、うまく行きません

(ソース: test.php)
--ここから--
<html></body>
<SCRIPT language="JavaScript">
function mailSubmit(){
if (document.form_mail.upfile.value == "" ) {
alert (" ファイルを選択してください。");
flag = 1;
return;
} else {
if (document.form_mail.upfile.value.match(/...続きを読む

Aベストアンサー

おはようございます。
> /[jpg]$/i
[jpg]は文字クラスになるので、括弧内の文字の集合、すなわちjかpかgが最後についているか、という事になってしまいます。ですから、
/(jpe*g|pdf)$/i
というような方法である程度チェック可能かと思います。

当然、拡張子を偽装したファイルのアップロードも可能としてしまいますので、出来ればPHP側でファイルタイプ(MIME)のチェックもした方が良いかと思います。ファイルタイプは
$_FILES['upfile']['type']
で取得出来ます。通常、jpegはimage/jpeg、pdfはapplication/pdf、application/x-pdfあたりですね。

JavaScriptだけの判断ではとても危険です(いくらでも偽装出来る)ので、PHP側で再チェックをする事をお進めします。

参考まで。

QExcel2003VBAからIE64bitを制御

Excel2003 VBAから、
CreateObject("InternetExplorer.application")でIEを起動できますが、
XP64bitの場合、IE32bitが起動します。

XP64bitには、IEが32bit版と64bit版が入っています。

Excel2003 VBAから、IE64bitを起動できるのでしょうか?

Excel2003 VBAのVB6.0は32bitなので、
そもそも64bitソフトを制御できないものなのでしょうか?

IE64bitを起動させるだけなら、Shellとフルパスでできますが、
objIEにオブジェクトとして格納できないので、制御ができません。

ヒントでも構いませんので、ご教授いただけると幸いです。

Aベストアンサー

>Excel2003 VBAのVB6.0は32bitなので、そもそも64bitソフトを制御できないものなのでしょうか?

質問文としては、OSが、64bit上動かそうとしているのだろうかとは思いますが、こちらは、そういう環境にありませんので、よく分かりません。両方ともIEインスタンスを生成出来るとは思えません。

VBAからでは、IEは、参照設定の中の、Microsoft Internet Controls で、タイプライブラリの、ieframe.dll を参照しています。これは、オートメーション・オブジェクトを呼び出せることを意味します。また、呼び出せないライブラリの場合は、クラスIDから、インスタンスを作れば呼び出せるはずです。

たぶん、OLE Viewer は、フリーツールとしてインターネットでも手に入るとは思いますが、それで、64bit のMicrosoft Internet Controlsのタイプライブラリが見つかれば、オートメーション・オブジェクトが生成することは可能だとは思います。

クラスIDはレジストリから探しますから、CreateObject("New:"&クラスID) ...クラスID(String型で{}のない部分)ただし、探してみなければ分かりません。

しかし、もし、OSの32bit から、64bitのIEを呼び出すという意味だとすれば、レジストリ自体が別ですから、期待出来ないと思います。

>Excel2003 VBAのVB6.0は32bitなので、そもそも64bitソフトを制御できないものなのでしょうか?

質問文としては、OSが、64bit上動かそうとしているのだろうかとは思いますが、こちらは、そういう環境にありませんので、よく分かりません。両方ともIEインスタンスを生成出来るとは思えません。

VBAからでは、IEは、参照設定の中の、Microsoft Internet Controls で、タイプライブラリの、ieframe.dll を参照しています。これは、オートメーション・オブジェクトを呼び出せることを意味します。また、呼び出せない...続きを読む

QjavaScript(IE6,7,8での動作の違い)

javaScriptを実行する上で、IE6で出来ていた事でIE7,8で出来なくなってしまった事があればお教えいただけませんか?
(例えば、***メソッドが使えなくなったとか)
よろしくお願いします。
※ちなみにOSとjavaScriptのバージョンは以下の通りです。
 OS:WindowsXP
 javaScript:1.3

Aベストアンサー

設定次第で有効に出来るものもありますが,
IE7のリリースノートには
http://msdn.microsoft.com/en-us/ie/aa740486.aspx
1.ActiveXコントロールが無効化されている
2.DirectAnimationのDLLが取り除かれている
select要素がwindowlessな要素となったことでz-orderの扱いに差が出る
3.dialogWidthやdialogHeightプロパティの挙動の変更によりダイアログが大きめのサイズで開かれる
4.window.promptがブロックされるようにデフォルト設定が変更された。
5.window.external.ImportExportFavoritesが削除された。
6.window.statusやwindow.defaultstatusがブロックされるようデフォルト設定が変更された。

・・・などの変更が載っています(他にもある)

IE7とIE8の後方互換モードの違いやIE8標準モードおよびIE8後方互換モードの差がIEBlogで紹介されてます
http://blogs.msdn.com/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx
その他,IE8ではデフォルトでファイルアップロード用のinput要素のvalueプロパティを取得できなくなったりしています。
http://blogs.msdn.com/ie/archive/2009/03/20/rtm-platform-changes.aspx

(#訳すの面倒なので俺は解説しませんが)

設定次第で有効に出来るものもありますが,
IE7のリリースノートには
http://msdn.microsoft.com/en-us/ie/aa740486.aspx
1.ActiveXコントロールが無効化されている
2.DirectAnimationのDLLが取り除かれている
select要素がwindowlessな要素となったことでz-orderの扱いに差が出る
3.dialogWidthやdialogHeightプロパティの挙動の変更によりダイアログが大きめのサイズで開かれる
4.window.promptがブロックされるようにデフォルト設定が変更された。
5.window.external.ImportExportFavoritesが削除された...続きを読む

QIEの制御

VB6でプログラミングしています。
IEの戻るボタンをVBから実行させるには、
どうすれば、よいのでしょうか?

IEは、ひとつしか立ち上がってなく、かつ、アクティブになっているので、細かい制御は必要ありません。

Aベストアンサー

ここにInternetExplorer.Application
の仕様があるようなので、それっぽいのから
さらにサンプルがないか検索エンジンで
引っ掛ければみつかるのではないかと
思います。

参考URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/ie.htm

Qjavascript:(function(q, a, z) { q[a]("f")[z] = Ma

javascript:(function(q, a, z) { q[a]("f")[z] = Math.floor(Math.random()*999999);document.forms[0].submit(); })(document, "getElementById" ,"value");

このブックマークレットをsetIntervalで動かしたいのですがどう書き換えればいいのかよくわかりません。

調べたらstartfncやsetInterval(ここに何かを指定?,ミリ秒);を付ければ可能なことがわかったのですがうまくいきません。
初心者です。何卒宜しくお願いします

Aベストアンサー

こんにちは

>setIntervalで動かしたいのですが~~
setIntervalは以下のような構文になります。
 intervalID = window.setInterval(func, delay);
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval

ご提示のスクリプトは即時関数の形式をとっていますので、さらに関数化(匿名関数でも可)して上記構文のfuncに当てはめれば良いことになります。
http://qiita.com/katsukii/items/cfe9fd968ba0db603b1e
スクリプトは概ね以下の2行と等価ですので、こちらを関数化しても同じですね。
(フォームに乱数を設定しサブミットする)
 document.getElementById("f")..value = Math.floor(Math.random()*999999);
 document.forms[0].submit();


ところで、ご提示のスクリプトではフォームをサブミットするようになっていますが、通常はサブミットするとページが遷移してしまうので、setIntervalで繰り返すことは難しいはずです。
まぁ、target属性が設定されていたりすれば別ですけれど・・・
使い方がいまいちよくわかりませんが、文法的には
 setInterval( function(){
  ~~~
}, dalay);
とするか、
 setInterval(hoge, dalay);
 function hoge(){
  ~~~
 }
のようにすることで、実行が可能なはずです。(繰り返しできる環境であれば・・・)

こんにちは

>setIntervalで動かしたいのですが~~
setIntervalは以下のような構文になります。
 intervalID = window.setInterval(func, delay);
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval

ご提示のスクリプトは即時関数の形式をとっていますので、さらに関数化(匿名関数でも可)して上記構文のfuncに当てはめれば良いことになります。
http://qiita.com/katsukii/items/cfe9fd968ba0db603b1e
スクリプトは概ね以下の2行と等価ですので、こちらを関数化しても同じですね。
(フォ...続きを読む

QPerlでIE6を制御する方法はありますか?

Perlに詳しいかたで、もしIE6を制御する方法をご存知のかたがいらっしゃい
ましたら教えてください。

<環境>
自宅のWindowsXPにて、ActivePerlとIE6を使用しております。


先ず、Perlとは無関係に、IE6にて適当なページを表示させて
『ファイル』→『名前をつけて保存』
と実行しますと、htmlファイルの他に、そのhtmlファイルに使われている画像
データも保存されると思います。

そして、私の知っているPerlの記述で『getstore』というものがありますが、
この方法ですと、htmlのソースファイルはDL出来るものの、画像データなど
は保存されませんので、DLしたhtmlを表示させても、画像のリンク先が無い
というエラー表示になってしまいます。


別途IEの制御ソフトなどありましたらそれを仲介してでも構いませんので、
Perlで複数のHPを一括DL出来る方法をご存知でしたら教えてください。

IE6にて毎回『ファイル』→『名前をつけて保存』とするのが面倒なだけで
単純作業はバッチファイル化したいだけなのですけど、宜しくお願いします。

Perlに詳しいかたで、もしIE6を制御する方法をご存知のかたがいらっしゃい
ましたら教えてください。

<環境>
自宅のWindowsXPにて、ActivePerlとIE6を使用しております。


先ず、Perlとは無関係に、IE6にて適当なページを表示させて
『ファイル』→『名前をつけて保存』
と実行しますと、htmlファイルの他に、そのhtmlファイルに使われている画像
データも保存されると思います。

そして、私の知っているPerlの記述で『getstore』というものがありますが、
この方法ですと、htmlのソースファイルは...続きを読む

Aベストアンサー

そんな難しい話でもないので、Perlを使えるなら自分で書いてみたら如何でしょう。SocketでHTML内に記述されたリソースを片っ端から取得してローカルに保存するだけです。
フリーソフトを使うにしてもUAで弾かれたりパスがスクリプトで記述されていたり可変だったりすると対応できないケースが多いので、作れるなら自分で作った方が何かと汎用が効きますよ。

QJavascriptのお勧めサンプルサイト

いつもお世話になっております。
私は最近Javascriptに興味を持ち、勉強しております。WEB制作に活かしたいと考えております。
一見シンプルに見えるけれど動的な要素で印象付けられるサイトをつくりたいと考えております。
お勧めのサンプルサイトがあれば教えて頂きたいと思います。
皆様宜しくお願い致します。

Aベストアンサー

『OpenSpace』
http://www.openspc2.org/
基礎から高度なテクニックまで、充実しています。

QPerlでIEの制御と自動入力

VBでWebBrowserというコンポーネントがあります。それを
perlを使ってIE(インターネットエクスプローラー)を制御したいのですが、
例えば、自動的にフォームに数値を入れて、フォームのボタンを押すようなことを
させたいのですが可能でしょうか?
Perl5.8 Windowsを使っております。

Aベストアンサー

私も先ほどまでいろんなサイトを見て勉強させていただいたのですが、↓こんな感じのことでしょうか??
一応私の環境では動いていますが・・

#!/Perl/bin/perl

use Win32::OLE;

my $ie = Win32::OLE->new('InternetExplorer.Application');

$ie->navigate("www.google.com");

$ie->{Visible} = 1;
while (($ie->{Busy} == 1)){
sleep(1);
}

$ie->{Document}->{all}->{q}->{Value} = "ヤフー";
my $button = $ie->{Document}->{all}->{btnG};

$button->click();


Googleの検索窓にヤフーと入力させて、ボタンをクリックするという処理です。

Googleの場合は、テキストフォームが「q」という名前になっていて、
検索ボタンが「btnG」という名前になってます。

$ie-{Document}-{all}のallの意味がよくわかっていないのですが、とりあえずこれで動作するように見えます。

私も先ほどまでいろんなサイトを見て勉強させていただいたのですが、↓こんな感じのことでしょうか??
一応私の環境では動いていますが・・

#!/Perl/bin/perl

use Win32::OLE;

my $ie = Win32::OLE->new('InternetExplorer.Application');

$ie->navigate("www.google.com");

$ie->{Visible} = 1;
while (($ie->{Busy} == 1)){
sleep(1);
}

$ie->{Document}->{all}->{q}->{Value} = "ヤフー";
my $button = $ie->{Document}->{all}->{btnG};

$button->click();


Googleの検索窓にヤ...続きを読む

QJavaScriptでスライドショー。サンプル

JavaScriptでスライドショー。サンプルありませんか

JavaScript、もしくは(FLASHなどの)アドオンが必要ない何らかの手段でスライドショー的なモノを作りたいです。


例えばYahoo!ニュースの写真付きの記事
http://headlines.yahoo.co.jp/hl?a=20111101-00000010-rps-soci.view-000
真ん中に写真があり、左右にボタンが付いていて、押せば前や次に移動できる。

こういうヤツのサンプルがあれば紹介して下さい。

要件は以下です。
・真ん中に写真があり、左右にボタンが付いていて、押せば前や次に移動できる。
・写真をクリックするとURLにジャンプする。
・できるだけスタイリッシュ。
・無料
以下の機能があればなお嬉しいです。
・自動的にスクロールする機能がある。


以上、宜しくお願いします。

Aベストアンサー

検索すれば、サンプルは山ほど見つかると思います。
ライブラリ化されているものも沢山作られていると思いますし、オプションも設定できるようになっているものなど種々様々です。

>何らかの手段でスライドショー的なモノを作りたいです。
自作するのが目的なのか、使うのが目的なのかどちらでしょうか。

自作ならいくつかのサンプルを見て、参考にしながら作るのがよいかも。
当然ながら、要求条件を満たしたものにできることでしょう。
使いたいだけなら、検索していろいろ試して良さそうなものを探せばよろしいかと。
(リンク機能付きのものがあるかどうかは不明)


以下、適当に検索して引っかかったもの
http://www.geocities.jp/miyake_kobo/js/index.html
http://acidjs.wemakesites.net/pages/image-slider-js/demo/
http://demos.flesler.com/jquery/scrollShow/
http://www.agilecarousel.com/
http://www.electricprism.com/aeron/slideshow/
http://wowslider.com/demo.html?affid=331J-S9
http://malsup.com/jquery/cycle/
http://www.gmarwaha.com/jquery/jcarousellite/
http://www.twospy.com/galleriffic/index.html
http://www.ezjquery.com/cgi-bin/webapp.rb?r=access#
http://www.skuare.net/test/jGallery.html
http://visuallightbox.com/lightbox-mac-style-demo.html?affid=1127
http://www.tomhoppe.com/index.php/2008/05/vir-al-fairer-double-sarrc/

検索すれば、サンプルは山ほど見つかると思います。
ライブラリ化されているものも沢山作られていると思いますし、オプションも設定できるようになっているものなど種々様々です。

>何らかの手段でスライドショー的なモノを作りたいです。
自作するのが目的なのか、使うのが目的なのかどちらでしょうか。

自作ならいくつかのサンプルを見て、参考にしながら作るのがよいかも。
当然ながら、要求条件を満たしたものにできることでしょう。
使いたいだけなら、検索していろいろ試して良さそうなものを探せばよろ...続きを読む


人気Q&Aランキング

おすすめ情報