+ JavaScript の質問用スレッド vol.35 +
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・FAQ・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
(質問時、回答時にはなるべく対象環境を明記しよう)
前スレ
http://pc5.2ch.net/test/read.cgi/hp/1107580877/l50 FAQ・過去ログ・関連資料・その他質問スレは
>>1-10
うんこ
おつ
9 :
Name_Not_Found:05/03/13 01:59:00 ID:4YVRGrrq
質問させてください。
外部ファイルにしたスクリプトを、別のサーバー(A)から別のサーバー(B)へ繋いだとして、
Bのサーバーでスクリプトによって取得した情報を、Aのサーバーで使うことって出来ますか?
試してみたのですが、Bで取得しBで反映はできました。でもAに持ってくると使えません。これって不可能なのでしょうか?
「繋ぐ」がわからんけど違うサーバのページ同士でのやり取りには制約ある
11 :
Name_Not_Found:05/03/13 02:08:07 ID:4YVRGrrq
>>10 レスありがとうございます。
外部ファイルをAに置いて、Bで作動させるんです。
制約って、どういうのですか?
例えば、Aに置いているファイルとBで呼び出し、名前を聞きます。
その名前を再び、Aで反映させるってことなのですが。その制約に反するんでしょうか?
12 :
Name_Not_Found:05/03/13 02:09:21 ID:4YVRGrrq
11です。
間違えました。
※(例えば、Aに置いているファイル「を」Bで呼び出し、名前を聞きます。 )です
13 :
Name_Not_Found:05/03/13 02:36:26 ID:MJEj8kkH
どなたかアドバイスを下さい。batファイルで書くならば
hoge.exe form1 form2
のようなことをしたいです。さらにform1やform2を
<select name="form1">
<option value=" "> </option>
<option value="red">赤</option>
<option value="orange">橙</option>
<option value="blue">青</option>
</select>
のようにして最後に「実行」ボタンで…のようなことをしたいのですが、
どのように書いたらよいのでしょうか?
だからその「名前」とは何者なのかを説明しろ
一々分かりにくい言い方すんなよ
で、小出しにするんじゃねーっつーの
>>13 おめーも分かりにくいこと言いやがって
>hoge.exe form1 form2
実行ファイルにパラメータ渡して起動させたいってことか?
だとしたらスレタイ 2^10回大声で音読した後市んでくれ
16 :
Name_Not_Found:05/03/13 02:57:22 ID:4YVRGrrq
>>14 小出しにはしてません。でも、分かり難い物言いはこちらの過失です。すみません。
名前は名前で間違いありません。個人情報です。住所とか年齢とか。
Aに置いたスクリプトをBのページで動かし、名前とか住所とか入力してもらうんです。
それを再びAで表示するんです。一度入力するだけで別のページ全部に反映させるというやつです。
>>16 最初からそう書け
つか思いっきり小出しにしてるじゃねーか、ヴォケ
で方法だが
隠しフレームを使って値を保持させておく方法と
クエリとしてデータを渡す方法が考えられる。
>>17 すみません、みなまで書かずと分かるものかと思いました。勉強になります。
「Bに、入力のところだけアイフレーム使ってAを読みこませる」
これは、その「隠しフレーム」と同じ意味にはなりますか?
「クエリ」というのが分からないので、もう一度出なおしてきます。
遅くにお手数かけてすみませんでした。ありがとうございます。
HPでHGP創英角ポップ体というフォントを使っているのですが、
このフォントが、デフォルトで太字のような太さの上に、
文字のアンチエイリアスがされていないと、読めたもんじゃないんです。
オフィス付属のフォントなので、もっていない人もいるし。
このフォントを前提でHPを作っているから他のフォントだと見づらいのです。
なので、創英角ポップ体というフォントを持っていなかったら、太字で表示。
同様に、アンチエイリアスが切ってあったら、他のフォントで太字で表示。
という動作をさせたいのですが。前者が上手くいきません。
JavaScriptを書いた経験も無いので、サンプルサイトを探してみたんですが、
同じような動作をするものは見つかりませんでした。
アンチエイリアスの方は、有無の所得の仕方が載っていたところがあったので、
自分で書き換えてどうにかなりましたが、
前者の所持しているフォントの所得の仕方が分かりません。
書き方や、参考になるサイトなど、なんでもいいのでご教授お願いします。
>>18 >「Bに、入力のところだけアイフレーム使ってAを読みこませる」
>これは、その「隠しフレーム」と同じ意味にはなりますか?
全然ならん
ページに埋め込まれている Iflame 自体亡き者となる
要はどうやってページ移動後に値を参照するかってことだろ?
自分のしたいことに対してナニが問題となっているかが
自身で理解できなければ仕様が無いぞ
>>19 スレ違い
それは普通 CSS でやるもの
わざわざ JavaScript でやるアフォは真性だな
font-family でググってみろ
21 :
Name_Not_Found:05/03/13 05:25:35 ID:L8bkMxZN
>>18 >すみません、みなまで書かずと分かるものかと思いました。
超能力者じゃなるまいし。んなわけあるかい。
>>19 >所得の仕方が分かりません
僕もわかりません。もっと所得を増やしたいです。
>>20 後半のレスは意図を読み違えてる気がするぞ。
本当はクライアント側にインストールされてるフォントの情報を「取得」したいんじゃないの?
どんなフォントがインストールされてるかをリストアップする方法はないと思うが、
ある特定のフォントが入っているかどうかを大体知る方法はある。
タイプミスじゃないのか…<所得
>>22 あぁ、ホントな
この手の質問はどうしても読破できねーしサラっと目を通すだけだし
ん、JScript にナニか有った気ガス
↓まかせた
>>22 そうです、クライアント側に特定のフォント(創英角ポップ体)が入っているかどうかを調べたいのです。
基本になるフォントはCSSのfont-familyで定めてるのですが、
CSSではフォントごとに設定を変えたりは出来ないと思うので・・・・・。
あと誤字すみません、取得ですね・・・・(汗
Flashに埋め込めば?
画面キャプってGIFでおk
29 :
19:05/03/13 15:44:11 ID:???
自分で組めました。
お騒がせしました。
style.fontFamilyを変化させる前/後でoffsetWidthに変化があったら、そのFONTを持っている
(本来7にあるべきもの)
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
ただ「動きません」「エラーです」は何も情報がないため嫌われる。
エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
6)質問はまっとうな(他人に理解できる)日本語で。
前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
(本来10までにあるべきもの)
【FAQ】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q10. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A10. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP")
を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
33 :
Name_Not_Found:05/03/13 22:34:12 ID:ArpNtNzv
<a href=""><img src="a.jpg" style="border:1px solid;"></a>
たとえばこのようにスタイル指定のついた画像を
OnMouseOverでスタイル解除するにはどうすればいいでしょうか。
この場合マウスオーバーすると枠線が無くなるという感じです
おねがいします。。。
かんすう
onmouseover="this.style.border='none'"
>>33 >>35だけだとMouseOutしても枠線消えたままになっちゃうから
onmouseout="this.style.borderStyle='solid';this.style.borderWidth='1px'"
37 :
35:05/03/13 23:03:39 ID:???
38 :
33 :05/03/13 23:04:12 ID:ArpNtNzv
>>35 できました!ありがとうございます。
それに加えて、
マウスアウトで先のスタイルを復活するには
どうすればいいでしょうか
追加ですいません・・
39 :
33 :05/03/13 23:04:55 ID:???
>>36 ありがとうございます。
感涙でございます。
>>37 よく言われる
>>35 あと親切ついでに言うと
一箇所なら上記ので良いんだけど
複数箇所だと書くの面倒だから
スタイルシートで予め
.hoge{ border : solid 1px; }
.foo{ border : none; }
みたいにクラス作っといて
IMGのイベント属性は
onmouseover="this.className='.foo'"
onmouseout="this.className='hoge'"
ってした方が楽ちん。
IMGにデフォでclass="hoge"としておくのを忘れずに
>>41 ActionScriptスレが盛り上がるのはよろしいんじゃないの。
やっぱり住み分けるのが一番。洩れはFlashやらないし関心なし。
>>33 それくらいだったら、わざわざJS使わなくても、CSSに
- - - - - - - - - - - - - - - - -
img { border:1px solid; }
a:hover img { border:0; }
- - - - - - - - - - - - - - - - -
で済まないか?
img じゃなくてクラス指定でもいいけど。
45 :
33 :05/03/14 00:36:11 ID:???
>>40 ありがとう神様
確かに長くなりました
それいただきます。。
>>44 全ての画像にそうするわけじゃないので
40のクラス指定をいただきます
ありがとうございます。
46 :
Name_Not_Found:05/03/14 00:52:48 ID:pwRadTBL
質問です。
テキストボックスのHTML要素であるdisabledをjavascriptを利用して
(もしくはCSSを利用して)動的に変更できないでしょうか?
非表示にする方法と、見た目入力できないようにする方法の
二通りでレイアウトを考えています。
例えば項目の表示・非表示はCSSをjavascriptから動的に値を
変更することで可能ですが、テキストボックスの要素である
disabledを動的に変更する方法が見つけきれませんでした。
以上、よろしくお願いします。
interface HTMLInputElement : HTMLElement {
: :
attribute boolean disabled;
: :
48 :
46:05/03/14 01:38:13 ID:???
>>47 素早いレスありがとうございます。
無事に解決できました。
49 :
Name_Not_Found:05/03/14 06:46:46 ID:SnB4oHEz
質問させてください。
画面をスクロールすると、ヘッダ部分にあったナビゲーションが一緒についてきて、
常にブラウザの上部に位置している…
というサイトを探しているのですが、ご存じの方教えてください。
よろしくお願いいたします。
>>49 google>スクロール 常に メニュー 固定 表示 JavaScript
51 :
Name_Not_Found:05/03/14 08:51:22 ID:XZiVVQRg
子ウィンドウを開いてそこに既存の別のページを表示、と同時にscroll()を
使ってその子ウィンドウをスクロールダウンさせて、そのページ内の所定の
場所まで自動的に移動するようにしたいのですが、スクロールしてくれません。
こういう使い方はできないのでしょうか?
<SCRIPT LANGUAGE="JavaScript">
var newWindow = null
function makeNewWindow(){
newWindow = window.open("index.php","","width=500,height=600,scrollbars=1");
newWindow.scroll(100,100);
}
</SCRIPT>
<FORM>
<INPUT TYPE="button" NAME="openWin" VALUE="open" onClick="makeNewWindow()">
</FORM>
>>51 window.open()したら瞬時にページがロードし終わるってわけじゃ
ないから。たとえば次のようにして時間遅延を入れたらどうかな。
setTimeout(function() { newWindow.scroll(100,100); }, 1000);
>>51 WinIE5- と Opera7- は attachEvent で。
以前はMozillaもaddEventListenerできたが、今はできない。
どーでもいいが、scrollTo が推奨されてるだろ?
if ('undefined' != typeof attachEvent)
newWindow.attachEvent( 'onload', function () {
newWindow.scrollTo(100,100);
});
else {
>>52 }
> 以前はMozillaもaddEventListenerできたが、今はできない
うははw ありえへんwww
55 :
51:05/03/14 10:30:26 ID:XZiVVQRg
>>52 さん
なるほど、できなかったのはそういうことなんですね。納得です。
>>53 さん
attachEvent なんてメソッドがあるんですね。勉強になりました!
早速52さん、53さんの方法でやってみます。
レス、アドバイスどうもありがとうございました!!!
アタックイベントじゃないぞ
57 :
937:05/03/14 11:44:07 ID:XfxyqIxF
わたくしの質問ゆえに、熱い討論をありがとうございました。
せっかくヒントを頂いたのに、やっぱできません。あぁ"〜っ!!ばかばかっです。
HTMLの知識は、雑なHPが作れる程度でJavaScriptは全くに初心者・・・ですが、
アソコに行くとたぶんスレ違いかと思い戻ってきました。
JavaScriptの丸投げはありますでしょうか?エェ〜ん。・゜・(ノД`)・゜・。
アソコ・・・ハァハァ
59 :
937:05/03/14 11:51:58 ID:XfxyqIxF
そうそうアソコ(/−\)
無理にJavaScriptにする必要はないと思うが。
JavaScriptだとソースみりゃ答えとか分かっちゃうし。
CGIとかFlashで作ったほうが手っ取り早いんじゃない?
61 :
937:05/03/14 12:06:02 ID:XfxyqIxF
(*_*)それもそーだ(*^・^*)
答え見えちゃいますよね。意味ないかぁ。うんうん★
振り出しに戻って、つくり直します♪
Name_Not_Foundさんありがと。ホントはやさしい人ですね。
初めは、恐かったよぉ
62 :
Name_Not_Found:05/03/14 12:23:54 ID:aE/9IbES
>>60-61 だから前スレではソース見られても答えが分からない方法の
議論もしてたでしょ。理解できないからといって無視すな。
>>63 ソースコードで具体的に書いてやりーな。
初心者に「ハッシュ値」云々いっても (゜д゜) ってカンジでそ。
ここは、親切心として教えてやるべきか・・・。
クイズとかはフラッシュが向いてるよ。
>>64 まずここからmd5.jsをダウンロードしてきて取り込むようにする。
ttp://pajhome.org.uk/crypt/md5/md5src.html 次に、クイズの正解を文字列で表す。「'135624271'」とかね。
で、hex_md5(回答者の回答文字列) == hex_md5(正解の回答文字列)
になったら全問正解。もちろん右辺は予め計算しておいてその数値
をソースに書き込む(でないとソース見たらばれるからね)。
部分正解を扱うのはちょっと面倒だなー。3問ずつ分けて3問正解に
加えて2問正解と1問正解のあらゆる場合を計算しておくとかかな。
その程度だとJSプログラムの書ける奴なら自分で実行して正解を
導けるだろうけど、そこまでやらないだろうと思う…
んー、結局、「どこが正解したか」を取得しようとする限り、
「ソース見られても答えが分からない」 というより、
「ソース見られても答えが分かりにくい」 になってしまう気がするな。
正解数を取得しなくていいのなら、単に「(問1〜10までの解答の数字の羅列) + .html」にリンクするだけで済むし。
とわいえ、「暗号化」するのはいいと思う。
手間隙かければ結構隠蔽できるかと。
まーJS以外でやるのが一番いいんじゃね?
・・・Flashばっか勧めるのもどうかと思うがw
68 :
Name_Not_Found:05/03/14 19:53:26 ID:PZEvS+mG
全角チェックをしているのですが
▲やら→やら全角記号のときにエラーを表示させたいのです。
ご存知の方、教えてください!!!
>>68 間違えた。
全角すべて、というのであれば
文字数とbyte数の比較で対処できるはず。
特定の全角、というのであれば
文字列を一文字ずつチェックしては?
71 :
Name_Not_Found:05/03/14 20:18:16 ID:PZEvS+mG
>>70 今はcharaCodeAtを使っていて
for(var i=0; i<obj.value.length; i++)
var charCode = obj.value.charCode(i);
if(charCode<256 || charCode>=0xff61 || charCode<=0xff9f){
エラー処理;
}
}
としています。全角記号すべてを値で判断できますか?
その値とか分かりますか?
73 :
Name_Not_Found:05/03/14 20:20:59 ID:PZEvS+mG
>>72 やはり正規表現でないと無理?
全角記号すべてなので・・・
>>73 つーか
>>71みたいな煩雑なコードを書かなくて済むように正規表現使うんだろが。
>>68-72 結局Unicodeで許される範囲がどこからどこまで
かという問題に尽きるよね。WWWなんて世界中どっからでも
参照されるからね。中国語や韓国語の記号や文字はどうするの。
76 :
Name_Not_Found:05/03/14 20:32:48 ID:PZEvS+mG
>>74,75
全角記号のUnicodeの範囲をご存知でしたら
教えてください。
とりあえず、日本語だけに対応したらいいので。。。
>>71 > if(charCode<256 || charCode>=0xff61 || charCode<=0xff9f)
って判定条件がめちゃおかしくないか。ff61より大きいか、または
ff9fより小さいって、すべての文字について成り立つけど?
>>78 あははは、ホントだ。ORじゃなくてANDにしなきゃな。
>>70 あんた素人だろ。JavaScriptではすべての文字はUnicodeで
表されていて、いわゆる「バイト数」を求める方法はないぞ。
ビット演算子
function strLength(v){var c=escape(v),l='length',Z=v[l]+c[l],X=escape(c)[l];
return (Z*2-X)/3;
} //
83 :
Name_Not_Found:05/03/14 20:57:03 ID:PZEvS+mG
>>77,80
正規表現を使用します。
皆様ありがとうございました。
>>6 で
(とほほのJavaScriptリファレンスは誤り多数という意見もあり議論中)
読んでて思ったんだけど、とほほって、KENT WEBのPerlの中にもとほほを参考
の文字があって驚いた。そんなにいいかね、とほほ。
>>84 便利なことは便利。
それ以上でもそれ以下でもない
>>84 単語帳みたいなもんで、
「あの関数とかメソッドとか何ていうんだっけ・・・」とか確認するときに索引とかで参考になる。
ちゃんと勉強するのには向かない。
おれは「うさのJavaScript講座」……
>>87 ブチワロスww
「イヌでもわかる〜」とかもイイよなw
例えば、1〜5.jpg
の画像があったとして、
これの並び順をランダムに変更していくにはどうすればよろしいのでしょうか?
単純にランダム表示するだけってのは各サイトを調べて
分かったのですが、並び順をランダムにすると言うのが
どうも分かりませんでして…
unko = ["1.jpg","2.jpg","3.jpg","4jpg","5.jpg"];
baka()
function baka() {
var i = unko.length;
while (i--) {
var j = Math.floor(Math.random()*(i+1));
var aho = unko[i];
unko[i] = unko[j];
unko[j] = aho;
}
}
どっかのリファレンスで見た記憶がある。
どこだか忘れたけど確認したらちゃんと動いた。
>>89 それはアルゴリズムの話であってJavaScriptとは関係ないだろ。
そこまで切り離すのかよ
>>54 確かにFirefoxでも出来るな。勘違いしてた。
>>45 いや、やっぱりJavaScript要らんだろ。スクリプト切ってたらうごかねーし。
全部の画像に適用するわけじゃないならクラスhogeで↓
a.hoge img { border:1px solid; }
a.hoge:hover img { border:0; }
44もこういうことが書きたかったんじゃないかと。
>>89 ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'].sort(function(){return(Math.random()-.5)}))
だ!!
……ECMAScriptの仕様ってArray#sortの実装について何か言ってたっけ?
>>96 If comparefn is not undefined and is not a consistent comparison
function for the elements of this array, the behavior of sort is
implementation-defined.
普通に考えてもそういう永遠に終わらなくなる可能性のあることはやめた
方がいいね。当り前に
>>90でシャッフルするのがはるかに高速だし吉。
98 :
89:05/03/15 01:28:18 ID:???
ふみ〜
まだちょいと解決してないとこありますが、
頂いた情報を元に頑張ってみます
>>84 KENT は権威にならんだろ。それどころか、
Perlはここまで汚く書けるのか、という悪い見本だと思われてる。
自分の書いたソースを公開するのはいいんだけど、あんまり稚拙なコーディングだと恥ずかしいよね。
親ウィンドウ→子ウィンドウ→孫ウィンドウ
とウィンドウをPostで開いていった場合に、
孫ウィンドウから、親ウィンドウが、まだ開いているか、閉じているか
確認できますか?
>>101 いや、どんどんコードは書いて見せて欲しい。
>>100(お、すげえな)
英語あやつってるから?ほら、前にドイツ語に英語で対抗した通倭者もいたしね。
(自作自演という話も)でも、けっこうIQ高いね、ここって。プログラマって
教養ないヤツ多いからな。
>>96 YES! YES! YES!
まー
>>45はJSでやりたかったんでしょ、ということに脳内解釈した。
>>102 名前ちゃんと振ってたらできんじゃない?
ウィンドウ開きまくりは印象良くないけど。
>>31
106 :
96:05/03/15 06:17:27 ID:???
107 :
96:05/03/15 06:18:37 ID:???
108 :
96:05/03/15 06:20:21 ID:???
orz
>>100-104 ちょっと待ってよ… ECMA-262の仕様書の Array.prototype.sortの
とこを打ち込んだだけなんだけど。読んでない奴大杉。
110 :
Name_Not_Found:05/03/15 09:24:02 ID:jiXIZQN+
質問です。
CGIでは分かるのですが、JavaScriptでも他のHTMLに引数を渡すことはできますでしょうか?
いろいろ検索したり実際にやってみたりしたのですが動作しなかったので、そもそも可能なのかと
main.htm の中の pop.js のソースの一部
function pop( num ) { window.open( "photo.htm?img_num=" + num , "" , "" ); }
photo.htm のソースの一部
document.createElement("img").setAttribute( 'src' , img_num+".jpg" );
※これは例であり、JPGを別ウインドウでポップさせるなら他の方法というのはナシでお願いします
>>110 location.searchで”?”以下を取得できるから
あとは煮るなり焼くなり
112 :
102:05/03/15 09:43:45 ID:???
>109
オレは関係ないと思うんだけど・・・。
どなたか>102わかりませんか?(つД`)
113 :
110:05/03/15 09:55:30 ID:???
おおおおお!動作しました。 location.search ですか・・・
これだけで3時間以上費やしていたので、努力が報われました
>>111さん ありがとうございました
114 :
103:05/03/15 10:36:17 ID:???
>>109 明らかに関係あるのは100と104だけ。
何で俺が釈迦に説法されてんだ?--と自惚れてみるてすと。
気分悪いからスルーせず指摘してやるが、その引用は
>>96に無関係。
いわば、フラットで密な配列、である
>>96が、そのルールに引っかかるわけがない。
115 :
104:05/03/15 11:19:18 ID:???
>>114 あんた、日本人かい?
釈迦に説法されるんなら、別にいいわけ。釈迦に説法するのが問題なんだろが。
だから、教養ないっちゅーの。
>>102 if(opener.opener.closed) ...
>>114 JavaScriptで9行で書かれているにも関わらず組み込みのsortの倍程度の時間で動く
コームソート。これにfunction(){return(Math.random()-.5)}与えて動かしてみなよ。
要素数が100個でもまず終わらないから。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
Array.prototype.sort2 = function(f) {
var done = false, d = this.length - 1;
while(d > 1 || !done) {
done = true;
for(var i = d; i < this.length; ++i)
if(f(this[i-d],this[i])>=0) {
var x = this[i-d]; this[i-d] = this[i]; this[i] = x; done = false;
}
d = Math.floor((d * 10 + 3) / 13);
}
};
var size = 10000, a1 = new Array(size), a2 = new Array(size);
for(var i = 0; i < size; ++i) a1[i] = a2[i] = Math.random();
var t1 = new Date().getTime(); a1.sort(function(a,b) { return a-b; });
var t2 = new Date().getTime(); a2.sort2(function(a,b) { return a-b; });
var t3 = new Date().getTime();
document.writeln('time1 = ' + (t2-t1) + ' time2 = ' + (t3-t2));
</script>
</body></html>
90のコードが凄く綺麗で良いなと思った。
あれは重いの?
ちゃんとシャッフルされてたけど。
質問なのですが、
HPの最終更新日を自動で書き込んでくれるようにしたいのですが、
document.lastModifiedでは、現在の時刻になってしまい、正確に表示できません。
使っているのがiswebで、
無料の鯖で広告が自動挿入される所では、正確に表示できない事があるらしいので、
うちもこれに該当するんだと思うんですけど、
この場合、正確に更新した日付を表示する方法って無いんですかね?
何か良い方法はないでしょうか?
SSI
123 :
121:05/03/15 16:04:33 ID:???
>>122 SSIでも#flastmodでは同じ結果になると思うんですけど・・・・。
>>121-123 いずれにせよそういうことだとクライアント側ではどうにもならん。
WebProg板なりへ逝くべき。
>>121 document.lastModifiedは素人のおもちゃ。
おれは更新したときに手で入れてる。
人それぞれ事情はあんだろが、手入力が結局は最良との結論を得ている。
126 :
121:05/03/15 16:32:46 ID:???
>>124 やっぱりそうなりますか。。。
>>125 ごもっともな意見で。
私は毎日1〜2回ペースで更新しているので、書き忘れることもしばしば・・・・。
この手間が省けるだけでも、だいぶ楽かなぁ・・・と思ったのですが、
ちょっと使ってみようかと思ったら使えなかったので、
どうにかして使えるようにならないかと思ったのです。
んで、そのうちそれを考えるのが楽しくなってしまい、
もう楽しようとかはどうでもよく・・・・w
とりあえず、自分で簡単にCGIでは組んでみたんですが、
やっぱり手動で書くことにします。
毎日1〜2回ペースで更新・・・
同一ページで? 日記とかではなく?
とりあえず、更新履歴として書き出したいのなら、(その表示させたいページをIndexページとして)
掲示板タイプの更新履歴のページを別に用意して、
それに書き込んだら、
自動で最終更新のデータ(時刻とメッセージとか)が入ったJSファイルが作成され、
で、Indexページで そのJSファイルを読み込んで、何とかかんとかいろいろして表示、
みたいにすれば、更新履歴のページもできて、Indexページにも表示させられて楽かも、とか。
自分は昔そうやってたけど、その更新履歴のページに書き込むのが面倒になって止まった。
おれはコンテンツのタイトル、概略、ファイル名、日付をXMLにして、それを表示させてる。
>>126 少なくとも、漏れの使っている超マイナーなエディタにもあるから、大丈夫だと思うけど。
最近のテキストエディタはタグとか日付とかタブコードとか、
よく使うものをショートカットにしてサクサク入れてくれる機能が
備わっていると思うので、試してみて。
メモ帳ですら時刻入れられるからね
131 :
121:05/03/15 17:47:44 ID:???
うあ、みなさん色々とありがとう御座います〜。
>>127 日記(というより雑記)+Newsみたいなページなんですが、
一日に複数回更新する時があるので、最後に更新した時間だけ書いておけば、
見に来てくれた人が中身を読まなくても、更新されたか簡単に分かるじゃないですか。
それを表示したいだけなので、特に、毎回の履歴を書く訳ではないです。
>>128 その労力の方が大変そうですね・・・・(汗
>>129 なるほど、そんな機能もあるんですねw
私は、タグは辞書登録してしまって、変換で出せるようにしてました。
楽したいと書いたのがいけないんですけど、
どちらかと書き忘れの無いようにしたいので、自動にならないかと思ったんですよ。
みんな色々と考えてやってるんですね〜。
私も、がんばろうっとw
秀丸にそんな機能あったかなと探すおれ…
133 :
125:05/03/15 17:56:35 ID:???
そーそ。おれのいいたかったのはメモ帳のF5でってことね。
WINDOWSの場合だけど、XPになってからは西暦を4ケタでくれるので、
もっと楽になった。
>>90 なんか変数の命名方法が2chらしくて良いなぁ…
Unkorean記法とでも名付けるか。
え。
unko とか chinko とか manko とか sex って
PG連中の共通変数名だと思ってたが
基本的なことを聞きたいんですが、
javascript の変数のスコープはどうなってるんでしょうか。
関数宣言の {} で囲まれた中、
制御構造での {} で囲まれた中は
ローカルで、その外で宣言するとグローバルですか?
var hoge って宣言するとローカル。
138 :
Name_Not_Found:05/03/15 21:24:09 ID:IVhRe/WB
教えてください。
アイフーレムを使いたいのですが、見えないブラウザをどうしたらいいか分かりません。
↓のスクリプトで、ある程度大丈夫でしょうか?
<script type="text/javascript" language="JavaScript">
<!--
if (document.all || document.getElementById) {document.write('<iframe src=""></iframe>');}
else if (document.layers) {document.write('<layer src=""></layer>');}
else {document.write('<a href="">●</a>');}
// -->
</script>
<noscript>
<a href="">●</a>
</noscript>
139 :
138:05/03/15 22:14:04 ID:IVhRe/WB
>>138 すみません、誤字です!フレームです!アイフレームです!
アイフーレム
アイフーレム
アイフーレム
アイフーレム
アイフーレム
フーレム ワロタw
漏れはいままでイフレームって読んでた
ガイシュツにつぐあらたな予感・・・アイフーレム
(おれはカタカナで書いた奴をはじめて見た)
Cで書いた場合
char mesbuf[256];
int value = 5;
sprintf(mesbuf, "%02d", value);
//出力は"05"、value = 15なら"15"
の様な処理をJavascriptで行いたいのですが、低コストで行ういい方法はないでしょうか?
(sprintfすべての機能は不要、%0ndのみ処理できれば十分です。)
>>146 msgbuf = String(Number(value) + 100).substring(1);とか。
>>138 アイフーレム も レイヤー も オブジェクト も、
使えないときには、それらの子要素が代替要素になる決まりなので、
わざわざ作者側でJS使ってどうこうしなくてもいいと思うよ、普通は。
<object 〜>
<iframe 〜>
<layer 〜>
<a href="〜">なんとか</a>
</layer>
</iframe>
</object>
>>143 何故ココで?
149 :
146:05/03/16 00:22:46 ID:???
>>147 こんな感じで良さそうですね。どうもでした。
function Int2ZeroFilledString(value, n)
{
return String(Number(value) + Math.pow(10, n)).substring(1);
}
テーブルのセルの中にチェックボックスを入れています。
チェックされるとセルの背景色も一緒に変わる、ということがやりたいのですが、どのようにすれば良いでしょうか?
書き方・参考になるサイトなどありましたら、ご教授下さると嬉しいです。
151 :
138:05/03/16 00:32:17 ID:???
>148
ありがとうございます。
スレ違いだったのかとどきどきしてました。感謝です。
>>150 onclick="this.parentNode.style.backgroundColor='なんちゃら'" とか
153 :
151:05/03/16 00:51:29 ID:???
ありがとうございます。
今ローカルで試してみたところ、まさに自分の求めていたものでした。
しかし、チェックボックスからフォーカス(?)が外れる時に背景色が戻りませんでした。
背景色を戻す方法は無いものでしょうか。
説明足らずですみませんでした。。。
154 :
Name_Not_Found:05/03/16 00:55:22 ID:vjHoq1sX
ウインドウIDからそのIDがついたWindowオブジェクトを取得する方法教えてくれ
window.open( '
http://www.2ch.net', 'hoge');
で、hogeを開いた後、別画面から「hoge」ウインドウが開かれているかチェックしたいわけよ。
155 :
151:05/03/16 00:56:24 ID:???
すみません、onblur="" で可能なことを知りました。
本当にありがとうございました。
>>154 windowオブジェクトにどんなプロパティがあるのか調べろ。話はそれからだ。
>156
当然調べた上で質問してるんだが、まったく分からん
つーか、タブブラウザとかだと 小窓とか別窓操作とかほんと意味ないし やめてほしい。
近頃はGoogleツールバー使ってる人もいるからwindow.open()が無効になることが多いしね。
それと、なんでもかんでもリンク先がtarget=_blankで別窓開くようになってるとハラがたつよ。
イントラでの話なんでおながいします。
あと、別ウインドウにhoge()っていうメソッドが存在するかどうか判定したいんだけど、なにか方法ある?
162 :
Name_Not_Found:05/03/16 01:19:02 ID:vjHoq1sX
if( hoge ) で普通に判定できた
スマソ
「普通」じゃねえよw
if (window['hoge']) alert(1);
else alert(0);
なんだそのパーソナルスタンダード
「メソッド」ってw 合ってるのかどうなのか
とりあえず窓のIDと関数名同じにしない方がいいと思う。
文書型宣言があるときにIEでdocument.body.scrollTopを所得しようとすると、スクロールしても0のままなんですが解決策はないですか?
文書型宣言を書き換える以外の方法でお願いします。
前スレに似たようなのなかったっけ。
168 :
Name_Not_Found:05/03/16 12:50:43 ID:Drrw6975
検索画面を別のウィンドウに表示するものを頼まれて製作したんだけど、
こっちと相手で動作が違って困ってます。
引っかかってる部分は、
window.open('','result'〜〜〜〜
の行らしいんだけど、相手曰くには
・ローカルだと動作しないけど、ネットワーク上の他のPCに置いて開くと大丈夫
・その「他のPC」でもローカルでは動作しない
環境はWinXP+IE6(SP2)だというので、こちらも同じ環境を用意したんだけど、
症状が再現できなくて困ってます。
何か心当たりある方、助言お願いします。
>>168 ファミレスで「ガッツ」とだけ書いておいたら、普通に
「2名でお待ちのガッツ様ー」と呼ばれた。
ほんと普通に呼ばれたので思わず吹き出してしまった。
「奥の席でもよろしいですか?」と聞かれたので、
「OK牧場」と答えたら
店員が鼻水飛ばして吹き出した。
>>166 IE等の標準モードではdocument.bodyではなく
document.documentElementを参照するんでは。
172 :
168:05/03/16 13:14:53 ID:???
わかりづらかったかorz
要はローカルで実行すると上述の箇所でエラーが出るってことなんだけどね。
こちらではWin2kでもXPでも問題ないんだよなぁ。
>>170 コピペなんだろうけど笑ってしまったw
ローカルでできないと何か支障あるの?
同じ環境なら、ディレクトリ構造とかも同じくして確認するとだいたい同じになるけどなー。
174 :
168:05/03/16 13:36:42 ID:???
>>173 レスどうもです。
最終的にはローカル(とイントラネット内)で使う検索システムらしいので、問題ありです。
相手はAdministratorの権限を持ったユーザーで使用してて、
・MyDocument内に作った新規ディレクトリ
・Cドライブ直下に作った新規ディレクトリ
・デスクトップ内に作った新規ディレクトリ
全てエラーが出たそうです。
こっちも同じ条件で試したんですけど・・・。
せめて再現してくれれば対策も考えられそうなんだけどなぁ。
175 :
166:05/03/16 14:36:13 ID:???
>>171 ありがとうございます。
解決しました。
176 :
Name_Not_Found:05/03/16 15:53:55 ID:gF2E6LQe
質問です
HTTPのリンク先にjavascriptを使用して
valueのパラメータを functionでうけとって
valueのパラメータをセットするformの書き方がわからないです。
onSubmitをつかってメソッドにもどすみたいなのですが・・・
どうかよろしくおねがいします
177 :
Name_Not_Found:05/03/16 15:56:21 ID:IeqHDf8c
ページにテーブルのリストを5つ作ったのですが、長いので全部表示できないので、フレームを2つ作って1つをメニューフレームに
してドロップダウンリストでテーブルリスト1から5を選ぶと別フレームでそのテーブルがページの先頭にくるようなjavaスクリプトを
作りたいのですがどのようなやり方があるのでしょうか?助言宜しくお願いします。
>>176 意味解らん…。...hoge.html?name=value とかのURLで
クエリの部分をフォームの規定値として設定したいということ…?
>>177 TABLEをid属性でアンカーにして、いわゆる
「プルダウンメニューでリンク」を使えばいい。
180 :
176:05/03/16 16:15:49 ID:???
>>178 申し訳ありません
当方javaの勉強をしてまして、出された課題が
javascriptを使っている部分なものでこちらで質問させていただきました。
なのでjavascriptの知識がほとんどなく、webなどを見ながら作っているので
おかしな質問になっているのだと思いますorz
自分が作ろうとしてるのは
リンクが1-10 11-20のように分かれていて
<p><a href="javascript:getValue('1')">>1-10<p>
↑これをクリックすると
valueの値を getValueメソッドにいれてやりたいのです。
リンクを 分けてるのでこのような形にしてます
わかりずらい説明ですみませんorz
>>180 JAVAだろうがなんだろうが、プログラムの勉強をしているなら、
まず変数の定義をしてくれよ。
valueってなに?
>>180 あと、getValue() がホントにメソッドなら、どのオブジェクトのメソッドなのかも
書かないとわかんないよ。
まあ多分ただの関数で、メソッド、の意味をきちんと理解していないだけなのだろうけど。
183 :
176:05/03/16 17:09:29 ID:???
うーむ そうですね・・
しっかり理解できるようがんばってみます。
お目汚し失礼いたしました。
184 :
ルナ:05/03/16 17:26:27 ID:dQpht9tm
あのう
画像切り替えをJava scriptで書くの、教えてくださいましm(_ _)m
<script language="javascript">
<!--var num = 2;function timer () {if(document.img.complete) {document.img.src = "./images" + num + ".jpg";
num++; if(num > 34) num = 1;}
setTimeout("timer()", 2500);}
//-->
読みにくいようw
var num = 2;
function timer () {
if (document.img.complete) {
document.img.src = "./images" + num + ".jpg";
num++;
if(num > 34) num = 1;
}
setTimeout("timer()", 2500);
}
こうか。
さて・・・
コピペしにくいようw
var num = 2;
function timer () {
if (document.img.complete) {
document.img.src = "./images" + num + ".jpg";
num++;
if(num > 34) num = 1;
}
setTimeout("timer()", 2500);
}
つまり、
1.jpg 〜 34.jpg まで画像があって、
34.jpg までいったら 1.jpg に戻り、
2.5秒ごとに画像を切り替えられ(画像がロードし終わってない場合は次の2.5秒で)、
その画像の要素はHTML内に <img src="〜" id="img" alt="〜"> で指定してあると?
>>186 不精してすまん(笑)
って入れて大丈夫なのね・・・。
>>187 だとしたら
document.img.src はアレだな。
せめて
document.forms[0].elements['img'].src とか
document.getElementById['img'].src とか…
>>185-186 読みにくい?コピペしにくい?で、人力整形してやったのか?
JS一行コメント(HTMLのマーク宣言開始区切り子とコメント区切り子) と同じ行に
書いている事の方が重大な問題だろ。
「 <!-- 〜 」 と 「 // 〜 」 は等価、とか前スレで言ってたんだっけ。
そこらへんさえ直せばなんとか動きそうな気はするね。
洩れはJSコメントアウトなんてもう何年もやってない。
ふつーのブラウザで問題になるものなんかないもの。
>>194 おれもだな。
このコメントアウトは、いわば、むかーし、日本橋の三越の便所に
「洋式便器の使いかた」って書いてあった、アレと同じもんだな。
時代が進めば要らなくなる。
>>195 > このコメントアウトは、いわば、むかーし、日本橋の三越の便所に
> 「洋式便器の使いかた」って書いてあった、アレと同じもんだな。
そんな年寄りなの?
197 :
195:05/03/16 21:18:33 ID:???
>>196 年寄りってことばは嫌いだが、5月で74歳だから、まっ、仕方ないかな。
>>196ー198
「洋式便器の使い方」まだ存在してるよ。どっかで最近見た(それも改装したての
新しいトイレで)。TOTOは出荷する製品に洩れなくあれをつけてるんじゃないの?
で、それを律義に貼る奴がいたと。オフトピ御免。
でも洋式トイレのレバーがないやつを初めて見たとき、どうやって流せばいいのか途方にくれたことがあったよ。
あの便座の横にボタンがいっぱいでてるから、どれか押せば流れるんだろうと思っていろいろ押してたら水が便器からでて焦ったりw
壁にある赤外線センサーがスイッチだって気づくまでにずいぶんかかった・・・orz
都会はハイテクなんだなぁ・・・って思ったよ。(ノд`)
202 :
195:05/03/17 02:13:57 ID:???
トイレに例えたのが運の尽き。あきらめろ。
あっ、タメ口ですいません
207 :
202:05/03/17 08:58:52 ID:???
ったく。近ごろの若いもんは口のきき方がなっとらん。
>>197を見習え。
人生の大先輩を友だちだとおもっとる。しっかし、トイレで運の尽きとは、
ウマイな、若いの。座布団じゃ。
すみません。
confirmでlocation.reload()を使いたいのですが記述が悪いのか動きません。
先にpass=promptで入力させてから
res=confirm("入力内容は"+pass+"でよろしいですか?");
if(res==false)location.reload();
として、キャンセルされたら再びpass=promptを出すためにページ自体をリロードしたいのですが…
(関数の定義で無限に繰り替えす方法がうまくいかなかったのでページ自体を更新する事にしました)
location.reloadでぐぐってもボタンやアンカーをクリックするとリロードする例ばかりで
自分では応用できませんでした。
多分どこかとんでもないところで誤解しているような気がするのですが
悪いところを教えて下さい。
それともcomfirmでlocation.reload()を使うことが不可能なのでしょうか?
>>208 強制リロード「location.reload(true);」じゃなくて大丈夫なの?
var pass, res;
while (!res) {
pass = prompt("パスワードを入力してください。","");
if (pass) res = confirm("入力内容は"+pass+"でよろしいですか?");
}
とかじゃだめなの?
あと prompt はゴミがつく場合があるので、対処した方がいいかもね。
var hash = { a : '++', b : '--', c : '**' };
var str = 'abcd-abcd-abcd-';
str = str.replace(/([abc])/, hash["$1"]);
こういうのって JavaScript ではできないのかなあ・・・。
>>211 できないわけがないだろ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var hash = { a:'++', b:'--', c:'**' };
var str = 'abcd-abcd-abcd-';
document.writeln(str.replace(/[abc]/g, function(x) { return hash[x]; }));
</script>
</body></html>
Σうおぉおすげー! できたーーーヾ(゜∀゜)ノ"ーーー!
ありがとうありがとうかなり感謝奉
>>212
質問です、perlのファイルアップロードでHTML(ファイル名指定)側にJavaScriptを使ってます。
保存cgiは無事機能することがわかったのですが、JavaScriptを混ぜると機能しない部分があります。
<HTML><BODY>
<FORM ENCTYPE="multipart/form-data" ACTION="picture_upload.cgi" METHOD="POST">
<INPUT TYPE="hidden" name="test" value="ok">
<INPUT TYPE="FILE" NAME="pic_file_name"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload This File"><BR>
</FORM>
</BODY></HTML>
↑このソースでファイルを指定すると無事にアップロードが完了します。しかし
<FORM name="FormT">
<INPUT TYPE="hidden" name="test" value="ok">
<INPUT type="file" name="pic_file_name" size="80">
<INPUT type="button" value="写真の追加" onClick=doAddPic()>
</FORM>
・HTMLのJavaScript記述
<SCRIPT language="JavaScript">
<!--
function doAddPic()
{
document.FormT.action = "./pic_upload.cgi";
document.FormT.method = "post"
document.FormT.enctype= "multipart/form-data";
document.Form.submit();
}
//-->
とやると、アップロードが出来ません。フォーム内にボタンを複数設置するため、
その区別のためにJavaScriptを利用しています。
どうやったらファイルのアップロードが実現しますでしょうか?よろしくおねがいします。
訂正。下から6行目の
document.Form.submit(); はdocument.FormT.submit();の間違いです。
>>214 複数のSUBMITにそれぞれ別のNAME指定しとけばサーバ側でどれが
押されたか区別できると思ったけどな。JSとまったく無関係だが。
>>214 > document.FormT.action = "./pic_upload.cgi";
ここだろ?
>>216 確かに深い意味はありませんでしたので直しました。
そしたら無事アップロードも成功してしまいました。
JavaScriptは奥が深いですね(と、逃げ)
リンクする時、新しいウインドウを出さないで、いわゆる、ハイパーリンクをJAVAスプリクトで行うことをやりたいのですがどうすればいいのでしょうか?
222 :
Name_Not_Found:05/03/17 18:24:12 ID:eeopD5mH
どなたか、わかる方でよろしくお願いします。
IFRAMEタグを使って埋め込みしていた
HTMLをOBJECTタグで埋め込みしたら
埋め込んだ側のAタグリンクや、JavaScriptから、
親側のHTML(HEAD部)に記述したJavaScriptが
呼べなくなってしまいました。
(parentが通らなくなった)
OBJECTタグ→IFRAMEタグ
に変えれば動作するんですが、諸事情あって
IFRAMEタグの使用が許されていない環境です。
OBJECTタグによるインラインソースで
親側JS ←→ 子側JS
の呼出はどうやったらよいのでしょうか。
223 :
Name_Not_Found:05/03/17 19:13:12 ID:eeopD5mH
> 222 について
--親側-------------------------------
<script language="JavaScript"><!--
function testF(reqVar) {
window.alert(reqVar);
}
//--></script>
:
:
<td><object id="innerA" name="innerA" type="text/html" data="./kodomo.html"></object></td>
のように埋め込みしています。これを子(kodomo.html)側から
<td><a href="#" onClick="parent.testF('ABCDEFG');"><img src="./image1.gif"></a></td>
と、testF() を叩きたいのですが、うまくいきません。
(一旦、子側のヘッダに書いた関数を経由させて、parentで叩かせても、だめでした。)
埋め込みタグを
<td><iframe id="innerA" name="innerA" src="./kodomo.html"></iframe></td>
に変更すれば、どこを経由させてもうまく行くのですが・・・・
>>221 どうもありがとうございます。
window.openのかわりに入れれば良いのでしょうか?
どうもうまくいかなくて首をひねってるところです汗
>>224 「window.open(...);」の代わりに「location.href = '行き先URI';」を実行。
>>222 parentの代わりにtopとしたらどうかな。
>>225 解決いたしました。
どうもありがとうございます。
228 :
208:05/03/17 20:23:17 ID:???
遅くなりましたが、ありがとうございました。やってみます。
>>222-223 試してないし、まだよく読んでもいないけど、
IE は JS で OBJECT 要素を取り出して、何らかの処理を与えるとエラーで死ぬので、できない。
他のブラウザでやったらできたりしない?
IEだけ、innerHTML とか outerHTML とか使って、
<OBJECT 〜> を強制的に <IFRAME 〜> に変換するようにしてもいいかもよ。
うちはそうしてる。気に入らないけどしょうがない。
230 :
Name_Not_Found:05/03/17 23:11:55 ID:azNyxWHP
相変わらずJavaScriptってマニアック
別に作り方がマニアックなのはいいんじゃないの?奥が深いとも言う。
使う(ページ見る)方はふつーに見ればいいわけだし。ユーザの邪魔する
ようなスクリプトは本スレでは扱わないわけだし。
そんな奥深いかな?w
しかしJSって、作る方としては、ブラウザで仕様が違うのが、作るより面倒なとこよね。
たいてー怒りの矛先は IE なんだけど。
233 :
Name_Not_Found:05/03/18 00:26:32 ID:dhC4F3R9
222です。
> たいてー怒りの矛先は IE なんだけど。
激しく同意
234 :
Name_Not_Found:05/03/18 00:27:08 ID:dhC4F3R9
222です。229さんどうもです。
開発のしばりについて詳しく書けない状況ですみません。
最終的にはインライン要素の中身は、ファイルではなくCGI出力になるんですが
→要素中に更に別のオブジェクトの動的な起動トリガが複数含まれていること。
→CGIの開発が別発注で、この部分にinnerHTMLの使用ができないこと。
などから、可能な限り<OBJECT>要素として埋め込んだソースで解決したいと考えています。
子側JavaScript → 親側JavaScript
が×の場合、せめて
子側JavaScript → 親側FORM.VALUE
にアクセスできればとも考えたのですが、これもパスが通せませんでした。
235 :
Name_Not_Found:05/03/18 00:27:59 ID:dhC4F3R9
連投ですみません。
→親側子側とも、それぞれの中では問題なくJavaScriptが動作する。
→FLASH<-->JavaScript, OBJECTタグで埋め込んだJAVAアプレット<-->JavaScript
などが動作していることを考えると、
同じJavaScriptどうしなら、パスさえ見つかれば<OBJECT>タグの内外で繋がりそうな気がしてなりません・・・(甘いかな)
> IE は JS で OBJECT 要素を取り出して、何らかの処理を与えるとエラーで死ぬ
ここのところなんですが、
getElementByIdで属性やスタイルを変更する、とかのことではない処理ということであれば、もう少し詳しく頂けないでしょうか。
>>235 222読んだw なんか微妙的外れな解答しちゃって申し訳ない。
興味あったんでやってみた。
たぶん IE じゃ無理な気分。 他のブラウザだと普通にできるね。
子のHTMLに次のような記述をして、確かめてみれば分かるよ。
Child.html - - - - - - - - - - - - - - - - - - - - - - -
<title>Child</title>
<script type="text/javascript">
function testE (reqVar) {
alert(window.parent.document.getElementsByTagName('*')[0].outerHTML);
}
</script>
<p><a href="#" onClick="testE('ABCDE'); return false;">Test?</a></p>
- - - - - - - - - - - - - - - - - - - - - - -
window.parent を window.top にしても、この Child.html のソースが出るね。
息子は親関係なく一人で生きてるらしい。
OBJECT だと IFRAME でできる、 親スクリプト → 子の中の要素を取得 とかもできないし、
とりあえず今は IE で <OBJECT> 使うのは結構辛い。
<APPLET> や <EMBED> 代わりに <OBJECT> 使おうとしても、いろいろ変な挙動するし。
なぜだ。なぜなんだ。くそーっ
空耳ですか?
天声です。
javascriptで、physical address(イーサカードのMACアドレス)は取得できますか?(javascript以外でもいいんですが。。)
phpに送る配列のtextはjavaスクリプトからどうやって参照したらいいのかなあ?
<input type="text" name="ABC[0]">
<input type="text" name="ABC[1]">
<input type="text" name="ABC[2]">
を以下のようにして合計を出したいのだけど
var sum = 0;
for (var i=0;i < 3;i++){
sum += eval(document.form1.ABC[i].value);
}
246 :
Name_Not_Found:05/03/18 10:03:54 ID:dhC4F3R9
>>236 どうもです。
JScriptは当然として、VBScriptでもだめでした。
Documentノードにすら手が届きません。
IEの<OBJECT>は鬼門ですね。
検証用のソースありがとうございました。
こんにちは
WebProgのほうへ書き込んだのですが、板違いとのご指摘を受けまして、こちらへお邪魔しております。
このスクリプトIEでしか動きません。。
FireFoxで動作出来るようにしたいのですが、よきアドヴァイスをお願いします。
function insertTAG () {
if (!document.selection) return;
var str = document.selection.createRange().text;
if (!str) return;
document.selection.createRange().text = "<B>" + str + "</B>";
}
ちょっとしたアート
>>247 ホレ。IEとの切替えは自分でやれ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
document.onmouseup = function() {
var s = window.getSelection(); if(!s) return;
var r = s.getRangeAt(0), b = document.createElement('b');
b.appendChild(document.createTextNode(s.toString()));
r.deleteContents(); r.insertNode(b);
}
</script>
</head><body>
<p>abcdefghijklmnopqrstuvwxyz</p>
</body></html>
アート驚く為五郎
どうしてもはまってしまったので質問させていただけますか?
サブウィンドウを開く際、サイズを引数で渡したいんですが記述法がわかりません。
どうぞご教授いただけますようお願いします。
↓自分なりに四苦八苦した末のちっともサイズが指定どおりにならない記述です。
function openwin(url,winName,Wsize,Hsize) {
w=window.open(url,winName,'width=parseInt(Wsize),height=parseInt(Hsize)');
}
*呼び出し側*
<a href="javascript:openwin('hoge.html','win01','400','300')">■</a>
>>254 はまったというよりプログラミング言語の仕組みが分かっていないだけだろ。
'width=400,height=300'
という文字列を最終的に得たいのなら
'width=' + 幅の計算式 + ',height=' + 高さの計算式
という風に文字列連結を使う必要があるよな。これで分からなければ
向いてないからあきらめた方がいいと思うが。
つーか、最近の質問って、
子windowがどーたらとかフレームがどーたらとか、そんなんばっか。
JavaScript はただの別窓開くための小道具かと。
面白い質問キボンヌ
無限window.open()のブラクラを思い出すし、いやん♪
JavaScript
ジャーマンスクリプト
お風呂そうじに
どんな料理にも合う
そこは いや〜ん。
「XXのインスタンス」とか連呼してるあたりが嫌だね。
266 :
Name_Not_Found:05/03/19 09:39:59 ID:mKE3z5fG
onMouseOver と onMouseOut で画像が切り替わるようにスクリプトを書いたの
ですが、自分のPC内ではちゃんと動くのにアップすると反応しません。
どこが悪いのかわからないのですが、教えてください。
HTMLの後に
function MsOut(pos){
document.images[pos].src='bg1.gif'
}
function MsOver(pos){
document.images[pos].src='bg2.gif'
}
のコードを置いています。
先読みはしていませんが、それも関係あるのでしょうか。
>>266 それを呼び出している側も書かないと何ともいえないだろ。
自分で勝手に材料を削るな。
bg1.gifとbg2.gifはアップロードされていることを確認した?
普通にimgタグを入れた場合表示されるのね?
デバッグとしては、どこで問題を起こしてるかを見ないとな。
1.a.A
1.b.C
1.a.C
2.c.A
2.b.B
1.c.A
1.c.B
3.a.C
って感じの文字列で、3番目のアルファベットが何種類あってそれが何かを取得したいんだけどどうしたらいいですか?
はしょりすぎ(笑)
var string = '1.a.A\n1.b.C\n1.a.C\n2.c.A\n2.b.B\n1.c.A\n1.c.B\n3.a.C\n';
var str_lines = string.split(/\n/);
var str_values3 = {};
var str_length = str_lines.length;
for (var i = 0; i < str_length; i++) {
var v3 = str_lines[i].split(/\./)[2];
str_values3[v3] = 1;
}
for (var k in str_values3) {
alert(k)
}
>>269 //JavaScript1.5, JScript5.5
var s = "1.a.A\
1.b.C\
1.a.C\
2.c.A\
2.b.B\
1.c.A\
1.c.B\
3.a.C";
var a = new Array;
var o = new Object;
var p = /\w(?!\.)/g;
var r = null;
var ARIENAI_PROPERTY_VALUE = 'ARIENAI PROPERTY VALUE';
while (null != (r = p.exec( s))) {
if (ARIENAI_PROPERTY_VALUE != o[ r[ 0]]) {
o[ r[ 0]] = ARIENAI_PROPERTY_VALUE;
a[ a.length] = r[ 0];
}}
print( a);// alert(a), etc
273 :
254:05/03/19 16:52:00 ID:???
>255
ありがとうございました。
全くわかってない質問をしてしまい、スレの皆様には失礼しました。
でも、おかげさまでやりたかった事が出来ました!
>>269-272 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var o = {}, s = '1.a.A\n1.b.C\n1.a.C\n2.c.A\n2.b.B\n1.c.A\n1.c.B\n3.a.C\n';
s.replace(/[0-9]\.[a-z]\.([A-Z])/mg, function(a, b) {
if(!o[b]) o[b] = 1; else ++o[b]; return ''; });
for(var k in o) { document.writeln(k + ':' + o[k] + '<br>'); }
</script>
</body></html>
>>242 遅レスすまそ
やっぱ出来ないのか。。JAVAだと出来そうな風に書いてあったんだけどよくワカンネ
たとえば、ネットワークコマンドを利用できるような構文ってないのでしょうか?
ExecCommandみたいな感じで。。
>>275 ExecCommand('del *.*'); とかできたら喜んで悪戯する奴が
ごまんといるわけだが、どうよ?洩れはそんなブラウザ
死んでも使わんね。
>>275 JAVAって言うな。それとも本当にJAVAの話か?
JavaScriptは別物だと言わねばならないのか??
278 :
275:05/03/19 18:46:42 ID:???
>>276 それは、俺も考えてた
「その理論ゆえに、javascript上では使えないように設定されている」ってことで正解?
ツールも含めて他の方法検討してみるわ。。レスくれた方あんがとん
279 :
275:05/03/19 18:49:44 ID:???
>>277 javaとjavascriptが別物というのはわかってるよん
いろんな単語を並べて、ググってみたら、javaでこういうことが出来ないかって話題があったってこと
どのサイトだったかは覚えてない
型 な し 言 語 は ウ ン コ
>>281 うげげ、あなたは悪くない、私がつい「何がいくつか」数えただけ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var l=[],o={},s='1.a.A\n1.b.C\n1.a.C\n2.c.A\n2.b.B\n1.c.A\n1.c.B\n3.a.C\n';
s.replace(/[0-9]\.[a-z]\.([A-Z])/mg, function(a, b) {
if(!o[b]) { o[b] = true; l.push(b); } return ''; });
l.sort(function(a,b) { return a < b ? -1 : 1; }); alert(l);
</script>
</body></html>
スマソ、なんか単に「l.sort()」でいいような気がする。まあいいか。
284 :
271:05/03/19 21:53:54 ID:???
>>281 あそこまで書けば後は自分でできるか思ったんだけどだめか(笑)
>>271の for 〜 in のとこを、
// キーを配列に格納
var values3 = new Array();
for (var k in str_values3) {
values3[ values3.length ] = k;
}
values3 = values3.sort();
alert(values3);
にしてみそ。
サンプルテキストがホントのサンプルなのかわからんけど、
違うかったら sort() の中身を
>>282 のようにしていろいろやってみれ。
・・・JS って keys や values みたいな関数ってないよな・・・?
>>283 うちも最初そんな感じで (+要素数とかもカウントして) 書いてたけど、
初心者的には 「カッコよさ」 とかより 「わかりやすさ」 なんだよねー。
前、親切心で余計なお世話して 「わかりにくい」 言われたことが何度もあるので・・・w
かっこいいコードが書けるようになるにはどうしたらいいでしょうか?
どんなのがあんたのいう 「かっこよさ」 なのさ。
そうそう、かっこいいと自分が思う基準があって初めてかっこいいコードが書けると思う。
うまい人のコードって、「なるほど!」って関心させられるんだけど
そんなコードを書いてみたいんですわ。
まあ別に唯一の正解があるわけじゃなし、1つの質問に
さまざまなコードが出たらいいんじゃないの。
コードがかっこいいから良いコードってわけじゃない。
動くコードが良いコード。
その上で最適化するスキルがあるなら最適化すれば良いだけのこと
291 :
281:05/03/19 22:54:44 ID:???
ありがとうございます
いろいろ出してくれるのは勉強になります
>>284 すいません、つい甘えてしまいました
でも、ほんとみなさん親切で助かりました
今、とっても清々しい気持ちです
いやー、性能や短さといった数値的尺度だけじゃないんだな。
えもいわれぬ、美しさというか、スマートさというか、そういう
ものってあるんだよな。もちろん正しく動くのはmustだけどさ。
293 :
Name_Not_Found:05/03/19 22:55:38 ID:diBqU7Lt
<IMG onClick="showModalDialog(300, 300, 120, 220, '★☆★☆★')" src="c:¥ボタン赤21.jpg" alt="新しいウインドウが開くよ!ここをクリック!">
この新しいウインドウを元のウインドウの中央に出したいです。
そうですか。
美しいコード===保守性の高いコード
、だと思う日曜プログラマ。
先週の私は赤の他人、です、ハイ。
>>293 元のウィンドウの位置と大きさを取得して出す位置とかを計算すれ。
それ以上教えようがないだろ。取得の方法は調べればすぐ分かるよな。
自分は、美しいコード ≒ 他の人が見てもなんとなく分かる(気になる)コード、 かなー。
インデントと、適度な改行と、適度なコメントと、
長く使う変数名はぱっと見わかるようにする、のを心がけてる。
長く見ないうちに自分ですら何書いたかわからなくなるようなコードはイカンな、と反省w
それに付け加えるなら、スマートさ(合理性)と、利便性と、再利用性、とかかなあ。
短いコードがカッコイイ、とは別に思わないかも。
あー、JSじゃないけど、 Schwartzian Transform とかカッコイイと思ったなー。
初めて見たとき感動した覚えが。
コードの美しさとは違うけど、
一見シンプルなサイトで、フォームのフォーカス制御や入力補助などに
JavaScriptをさりげなく使っていたりするのがかっこいいと思う。
身近なところではgoogleとか。
var tmp2 = document.build.character.options[document.build.character.options.selectedIndex].value;
これだけでは分からないかも知れませんがもしかしたらと思い書き込みます。
これで変数tmp2にプルダウンメニューの値が入らないんですよ。
何度も見直しましたが分かりません。どうかお願いします。
>>301 とりあえずここおかしい。
> ....character.options.selectedIndex]....
....character.selectedIndex]....
>>301 つーかw ひどい書き方だって自覚しようぜw
build って何? character って何?
<form id="build"> と <select name="character"> のことだったら、
function test() {
var d = document;
var chara = (d.forms['build']) ? d.forms['build'].elements['character'] : null;
if (!chara) { alert('error'); return; }
var tmp2 = chara.options[ chara.selectedIndex ].value;
alert(tmp2);
}
これくらい書いてもバチ当たらんよ。 HTMLちゃんと書こうな。
>>302 そこをそのように変更してみました。
それでも動きません。
一度[]内の値だけとってみて正常だったんで[]内には問題ないと思うのですが・・・
> 正常だった
終了じゃん。
306 :
305:05/03/20 03:16:53 ID:???
失礼。とったって取り出したってことね。
.value じゃなくて .text を取りたいんだったりしてな。
>>306 同じじゃね?(笑
<form name="build">,<select name="character">です。
もしかしてnameを使って指定する方法が違うのでしょうか?
[]内が正常だったのとスクリプトの他の部分も正常だったので書き方はこれで良いと思ったのですが。
それとひどい書き方というのはスクリプトの方でしょうか、それとも情報の出し方の方でしょうか。
何卒ご指導願います。
<option> と スクリプトを呼び出す部分のところもちゃんと書きなさい。
っ「正常 == ちゃんと動く」
つまりもう動いてるんだ? よかったじゃん。
よかったよかった!
312 :
Name Not Found:05/03/20 09:39:17 ID:QH7/cZge
質問させてください。
ふだん、自転車板にてまったりしているものですが、
会社の上司から「お前、HPつくれたよな」と言われたのが
ことの始まりで、宿題をだされました、で、1人では解決できないので、
どの板か迷ったのですが、ここに書き込みました。
宿題なんですが、あるテレメーター端末から、
テキストデーターが送られてきます。
そのデーターを、エクセルで管理しているのですが、
HP上に時間おきに、データーと表グラフを
アップできないかというものです。
よく、河川事務所なんかで水位の計時変化を出してるあれです。
これは、Java Scriptでやってるものなのでしょうか?
お分かりの方アドバイスお願いします。
参考書籍などもあれば教えてください。
送られてきたデータをコンバートして自動アップするのは相当シビア。
テキストデータと言うのが、シンプルテキストなのかワード・エクセルなのかでも大きく違うかと。
JavaScriptの場合は、例えば表グラフなどの画像を読み込む事に特化してると言える。
新規データ(表グラフ)を画像として上書きアップし、それをJavaScript側で読み込めば計時的にはなる。
テキストデータから変数を取得させて、表グラフを生成させる方法もあると思う。
この場合、JavaScriptで無理矢理出来ない事は無いと思うけど、Flashの方が向いてるかもな・・。
てか、業者に頼め!!
JavaScriptって、ブラウザの ”戻るボタンが押された” と言うイベントを認識する事は出来るんでしょうか。
戻るボタンを無効にしつつ、戻るボタンが押された時に変数をいじる と言うイメージです。
悪意のある目的ではなく、
Flashサイトだと戻るボタンで戻る事が出来ない為に、戻るボタンのイベントを感知して、
Flash側での”戻る”を再現しようと思っている次第にございます。
315 :
301:05/03/20 10:49:44 ID:???
<option>のvalueに問題があったようで、
当然かもしれませんがvalueってタグの間の文字じゃないんですね・・・
おかげさまで解決しました。
お世話になりました。
316 :
312:05/03/20 12:39:28 ID:ks0Hzhza
>>313殿
「業者に頼め」そのとおりです。
しかし、社員数名の零細なもんで^^;
>新規データ(表グラフ)を画像として上書きアップし、
テレメーターからはシンプルテキストが送られてくるので、
しばらくは手動でシコシコやってみます。
Flashも、少し調べてみます。
わざわざ、ありがとうございました。。
>>316 つか、
(サーバサイド)
テレメータからのデータをデータベースに蓄積する。
最新情報を元に、HTMLファイルを作る。
(クライアントサイド)
ブラウザで見る。
で、全部終わってて、クライアント側のJavaScriptの介在する余地が無い…
サーバサイドスクリプト使えるのか?
つか、制作じゃなく、WebProgの話題だな。
>>314 あぁFlashか。
unload イベントとか組み合わせてどうにかならんか?
ブラウザの機能使われたくないときは、事前に window.open させるとか。
IE限定でいいならデータバインドすればいいだろう
321 :
Name_Not_Found:05/03/20 17:13:25 ID:nt2DnsIY
フレーム内に表示されてるページ内のフォームがsubmit時にtarget="_top"となっている
場合、それをjavascriptでtagert="_top"を機能させなくすることは可能でしょうか?
>>316 おれなら素直にPHPで作る。PHPの使えない鯖ならPerl。
鯖にあるデータをいぢくるのはJavaScriptじゃ辛いものがある。
323 :
321:05/03/20 17:17:46 ID:nt2DnsIY
う〜ん、なんか説明が難しいな。
ネットサーフィンをするときにローカルにあるフレームページ内に、
yahooとかのポータルサイトを表示させてるんです。
つまり、2種類以上のサイトを1つのウインドウ内で見ているのですが、
サイトによってはtarget="_top"をしている、フォームやアンカーがあります。
その時にフレームがなくなってしまうのが困るので、なんとかtarget="_top"の無効化を
測りたいのです。
宜しくお願いします。
>>321 DOMかな。setAttribute()でかえればいいんじゃねーの?
325 :
321:05/03/20 17:23:08 ID:nt2DnsIY
>>324 ありがとうございます。
しかしそれで書き換えられるのはjavascriptが発動できる1回目の読み込み字だけですよね。
コードはローカルにあるフレームページにしかかけないので、サーフィンしてる間に
ページを読み込むたびに書き換えをすることは不可能では?
テーブルの特定のセルの背景色だけを、
アクセスするたびにランダムで変更する事は可能でしょうか。
ググってみると、「マウスが乗ったときだけ変化する」とか
「ページ全体の背景色をランダムで変化」などは多数見つかったのですが、
目的の物がなかなか見つかりません。
どうかご教示お願いします。
>>323 JavaScript単独じゃ難しいな。
JavaScript、RSSでぐぐってみ。
328 :
321:05/03/20 17:42:09 ID:nt2DnsIY
>>328 JavaScriptは他鯖にあるものを加工するのに向かないのよ。
セキュリティの関係でそもそも読み込めないし。
>>330 レスありがとうございます。
>>35あたりを読んでみましたが、これだと特定のセルにマウスオーバーした時に
そのセルの色を変化させるという事になるのでしょうか。
そうではなく、アクセスしたり、F5なりでページを更新したりする度に
特定のセルの背景色がランダムで変化するようにしたいと思っています。
理解不足で勘違いしていましたらすみません。
もう一度読み直してきます。
>>331 ランダムに何かを変えるってのは理解しているようなんで、あとはセルの背景色という
styleの変更ができれはいいって思ったんだけど。
>>35あたりのがイヤなら、setAttribute()で<td>のbgcolorを変えるとか。
>>332 すみません。理解不足でした。
出直してきます。
ありがとうございました。
foo = ["RED","WHITE","BLACK","YELLOW"];
bar = Math.floor(Math.random()*4));
haikei = foo[bar];
IEだけでいいなら、CSSの中で expression() 使う、って手もあるよ。
>>335 延々と ...backgroundColor = '決まりきった色名' を繰り返させたいのかね。
339 :
Name_Not_Found:05/03/20 21:31:35 ID:Q52LIQVU
画像のスワップしたいのですが、クロスブラウザのスクリプト教えてください。
Googleしてもうまく出なくてすいません。
document.imagesってプロバティはIEだけですよねえ。
他のも知りたいのでおねがいしまっす。
>>339 <img>タグに名前つけて、document.名前.src = "xxx.jpg"とかやれ。
>>339 > document.imagesってプロバティはIEだけ
NN3が最初。次がIE4。
<img alt=".." src=".." name="KKK"> <img alt=".." src=".." name="012">
document.images[ 'KKK' ] // JavaScript, JScript
document.images( 'KKK' ) // JScript
document.images[ '012' ] // JavaScript
document.images( '012' ) // JScript
HTMLのname属性は、<META>要素型を除いて、CDATA。一方、HTMLのid属性は、ID。
CDATAとは、
http://www.w3.org/TR/html401/types.html#type-cdata IDとは、
http://www.w3.org/TR/html401/types.html#type-id 従って、上の例にある混乱を避ける為には、name属性ではなく、id属性を使う。
ただし、NN3-4はid属性を知らない。
しかし、世の大半はNN3-4を見たことも無いから気にする必要は無い。
343 :
339:05/03/21 00:03:33 ID:9XcDAxAI
>>342さん ありがとございます。
でも、なんだかよけい混乱してきた。知識ふえるって混乱するってことですね。
>343
> 知識ふえるって混乱するってことですね。
342じゃないけど。
これは違うと思われw
混乱を治める術を身に付けたとき、知識が知恵となる
例えば、AAAと言う言語を覚えたとする。
その後に、BBBと言う言語を勉強したとしよう。
BBBの言語を勉強している時、細かい部分でのシンタックスの違いで混乱する事が多い。
勉強途中だと、AAAの方の技術も一時的に低下してくる。
しかし、そのウボッァーな状態を抜け出した時、二つの言語の違い・特化部分を良く知り、
両方ともに深い造詣を得る事が出来るのだ。
>>343は、新しい知識をバカにするな。
いつの間にか曜日が出るようになってるね
>347
きっとそれは色々な板で「平日のこんな時間から〜」釣りが出るからでしょう
お前ら平日のこんな時間から2ちゃんかよwwwwwwwww
祝日も表示せなあかんね
ハロー
CQCQ
ページ内のFLASHを、FLASHプラグインがない人向けに、代わりにGIF画像を張る
というスクリプトはどうすればよいのですか?
ページを2つ用意せずに、同じページ内でできればしたいのですが、、。
ちなみに、全くJavascriptかけないのですが、、、。
>>356 全く書けない人が来る場所ではない。objectタグだけでも
いいんじゃね?初心者スレで聞いてみれば?
Bのスクリプトから、AのURLを定期的にチェックする
簡単なモノなのですが、どうやってもエラーがでてしまいます。
function check(){
if ((window.parent.frames(a).location.href != Url) ){
alert(" CHANGED");
Url = window.parent.frames(a).location.href;
}
setTimeout( "check()",1000) ;
}
Aにリンクとたどると数度で”書き込みできません”のエラーが出ます。
これって 防ぎようがないのでしょうか?
(他鯖ではなく、同一鯖内のリンクで出ます。)
※onerrorでトラップ、return true で先へ進むのは
やったのですが、スクリプトの動作自体が止まってしまいました。
ご教示、よろしくお願いします。
その a は変数なのか?
それとも <a>の a なのか?
あ 失礼しました。
変数に入っているフレーム名です
変数に入ってるフレーム名とか言われても分からないです。
とりあえず、<script> から変数の宣言込みで書かないとデバッグすら出来ない。
>>359 フレーム構成は単純にAとBが兄弟フレームなのね?
数回でエラーというのは何が数回?フレームAが他鯖
に変化したためのエラーではなくて?どの行でエラーが
出ているわけ?ともかく情報がなさすぎて分からんよね。
情報小出しはスルー。
度々すいません。
363さんの言う通り、単純な兄弟フレームです。
Aのフレームで表示されているサイト(単なるhtmlです)
を数度リンクをクリックして表示して行った時に
変数Urlと、window.parent.frames(a).location.hrefの所で
エラー:書き込みできません
コード:0
がでます。
(他鯖へ移動した時のエラーではなく、同じ鯖内です)
呼び出元html
<frameset >
<frame src="./hogehoge.html" name="main">
<frame src="./check.html" name="check">
</frameset>
hogehoge.htmlはなんでも可です。
二つにまたがりました。
check.html
<head>
<script language="JavaScript">
<!--
var Url ;
var a ;
a = "main" ;
function check(){
if ((window.parent.frames(a).location.href != Url) ){
alert(" CHANGED");
Url = window.parent.frames(a).location.href;
}
setTimeout( "check()",1000) ;
}
-->
</script>
</head>
<body onload="check()" >
さんぷる
</body>
実際は、<script>〜</script>は外部ファイルにおいてあります。
変数a を a じゃない変数名に変えて試してみてはどうだろうか。
って・・・外部ファイルかよ!!!
デバッグはシンプルに作って行ってエラー見つけるしか無い訳だが。
変数も変えてみました。外部ファイルを今回のように
内部に持ち込んだりもしたのですが結果は同じでした。
(書き込んだのは、その時の名残の奴です)
シンプルに作ってエラーが出るので、狐につままれた感じが。。。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
な、なんか狐につままれたような |
気がする・・・。 .|
_____ _________/
V
∧_∧
/ ヽ
| ` ´|
<>○<>\= o/ それは「つつまれた」だろうが…
// ヽ\⊂ ̄ , ヽ ∧_∧ 激しく違うぞ。
/ ∧_∧ヽ  ̄ ヽ (・∀・; )
/,( ;´∀`)ヽ ,ゝ |___, ヘ ( )
| ヽ\`yノ )( | < | | | .|
ヽ ノ_と_ノ\_<_ノ (__.(__)
うまいっ
>>365 ここに貼られてない(省略された)何かが悪いような気がするが。これでも駄目?
---frame.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head><title>???</title>
<frameset cols="0*,0*">
<frame name="main" src="main.html">
<frame name="check" src="check.html"></frameset></html>
---check.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var uri = null;
function check() {
var u = parent.frames.main.location.href;
if(uri == null) uri = u;
else if(uri != u) { alert('changed: ' + u); uri = u; }
}
</script>
</head><body onload="setInterval(check,1000)">
<h1>test...</h1></body></html>
---main.html---
(同一鯖のページなら何でも)
372 :
Name_Not_Found:2005/03/23(水) 12:14:48 ID:FPBOvBZZ
ちょうど、
>>89さんと同じような事をしたくて
>>90さんの例を見させて頂いたのですが、
これって、このままでいいんですか?
いろいろと試してみたのですが、
どうもうまくいかないのですが…
また、テーブルで縦長に並べていくにはどうすれば良いのでしょう?
>>372 何を試してどううまく行かないのか説明する気はないのか。
>>90 はごく標準的なアルゴリズムをコーディングしたもの
だし、これすら応用できないのならアンタが質問以前のレベル
だということになると思われ。
テーブルに並べて表示する場合
(1) document.writeでテーブルを書いて行く方法
(2) DOMでテーブルを挿入する方法
がある。(1)は易しいけどページ表示時の1回しか書けない。
どっちでも説明はしてもいいんだけど、説明しても理解
できないレベルだったら時間の無駄だし面倒だな〜。
374 :
Name_Not_Found:2005/03/23(水) 12:54:17 ID:FPBOvBZZ
>>373 正直、レベル低いです
最近、各webを見ながら試している程度ですんで
90さんのに前後必要だと思われるものを足してみても表記されないってのも、
知識不足だからでしょうし
やりたかった内容としては、たまに風俗サイトなどで見受けられるような、バナーを縦一列にランダムに並べるってやつでした
>>374 並べ替えのコード書いてみ。
変数の宣言が可笑しいとかぽいから。
376 :
Name_Not_Found:2005/03/23(水) 15:09:23 ID:wXfXVnb/
IEのページの上で右クリックしたときの
メニューの一部分を操作して使えなくすることはできますか?
>>372 >>89のように、1〜5(それ以上でも可)の画像があって
ファイル名は 1.jpg 〜 5.jpg で、テーブルで縦にランダムに並び替えるスクリプトを作ってみたけど
需要があるなら載せるよん。ただしプログラム初心者の俺流のになるけど、一応動作確認は出来た。
379 :
Name_Not_Found:2005/03/23(水) 15:35:07 ID:wXfXVnb/
>>377 ありがとうございます。
ただやりたいのは自分で作成したHPにその機能を埋め込んで
見に来てくれた人の右クリックメニューを操作できないかな・・・
って事なのです。。。
>>379 それは
>>1・ユーザーに迷惑となるスクリプトを書かない者
に反することでわないでしょおか?
if(Key.isDown(2)){
window.close()}
382 :
Name_Not_Found:2005/03/23(水) 16:49:33 ID:wXfXVnb/
そうでは無いと思っています。
オリジナルの楽曲、動画をHPで公開しているのですが
ストリーミングによってトラフィックが増加してしまい
サーバーに付加が掛かりすぎるのでダウンロードだけにしたいのです。
>>382 zipでもrarでも、固めて置いとけよ。
てす。
さあこれで
>>383 に納得するかどうかでDQNかどうかが判るな。
90のってheadで挟んで、
表記したいとこで呼び出せばいいだけですよね?
初心者への良い例題かと思ってるんだけれど、
画像が出てこない…
<SCRIPT LANGUAGE="JavaScript">
<!-- JavaScript
function baka();
//-->
</SCRIPT>
をどっかに入れればええだけなんと違うんですか?
>>386 んじゃ書いておきまふ
<SCRIPT Language="JavaScript">
<!--
n = 5; // 画像の数
grfmt = ".jpg" // 画像の形式
img = new Array(n);
imgchng = new Array(n);
for(i = 0; i<=img.length-1; i++) {
img[i] = i+1 + grfmt;
}
for(i=0;i<=img.length-1;i++) {
rnd = Math.floor(Math.random() * img.length);
imgchng[i] = img[rnd];
// 重複をチェック
for(cnt = 0; cnt < i; cnt++) {
if(imgchng[i] == imgchng[cnt]) {
i--;
}
}
}
>>389の続き(テーブルの表示部分
document.write('<TABLE BORDER="0">');
for(i = 0; i<=img.length-1; i++) {
document.write("<TR><TD><IMG SRC=" +imgchng[i]+ "></TD><TR>");
}
document.write("</TABLE>");
//-->
</SCRIPT>
各自で必要に応じて変更しておいて。変更箇所は最初の
n = 5; // 画像の数
grfmt = ".jpg" // 画像の形式
画像の数が10で画像の形式が gif なら
n = 10 と grfmt = ".gif" に変更
この場合 1.gif 〜 10.gif のファイル名の画像を
このスクリプトを入れたページと同じ場所に置くのが条件
一つ重大な注意を忘れてた
for(i = 0; i<=img.length-1; i++) の繰り返しのところだけど
i<=img.length-1をi<=img.lengthと-1をとってしまうと
俺の環境で確認したところ、無限に繰り返してしまった
俺の環境っていっても、ごく一般的だと思われるWinXPでブラウザはIEなんだけど
確実にブラウザがハングアップしてまうんで、プログラミングに精通した方
問題点を解消できたらアドバイスをキボン
たびたびすんません。面倒なことせんで普通に
for(i = 0; i<=n-1; i++) ってすれば良かったかな(^^;
これなら n-1 の -1 をとっても繰り返す回数が本来必要とする回数より1回増えるだけだった
ブラクラなスクリプトになると危険なんで、訂正しておくっす
上のスクリプトを使うときは「img.length」を「n」に置き換えておいて
配列の 1番目の要素は 0 だからな・・・。
宣言の時点で
n = hoge.length にすりゃいいんでない?
画像を放り込んだ配列が書かれてないから何とも言えませんが。
img = new Array(n); ってところは、Arraryの中に画像ファイル名を個別に記述して
敢えて数字の連番を割り当てない場合、Arraryの中に記述したファイルの数だけ繰り返せば良いから
長さの値を参照するやり方を考えてたんだけどね。その場合
for(i = 0; i<=img.length-1; i++)
img[i] = i+1 + grfmt;
の部分が不要になるかな。
>>388 baka() は先のスクリプト内で既に呼ばれてるから
配列は既にランダムになってる。
あとは好きなように配列を読み出せばよかろう。
>>389-390 全ての変数に var を明示すれば、
(function(){ コピペ })()
が楽になる。
// だいたい、i という変数名がグローバルというのはありえないだろ。
// 変数のスコープとか、演算子の優先順位とかは、言語仕様で最初に目を通す部分だろ。
>>397 だから初心者ですって。その辺分かってないのよ(^^;
自慢にならん。こんなとこで幼稚園するな。勉強してから出直せ。
初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
JavaScriptを本格的に初めて10日ばかりで作ったものなんで(^^;
if,for文や配列についてはC言語を少しだけやったことがあるから知ってたけど
変数の宣言?についてはC言語じゃint charなどを使ったけど
他のJSのサンプルを見ると、されてないものばかりだったんで良いかと思ったんだが
ご指摘ありがとうござんした
初心者ですが javascript で超人類に進化できますか?
漏れも勉強し始めたばかりだから
偉そうな事言えんが、
例えば、
>>389-390 のを、こういう風に書き換えてみろみたいに
提示して頂けると、
その違いからさらに理解が深まると思うのだが
>>403 申し訳ないけど
>>90 があるのになんでこんなことをというか
読む気にならないというか。
var files = ['1.jpg','2.jpg','3.jpg','4jpg','5.jpg'];
document.write('<table border="2" summary="sample"><tbody>');
for(var i = files.length-1; i >= 0; --i) {
var j = Math.floor(i * Math.random());
var x = files[j]; files[j] = files[i]; files[i] = x;
document.write('<tr><th><img src="' + x + '"><\/th><\/tr>');
}
document.write('<\/tbody><\/table>');
>>404 その
>>90の使い勝手が分からない初心者がいるからじゃん
分かる人はスルーすりゃ良いがな
まてまて。
>>90 のコードは最高だと思うぞ。これ以上分かりやすくするのは無理だと思うほどだろよ。
変数名がウンコとかバカとかってのは別問題としてな。
>>406 アルゴリズムを解析する頭が無きゃ使い勝手が分からんってことよ
>>404と比べるとテーブルを表示させるところまでご丁寧に書かないと
初心者には分からんのでしょ
>>405 それは分かっているつもりだけど、ここで幼稚園をやられるのを
放置してたらレベル下がりそうで嫌。
そもそも「配列をシャッフルする」という機能を関数として抽象化
したのならそれはできているものとして呼べばよいのに。
・配列にファイル名を用意する。
・配列をシャッフルする。←できてるものを呼ぶだけ
・table開始タグを出力する。
・配列の各要素について順番に繰り返し、
・・imgタグをtableの1行として出力する。
・ここまで繰り返し。
・table終了タグを出力する。
てな感じになるはずだろ。それを呼ばずに自分でまたぞろ
乱数呼んだりしてこねくり回すのは無意味だと気付いて欲しい。
>>408 幼稚園ってのはバカにしてないか?知らないからこそ起きたことだし
知らない奴をバカにして優越感にでも浸りたいか?
アルゴリズムの説明をするのは、よりこの場にいる人間の考えが改まって有効的だと思うが
410 :
Name_Not_Found:2005/03/23(水) 23:22:02 ID:BkDVgpKp
結果的に良スレになりそうな気がするが
JavaScript初心者スレを作りたい人がいればそういうのを
別に作って欲しい。このスレが初心者スレになるのは反対。
手取り足取りスレというのが存在したこともあるが長続き
しなかったよね。
>>404 for(var i = files.length-1; i >= 0; --i) {
var j = Math.floor(i * Math.random());
var x = files[j]; files[j] = files[i]; files[i] = x;
この部の配列を並び替えるやり方は
>>389の乱数発生で
重複したものをいちいち排除する必要を無くしているから
極端な話、数が多くなったら処理に掛かる時間は大幅に減るな
後で気づいてすげーって思った
ある程度の水準でないと、常連回答者が離れて行って寂れると思う。
そうなった後で初心者が超初心者に教えたりしても悲惨なだけ。
だから厳しいと言われようがこれまで通り超初心者には
「ある程度までは自力で勉強してこい」でいいと思う。
>>412 そこが
>>90 の定石アルゴリズムのすばらしさなんだよね〜
>>413 ご教示どうも。ちょうど新たな質問があったから回答
してきますた。あっちに回答する気になった時はどんな
初心者質問でも文句はないつもり。そういうスレなんだから。
あっちもテンプレに入れてもらう方がいい?
スマソ、「テンプレに入れて」→「ローカルルールに入れて」
他のプログラミング言語の経験があってJavaScriptの初心者っていうならいいんだけど、
プログラミングの経験がない初心者はちょっと手に負えないな。
>>417 そこはもう棘の立たない言い回しで
チュートリアルサイト回って貰うしかないよ
他のプログラミング言語の経験がある場合、数時間から数日で習得できるだろ。
わたしは、昼過ぎに始めて夕方には書けた。この経験から判断して、
「他の言語の経験があるんですが、JSは初心者で」は大嘘だと思う。
特に、文法の似たCやJava経験者がJSで質問を投げることなどあるわけがない。
プログラミング言語の経験が無い場合でも、少なくともトータル100時間は独習するだろ。
最低限の学習もせず、見ず知らずの誰かに質問を浴びせるのは、厚かましい人間だから、
まともに相手にする方が寧ろ馬鹿。からかいおちょくって当然。
いや、おちょくるとか煽るのは止めておこう。それが荒れる原因の一つでもあるんだし
初心者にでもコピペで即席で使えるものを用意するくらいなら容易かと・・・
>>419 おれはC/C++プログラマで、JavaScript初心者のときここで質問しましたが何か?
馬鹿をアピールしなくてもいいよ
文法はともかく、DOMとかはCプログラマが知らなくてもおかしくないでしょ。
あとはHTMLとの絡みもあるしね。
>>419 比較的JavaScript固有の部分、HTMLとのからみとかprototypeとか
コンストラクタとか関数リテラルとか、そういうのは他の言語の
経験者が知らなくて当然だね。でもまっとうな人なら経験者なら
なおさら、リファレンスを見て肝どころというか、難しいところ
だけ聞いてくるはず。何も調べてない奴は経験者だろうが厨房。
手とり足とりスレが生きているのが分かったんだからさ、
それを求める人は手とり足とりスレに誘導すればいいわけじゃん。
スレ違い話(・A・)イクナイ
では次の(まっとうな)質問ドゾー.
急に感じ悪いスレになっちまったな
>>423 DOMってのは別にJavaScriptやhtmlの専売特許じゃない。
オブジェクトの集合体となるデータの構造の話だから。
JavaScriptのDOMインターフェイス、と言おう。
おかげさまでPlatformSDKでメソッド検索するとスクリプト用とIEコンポーネント用の2つが引っかかって鬱陶しい件について
432 :
質問:2005/03/24(木) 19:27:35 ID:MbkHsc7Q
複数の変数を宣言し、値を入れて
var help1="あああ"
var help2="いいい"
var help3="ううう"
関数を作って戻り値にその変数をもらうようなことをしたいのですが。
hoge('help1');この戻り値が.「あああ」になるようにしたい。
ちょっとハッシュ関数に、似たようは動作になると思うのですが、
どなたかご教授お願いいたします。
>>432 function hoge(x) { return window[x]; }
434 :
質問:2005/03/24(木) 20:39:37 ID:MbkHsc7Q
>>433 ありがとうございます。
解決いたしました。
ずっと自分は
<a href="javascript:;" onClick="〜">
と書いていましたが、
<a href="javascript://" onClick="〜">
でもいいというのは本当でしょうか?
とりあえずwinieではエラーにはならないのですが…
>>435 俺はこれ
<a href="unko.html" onClick="〜 ; return false">
>>435 hrefには「JavaScriptオフの時に移動する先」を常に記述
するべきでしょ。
(´-`).。oO(aじゃなくても…)
JavaScriptのいいライブラリってどんなのがあるの?
sourceforgeあたりにいいのある?
440 :
Name_Not_Found:2005/03/24(木) 22:44:49 ID:TaSthLeI
XPSP2で、警告のポップアップを出さずにJavaScriptを動作させることはできませんか?
<a href="javascript:history.back()">だけ使えればいいんですけど。
デジカメで撮った写真を見るためのアルバムなので、ローカルで動作させます。
>>440 警告を抑制ってのは一般に無理でしょ。ローカルのみということなら
別フレームで履歴を全部記録しておくとかかなー。
442 :
Name_Not_Found:2005/03/24(木) 23:29:55 ID:lXBa83dw
>>442 ・ユーザーに迷惑となるスクリプトを書かない者
>>443 ウゼーのと迷惑は別物だろ
>>442 厨丸出しのウゼースクリプトかよ。池沼はメデテーなw
setInterval(func, 100);
とでもしろ。
setInterval(fuck, 100);
setInterval(fuck, me);
オライリーのJavaScript第3版はすばらしい出来だぞ。
迷わず買うべし
たけえよ>オライリー
おっす、オラ、イリー いっちょやってみっか
図書館に置いてくんねえかなー。
藻前らならどれを買いますか?
JavaScript辞典 アンク 翔泳社
JavaScript辞典−Internet Explorer 6.0 & Net アンク 翔泳社
JavaScript handbook 4th edition 宮坂雅輝 ソフトバンクパブリッシング
JavaScriptプログラミング入門 大津真 オーム社
JavaScript−Version1.1 河西朝雄 ナツメ社
Technique bible JavaScript シーズ ソフトバンクパブリッシング
455 :
Name_Not_Found:2005/03/25(金) 08:05:39 ID:mwoy9ukX
現在のページに遷移してきたら1つ前のページの履歴を削除する機能を作りたいのですが
どうやればいいのでしょうか?
history[-1] = null;
など自分で試してみたんですがうまくいきません
教えてエライ人
>>455 セキュリティ制約があって履歴は勝手にいじれない。C言語じゃない
んだからさ。1つ前のページから現在のページに移るときに
「location.replace('行き先URI')」を使うしかない。1つ前が
手の出せないページならあきらめれ。
457 :
455:2005/03/25(金) 08:33:17 ID:???
>>456 即レスサンキューマンコー
あきらめます
なんか、悪意コードの質問が多くなってるな・・・。
多分、質問してる本人はそれが悪意コードとは知らずに質問してるんだろうけど。
>>456 > C言語じゃないんだからさ。
何 か 言 語 と 関 係 が あ る の か ?
Cだろうがなんだろうがブラウザの組み込みスクリプトで履歴を改変できたらまずいだろ。
っていうかもしかしてCって言いたかったの?(プ
>>459 配列添字に-1入れたら1つ前がアクセスできるって
Cのイディオムじゃん。何か反論ある?
ここはJavaScriptのスレですよ?
てゆか履歴をいじれるって発想自体がお間抜けなんだが?(プ
459は口が悪いが456は456で外してると思う。
>>461 「JavaScriptでありCではない」ことも「履歴はいじれない」
ことも
>>456に書かれているだろ。既に書かれてることをさも
偉そうに語るってのは日本語が読めない奴なんだな。
Script ですよ? script ? オマイラ。
JavaScript って名前なんだし、ブラウザ上で走るプログラム=script って認識なんだが。
JavaScriptってブラウザ上で動かす物っしょ?
なのにブラウザ排除的な発想が出るのはどうかと思うんだよ。
それじゃスクリプトじゃなくなるんでないか?
俺間違ってる?
????????????・
???????????????
???????????・・
??????????・・・・
大半意味不明なんだが、アンタのscriptの定義が大間違いなのは
確実に分かるな。Wikipediaででも勉強してくれば。
可哀想に、日本語が読めないんじゃなくて頭がおかしいんだ。
半可通で偉そうに語るのはあきらめて入院でもすれば。
>>455 (゚Д゚)ハァ??
お前の勝手な脳内定義をぶちまけられても困るんだよ。
チラシの裏に書いた脳内定義を集めて俺辞書でも作っててください。
JavaScriptはあくまでも「言語」だよ。アホ。
文盲ども、少し黙れ。
470 :
Name_Not_Found:2005/03/25(金) 15:23:34 ID:d2yd5niF
>>470 if (..) { .. } else if (..) { .. }
else if (document.getElementById) {
document.getElementById( 'box' ).innerHTML = msg[ index ] }
>>470 よっぽど古いブラウザ(N4以前、IE5.0以前)に対応するのでない
限り、枝分かれは不要。
document.getElementById('box').innerHTML = ...
だけで十分。FAQ
>>32 のQ3/A3も参照。
473 :
470:2005/03/25(金) 16:16:08 ID:???
おおっ、こうやるのかー。
難しく考え過ぎてたわ…orz
>>471-472 おかげで上手く出来ましたノシ
ありがとうございます。
こんなの探してます的な質問もOKですか?
>>474 ダメ
欲しい物は自分で作るのを助けるスレですから
探すのなら参考サイトとか見れば。
477 :
Name_Not_Found:2005/03/25(金) 18:28:59 ID:aK6VeKdw
質問です。
JavaScriptでページの一部分だけリフレッシュできると聞いたのですが
これは可能なのでしょうか?
たとえば<table>から</table>だけをリフレッシュするみたいな感じです。
よろしくお願いいたします。
479 :
477:2005/03/25(金) 19:02:11 ID:aK6VeKdw
リロードか?
481 :
Name_Not_Found:2005/03/25(金) 19:06:21 ID:aK6VeKdw
そうです!
>>477 ajaxだね。
1.XMLHttpオブジェクトをこさえて、
2.鯖からソースを拾って、
3.該当する部分を書き換える、
って手順でやれば、そこだけリロードされたように見える。
# どうやるの?って聞き直す前に、ajaxで調べて、自分なりにやってみて。
# で、わかんないところがあれば、JavaScriptスレで聞いてください。
あ、ここJavaScriptスレか。じゃあ、ここで。
すまそすまそ。
484 :
Name_Not_Found:2005/03/25(金) 19:21:26 ID:aK6VeKdw
ちょっと調べてみます。
ありがとう御座いました。
親切な様ですごい意地悪な回答だけど、そのおかげで
>>484はすごい技術を身につける事ができました
> すごい技術
春休み早く終われ
とっておきな情報だよなんと!パソコンにこんなすごい機能がついた!
[タッチセンサー機能]
下の枠なかを親指で押してください
■■■■■■■
■ ■
■ ■
■ ■
■■■■■■■
なんとぉ!画面にしっ,,,指紋がぁ!!!
や〜い や〜い だまされた〜♪
>>482-484 なるべく簡単に作って見ました。t1.html/t2.htmlは何でもよい。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function load(uri, f) {
var r = null;
if(window.XMLHttpRequest) r = new XMLHttpRequest();
else if(window.ActiveXObject) r = new ActiveXObject('Microsoft.XMLHTTP');
if(!r) return false;
r.onreadystatechange = function() { if(r.readyState==4) f(r.responseText); }
r.open("GET", uri, true); r.send(null); return true;
}
function chg(u, id) {
load(u, function(s) { document.getElementById(id).innerHTML = s; });
}
</script>
</head><body>
<div id="d0"></div>
<p><a href="javascript:chg('t1.html','d0')">t1</a></p>
<p><a href="javascript:chg('t2.html','d0')">t2</a></p>
</body></html>
>>488が可愛いと思った。
俺ももうオサーンだな
491 :
Name_Not_Found:2005/03/26(土) 22:00:31 ID:c8VCh+47
x4F\x42\x4A\x45\x43\
で書かれたJavaScriptを解読するツールなんかあったら教えてくれませんか?
>>491 エスケープシーケンスのことか?
解読するも何もJavaScriptの規格の一部だが。
>>491 簡単に作れそう。探すより作ったほうが早いよ
,,,,,,,,,,,,,,,,,,,,
/": : : : : : : : \
/-─-,,,_: : : : : : : : :\
/ '''-,,,: : : : : : : :i
/、 /: : : : : : : : i
r-、 ,,,,,,,,,,、 /: : : : : : : : : :i
L_, , 、 \: : : : : : : : :i と、心からそう思うNEETであった。
/●) (●> |: :__,=-、: /
l イ '- |:/ tbノノ
l ,`-=-'\ `l ι';/
ヽトェ-ェェ-:) -r'
ヾ=-' / /
____ヽ::::... / ::::|
/ ̄ ::::::::::::::l `──'''' :::|
495 :
Name_Not_Found:2005/03/26(土) 23:41:16 ID:aMKWlATU
質問させて下さい。
フレーム1のテキストにマウスを乗せた時、フレーム2に置いてある
画像Aを他のものに変える方法がどうしても分かりません。
ぶっちゃけリンクページなのですが
同一フレーム内でなら
function image(mySrc){
document.画像Aの名前.src=mySrc;
}
と
<A JavaScript:void(0)"
onMouseOver="image('変更する画像')"
onMouseOut="image('image/画像A')" href="リンクURL" target="_blank">テキスト</A>
の組み合わせできちんと作動していますが、フレームをまたぐと
エラーばかりが出てしまいます。
parent.画像を表示させたいフレームの名前.などを加えて
アレンジを試みているのですがどうしてもうまく作動しません。
タグを出来るだけ簡潔にしつつ、ページの性質上新しいテキストが
途中に挿入されても修正が簡単なように変数などの使用も
避けたいです。関連サイトなどを色々調べてみましたが
変数を使っているものばかりで…どなたかよい方法をご存じでないでしょうか?
>>495 エラーが出てるならそれを書くべき。
ドメインまたいだらできないけどそれは大丈夫?
失礼しました。
例としてフレーム分けをしたページに
var fraName="画像が変わるページ";
if (document.images) {
var im***=new Array();
im***[0]=new Image(),im***[0].src="画像1";
im***[1]=new Image(),im***[1].src="画像2";
・
・
・
}
function ***(name,num) {
if document.images) frames[フレームの名前.document.images[画像の名前].src=im***[num].src;
}
すみません途中で投稿してしまいました…。
画像が表示されるページに上の変数を使ったような形をとれば
うまく作動するのですが、何分テキストの数が多いので出来るだけ
上記のような形は使いたくないです。ドメインはまたぎません。
>495くらいの必要最低限の記述で何とかなりませんでしょうか?
質問させてください。
jsファイルを作って複数のページで使う時、ロールオーバーやcss分岐などファイルのパスが絡んでくる場合、
相対パスだとトップの階層と第二階層以降でファイルパスが変わってしまうのですが、皆さんはどうされていますか?
一応思いついたのは
(1)サイトルートのパスにする(←チェック用のデモサーバーで使えない。ローカルで使えない)
(2)jsファイルを2種類作る(←大変)
(3)第2階層以下にbaseタグを入れる(←ページ全部作り直し)
一般的には(1)が多そう何ですがどうなんでしょう?
(2)(3)でも別に良いのですが、もっとよい方法や一般的な方法があれば知りたいと思い質問させていただきました。
よろしくお願いします。
>>497-498 ぐっちゃぐっちゃなソースだなあ、そんなんではちゃんと動作しなくても
当然って感じ。変数なんか要らないだろ。フレームが兄弟どうしなら
parent.frames.相手フレーム名.document.images.画像名.src='ファイル名';
でいいわけだが、もしかして兄弟じゃないのかな。あとimageとかそういう
いかにもな関数名や変数名は危険だって分かってるか。
>>499 各ページにちょっとだけ<script>...</script>で固有設定を変数に
書くコードを入れて共通JSはその変数を参照して動作とかどうかな。
その変数が「設定されてない」場合にデフォルトを使うとかしても
いいかも。
フレーム分割しているページで、左にメニュー、右にコンテンツ。
メニューのリンクをクリックしたときに、右に表示するページはaaa.htmlのみ。
ただし、クリックしたリンクによって、aaa.htmlで読み込むjsファイルを差し替えたい。
(左からパラメータとして渡したい)
こんなことってできます?
渡したパラメータをテキスト表示するのは見つけたんですが、
上記のようなことは見つけられなくて…
504 :
Name_Not_Found:2005/03/27(日) 13:42:50 ID:aaGqt0jC
しまった。
ageるの忘れた…
よくある、マウスを乗せるとメニューの色が反転するやつなんだけど
var img = new Array()
img[0]=new Image();
img[0].src="images/img1b.gif";
img[1]=new Image();
img[1].src="images/img2b.gif";
function setimg(x){
document.img+x+.src =eval("img["+x+"].src");
}
画像は2つあってそれぞれネームはimg0,img1
OnMouseOver=setimg(0)とするとimg0の画像が変わるようにしたいんだけど
ファンクションのなかのdocument.img+x+.srcの記述が悪いのかうまくいきません。
document.img0.srcと直接指定してやるとうまくいったのですが引数をとって関数を使い回しにしたいので
setimg(0)が、document.img0.src=eval("img["+0+"].src");
setimg(1)が、document.img1.src=eval("img["+1+"].src");
を実行するのが理想な時、どこが違うのでしょうか
eval("document.img"+x+".src") =eval("img["+x+"].src");
もダメでした
どうしたものでしょう…
自己解決しました
こんなんで朝の7時から悩んでました
サイト完成するのに一年ぐらいかかりそうです 鬱だ
>>503 パラメタに応じてscriptオブジェクトのsrcを変更するとか
XmlHttpRequest等でJSファイルを取ってeval()するとか。
>>505 FAQ
>>32 を読んでないだろー。
510 :
499:2005/03/27(日) 21:48:03 ID:???
>>509 そうなんですよ。クライアントのチェックがあると
実際に運用する環境と確認用の環境が違うから(1)だと難しいんですよね。
僕も(2)が現実的かなと思っているのですが、皆さんどうされているのかと。
501さんのやり方ができれば良いんですけど、
自分がまだ本などを見ながら勉強し始めたばかりなので…。
言っていることは解るので自分の課題にしてチャレンジしてみます。
(1)でやってる人ってクライアントのチェックはどのように
行ってるんでしょうかね?
>>510 普通は確認用サーバを用意してると思うがうちは用意してない
location.hrefで今のHTMLファイルのURLを取得し、それを元に自動的に算出。
自動的に算出する過程でWebでもローカルでも算出できるように書くとか?
ウチは会社のウェブサイトの下にディレクトリを作って
そこにアップしたものをクライアントにチェックしてもらってるけど。
それだとルートにならないから駄目だよな。
確認用のサーバってのは複数あるのかな?
>>510 >512と似てるけど自分は
theElement = getElementsByTagName( "SCRIPT" )[0];
path = theElement.getAttribute( "SRC" );
からどの階層にあるか調べてごにょごにょしたことがある。
js/hoge.jsなら一階層目
../js/hoge/jsなら二階層目。
jsの前の部分を取り出してくっつければだいたいうまくいくかも
IE6.0使用で、selectタグにonchangeをつけて、そのselectタグの中にoptgroupを使った場合に、
optgroupのlabelを挟んで ホイールスクロールIやキーボードの上下キーなどでoptionを変更した時、
onchangeを呼んでくれないようなんですが、これはバグなんでしょうか?
っと、ゴミが入りました。
ホイールスクロールIや → ホイールスクロールや
いいえ
518 :
515:2005/03/28(月) 13:24:40 ID:???
>517
あれー・・・そうですかー、どうもありがとう。どっか間違えてたのかなー。
結局分からなかったので、onchangeとonblurを組み合わせて何とかそれらしく動作させることにしました。
スレ汚し失礼しました。
519 :
おれはおれだ ◆XSSAGIiWb6 :2005/03/28(月) 14:01:08 ID:vjv5Gbj6
きょう母さんの誕生日なので
これからプレゼント買ってきます
520 :
Name_Not_Found:2005/03/28(月) 14:13:26 ID:JtO1K9K6
>>513 漏れのとこは、
たとえば www.2ch.co.jp というサイトを作る場合、
test.2ch.co.jp
というバーチャルドメインでやることが多いです。
また、何らかの理由でソレができない場合は、自前のドメインを使って
2ch.mydomain.com
なんてのを用意したりすることも多いです。
両者ともベーシック認証でアクセス制限したりして。
522 :
Name_Not_Found:2005/03/28(月) 17:27:44 ID:7gPn5DTd
jsで動的に生成したレイヤを削除するには
どうすればいいのでしょうか?
>>522 どういうレベルで削除したいの?
親要素からremoveChildするだけじゃだめ?
>>522 そのレイヤオブジェクトをxとすると
x.parentNode.removeChild(x);
>>522 >>524のようにした後、
x = null;
とでもしておけば、すっきりさっぱりだな。
526 :
522:2005/03/28(月) 20:03:38 ID:???
527 :
Name_Not_Found:2005/03/28(月) 22:36:00 ID:iB48W5fF
とある理由により、画像をobjectで表示させねばなりません。
その上で、テキストのアンカークリックによって、画像を入れ替える必要があります。
以下のような方法を試してみたのですが、動いてくれません。
<script>
function change(){
element = document.getElementById("index");
element.data = 'bbbb.png';
}
</script>
<object id="index" data="aaaa.png" type="image/png" height="120" width="120"></object>
<a href="javascript:;" onclick="change();">CHANGE</a>
どこに間違いがあるのでしょうか。
どなたかご教示のほどお願いいたします。
object要素のdataを取り替えるってできる?なんか疑問。
529 :
Name_Not_Found:2005/03/29(火) 08:27:45 ID:NcXfL9ge
1〜8までの数字を重複しないで
8桁でランダム表示するものが必要なのですが
できればjavaスクリプトでどなたか作ってやっていただけないでしょうか
>>529 自分でやらない奴はこのスレでは対象外。まずこの
スレ全部読め、ヒントあるから。嫌なら来るな。
531 :
Name_Not_Found:2005/03/29(火) 09:14:05 ID:NcXfL9ge
以下のように8桁1〜8までの数字をランダムに表示まではできたのですが
重複までにはいたりませんでした
<SCRIPT language="javascript">
<!--
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
var c=new Array("1","2","3","4","5","6","7","8");
document.write(c[Math.floor(Math.random()*c.length)]);
//-->
</SCRIPT>
解決したのでもういいです
スルーすればいいのにいちいち文句やら言うなんて暇な方ですね
// 配列の要素数
MAX=8;
// 配列作成
number=new Array(MAX);
// 配列に1〜MAXまで設定
for(i=0; i<MAX; i++) {
number[i] = i+1;
}
// シャッフル
for(i=0; i<MAX; i++) {
// 交換箇所を適当に選ぶ
rnd = Math.floor(Math.random()*MAX);
// i番目と入れ替え
tmp = number[i];
number[i] = number[rnd];
number[rnd] = tmp;
}
// 表示
for(i=0; i<MAX; i++) {
document.write(number[i]+" ");
}
荒らしにきたんか
536 :
Name_Not_Found:2005/03/29(火) 21:43:29 ID:HOdpkFe4
簡単にできる
539 :
536:2005/03/29(火) 22:00:59 ID:???
作り方をば…
>>536 このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
JavaScriptとJavaの違いを理解しない者はどこへ行けばよいですか?
javaScriptはjavaのサブセットと聞きました。
ということはjavaScriptをjavaと言っても何の問題もないはずです。
まさか、サブセットの意味位はわかりますよね?
つ、釣りか?!
<script language="JavaScript">
var images = ["slide2.jpg","slide3.jpg"];
var index = 0;
function slide(element){
if(index < images.length){
element.firstChild.attributes['src'].nodeValue = images[index++];
}
}
</script>
<span onClick="slide(this)"><img src="slide1.jpg"></span>
スライドショーとかは悪いけどFlashでやった方が良い・・・。
>>543 サムソンとか薔薇族とか兄さんの事でしょ
>>533 それは均等にランダムにならない(偏りが生じる)のでは?
>>543 JavaScriptのhelloworld.
document.writeln('Hello, World.');
Javaのhelloworld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World.");
}
}
サブセットどころかまるきり違うだろ?
550 :
Name_Not_Found:2005/03/30(水) 04:39:42 ID:BlWJTCqK
Netscapeでは、
onMouseOver="func()"
をあらかじめタグ内に書いておく方法だと、
関数内でeが取得出来ないのでしょうか?
レイヤのMouseOverイベント内でマウス位置を知りたいのですが、
eが取れないので分かりません。
いい方法はないでしょうか?
552 :
550:2005/03/30(水) 05:47:02 ID:???
>>551 こんな時間にありがとうございます。
苦肉の策をひねって
間違った方向に行きかけていたので助かりました…
553 :
Name_Not_Found:2005/03/30(水) 16:55:33 ID:AI7mOJ3S
JavaScriptでIEのページ検索と同等のことを簡単に作りたいのですが、できますか?
VBScriptでつくったほうが簡単ですか?
イメージ的にはページ検索のときのダイアログのようなものが画面に埋め込まれていて
次へ次へと一致した文字へ移動していくやつです。
555 :
Name_Not_Found:2005/03/30(水) 17:08:15 ID:AI7mOJ3S
>>554 ほ、ほんとですか?
キーワードプリーズ。
557 :
Name_Not_Found:2005/03/30(水) 17:20:10 ID:AI7mOJ3S
>>556 うぉーありがとー。
たいへんさんこうになりましたー。
558 :
Name_Not_Found:2005/03/30(水) 19:48:40 ID:1kBYpWml
親ウインドウが閉じられたかどうか判定する方法ない?
559 :
Name_Not_Found:2005/03/30(水) 20:36:58 ID:QPU41M+k
window.opener
でなんとかできなかったけ
window.opener.closed
||の演算子を左辺値が正なら左辺値を、偽なら右辺値を返すという使い方をしています。
自分が確認した限りではうまく動くのですが、ネット上の解説を見ると真、偽を返すと言うようなことしか書いてないので。
これは全く問題ない使い方なんでしょうか、お願いします。
>>561 ECAM-262の言語仕様をチェックすべきこと。
ここで質問したって質問された方が仕様を見に行くしかない。
そういうお人好しがいるとアテにするべきではない。
といいつつチェックした洩れ。ネット上の解説なんてそんなもんさ。
563 :
561:2005/03/31(木) 12:39:16 ID:???
>>4にありましたね、すみませんでした
以下引用
&& 演算子、また || 演算子の生成する値が Boolean 型である必要はない。
生成される値は常に、 2 個の項式のうちの 1 つの値である。
問題ないと解釈しました、有難うございました。
>>563 おつかれ。しかし「Boolean型である必要はない」っていうのは…
「not necesarily Boolean(必ずしもBooleanであるとは限らない)」
の誤訳なんだろうな〜。和訳なんてそんなもんさ。
誤訳と断言してしまうほどのことだろうか
not necesarily を「必ずしも○○とは限らない」の意味でしか考えられないんだろ。
567 :
Name_Not_Found:2005/03/31(木) 21:37:48 ID:zDxzyIqL
>>567 設置できないのはよくわかったけど、
肝心の質問がなんなのかわかんないよ(´・ω・`)
570 :
Name_Not_Found:2005/03/31(木) 22:01:33 ID:zDxzyIqL
>>568 スイマセン…そうですね。
もうちょっとがんばってみます。
> seesaaのスレで嫌がられまして
JavaScriptのスレでも嫌がられますw
何をどうしたら何がうまく行かないのか、またエラーは出る
のかどうか、出るのならどこでどういうエラーが出るのか。
これを書かないことには。
スレ汚しゴメンなさい。小粋空間で修正版が出てまして、それを設置したらうまくいきました。
JavaScript:T=200;function H(){C=C<1?1:C>Z?Z:C;F.innerHTML=C+"/"+Z+" "+S[C];C+
=P;setTimeout("H()",T);}C=P=1;Y='<input type=';U=Y+'text onkeyup="';L='=this.value';B=Y+'button value=" ';K
=' " onclick="C-=P;';S=(D=document.body).innerHTML.split("<DT>");Z=S.length-1;D.innerHTML='<DL>T
='+U+'T'+L+'-0" value='+T+'> '+B+'TOP'+K+'C=1"> '+B+'<'+K+'P=-1"> '+B+'||'+K+'P=0"> '+B+'>'+K+'P
=1"> '+B+'-1'+K+'C--"> '+B+'+1'+K+'C++"> Jump'+U+'C'+L+'-0"><div id=F></div>';H();eval();
>>575 改行を消してアドレスバーに貼り付けるとパラパラマンガが見れる
undefinedになる…
578 :
Name_Not_Found:皇紀2665/04/01(金) 01:36:41 ID:HpbRiosj
>>567 やりたいことは
www.so-net.ne.jp/antlers/team.htmlの左サイドの選手プロフィールをクリックしたときにできるギミックでしょ?
579 :
Name_Not_Found:皇紀2665/04/01(金) 01:56:24 ID:pc4c3wRn
divブロックのスタイルをJavascriptでいじりたいのですがなぜかMozilla系では反応してくれません。
IEだとちゃんといじれるんですが。ちなみにtopとleftをいじってチップヘルプもどきを作ろうと思ってます。
>>579 大方単位を指定するのを忘れてるんだろう。ピクセル単位ならちゃんと"px"とつけておけ。
>>580 単位ついてます。
obj = getElementById('foo')でオブジェクト取得してobj.style.top = x + 'px'でできますよね?
じゃあ具体的にどう書いてどういうエラーが出たのか言え。
>>582 <head><style type="text/css">
<!--.chip {position:absolute;top:0px;left:0px;visibility:hidden;background:#ffffff;border:1px solid #000000;}//--></style>
<script language="JavaScript">
<!--_dom = document.all?(document.getElementById?2:1):(document.getElementById?4:(document.layers?3:0));
function rollover(txt) {
var obj = document.getElementById('box');
var X = getX(event);
var Y = getY(event);
obj.style.left= X +'px';
obj.style.top = Y +'px';
obj.style.visibility = 'visible';}
function rollout() {
obj = document.getElementById('box');
setDivVisibility(obj, false);}
function getX(e){
if(_dom==4)
return e.clientX+(_safari?0:window.scrollX);
if(_dom==2||_dom==1)
return document.body.scrollLeft+window.event.clientX;
if(_dom==3)
return e.pageX;
return 0;}
function getY(e){略}//--></script></head>
<body>
<img src="map.jpg" usemap="#map" border="0">
<map name="map"><area shape="rect" coords="283,122,329,134" nohref onmouseover="rollover('A')" onmouseout="rollout()">
<area shape="default" nohref></map><div class="chip" id="box">test</div>
いろいろ省きましたがこんな感じです。
特にエラーらしきものは出てませんでした。
>>583 <!--_dom = ...
の「<!--」と「_dom = ...」の間って実際には改行入ってるよな?
function rollover(txt) {
var obj = document.getElementById('box');
var X = getX(event);
var Y = getY(event);
↓
function rollover(e, txt) {
var obj = document.getElementById('box');
var X = getX(e);
var Y = getY(e);
onmouseover="rollover('A')"
↓
onmouseover="rollover(event, 'A')"
で試してみるとどうなる?
それからMozilla系ではJavaScriptのエラーはJavaScriptコンソールに出るって事は知ってるか?
>>584 改行入ってます。コンソールも見てみました。
直してみましたがやはりIEでしか出ませんでした。
座標取得の部分はステータスバーに出したりして動作確認したので問題ないと思います。
オブジェクト取得かobj.style.top=X+'px'の辺りに問題があるんじゃないかと思ってますが
あとはさっぱりです。
_safari = false; // 定義されていなかったので勝手に定義
// setDivVisibilityも定義されていなかったので勝手に定義
function setDivVisibility(elm, show) { elm.style.visibility = show ? "visible" : "hidden"; }
// getXから類推して勝手に定義
function getY(e){
if(_dom==4)
return e.clientY+(_safari?0:window.scrollY);
if(_dom==2||_dom==1)
return document.body.scrollTop+window.event.clientY;
if(_dom==3)
return e.pageY;
return 0;
}
<!-- 手ごろな画像がなかったためspan要素に変更 -->
<span onmouseover="rollover(event, 'A')" onmouseout="rollout()">Hello, world</a>
を追加し、
>>584の修正をかけてみたところ手元のFirefox 1.0では無事動いているように見える。
お前が反応しないといっているのはどういう状態なんだ?
>>586 すいません、_safariの定義抜けてました。コピペばっかりしてたんで・・・
PCといっしょに窓からダイブしてきます
_safariをどういうふうに定義した?
>>586のままだとSafariで不具合が出るぞ。
>>589 コピペもとの
_safari=navigator.userAgent.toLowerCase().indexOf('safari')!=-1;
ってのを持ってきました。はぎさんちのです。
Konquerorを持っていないので確証はできんが
"safari"が含まれているかどうかではなく
"khtml"が含まれているかどうかで判別したほうがいいと思う。
ついでに変数名も_safariから_khtmlに。
SafariとKonquerorはどちらもKHTMLという同じブラウザエンジンを
使っているから同じバグがある可能性が高い。
だいたいやってることがおかしいだろ。問題が「当該ブラウザで
top/leftが設定できない」というのならこういうのをまず試すべき。
問題の切り分けができない奴はすぐ行き詰まるよ。
<div id="d0" style="position:absolute;top:0px;left:100px">test</div>
<p><a href="javascript:document.getElementById('d0').style.top='100px'>100</a>
<a href="javascript:document.getElementById('d0').style.top='200px'>200</a></p>
>>593 同じテストするスクリプトでエラー出にくく書き直したものキボン。
>>594 <div id="d0" style="position:absolute;top:0px;left:100px">test</div>
<p><a href="javascript:document.getElementById('d0').style.top='100px'">100</a>
<a href="javascript:document.getElementById('d0').style.top='200px'">200</a></p>
livedoor… 何故…
597 :
Name_Not_Found:livedoor06/04/02(土) 06:06:14 ID:KDzPZson
Mac IE5.2において、表示しているHTML内のテキストを検索するスクリプトを
書こうとしています。
document.body.createTextRange();
みたいな感じでテキストを抜き出してmoveStart&moveEndで検索範囲
を変えながらfindText(検索文字列)で存在判定を取ろうという戦略で
Mac以外では上手くいったのですが、Mac IEにはTextRangeオブジェクトが
実装されていないということが分かり、途方に暮れています。
検索で見つかった部分にスクロールしてハイライトさせることが目的なので
他にも方法があるような気はするのですが、捜しても見つかりません。
どなたかご存知ないでしょうか。
598 :
597:livedoor06/04/02(土) 06:11:16 ID:???
あ、NNではfindメソッドを使って行っています。
Macで利用可能な別の方法があると良いのですが・・・
> Mac IEにはTextRangeオブジェクトが
> 実装されていないということが分かり、途方に暮れています。
ヽ(゚∀゚)ノ アヒャヒャヒャ
今手元にないんで不確かだが、5.0xでcreateTextRange()をやった記憶が…
601 :
597:livedoor06/04/02(土) 06:46:05 ID:???
txt = window.opener.document.body.innerHTML;
re = new RegExp(str,"ig");
if(txt.search(re) == -1){
alert("not found");
}else{
txt = txt.replace(re,"<span style=\"background-color:#ff0000;\">"+str+"</span>");
window.opener.document.body.innerHTML=txt;
}
注)str:検索文字列
みたいな感じでとりあえずハイライトだけは出来ました。しかし重い・・・
あとは見つかったところまでスクロールさせるだけです。
ううむ、いくつもマッチしたときはどうすれば良いかなぁ・・・。
>>600 ううむ、その行でエラーを吐くので、恐らく機能しないと思いますです・・・。
>>601 tags = document.body.all.tags( "P" );
re = new RegExp( "(" + word + ")", "ig" );
for ( i = 0; i < tags.length; i++ ) {
text = tags[ i ].innerHTML;
…
}
のほうが軽くね?
>>602 IEのDHTML関係はWinとMacの互換は怪しいよ。
MSのドキュメントはウソ書いてあることがあるし、実装されてない可能性大。
605 :
597:livedoor06/04/02(土) 07:28:24 ID:???
606 :
602:livedoor06/04/02(土) 07:39:29 ID:???
む、確かにMacIEだとcreateTextRangeが使えないって報告がごろごろ転がってるな。すまんすまん。
じゃあスクロールさせるのにはscrollIntoView使いな。まさかこれもMacIEでは実は実装されてないってことはないよな?
>>603 text = tags[ i ].innerText;
>>606 scrollIntoViewってtextRangeオブジェクトのメソッドやろ?
それも実装されてないんじゃないか?
609 :
602:livedoor06/04/02(土) 08:52:32 ID:???
>>608 いや、普通にHTMLElementのメソッドとして実装されてるぞ。
まあもしMacIEで実装されてなかったらoffsetLeft/offsetTopとoffsetParent使って要素の位置を割り出してそこにscrollToしてくれや。
610 :
597:livedoor06/04/02(土) 09:02:17 ID:???
>>608-609 はじめは<a name="n番目"></a>とかを埋め込んでいってそこにlocation.hashで
飛ばす方法も考えていたのですが、色々試してみたいと思います。
ありがとうございました。
document.allて(゚Д゚)
javascriptでhtmlファイルをページ内に読み込むことはできますか?
IE5以上とNN4.7以上です
>>612 N4はそういうことはなんにもできないと思うな。
NN4でもLayerオブジェクト(絶対配置のdiv要素などもLayerオブジェクトとして扱われる)のsrcプロパティかloadメソッドを使えばできるよ。
>>601 innerHTML でやると
タグ内の文字列にもヒットしてえらいことにならね?
DOMインターフェースで
テキストパートのみを対象にした方がよくね?
<div id="tekito"><layer>てきとー</layer></div>
って感じで、innerHTMLとか使えばいいのかな?
アクセスしたその日のその時間帯のYahooTV
(h
ttp://tv.yahoo.co.jp/vhf/(都道府県名)/2005040412.html)
に移動してくれるものを作りたいのですが、午前0時から午前4時
の場合、前日の日付が必要になりそうです。
月始めの場合や元旦の場合、うるう年の場合を考えたらちょっと面
倒です。簡単に前日の年月日を得る方法はありませんか。
それとついでにタブブラウザの場合、同時にUHFのページも
表示させられたら有難いです。
宜しくお願い致します。
>>621さん
何故か見えません
>>620さん
str = new String("
http://tv.yahoo.co.jp/vhf/(県名)/"/*yyyymmdd04.html*/);
nowDate = new Date();
var hour = nowDate.getHours();
if (hour<4){
nowDate.setTime(nowDate.getTime() - 60*60*24*1*1000);//24時間分マイナスしてセット。
}
この後に年、月、日、時間、".html"をstrに連結。
こんな感じですか?
setTime()を知らなくて、、ややこしく考えていたようです。
おまけにポケットリファレンス第2版の例が間違えてたから時間かかりました。
CDトレイをガッコンガッコン開閉させたいのですが、
Javascriptで実現出来ないでしょうか。
>>622 var now = new Date();
now.getTime()=now.getTime()-4*60*60*1000;
626 :
625:2005/04/04(月) 19:32:55 ID:???
間違った
var now = new Date();
now.setTime()=now.getTime()-4*60*60*1000;
628 :
625:2005/04/04(月) 19:38:51 ID:???
やべえ
また間違った
var now = new Date();
now.setTime(now.getTime()-4*60*60*1000);
>>625 その「now.getTime() = 」というのは明らかにおかしくない?
あと「now.setHours(now.getHours()-4)」で済むんじゃないかな。
>>623 そういうことはできないだろ。できたらイタズラされまくりに
なるわけで。
>>627 詳細希望です
>>629 昔CDトレイ開閉させるブラクラがあったように思うんですが。
もう5年か6年ぐらい前の話ですが・・・
そんなものは作らなくていい。迷惑。
ぐぐって見つかるvbs版を自分で直せ
633 :
619:2005/04/04(月) 20:48:44 ID:???
>>624さん
詳しく説明してくださいまして有難う御座います。
見れました。これは便利そうですね。こんなの初めて知りました。
これだとスクリプトも要らないですね(汗)
日をまたぐ夜中にも試してみます。
で、なんか解決しちゃったっぽいんですけど、
>>625さん、
>>629さん
4-12時 12-19 19-23 23-4時で場合分けしようかと思ってました。
ヤフーテレビの時間分けがこうなってますので、
if (4時まで) 日付を前日にし、時間を23時にする。;
else それぞれの時間で場合分け;//12時までは=4、19時までは=12、23時までは=19
としてましたが
Hourstr=new Array(,"23" ,"23" ,"23","23" , "04","04","04","04","04","04","04"....,"12",
"12","12","12"......"19","19","19..."23");//いい加減です。
みたいにして
urlstr+=Hourstr[nowHour];の方がよい書き方なんでしょうか?
634 :
619:2005/04/04(月) 21:11:50 ID:???
str = new String("
http://tv.yahoo.co.jp/vhf/kyoto/"/*←地域名は変える。*/);
nowDate = new Date();
var hour = nowDate.getHours();
if (hour<4){
nowDate.setTime(nowDate.getTime() - 60*60*24*1*1000);//setHours()も試したい。
hour = 23;
}
var year=nowDate.getFullYear();
var month=nowDate.getMonth()+1;
var date = nowDate.getDate();
str+=year;
if (month<10) str+="0";
str+=month;
if (date<10) str+="0";
str+=date;
if (hour==23) str+=23;
else if (hour>=19) str+=19;
else if (hour>=12) str+=12;
else str+="04";
location.replace(str+".html");//なんかもう疲れた。きちんと動作するか不明。
635 :
Name_Not_Found:2005/04/05(火) 15:47:41 ID:9uOOvqAU
ちょいとアドバイスください。
WEB上でデータ(グラフ・数値など)を出します。
Javaで組んだASPでそのデータを管理・表示させています。
そのデータ類と同時に、ページ上部と下部にタイトルやロゴが表示されています。
ブラウザで「ページを印刷」すると、そのロゴなども印刷されてしまうので、
データ部分だけをなんとか印刷する方法はないかと思い、質問させてもらいました。
ロゴ部分などをフレームで分けて、ターゲットを印刷。
もしくはデータ部分だけをCGIで新規に書き出して印刷などを考えたのですが、
何か良い方法が無いかと思い質問しました。
よろしくお願いします。
動きがあるサイトって流行ってるけど、いまさらjavascriptで動かれてもねー
やっぱりFlashがいいですよね
アニメGIFで十分。
インターネットに情報があふれたこのご時世、余計なエフェクトは時間の無駄。
イフェクトは無駄。ユーザインタフェースサポートとして良いもの
なら結構と思うね。
642 :
JavScript修行中:2005/04/05(火) 17:56:16 ID:SjWPaybu
JavaScriptをOFFにしている人は入れず、かつパスワードを知っている人には閲覧できるページへ飛ぶ処理をするとします。これってJavaScriptが分かる人にはパスワードが解読できたりするんですか?
function _HpbChkPwd(keyin,escEncrypted,defaultUrl,target)
{
var encrypted = unescape(escEncrypted);
var indexbase = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var passlen = keyin.length;
var enqlen = encrypted.length;
var decrypted = "";
var decryptedPassword = "";
var decryptedPath = "";
var targetUrl = "";
var i, j, k, chr1, chr2, nbase;
var needPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u3092%u5165%u529B%u3057%u3066%u304F%u3060%u3055%u3044%u3002";
var badPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u304C%u6B63%u3057%u304F%u3042%u308A%u307E%u305B%u3093%u3002";
if (passlen <= 0)
{
alert(unescape(needPassword));
return ;
}
643 :
JavScript修行中:2005/04/05(火) 17:56:41 ID:SjWPaybu
if (passlen <= 0)
{
alert(unescape(needPassword));
return ;
}
for (i = 0, j = passlen - 1, k = 0 ; i < enqlen ; i++, j--, k=0)
{
if (j < 0)
{
j = passlen - 1;
}
chr1 = indexbase.indexOf(keyin.charAt(j));
chr2 = indexbase.indexOf(encrypted.charAt(i));
if (chr2 < (chr1 + j))
{
nbase = (chr1 + j - chr2) / 0x5f;
k += (0x5f * Math.ceil(nbase));
}
k += (chr2 - chr1 - j);
decrypted += indexbase.charAt(k);
}
644 :
JavScript修行中:2005/04/05(火) 17:57:20 ID:SjWPaybu
if (typeof(opener) == "undefined")
{
window.close();
return ;
}
if ((typeof(opener.closed) == "unknown") || opener.closed)
{
window.close();
return ;
}
opener.document.isOpened = false;
decryptedPassword = decrypted.substring(decrypted.length - passlen, decrypted.length);
if (keyin == decryptedPassword)
{
decryptedPath = decrypted.substring(0, decrypted.length - passlen);
passlen = decryptedPath.length;
for (i = 0 ; i < passlen ; i++)
{
chr1 = decryptedPath.charAt(i);
if (chr1 == "%")
{
chr2 = decryptedPath.substring(i, i+6);
targetUrl += chr2;
i += 11;
}
else
targetUrl += chr1;
}
645 :
JavScript修行中:2005/04/05(火) 17:57:52 ID:SjWPaybu
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.self.location.href = unescape(targetUrl);
window.close();
}
else
{
if (defaultUrl.length)
{
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.self.location.href = unescape(defaultUrl);
}
else
{
alert(unescape(badPassword));
}
window.close();
}
}
_HpbChkPwd(答え,'W%5DK%5DbUXIV%7DwXqRXWSdUTaN''
http://www.yahoo.co.jp','_self');
ユーザによってはFlashやShockwaveが見られない環境の香具師もおる
まぁ必要なものをダウンロードすりゃそれで済むけど
なるべくブラウザのみで対応している基本的な機能で構成したいね
>>642 JavaScriptを使ったパスワード認証は不完全だから
やるならCGIでも使わんとまともなのは無理
>>642 暗号化によるパスの元が記載されていて、且つ暗号化の計算式が記載されている以上、
解析されることはあるだろうね。(俺には出来んが)
素直にBASIC認証でもかけとけば?
問題点としては、JavaScriptの仕組みからしてパスワードを認証する部分も
相手のコンピュータに渡ってしまうことがある点だな
知識が無い人間はそれにも気づかないだろうけど
相手にはパスワードを入力させる部分のみを渡さないとな
>>645 ずらずらと何レスも貼るなって。迷惑。
>>31を読め。
パスワードから正解ページを導く形で暗号を使っている
場合はスクリプト中に正解ページURLが含まれないので、
解読は(まっとうなアルゴリズムを使っていれば)難しいでしょ。
ちなみに「正解を計算してくれ」なんて要求しても駄目よ。
>>642 おもしろいな。一方向関数使えばパスワードをわからなくすることだけはできるが
遷移先が隠せなきゃ意味ないし、無理だな
654 :
Name_Not_Found:2005/04/05(火) 21:42:56 ID:bl9M9FIY
レイヤでマウスカーソル付近にポップアップウインドウを作成する
スクリプトを書いているのですが
IE6で、スクロールをしてもdocument.body.scrollTopの値が変わらない現象が
あります。
そのため、スクロール直後は、おかしな位置にポップアップが表示されてしまいます。
一度ポップアップを消して、再び表示した時は正常な位置になるので、
何らかのタイミングで更新されているようです。
scrollTopは、どのタイミングで更新されているのでしょうか?
655 :
635:2005/04/05(火) 21:47:11 ID:???
>>636 レスありがとうです。
CSSで設定した表示領域の情報(座標など)を取得→印刷という感じなのでしょうか?
確かにデータ表示の領域は固定なので、工夫すれば行けるような気がしてきました。
理想としては、onClick で指定の範囲(データの部分)を選択して印刷。
という工程が自動化出来れば理想だと考えています。
JavaScriptで良いとは思うのですが、難易度としては高いでしょうか?
656 :
654:2005/04/05(火) 22:25:47 ID:???
スミマセン ライブラリ側のバグでした
>>655 CSSでは「この範囲は印刷・表示用」「この範囲は表示のみ」などと
指定できるので、その機能を活用するのが筋だろという指摘と思われ。
あとはCSSスレへ逝くべきだな。
>>657 ありがとうございました。CSSスレへ行って見ます。thx
CSSというよりHTMLの範疇だけどな
style要素のmedia属性
<style media="..." ...>なんて使っている人いるのかなあ。
<style media="..."> は使ってないけど、<link 〜> なら使うね。
別に print用とかはしてないんだけど、単にNN4.7対策に…。
662 :
Name_Not_Found:2005/04/07(木) 00:02:15 ID:2Ix8VI/K
質問させてもらいます。
javaスクリプトで英単語の練習ができるようなものを作ろうと思っているのですが
どのようにですればいいのか教えていただきたいんです。
具体的に言うと、単語の意味だけがでてきて、自分でフォームにスペルを入力し、決定ボタンを押す。
正解なら正解と表示し、次の単語の意味が出てくる。間違っていたら正しいスペルが表示され
次の問題が出題されるといった感じに。そしてランダムにそれらが出題されるようにしたいのです。
よかったら教えてください。
不可能なことを言っているようでしたら、他の手段を教えていただけたら嬉しいです。
よろしくお願いします
時間はかかるが作れる
データーベースと同じ方法で作れるなハッシュにキーワードと一緒に入れて
その順番をランダム関数を使い出てくるようにするんだ
そのランダムで出てきた単語とフォームから入力された単語をifで照らし合わせればいいんだ
簡単だなw
>>662-663 作ってみた。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var a = [{e:'this',j:'これ'}, {e:'dog',j:'犬'}, {e:'pencil',j:'鉛筆'}];
var n = 0, mesg = '';
function doit() {
var t0 = document.forms.f0.elements.t0;
if(mesg != '') {
if(t0.value == a[n].e) mesg = '正解! 次の';
else mesg = '残念! 正解は「' + a[n].e + '」、次の';
}
if(--n < 0)
for(var i = n = a.length-1; i > 0; --i) {
var k = Math.floor(Math.random()*i), x = a[k]; a[k] = a[i]; a[i] = x;
}
mesg += '問題: ' + a[n].j;
document.getElementById('d0').innerHTML = mesg; t0.value = ''; t0.focus();
}
</script></head><body onload="doit()">
<div id="d0"></div><div><form name="f0" action="#" onsubmit="return false">
<input type="text" name="t0">
<input type="button" value="決定" onclick="doit()"></form></div></body></html>
まー動けばいいや的人間にStrictどーの言ってもアレだよな。
つーか既にどっかにあったよな、英単語練習のサンプルみたいなの。
どこだっけ・・・。ぐぐればでてきそう。
667 :
665:2005/04/07(木) 07:11:09 ID:???
HTML全部書いて、結果的に
>>664自身が "Strictどーの" 言ってしまっている。
だから、初歩的な間違いを看過せず、それなりの指摘をしてやったまで。
このスレ的な指摘をすれば、まずキー操作だろうが、と。
わざわざタブ移動したりマウスに手をのばさなきゃ使えないという
ちょっと不便な<button>とか<input>とかを作るのは二の次だろう、と。
そして、「(意思)決定」という動作は、mouseup。OSのGUIをよく観察して真似ろ、と。
,,-―--、
|:::::::::::::;;;ノ
|::::::::::( 」
ノノノ ヽ_l
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ |
必ずしもマウス操作が意志決定であるとは限らないので、できるだけ
onmouseup のようなマウスに依存するイベントは使わない方がいい。
OS の GUI でも同じで、少なくとも Win32 ではそうなってる。
ボタン以外の場所で Enter キーを押すという操作に対応するには
フォーム内に <input type="submit"> を設けないといけない。
OS の GUI だとデフォルトプッシュボタンという仕組みがあるんだけど、
それと同じ。
そういうくだらない事で論議してると、Flashでやれよ。って話になるぞ。
くだらなくはないと思うな、操作性をどうするかはJavaScript屋
としては重要なテーマかと。個人的には、フォームの操作方法に
ついては「タブでフォーカス移動しながら記入→最後に送信ボタンに
フォーカスが来たところでスペースで送信」で統一するのがいいと
思っている。送信じゃなく何か別の動作でもいいんだけど。
672 :
Name_Not_Found:2005/04/07(木) 11:40:08 ID:X16QzYqD
質問です。
横軸がサイズで、S,M,L,LL・・・
縦軸が商品名で、A,B,C,D・・・
といった価格表がEXCELで作成されています。
ワークシートの下にプルダウンが横一列に並んでいて、1つ目でサイズ、2つ目で商品名、
3つ目で数量を選択すると合計額が表示されます。
中身はセルの値を単純に代入しているだけなんですが、これをWeb上で作成したいと
思っています。配列を使うんでしょうか?また、サンプルはどこかにありませんか?
IEは、スタイルシートの「empty-cells:show;」に対応していないので、
テーブルのセルが空だと枠線が表示されません。
q要素に引用符を追加したりするスクリプトの応用みたいな感じで、
空のセルに空白文字などを挿入させて、無理やり枠線を表示させられませんか?
>>672 ホレ。基本的にselectのonchangeでデータを更新。
計算はselectのselectedIndexをもとに配列参照するなど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var a = [[100,110,120],[50,55,60],[150,160,180]];
function chg() {
var e = document.forms.f0.elements;
document.getElementById('d0').innerHTML =
a[e.s0.selectedIndex][e.s1.selectedIndex]*(1+e.s2.selectedIndex) + '円';
}
</script></head><body onload="chg()">
<form name="f0" action="#" onsubmit="return false"><p>
<select name="s0" onchange="chg()"><option>商品A</option>
<option>商品B</option><option>商品C</option></select>
<select name="s1" onchange="chg()"><option>S</option>
<option>M</option><option>L</option></select>
<select name="s2" onchange="chg()"><option>1個</option>
<option>2個</option><option>3個</option></select>
</p></form><div id="d0"></div></body></html>
>>673 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title></title>
<script type="text/jscript">
if (window.attachEvent)
window.attachEvent("onload", function() {
for (var i = 0; i < window.document.all.tags("td").length; i++)
if (!/\S/.test(window.document.all.tags("td").item(i).innerHTML))
window.document.all.tags("td").item(i).innerHTML = " ";
});
</script>
<body>
<table border>
<tr><td>1<td><td>2<td><td>3<td><td>4<td>
<tr><td><td>A<td><td>B<td><td>C<td><td>D
</table>
>>675 はなんでそこまで徹底してIE専にするのかな。それくらいなら
素直にonload使ってクロスブラウザに書きたい感じがする。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg() {
var a = document.getElementsByTagName('td');
for(var i = 0; i < a.length; ++i)
if(a[i].childNodes.length == 0)
a[i].appendChild(document.createTextNode(' '));
}
</script></head><body onload="chg()">
<table summary="test" border="2"><tbody>
<tr><td>1<td><td>2<td><td>3<td><td>4<td></tr>
<tr><td><td>A<td><td>B<td><td>C<td><td>D</tr>
</tbody></table></body></html>
677 :
Name_Not_Found:2005/04/07(木) 12:48:53 ID:X16QzYqD
678 :
Name_Not_Found:2005/04/07(木) 16:50:44 ID:tj7suU0u
すごく低レベルな質問で恐縮なんですが教えてください。
インラインフレームのあるページで、
親フレームにjavascript:history.back()で戻るボタンを作っても、
フレームの中ばっかり戻ってしまいますが、
どうすれば親自体を一発で前のページに戻すことができますか?
>>678 history.back(); の動作は web-browser の history (いわゆる履歴) に依存している.
例えば, 別のページから飛んで来て,ページ内の anchor をクリックしたとしよう.
この時, history.back();の動作は
前のページに戻るのではなく, ページ内移動になってしまう.
要するに一つ前の状態に戻るに過ぎない訳.
>どうすれば親自体を一発で前のページに戻すことができますか?
history.back(); はあくまでも補助的な物と考えるしかないと思う.
ページジャンプする前の location を cookie に記憶させておくことも
考えられるけれど, すなおにリンクを張っておいた方がよほど簡単.
680 :
678:2005/04/07(木) 17:40:20 ID:???
>>679 そうですか…。
リンク自体はトップへも他のメニューへも貼ってあるんだけど
ブラウザの戻るボタンでもいちいちフレーム内が戻ってしまうから
もっと簡単に一発で戻れたらいいなと思ったんですけどね。
ていねいに教えてくれてありがとう。
681 :
Name_Not_Found:2005/04/07(木) 18:16:43 ID:txj0uTa6
eventであればscreenXとかで取得できますが、あるエレメントがスクリーン上の
どの位置にあるかを調べるにはどのようにしたら出来るのでしょうか?
>>678-680 なぜそれが「低レベル」だと分かる?いい加減な言葉づかいはやめれ。
インラインフレームの中の遷移をlocation.replace()で行うとか
すればいいんじゃないの。もちろん中に手が出せる場合限定だが。
<a href="行き先" onclick="location.replace('行き先')">...</a>
>>682 a に href を設定している時にイベント使う時は return false をしないと href まで反応してしまうよ。
<a href="行き先" onclick="location.replace('行き先');return false;">...</a>
>>683 忘れていたスマソ。
>>681 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function show() {
var e = document.getElementById('d0'), x = e.offsetLeft, y = e.offsetTop;
if(window.screenX)
alert((window.screenX + x) + '@' + (window.screenY + y));
else
alert((window.screenLeft + x) + '@' + (window.screenTop + y));
}
</script></head><body>
<div id="d0" style="border: solid blue 2px" onclick="show()">Test...</div>
</table></body></html>
685 :
662:2005/04/07(木) 18:59:00 ID:2Ix8VI/K
みなさんどうもありがとうございます!
javaスクリプトは無知なので、これから作っていって覚えて行きたいと思います。
686 :
662:2005/04/07(木) 19:24:22 ID:2Ix8VI/K
すいません。教えてもらったばかりなのですが、もうひとつ。
Enterを押したら決定みたいなのってどうやってできるんですか?
レスを読んでみたものの全然分かりません。どう調べていいかわからず
>>666さんの言っているサンプルの方も探し見たのですが、なかなか見つかりません。
よかったら教えてくれませんか?すいません。甘ったれで。
>>682 Key Word : onSubmit="f()"
ところで form の Submit は enter key でも OK なのは知っているのね ?
(Submit button は必ずしも必要ではない.)
>>686 buttonをなくして<form ... onsubmit="doit(); return false">
689 :
686:2005/04/07(木) 20:28:22 ID:2Ix8VI/K
>>688 できました。でもbuttomで決定はできなくなってしまうのですね。
これで一生懸命勉強しようと思います。本当にありがとうございました!
>>689 submit button があっても不都合なことはありませんぜ.
ただ, enter key で submit できるのは,
text field などに focus が当たっている時に限る.
691 :
Name_Not_Found:2005/04/07(木) 23:24:27 ID:C3VX0v7G
質問します。
<a onMouseOver="document.write('こんにちは')">メッセージ</a>
この「こんにちは」っていうのを同ページに設置したiframe上に
表示させたいのですが
<iframe name="frame1" src="〜"> ←ここに表示させたい。
どう書いたらよいのでしょうか。教えてください。
>>691 document.write(); は非常に使い勝手が悪いことをご存じ ?
(他の言語の print などとは根本的に違う)
document.write(); を読込時以外に使うと, すべてのソースがクリアされてしまう.
当然 script 自身も消滅.
この点を知っていないと無駄な時間を消費するだけ.
nullうぜぇぇぇぇ!
>>693 かまうな。無視。
>>691 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
window.frames.f0.document.writeln('こんにちは<br>');
}
</script></head><body>
<div onmouseover="test()">test...</div>
<iframe name="f0" src="about:blank">iframe here...</iframe>
</body></html>
695 :
666:2005/04/08(金) 02:10:57 ID:???
>>667 俺664じゃないよw
>>678-680 微妙に終わった話題感があるけど、
親ページのリファラーとって、そのアドレスにリンクすればいいんじゃねーの? と思うわけだが。
>>694=664さんは、答えるのはいいんだけど、もう少しHTMLとかStrictとかを勉強した方がいいと思うなあ。
ただの例だとしても、f0 とかじゃなくてちゃんとしたわかりやすい名前つけたほうがいいと思う。
>>691 <iframe id="frame1" src="〜.html"> 内のドキュメントは
window.document 〜 じゃなくて
window['frame1'].document 〜 でアクセスできるから、
これさえ理解すれば、普通のがわかればできるでしょ。
>>691 iframeにdocumentプロパティがあるのはIEの独自拡張だから
Geckoではdocument.getElementById("frame1").contentDocumentな。
それから読み込み時以外にdocument.writeしたらdocument.closeしておくのも忘れるなよ。
ttp://www.axis.t.u-tokyo.ac.jp/〜shunak/ecmascript/escape.txt
にある unicode_escape()が使いたいのだけど、どうすればいいのかわからないのですが…
String.prototype.escape = unicode_escape;
function unicode_escape()
{
var seq = ””;
for( var i=0 ; i<this.length ; ++i )
seq += ”%u” + this.charCodeAt(i).toString(16);
return seq;
}
教えて下さい。
var str1 = "あいうえお";
var str2 = str1.escape();
699 :
697:2005/04/08(金) 07:08:21 ID:???
>>699 俺もそのページ昔読んだ。ちなみに encodeURIComponent()ってのもあるよ?
先輩方 知恵をお貸し下さい
1. <input type="submit" value="コーヒー">
2. <input type="image" src ="cafe.gif" alt="コーヒー">
いままで「1」でコーヒーという文字列を送っていたのですが
ボタンを画像に変更したいと思い「2」のように変更しました。
しかし、「2」だと「1」のような value値を送信出来ず
ボタンをクリックしても文字列を送信できなくなってしまいました。
JavaScriptのonClick等を使用して
value値をどうにか送信出来ないでしょうか?
ググったのですが良い方法が見つかりませんでした。
どうか宜しくお願いします
703 :
Name_Not_Found:2005/04/08(金) 14:59:24 ID:jhk8RCvt
>>702 イメージボタンは基本的には name=value&name.x=0&name.y=0 という
形でデータを送ってくるんだけど name=value の部分と
name.x=0&name.y=0 の部分 (0 はクリックされたイメージ上の座標) の
どちらかしか送ってこない場合もある。
フォームに送信ボタンが複数ある場合は name 属性をボタンごとに
ユニークな値 (例えば <input name="コーヒー">) にすれば、
少なくとも "コーヒー=" か "コーヒー.x=&コーヒー.y=" というデータの
どちらかは送られてくるから受け側で判別できると思う。
JavaScript でというなら、<input type="hidden" name="名前"> を
仕込んでおいて、onclick="this.form.elements['名前'].value = this.value;"
のような感じで隠しコントロールにコピーするとか。
>>702 ついこないだ似たようなことをやったばかりだったので。
var tmp = document.getElementsByTagName("input");
for(var i=0 ; i<tmp.length ; i++){
if(tmp[i].type == "image"){
tmp[i].onclick = function(){
var ib_name = this.name;
var ib_value = this.value;
// ↓これがフォーム要素
var target = document.getElementById("FormName");
var MyHidden = document.createElement("input");
MyHidden.type = "hidden";
MyHidden.name = ib_name;
MyHidden.value = ib_value;
target.appendChild(MyHidden);
target.submit();
}
}
}
>>703 画像リソースのurlとリンク先urlの二つが必要なので、
1.option要素のvalueの値を番号(id)とかにしておいて、
その番号に呼応した配列に両者を入れておく
2.option要素のvalueの値に両者を適当な区切り子を挟んで
入れておく
のどちらかをしておいて、
document.war.link(リンク先のurl);
とする。
>>705 それだと submit() がキャンセルされると作成した Hidden が
残ってしまうから、別のボタンで再送信すると前に作成したのと
あわせて二重にデータが送られてしまう。
一つの Hidden を使い回すか、前に作成されたのがあれば
取り除くようにしないと安全でないと思う。
708 :
702:2005/04/08(金) 16:19:32 ID:???
>>704 >>705 レスありがとうございます。
せっかく教えてもらったのですが
私の頭が悪くて理解出来ませんでした。><
もう少し、具体的に申し上げますと
1. <input type="submit" value="コーヒー">
2. <input type="image" src ="cafe.gif" alt="コーヒー" name="drink">
のようにname属性も指定しており
--------------------------
drink = コーヒーなら 飲む
drink = ココア なら 飲まない
--------------------------
のようにプログラムで判断させたいのです。
imageに変えてから、value値(コーヒー、ココア)を送信できない為
<input type="image" src ="cafe.gif" alt="コーヒー" name="drink" onClink="なにか">
javascriptで出来ないか考えております。
javascriptを使用しなくてもいいのですが、座標の意味が分かりませんでした。
もう少し具体的に教えて頂ければありがたいです。
自分でも調べております。
どうぞよろしくお願いします
>>708 >>704の方針で行くなら
>>707も言ってるけどWinIEではcreateElementを使った
フォームコントロールの生成に問題があるし(※)MacIEでは
フォームコントロールを動的に生成すると不安定になるらしいから
あらかじめ存在するhiddenコントロールを使いまわすに1票。
※
ttp://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createelement.asp で、別のやり方としては
<input type="image" src ="cafe.gif" alt="コーヒー" name="drink_coffee">
<input type="image" src ="cocoa.gif" alt="ココア" name="drink_cocoa">
とでもしといて、
--------------------------
drink = コーヒーなら 飲む
drink = ココア なら 飲まない
--------------------------
ではなく
--------------------------
drink_coffee.x が存在するなら 飲む
drink_cocoa.x が存在するなら 飲まない
--------------------------
というのもあると思う。
>>708 HTML のフォームの話になるんだけど、
<form action="送り先の URI"><p>
<input type="image" alt="〜" src="〜" name="drink" value="コーヒー">
<input type="image" alt="〜" src="〜" name="drink" value="ココア">
</p></form>
にようなフォームの場合、コーヒーの方のボタンが押されたら
クエリーは drink.x=0&drink.y=0 という形になる。
これだとコーヒーが押されたかココアが押されたか判別できないよね。
<input type="image" alt="〜" src="〜" name="coffee" value="コーヒー">
<input type="image" alt="〜" src="〜" name="cocoa" value="ココア">
にしておけば、coffee.x=0&coffee.y=0 という形になるので
coffee.x があるか cocoa.x があるかで判別できるということ。
<input type="submit"> や <input type="image"> は一つしか
successful にならない。つまり、coffee.x と cocoa.x が同時に
送られてくることは (少なくとも規格上は) ないはず。
座標というのは、イメージボタンのどこをクリックしたかによって
応答を変えることができる仕組み。今回のような場合は関係ない。
711 :
まゆみ☆:2005/04/08(金) 22:08:30 ID:Il07iP00
たすけてください!!
言語 ASP & javascript + vbs
CREATEOBJECTにてExcel起動を行っているのですが,
Windows 2000 server IIS5だと問題なく動作するのですが、
Windows 2003 server IIS6だとそのページさえいきません。。。
現象としてはグループで分類し240件を超えてしまうと
まったく動作しなくなってしまいます。
それ以下だとプリントできます。
どなたかお知恵をお貸しください
どうぞよろしくお願いいたします。
以下にリンクスクリプトを記載いたします。
長文失礼いたします。
//リンクを行う
parent.menu2.location.href = "TanPrint.asp";
会社の先輩にいじめられて早くしないと・・・
ハア?
別の原因でExcelが正常終了せずにプロセス残ってたりしたらお笑いぐさだが。
現状が分かんね。
>>709 >>710 皆さんのおかげでかなり理解できました。
name属性をユニークな値にしてプログラムの条件判断を変更してみます。
画像にするだけで、こんなに大変な事になると思いませんでした。
しかし、いい勉強になりました。
親切に教えてくれた方、どうもありがとうございました。
715 :
Name_Not_Found:2005/04/10(日) 01:58:38 ID:4N6iB2uo
「固定アドレス+フォーム」で設定
フォームに入力して決定を押すと、そのサイトを開いてくれるJAVAを探しているのですけど、
ご存知の方、教えてもらえないでしょうか??
>>715 Javaはスレ違いとかもそうだが、日本語が理解できない。
そばの人間に説明なしでそれ読ませて理解できるかチェックしてみれ。
>>718 それの何処を見れば良いのでしょうか。
できれば、1.4じゃなくて5.0(1.5)でよろしく。
>>716,717
うるっさいですね
わからないからって、くだらない言いがかり付けないでください。
わからないならスルーすればいいでしょう。ムキになって反応して恥ずかしいですよ?
>>718 人が聞いてるのに何無視してるんですか?さっさと教えてください。
あ、もしかしてそれ以上はわからないってことですか?それは失礼。
他の人教えてください。
「分からないだろう」という煽りは役に立たないよ。
マジでJavaの質問なのか…だったらJavaのスレへ逝けば?
質問の内容自体が読解可能ならアドバイスしてくれる
輩も現れるかも知れないとは思うのだけどね…
URLを指定してどっかに飛ぶのならブラウザのURL窓に
打ち込めばいいんでは :-)
板違いのようなのでこっちで質問させてもらいます
JAVA質問スレのテンプレ
>>1 >以下のエラーが表示されて、途方にくれているあなたは、下のページへ。 」
>「Exception in thread "main" java.lang.NoClassDefFoundError: 」
>
http://www.wikiroom.com/java/?path,classpath と同じ症状で途方にくれてるものですが
リンク先の処置をしても同じようなエラーが出ます
それで質問なんですがこちらwin98seでautoexe.batを開くと
loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys
しか書いてなく
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.2_01\BIN
を追加したのですが
loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys
が1つしか書いてないautoexe.batは正常ですかね?
Q Javaって何ですか?
A ジャワ原人のジャワです。
Javaの質問はム板のJava質問スレへどうぞ。
727 :
Name_Not_Found:2005/04/11(月) 03:11:55 ID:C7/gzSLN
本人ですけど、
>>720と719は偽者ですので。
一応。
質問です、お願いします。
下のアクセスログ用のスクリプトを書いたら
W3Cゲートウェイでメチャクチャに減点されました。
<SCRIPT type="text/javascript" language="JavaScript">
document.write("<script type=text/javascript
src=\"
http://〜〜&NoReload=true&referer=");document.write(document.referrer
+"\" charset=\"Shift_JIS\"></" + "script>");</SCRIPT>
<NOSCRIPT><A href="
http://〜〜">
<IMG src="
http://tipy.〜〜=true&img=1" border="0" alt="アクセス解析">
</A></NOSCRIPT>
指摘された点は
(1) <SCRIPT> に対応する終了タグ </SCRIPT> が見つかりません。
(2)メタ文字 `<` は `<` と書かなければなりません。
(3)メタ文字 `>` は `>` と書かなければなりません。
(4)</SCRIPT> に対応する開始タグ <SCRIPT> が見つかりません。
(5)`&NoReload` は不明な実体参照です。
(6)`&img` は不明な実体参照です。
調べたけどサッパリわかりません。
宜しくお願いします。
_| ̄|○
>>728 DOCTYPE くらい書いたらどうだね
>調べたけどサッパリわかりません。
なにをどう調べたんだ?俺はなにを調べればいいのかもわからないぞ。
そもそもあんたが何を問題点として設定しているのかもわからないが。
あ、調べたってバリデータのソース?w
それなら話はわかるんだけど。
>>731 > "<" + "script ...
この分割は必要無い。
まずありえないが、万一、ヴァリデタが要求したなら、そのヴァリデタが不正。
ふつー、閉じタグ書くとこは「"<\/script>"」とかするだろ。
いちいち連結してたら読みづらい。
735 :
728:2005/04/11(月) 08:23:33 ID:???
朝からスレ汚しスマソ
>>731-732 ありがdks
脊髄反射のコピペをせずに
自分なりに考えてみます
マジありがとうデスタ
736 :
Name_Not_Found:2005/04/11(月) 11:09:12 ID:hy+lq43R
質問です。
input type="file"を使ってファイルを指定した後、
何かのボタンを押す時のイベントで、
指定されたファイルが実際にあるかどうかの
チェックをしたいのですが、
Javascriptで実装することは可能ですか?
可能な場合、具体的にどうやってやればいいんでしょうか・・・?
JavascriptでWindowsのチェックはどこまで可能なのでしょうか?
>>736 ブラウザ上のJavaScriptからローカルシステム上のファイル
に(その有無だけでも)アクセスすることはセキュリティ制約
から禁止されている。もし可能になっていたらそれはセキュリ
ティホール。あきらめるのが吉。
738 :
Name_Not_Found:2005/04/11(月) 13:11:16 ID:hy+lq43R
>>737 レスありがとうございます。
ファイルチェックはサーバ側でしなきゃいけませんね。
クライアントでは厳しいですか。
>>738 サーバ上からは当然、クライアントのローカルファイルには触れない。
予めあるかどうかチェックするのは不可能だと言っている。送信されて
きたものを見て「なかった」とかチェックするのはそりゃできるだろうが。
最初の質問はageてくれていいが、その後はsage進行にしてくれ。
>>738 WindowsだからIEまたはIEエンジンを使ったブラウザに限定すれば、
不可能という意味ではなく、
セキュリティ上の設定でできない。と言う事だ。
IEのインターネットオプションのセキュリティ設定の意味が分からないうちは
それができないし、手を出すべきでもない。
なお、上記とは関係なく、
<INPUT type='file'> は元々セキュリティ部品の設計。ここから直接読む方法はム板で聞け。教えないし分かるならここにいないわなw
ただ、ローカルファイル選択を別の方法でする事ができる。JavaScript固有の問題でないのでおやすみ。