人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptにて
<HEAD>内で計算して複数の引数にそれぞれ値を格納してその値をさらにスタイルシートに反映させていたのですが、関数の使い方がいまいちわかっていません。

たとえば<HEAD>内で
1.そのときのブラウザウィンドウの幅を取得
2.1の半分の値からコンテンツの最大幅(740)の半分の値
3.<div id=main>レイヤーの左からの位置を2の値にする
という一連を関数にしてから
<BODY>の中で上記の一連で出てきた値を再利用したいのです。

関数を使ってひっぱてくればいいと思うのですが、うまく引っ張ってこれないです。どうすればいいでしょうか。

●質問者: trapon
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:JavaScript いまいち ウィンドウ コンテンツ スタイルシート
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● ke-zi
●18ポイント

http://www.openspc2.org/JavaScript/lib_/system/func.htm

<head>内に

function test(){ 処理 }

等として計算するプログラムを用意して、body内で呼び出すには単純にbody内で

<script language=”JavaScript”>

<!--

a();

// -->

</script>

とすればそこに値が入ります。

◎質問者からの返答

う〜ん、どのあたりに関数を引き出すコードを書いたらいいのでしょう。

たとえば<body>内で

<script Language=”JavaScript”><!--</p> <p> document.write(引数);</p> <p> // --></script>

としたい場合、関数を引き出すコードはどこに書いたらいいんですか?


2 ● actual
●18ポイント

http://www.usagi-js.com/sample/jssample2.htm

うさのJavaScript講座・サンプル集2

たとえば、ここのサンプル15とかでいいのでしょうか?(InputBoxへ代入していますが)

関数からの戻り値を使うという意味で。

1.〜3.の関数はできていることが前提ですが。ただし、3.で設定したままで関数を終わらせるとおかしくなりますので、明示的に値を返してやる必要があります。

http://tohoho.wakusei.ne.jp/js/function.htm

そのファイルは現在ありません

リファレンスもこちらにあります

◎質問者からの返答

なかなかうまく・・・


3 ● aki73ix
●17ポイント

http://www.marguerite-site.com/Nihongo/HowToMakeYourWeb/DHTML/Wi...

<HEAD>

<script language=”JavaScript”>

<!--

var w;

if (!document.all && (document.layers || ducument.getElementById)) {

w=window.innerWidth;

}

// ウインドウズIE6・標準モード。

else if (document.getElementById && (document.compatMode==’CSS1Compat’)) {

w=document.documentElement.clientWidth;

}

// その他のIE。

else if (document.all) {

w=document.body.clientWidth;

}

// その他(非対応)。

else {

w=720;

}

w=w/2;

//-->

</script>

こうしてvar で定義しておけば body内で wを再利用できるはずですが?

関数を引っ張ってくる必要はないと思います

◎質問者からの返答

>> var で定義しておけば body内で wを再利用できるはずですが?

う〜ん、上記と同じようなコードはすでに書いたのですが再利用する際にどうやて引っ張ってくるのかわからないのです。


4 ● ke-zi
●17ポイント

http://www5a.biglobe.ne.jp/~n_rieko/javascript/8.htm

少し時間が出来たので書いてみました。

が、時間が無いので動作確認はWinXP Home+IE6のみです

<html>

<head>

<script language=”JavaScript”>

<!--

function getClientWidth()

{

if( !document.all && ( document.layers || ducument.getElementById ) ){

return ( window.innerWidth / 2 );

}

if( document.all ){

return ( document.body.clientWidth / 2 );

}

else {

return ( 740 / 2 );

}

}

//-->

</script>

<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”>

</head>

<body>

<script language=”JavaScript”>

<!--

document.write( getClientWidth() );

//-->

</script>

</body>

</html>

◎質問者からの返答

ありがとうございます。

たとえばですねgetClientWidthの中で出てくるいくつかの値を全て引数としてbodyの中で書いたコードに渡したいんですけど。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ