+ JavaScript の質問用スレッド vol.25 +
if (location.href.lastIndexOf("01.html") != -1) {
color = colors[1];
}
>>943-944 レスありがとうございます。
>>943 >スクリプトは色の配列も含めて1つのJSファイルにするってこと
ピンポン〜そうなんです。
>>944 lastIndexOfは?ですが、出来るようですね。
もうすこし勉強してがんばってみます。
946 :
Name_Not_Found:04/02/21 01:22 ID:fcNZ5gna
コメントの通りなのですが、お願いします。
<SCRIPT LANGUAGE="JavaScript">
function to_cgi()
{
//
http://***.cgiにPOSTで"hogeValue"を渡したい
}
</SCRIPT>
<form method="post">
<input type="hidden" name="hoge" value="hogeValue">
<input type="button" value="ボタン" onClick="to_cgi();">
</form>
>>946 <form name=F> で document.F.submit() で送信
getElementById() とかで取得してもいい
だけど普通にsubmitじゃいけない理由があるん?
>>906 約束していたので取り組み始めました.
しかし,途中で PC トラブルに遭って編集中のソースがパーになりました.
(RAM disk を使っていたのが,あだに...)
とりあえず気付いたことを少々...
・ onClick="〜" の中にだらだらと記述するのはダサいです.
onClick="f(arguments)" とした方が良い.
うまくいかない原因さえも解らないのはこのため.
未整理なソースは見た目にも面倒くさく見えるので
質問しても through されやすい効果もあります.
・ なにゆえに table を使っているのかが理解できない.
>filterのボタンはうまく機能しません。
これは,当たり前.
なぜって eval() の中身空っぽなんだもん.
eval() の使い方を復習しましょうね.
http://tohoho.wakusei.ne.jp/js/builtin.htm#eval
>昨日からはじめたばかりで全然わかりませんでした;;
>だから聞いたのですが・・・もう来ません
" 来るな ! " と言われても,さらりと受け流していれば
いつかは認めてくれる人も現れる.
ツッコミを入れられても素直に対応していれば,答えてくれる人だって...
些細な事で切れてしまうような人は,ひたすら,うとましく思われるだけ.
質問者にも器量が必要なのさ.
950 :
Name_Not_Found:04/02/21 04:22 ID:mN4gsdDg
掲示板を作ろうとしています。
それで入力フォームに題名・名前・Eメール・文などの項目を作ろうとしてます。
各々の項目には最初から文字が入っていて、入力フォームをクリックすると、
文字が消える仕組みにしたいのです。
なんとか自分になりにやってみたつもりなんですが、間違いや突っ込みなどお願いします。
あと、変数名の付け方のコツなども・・・
<html>
<head><script type="text/javascript"><!--
function clearform() {
a = document.getElementById("subject");
if (a.value = "題名") {
a.value = "";
}
}
//--></script>
<title></title>
</head>
<body>
<input id="subject" name="subject" size="20" maxlength="20" value="題名" onfocus="clearform()" />
</body>
</html>
>>950 それだとフォーカスが移る度にクリアされちゃうじゃん。= じゃなくて ==
それに「題名」という題名は絶対に入力されないのか。
本文につけた注釈文を小さいポップアップwindowで表示させようとして
JavaScriptでopenする関数を作り、<A HREF>でその関数を実行
するようにしたのですが、二回目に本文の注釈文をクリックすると、
フォーカスは本文に移り、ポップアップwindowは本文の陰に隠れたまま
です。
(ポップアップwindowの内容は二回目用に用意した文章に変わっていま
すが)
おまけにエラーが出てしまいます(T-T)
どのようにすればいいのか教えてください。
<html>
<head><SCRIPT language="JavaScript" type="text/JavaScript">
function wopen(){
var WO1;
WO1=window.open("","window1","status=yes,scrollbars=yes,resizable=yes,width=750,height=600,left=250");
WO1.focus();
</SCRIPT>
</head>
<body>
<a href="XXX.html" onclick="wopen()" target="window1">XXX</a>
<a href="YYY.html" onclick="wopen()" target="window1">YYYa>
</body>
</html>
よろしくお願いします。
試作 bookmarklet:
javascript:s=document.body.style;s.backgroundColor='#005A63';s.color='#D6D68C';void(0)
これを拡張して,自作 style-sheet を自由に設定できるようにしたい.
possible or not ?
>>954 自由って、「何を」「どういうスタイル」の両者はどうやって指定
するつもりなの?
>>950 「最初にクリックしたとき消える」っていう質問、まさにこの
スレにあったよ。やっぱ読んでから質問した方がいいんじゃない?
(皆に「そんなのあったよな〜」と思われてスルーされるよ)
>>952 まずどういうエラーかきちんと書けってば。あと、クリックしたとき窓が
開くのはいいけど、このページはXXX.htmlやYYY.htmlに切り替わっていいの。
もし切り替わりたくなければonclic="...;return false"とするべき。
あと2番目の<a>の閉じタグが変だ。
>>948さんおはようございます。レスありがとうございます。
>なにゆえに table を使っているのかが理解できない.
tableを使っているのはページ全体をtable100%にしてボタン部と表示部に分けるためです。
>>906は字数制限で書き込めなかったので色々削ってあります。確かにこの場合いりませんね。(汗)
基本的にはキオスクモードで使いたいので、アドレス入力覧なども元のファイルには入っています。
>>838>>843 >filterのボタンはうまく機能しません。
というのはボタンを押すとこの場合ページ全体にフィルターがかかってしまう。ことです。
FlipH()やFlipV()を使うとボタンもおかしくなる。(笑)
>>912これはdocument.body.の前にフレーム名を入れると解決しましたが、そうすると今度は
アクセス拒否というエラーが出ます。(泣)
>eval()の中身空っぽなんだもん
これはアンカータグをインプットタグに置換したものなので...取り忘れです。あまり理解していないのは確かですが、
>onClick="〜" の中にだらだらと記述するのはダサいです。
もっともです。ご勘弁ください。
----------------------------------------------------------------------------------分割
----------------------------------------------------------------------------------続き
それから最初の
>>827の他に↓もありました。こちらのほうが加工しやすそうなのですが、これもまだボタン化出来ていません。
//次のページ
javascript:if (location.href.match(/([0-9]+)(\.[A-Z]+)$/i)){
no=RegExp.$1;a1=RegExp.leftContext;a4=RegExp.$2;a2=no.match(/0*/);a3=RegExp.rightContext;
len=(a2+(a3-0+1)).length-no.length;
location.href=a1+(a2+(a3-0+1)).slice(len)+a4;eval();}
//前のページ
javascript:if (location.href.match(/([0-9]+)(\.[A-Z]+)$/i)){
no=RegExp.$1;a1=RegExp.leftContext;a4=RegExp.$2;a2=no.match(/0*/);a3=RegExp.rightContext;
len=('0'+a2+(a3-0-1)).length-no.length;
location.href=a1+("0"+a2+(a3-0-1)).slice(len)+a4;eval();}
>>841は
>>906にあるように外部ファイル化してみたんですが、最初と最後に行くとボタンで戻れなくなる。
という問題があります。いろいろ大変ですが、少し面白くなってきました。
以前ははDreamweaverやホームページ・ビルダーに任せっきりだったのですが、JavaScriptを書くようになってから
1〜2ヶ月、ここのお陰でDOMやデータバインドの存在も知って、テーブルを横縞や縦縞、格子柄に出来るようになったり、
データを外部化したりといろいろと楽を出来るようになりました。この場を借りて皆様にお礼申し上げます。
長くなりましたがボタン化の件、何卒宜しくお願いします。
>>955 Thank you very much for your response.
" 自由に " と言う部分が適切な表現でなかったと反省しております.
ようするに local の .css file を path 指定 できるならば,
bookmarklet そのものを簡潔にすることができるのではないのかと思うのです.
(こうすれば,いちいち bookmarklet の記述を書き換えることなく,
指定されているファイルを書き換えるだけで欲求が満たされるかと.)
>>960 ほれ。IE専。Winで動確。
javascript:void(document.createStyleSheet("file:///c:/test.css"));
>>962デスクトップにすると使えません。
URLエンコードしてもだめでした。パスが長いとだめなんでしょうか?
964 :
952:04/02/21 10:36 ID:???
>>957さん、レスありがとうございます。
えっと、エラーメッセージは「ページでエラーが発生しました」と左下に表示されます。
説明不足で申し訳ありません。
親ページでクリックするたびにどんどん窓が開いてしまうのを避けたいので、
クリックするたびポップアップウィンドウ(Window1)の内容が書き換わって、
さらに一番上に表示されて欲しいんです。
OSはWin XP、ブラウザはIE6.0でテストしています。
宜しくおねがいしますm(_ _)m
>>963 パスの長さは関係ない。勿論限度はあるが。
c:/ 直下なら読む? だったら"デスクトップ"って文字列あたりが臭い。
>>964 >952 をそっくりコピして動かしてみると君のやりたいように動いてるみたいだが?
エラー等は再現されなかった。
>「ページでエラーが発生しました」と左下に表示
そのステータスバーをWクリックすると詳細が出るから見てみな。
>>965さん ありがとうございます。
ステータスバーをWクリックしたら
「エラーオブジェクトを指定してください」と出ました。
>952 をそっくりコピして動かしてみると君のやりたいように動いてるみたいだが?
エラー等は再現されなかった。
やってみて下さるなんて本当にありがとうございます。
でも・・・私がやるとどうしても上に表示されないんです(T-T)
初めのXXXの時は上に表示されるのですが、
次に親窓に戻ってYYYをクリックしても親窓の下に隠れたままです。
しかも、表示したくないメニューバーやナビゲーションバーまで表示されてしまいます。
>>966 多分そりゃスペルミスだわ。
YYY の onclick="wopen()" の関数名をよく確認してみな。
それか自分で貼った952をコピして動かしてみ。
だめです・・・952をコピペしても同じです・・・
>>964 957じゃないけど一言。
エラーが発生したなら、その内容をちゃんと書け。
左下の黄色い三角をダブルクリックな。
>>968 ネタに思えてきたが。
952は完全にそのままではエラーだぞ?
関数を "}" で閉じてないからな。
てか、それは気付いてるわけ?
うわ・・・お恥ずかしい!!!
}を入れたら見事望み通りにできました!感謝感激です!
みなさん、本当にどうもありがとうございました。
てゆうか、申し訳ありませんでしたm(_ _)m
973 :
Name_Not_Found:04/02/21 13:58 ID:ud8T8haO
マウスが乗った時に画像が変わるjavascriptなんかでよく見られる↓
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.0
〜以下続く
↑このMM_なんたらで始まるこのプロシージャってなんなんですか?
なんかのHP作成ソフトで自動的生成されるソースなんでしょうか?
それとも何処かのHPのサンプルソースなのでしょうか?
>>973 よくは知らんが間違いなくHP制作ソフトだな。
ホームページビルダーの悪寒。
>973
このスレをよく見返せ。
>>973 'MM_ ' は MacroMedia の略.
つまり, DreamWeaver の JavaScript であるという自己主張なんだな,こりがぁ〜.
(大きなお世話だね)
> (大きなお世話だね)
そういうことじゃなくて、ユーザが作った名前とかぶらないようにするため。
名前空間の無いC言語などでよく用いられている手じゃないか。お前素人だな。
名前空間ってなぁ〜に?
教えてちょ(^^)
979 :
Name_Not_Found:04/02/21 20:20 ID:JcCZ2ivn
document.anchors[0].text
って、NN独自のプロパティなのに(IEではinnerTextで代用)
自分のNN6.2では有効にならないのですが、
今の新しい(ネスケの)バージョンでは対応しなくなったのでしょうか。
ググったのですが、それについて書かれているページが見つからないので、
どなたかご存知ないでしょうか。
982 :
950:04/02/22 04:57 ID:???
replaceについて質問です。
やろうとしている事はボタンを押したとき、そのボタンに書かれている文字を置き換えるというものです。
function f(){
var a = new RegExp( document.getElementById('test2').value, "g");
document.getElementById('test1').value.replace(a, '○');
}
<TEXTAREA name=test1>あいうえおあいうえお</TEXTAREA>
<INPUT type=button onclick="f()" value="あ" name=test2>
現在のソースはこんな感じなんですが思いどおりに動いてくれません。
ちなみにエラーは全く出ず、alert(略match(a))なら成功しました。
よろしくお願いします。
name ≠ id
>>983 とりあえず、Form 部品の value を操作する程度なら
DOM じゃなしに document.formName.elementName でアクセスする。
!DOCTYPE ってヤシみたく ヴァカと言われるぞい。
function f(){
var a = new RegExp( document.getElementById('test2id').value, "g");
with(document.getElementById('test1id')) value = value.replace(a, '○');
}
<TEXTAREA name=test1 id=test1id>あいうえおあいうえお</TEXTAREA>
<INPUT type=button onclick="f()" value="あ" name=test2 id=test2id>
質問です。
ブラウザの種類やバージョンを検出して、それぞれ別のCSSを読み込ませたいのです。
<SCRIPT TYPE="text/javascript">
<!--
function isIE3() {
var vIE = navigator.appVersion.indexOf("MSIE ");
return ((navigator.appName.indexOf("Microsoft Internet Explorer") >= 0)
&& (parseInt(navigator.appVersion.substring(vIE + 5, vIE + 8)) == 3));
}
if (isIE3()) {
document.writeln('<LINK REL="stylesheet" TYPE="text/css" HREF="ie3.css" charset="Shift_JIS" />');
} else if ((navigator.appName.indexOf("Netscape") >= 0)
&& (parseInt(navigator.appVersion.substring(0, 2)) == 4)) {
document.writeln('<LINK REL="stylesheet" TYPE="text/css" HREF="nn4.css" charset="Shift_JIS" />');
} else if ((navigator.userAgent.indexOf("Gekko/") >= 0) {
document.writeln('<LINK REL="stylesheet" TYPE="text/css" HREF="skin/gekko.ja.css" charset="Shift_JIS" />');
} else
document.writeln('<LINK REL="stylesheet" TYPE="text/css" HREF="skin/default.ja.css" media="screen" charset="Shift_JIS" />');
// -->
見よう見まねでこんなもの書いてみたのです。
本当はOperaとかMACのIEとかにも対応したいのですが、
そもそもGekkoエンジンのブラウザを判別するところでこけております。
どう書くと正解なのか教えてくださいませ。
>>986 JavaScript 使うのはあまり推奨できない。
「CSS 振り分け」辺りでググる。
あと、navigator.userAgent は詐称されると目も当てられないんで参照しないほうがイイ。
大雑把に書くとこんな感じ。
if(window.opera){
// Opera
}else if(document.all){
// IE4 +
}else if(document.getElementById){
if(navigator.appVersion.indexOf("Safari")!=-1) // Safari
else // Gecko(Mozilla | Netscape6+ | FireFox | FireBird | Phoenix | iCab)
}else if(document.layers){
// NN4
}
989 :
986:04/02/22 17:05 ID:???
>>987 どやされるかと冷や冷やしてましたが。。。ありがとう!
おすすめできないとのことなので、アドバイス頂いた方面も探してみます〜
おはようございます!埋めます!
ume
UMEMATSUUUUuuUU
うまくねぇよ