+ JavaScript の質問用スレッド vol.44 +
うんこ
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【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") を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
スレ立て乙
>>2 が変なのだったのが気に入らないが
/\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
/\ /\___ / /../
/ /\ \ │ /./
())ノ__ ○二○二⌒/../
/ /||(二ニ) (___/../ 几l
γ ⌒ /|?V||彡Vミ/⌒_ノ二二ノl0
l| (◎).|l |((||((゚ )/⌒/||三三三・) || (´⌒(´
__ ゝ__ノ  ̄(___) ̄ ゝ__ノ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄(´⌒(´⌒;;
>>1 うわあぁぁぁ
>>3 うわあぁぁぁぁ
>>4 うわあぁぁぁぁぁ
>>5 うわあぁぁぁぁぁぁ
>>6 うわあぁぁぁぁぁぁぁ
>>7 うわあぁぁぁぁぁぁぁぁ
>>8 うわあぁぁぁぁぁぁぁあぁぁああああぁぁぁぁぁ
11 :
お願いします :2005/12/15(木) 09:17:15 ID:mr1HbhjL
Javascriptについての質問です。 ホームのページに6つの別のページに飛べるようにリンク してるんですが、そのホームでログイン(ID,Password) すると6つのうちどれでも、ログインしないと6つのうち3つしか いけないというのを作ってるんですがどうしてもその制限が できません。Cookieなくてもいいようなんですが Cookieを使ってできるようにお願いします。Passwordなどは 元から設定したもので構いません。あとばればれでも構いません。
マルチポストしたとこ全部に謝ってから出直しな
>>11 「どうしてもできない」ということは何かはやったんだろ。
何をやったかまず説明しなよ。
14 :
Name_Not_Found :2005/12/15(木) 11:33:43 ID:j2v9edZ7
15 :
Name_Not_Found :2005/12/15(木) 12:04:11 ID:cOGVjS2a
>>14 「あるマスがまだあいてなくて、爆弾でもなければあける」という
関数を作ってそれを呼ぶ。その関数は、呼ばれたら自分のマスは
上記のようにあけるが、それに加えて上下左右(もちろん壁で行けない
場合は除く)について、自分自身を再帰的に呼び出す。自分のマスが
既にあいていたり爆弾の場合は再帰呼び出しはしてはいけない。以上。
>>11 ホレ
--- t0.html : login page ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
document.cookie = 'visited=0'; document.cookie = 'count=5'; // allow all
function ck(n) {
var a, c, v;
a = document.cookie.match(/visited=([0-9]+)/); v = a[1];
a = document.cookie.match(/count=([0-9]+)/); c = Number(a[1]);
if(v.indexOf(String(n)) >= 0) return true; // OK --- already visited
if(v.length >= c) { alert('count exceeded'); return false; }
document.cookie = 'visited='+(v+n); return true;
}
</script>
</head><body>
<h1>0</h1>
<p><a href="t1.html" onclick="return ck(1)">1</a></p>
<p><a href="t2.html" onclick="return ck(2)">2</a></p>
<p><a href="t3.html" onclick="return ck(3)">3</a></p>
<p><a href="t4.html" onclick="return ck(4)">4</a></p>
</body></html>
--- t1.html 〜 t4.html : other pages ---
上記の//allow all の行を次の3行にとりかえる。visited=の次には
自分の番号を入れる。あと<h1></h1>の中も適宜変更した方がわかりやすい。
if(!document.cookie.match(/visited=([0-9]+)/)) {
document.cookie = 'visited=1'; document.cookie = 'count=2';
}
>>16 おいおい、明らかに宿題丸投げがばれてんだが、何で回答してんだ?
おまえは丸投げスレにいけよ。
しかも、何年も初心者レベルから全然レベルアップしないおまえを見るのは痛々しい。
あんなヘンな「宿題」出す学校なんかないだろ。むしろ かなり実用ぽい(ログインに誘導するための)。
2つのフォーム( price pointsum)の数字を比較して、メッセージを表示しようとしましたが、 エラーがでます。 <script type="text/javascript"> <!-- f = document.form; if(f.price.value < f.pointsum.value){ document.write("ポイント数を超えています"); } //--> </script> よろしくお願いします。
>>20 「どの行で」「何と言うエラーが出るか」はとにかく調べて書け。
そしてもちろん、
>>3-4 は読むこと。よく考えろ。それでまだ
分からなければちゃんと相談に乗るよ。
22 :
20 :2005/12/15(木) 17:35:54 ID:???
>>21 3行目
'f.price'はNullまたはオブジェクトではありません。
とエラーがでます。
>>3-4 Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
ということは、innerHTMLを使わないと無理と言うことでしょうか?
>>22 大変けっこう。
その
>>20 のコードは「裸で」その状態で書かれているの?もしそうであり、
なおかつ<form>タグより前に書かれているのなら、まだフォームができて
ないから当然fはnullになるだろ。たとえできてたとしても、その比較
チェックをするのはボタンが押された時とかであるべきじゃないの?
onclickとかonsubmitで関数を呼び、その中で比較をするのが普通だと思うが。
メッセージを出すのにはinnerHTMLでもいいけど、alert()でも
いいんじゃないの。document.write()はその通りやめた方がいい。
24 :
20 :2005/12/15(木) 18:17:35 ID:???
>>23 ありがとうございます。
ただ、2つのフォームにまたがっている場合は
どのように比較したらよいでしょうか?
>>24 別に「document.forms.フォーム名1.elements.部品名.value」と
「document.forms.フォーム名2.elements.部品名.value」とを
比較するだけでしょ。
26 :
20 :2005/12/15(木) 18:35:47 ID:???
>>25 <script Language="JavaScript">
<!--
function myCheck(){
if ( document.member.price.value < document.score.pointsum.value ){
alert("ポイントが超えています");
}
}
// --></script>
略
<input type="submit" value="送信" onclick="myCheck()"/>
としましたが、エラー表示がされません。
>>26 (1) onclick="return myCheck()" とする。
(2) 関数の中ではalert()の後に return false; ifの外側に return true;を追加
ここまでが基本的にやるべきことだが、そもそも判定がうまく行ってないのね?
myCheck()の冒頭に
alert(document.member.price.value);
alert(document.score.pointsum.value);
alert(document.member.price.value < document.score.pointsum.value);
の3行を挿入して表示させてみなよ。
>>26-27 比較が文字列の大小比較になってるだろ。
Number(...) < Number(...)
にするべきだな。
29 :
Name_Not_Found :2005/12/15(木) 19:10:23 ID:bF/4Psds
30 :
20 :2005/12/15(木) 19:55:57 ID:???
<script Language="JavaScript"> <!-- function myCheck(){ sum1 = eval(document.member.price.value); sum2 = eval(document.score.pointsum.value); if ( sum1 < sum2 ){ alert("ポイントが超えています"); return false; } } // --></script> <input type="submit" value="送信" onclick="myCheck()"/> で動くようになったのですが、 ifの外側に return true;を追加 をしていなくても動いています。 これを追加しない場合どのような事になるんでしょうか?
>>30 えーと。警告が出てもフォーム送信されちゃうけどそれは
構わないのね。それだったらreturnとかまったく不要。
アンタ勉強が足りなさすぎ、本とか買って勉強しなよね。
32 :
20 :2005/12/15(木) 20:53:38 ID:???
ありがとうございました。 入門JavaScript買ってきました。
language属性まだ人気あるな
>>19 実用レベルの話だったら basic 認証とかのがよくね?
>>14 数字ナシのマスを開いたときは8近傍のマスを開く。以下再帰。
遅くなったが
>>1 乙。しかも名前欄ちゃんと換えてくれてるし
あと
>>2 氏ね。
他の負荷がない状態でsetTimeoutのミリ秒指定で 正しく実行される下限はどのぐらいですか? celeron 800Mhz 256の4昔前ぐらいの環境で。
>>40 経験的には2〜3msecくらいじゃないかなあ。しかし負荷も
あるわけだから、自分では10msecより小さい指定はしない。
42 :
Name_Not_Found :2005/12/17(土) 09:31:33 ID:VGrgGEYy
すみません、大変お礼がおそくなりました。 前スレ831さんありがとうございます。 >その変更を監視するものが「どれとどれか」はどういう範囲で決まっているの。 >あるフォームにあるすべての部品だったら >var a = document.forms.フォーム名.elements; >for(var i = 0; i < a.length; ++i) a[i].onchange = function() { alert('?'); }; これですごく上手くいったのですが、 もともと、elementにonchangeで処理を入れていた箇所の onchange処理が動かなくなってしまいました。 なにか良い方法ってありますか? とりあえず、名前を指定して、onchange処理を入れている箇所は、 除外して、その部分は個々に処理を書いています。 これでも、全部にonchange処理を書くよりはずいぶん楽なので、 本当に助かりました!
>>42 ハンドラを上書きする代わりに「追加」すればいい。ただ、IEとGeckoで
振り分けが必要になるので。まず
function addchg(elem, func) {
if(elem.addEventListener) elem.addEventListener('change', func, false);
else if(elem.attachEvent) elem.attachEvent('onchange', func);
else elem.onchange = func;
}
という関数を用意しておいて、「addchg(a[i], function() { alert('?'); });」
のようにして追加する。見て分かるように、addEventListenerもattachEvent
もない場合(古いブラウザとか機能の少ないブラウザ)では従来通りになっちゃう
けど、それらの場合は「イベントハンドラ追加しない」とかにしたければそれでもよい。
win2kです。 質問よろしくお願いします。 ポップアップメニューついてです。 ・上側にボタンメニューを配置し、そこにhiddenのポップアップを仕込む ↓ 一般的なhtmlなら問題なし hiddenにしてたメニューがオンマウスであらわれる時 ・その位置に「インラインフレーム」や「Flash」などがあるとき 下側に隠れて見えない部分が出てしまいます 対処方法ご存じ方、アドバイスお願いします。
>>44 プラグインやフレームはレイヤーより強いからね。メニューを
別窓かインラインフレームにするとかかな。
>>45 強いだと?言いたいことは感覚的に分からないではないが、具体的に何のこと言ってんだよw
今までいなかったよ、ここまで頭の悪い回答者は。
もしかして、冬休み開始で、湧き始めてんのか?
>>41 それだけ動けば十分です。
ありがとうございました
>>45 やっぱりそうですね
構造そのものを見直します
>>46 てか突っ込みはいいから(ry
All <ありがd
英語キーボードの↑↓←→って日本語キーボードと番号一緒ですか? それとOSやOSの言語によって番号違ったりします?
51 :
Name_Not_Found :2005/12/17(土) 20:27:53 ID:3gkisRMk
質問です。 var fs = new Array(); for(var i=0; i<2; i++) { fs[i] = function(){ alert(i); }; } fs[0](); fs[1](); これを実行すると、2が二回表示されます。 0,1と表示されるのを期待していたのですが、 なぜこういう結果になるのでしょうか?
52 :
Name_Not_Found :2005/12/17(土) 20:31:16 ID:TnyhJ07x
>>51 関数を実行するときにiにアクセスするから
fs[i] = function(var x){ return function(){ alert(x) }; }(i); こんな感じか
>>52 、
>>53 ありがとうございます。
53で希望通りになったのですが、どうしてそうなるのか教えていただけませんか?
これを説明しているページでも結構です。
55 :
Name_Not_Found :2005/12/17(土) 21:53:51 ID:imgxWqgS
>>52 を読むこと。
>>53 では関数内でiを参照してない。
引数である固有のxにiを代入してるから。
どういう仕組みで52のようになるのかなと。 なぜ51の fs[i] = function(){ alert(i); }; の時点のiが利用されないのかを知りたいです。
>>56 それは言語仕様。つかlexical scopeな(つまり普通の)言語
ではそれが当り前。変数iはその無名関数の外側で定義されている
変数なわけだろ。だからその変数iがすべて共有される。共有され
たくなければ
>>53 のようにすればいいだけ。勝手にコピーを
作られたら共有できなくて不便すぎになる。以上。
>>57 なんとなく分かってきました。
仕様について勉強してみます。
ありがとうございます。
クロージャを理解するには素人にはきついだろうな
>>53 って実行できます?
<html><head>
<script type="text/javascript">
function test(){
var fs = new Array();
for(var i=0; i<2; i++) {
fs[i] = function(var x){ return function(){ alert(x) }; }(i);
}
fs[0]();
fs[1]();
}
</script>
</head><body>
<input type="button" value="実行" onclick="test()">
</body></html>
↑俺やり方まちがってる?
これで動くけど53と意味が違うの? fs[i] = function(i){ alert(i); }(i);
アドレスバーにぶち込んだらページ全体がモノクロになる一行コマンドを教えてください。
63 :
60 :2005/12/17(土) 23:36:11 ID:???
>>61 動いた。
fs[i] = function(i){ alert(i); }(i);
↑この最後の(i)って何してるんですか?
ないとだめなのは確認したけど、
意味ワカラン(;´д⊂ヽヒックヒック
関数を実行してるんだと思う
66 :
60 :2005/12/17(土) 23:43:54 ID:???
混乱してきた。
fs[i] = function(x) { return function() { alert(x); }; }(i); だろ。わかんないヤシ、前スレで何回も議論されてるから読めば? いちお、そのまま動かせるようにサンプル作ってみたけど。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> var a = new Array(4); for(var i = 0; i < 4; ++i) a[i] = function(x) { return function() { alert(x); }; }(i+1); function test() { for(var i = 3; i >= 0; --i) a[i](); } </script> </head><body><p><button onclick="test()">test</button></p></body></html>
>>68 えーと、その結論はもう出ています。
ただ、彼がなぜそれで動くか理解できていないだけです。
>>53 関数の引数リストに変数宣言文は書けない。言語仕様くらい読め。
でもcとかやってると何かしら書きたくなるよなww
>>71 昔のCはそこに型書けなかったよ。
int f(x, y) int x, y; { ... }
じゃクロージャの説明しようか。前にも同じ説明したんだけどな。 function() { alert(i); } → 変数iを表示する関数。iは外側環境と共有なので変更すると変わる。 function(x) { return function() { alert(x); }; } → 引数xに受け取った「値xを表示する関数」を返す関数。 function(x) { return function() { alert(x); }; }(10) → 上記の関数に10を渡した結果、つまり「値10を表示する関数」。 → この場合引数xの値はこれ以上変更する方法がないので変わる心配なし。
>>62 こうかな。bookmarkletだから改行は適宜削除。
javascript:var a=document.getElementsByTagName('*');
for(var i=0;i<a.length;++i){a[i].style.color='black';
a[i].style.backgroundColor='white';};void(0)
>>73 二つ目のは
function(x) { alert(x); }
→引数xに受け取った値xを表示する関数。
と結果は同じで
function(x) { return function(y) { alert(x+y); }; }
とかした場合に違いが見えてくる、
ということですか?
76 :
60 :2005/12/18(日) 12:53:19 ID:???
>>73 わざわざ、ありがとうございます。
よく分かりました(´・∀・`)/
前スレでもまったく同じ質問出てましたね。すいません・・・。
ちなみに
>>53 は var が邪魔なだけでしたかorz
77 :
Name_Not_Found :2005/12/18(日) 16:06:26 ID:vjjNwooo
インラインフレーム内のファイルののテキストボックスに window.clipboardData.getData("Text");で 文字列を読み込みたいのですが、 <A HREF="URL" target="search" onClick='parent.search.document.forms[0].elements[0].value = window.clipboardData.getData("Text");'>google</A><br> <A HREF="javascript:void(0)" target="search" onClick='window.open("URL" , "search");parent.search.document.forms[0].elements[0].value = window.clipboardData.getData("Text");return false;'>google</A><br> としても一瞬表示して消えてしまいます。なぜでしょうか?ご指摘お願いいたします。
>>72 わざわざの親切なのっだが、過去スレ検索に誘導した方がよかったのかも
彼が別の既出件で涌き出ないためにもw
>>73 262-3における変数のスコープを把握すれば全て事足りる。
> この場合引数xの値はこれ以上変更する方法がないので変わる心配なし。
は、
>>73 のレス内という局所では正しいともとれるが、
クロージャを使っている人間の言葉ではない。
var f_10 = function (x) {return function () {alert(x++);};}(10);
f_10();// 10
f_10();// 11
f_10();// 12
はじめまして、少しjavascript/DOMで悩んでいるのですが HTML内にあるtableタグの<div id="nnn"> .... </div>までを var dom1 = document.getElementById('nnn'); var dom2 = document.getElementById('nnn').cloneNode(true); という風にした後で、dom1以下の子ノードをremoveChildすると、dom1,dom2から両方消えてしまうんだけど、なぜでしょう? 同じドキュメント内のノードを参照しないようにcloneNodeしても、removeChildすると両方ともに影響がある理由がわからないで困ってます。。
dom2がどこのDOMツリーにも付けてない罠。
appendChildしろってこった。
document.getElementByID('hoge').appendChild(dom1.parentElement.removeChild(dom1));
>>1 の過去スレ検索でcloneNodeなりremoveChildなり調べれば腐るほど出てくるだろうにね。
JSに関して全く素人なのですが… iframe内の文字サイズを親htmlからコントロールしたいのですが、 可能でしょうか? 一応「styleswitcher.js」ってのは入手したんですが、 どこを触れば良いか、ヒントだけでもお願いします。
84 :
Name_Not_Found :2005/12/18(日) 22:03:42 ID:4yIGxWki
右クリック&ドラッグ禁止で <html oncontextmenu="return false;" onselectstart="return false;"> とした時、指定した範囲(例えば、<div>〜</div>)内のみ禁止を解除する事はできるのでしょうか?
ところでoncontextmenuのreturn falseって 文字をコピーされたくない時だけしか使わなく根?
86 :
IEマニア :2005/12/18(日) 23:15:22 ID:???
>>84 サンプル 実用にはbehaviorにすることが吉
<style type="text/css">
div{border:1px solid red;text-align: center;}
</style>
<body oncontextmenu="return false;" onselectstart="return false;">
<div>false</div>
<br>
<div oncontextmenu="event.cancelBubble=true;return true;" onselectstart="event.cancelBubble=true;return true;">
true
</div>
</body>
>>85 window.open()などから得る子ウインドウではメニューなど非表示が可能だから右クリ禁止は使い道がある。
>>82 そういやAll AboutのDOM解説ページに
cloneNodeをしたときは、親ノードが存在しない状態
という風に書いてあったのをレスを見て思い出しました。
いちおう
var dom2 = document.getElementById('nnn');
var dom1 = document.getElementById('nnn').cloneNode(true);
dom2.parentNode.appendChild(dom1);
のようにして、したいことができるようになりました。
過去レスも、今度から漁ってみます。
88 :
84 :2005/12/19(月) 02:27:32 ID:/0AwnoDn
>>86 ありがとうございます。
早速試してみたところ、IEでは思う通りの動作をさせる事ができました。
ただ、ネットスケープや火狐では動作しない様なのですが、どうすれば良いでしょうか?
89 :
86 :2005/12/19(月) 03:57:45 ID:???
>>83-84 だから
>>1 の過去スレ検索してからこいよ。
天婦羅見ない。前レスの誘導すら見ない。
お前ら何様のつもり。
>>89 の呆れぶりも納得だ。
>>74 a=document.getElementsByTagName('*');
こんなことできたんですね
DOCTYPEって動的に書き換えることできますか? そしてできたとして意味ありますか?
>>92 できません。
>>91 アンタがDOMの仕様を読まない奴だということはそのひとことで
よく分かるよ。このスレの住人を仕様読解係にするのはやめてくれな。
>>90 同意だが、そういう時は「この質問する前に何と何は調べましたか?」
と優しく聞いてやろうよ。それで偉そうだったら叩くと。
94 :
sage :2005/12/19(月) 13:27:33 ID:9gTwkvYg
はじめまして、お助け願いたく書き込んでみました・・・ 質問なのですが、テキストボックスにカラーコードを入力して、実行ボタンを押すとbodyタグの背景指定が変わるスクリプトを作成したいのですが DynamicHTMLでのやり方を教えていただけませんか?。。。教えて君で申し訳ないです。
95 :
94 :2005/12/19(月) 13:28:12 ID:???
あせって間違えました申し訳ない。。。。
>>94 テキストボックスの数値を、そのままbodyエレメントのスタイルの
バッググラウンドプロパティに代入する方法で駄目なの?
引っかかるとすれば、コードの最初に#を付加するのを忘れるくらいか。
自分で書いてみたコードをうpしてみなされ。
>>94 onclick='document.body.backgroundColor = document.forms.フォーム名.elements.部品名.value'
それくらい過去スレ読めば分かるんでまずは調べるべきだな。まあとりあえずサービスだ。
98 :
94 :2005/12/19(月) 13:57:50 ID:???
>>96 >>97 様 こんな質問の仕方で申し訳ないです、実はただいま本日無理やり講師をやらされてしまい当方DynamicHTMLはさっぱりだと言っているのに人数不足で入れられてしまい・・・
サンプルを用意しないといけないのですが、できずにおりまして過去ログを検索したくともただいまブラウザでしかアクセスできず。。。
申し訳ないです、ほとんど素人です。厚かましいにもほどが有りますが凡人の私を救っていただけませんでしょうか。
>>98 とりあえず2つ
・お前はこのスレの1すら読んでいない
・もう救われている
>>98 過去スレ全集はブラウザだけで検索できるけどな。素人なら手取り足取りスレに
行けばいいんでは。
101 :
94 :2005/12/19(月) 14:24:05 ID:???
まったくそのとおり・・・ 板汚し申し訳ないです、皆様どうもありがとうございます 感謝 過去スレ全集見てきます。
えー。 とりあえずそのセミナーかなんか知らんけど、 講師が何も知らないド素人で大失敗の巻き、をぶちかまして、 上司共々大恥をかいてみるのも良い経験なんじゃなかろうかね。 つーことで、来たら放置します。nullはどうするか知らないけど。
103 :
Name_Not_Found :2005/12/19(月) 16:11:36 ID:Tj9++QrR
質問です。 javascriptにてURLの内容を丸ごともって来るような ことはできますか?
>>103 ファイルに保存だったら人間がやらないとできないが。
「丸ごと」の意味が不明確。imgタグだったら画像も取るが
リンクだったらたどった先は取らないとかになると、HTMLを
ちゃんと知ってないとできないわけで。
105 :
Name_Not_Found :2005/12/19(月) 16:55:44 ID:F8P/90mO
csvから読み込んだ色数で、テーブルのセル事に表示って できないかな?
色数?
>>105 こうかな?
#1020c0,#24ffff ←t1.csv
#cc00de,#2809ef
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> ←HTML
<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 test(str) {
var tbl = document.createElement('table');
document.getElementById('d0').appendChild(tbl);
var tbody = document.createElement('tbody'); tbl.appendChild(tbody);
var a = str.split(/[\r\n]+/);
for(var i = 0; i < a.length; ++i) {
var tr = document.createElement('tr'); tbody.appendChild(tr);
var b = a[i].split(',');
for(var j = 0; j < a.length; ++j) {
if(!b[j]) continue;
var cell = document.createElement('td'); tr.appendChild(cell);
cell.appendChild(document.createTextNode('***'));
cell.style.backgroundColor = b[j]; } } }
</script></head><body><p><button onclick="load('t1.csv',test)">Test</button></p>
<div id ="d0"></div></body></html>
_....._{{ 〃 , - ' ,..、、.ヾ{{フ'⌒`ヽ、 / ,:', -‐‐` ´ '´⌒ヽ ヾ:、 . ,' ,'´ ,ィ ,ィ ,' , `ヽ', ',-< ,' .i /|. /.| { i, i, }. }_,,)) ! | ! .,'-.{ ! !|; |`、.}゙!.! |. ! ヽ. ', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! | ゙', ヽ、', l:!Kノ}. f:_.)i゙i: リ ! l ル' | l!iヾ- ' , .!__:ノ ゙ ,リ l リ'´ . ',|!!、 r‐┐ ` ノ' /,イ 'i!゙、ヽ、 ゙ー' _, ィ,:',:''´ ゙:、ィ、jヾー::: 'iヘ ノ',リ 2ch 内なのに h 抜いて何したいの ,、- '´ ヽ、゙、 { `>"、 /\\ ', } //`ヽ
111 :
Name_Not_Found :2005/12/19(月) 18:18:22 ID:Tj9++QrR
h抜きの意味を知らないだけだと思われ 意味は未だに議論が続いてる
>>111 アンタはまず
>>1 も読んでないんだな?FAQ
>>4 を読めば
他ドメインのソースには手が出せないことが分かると
思うがね。まあせいぜいPHPでやってくれ。
>>108 ActiveXObject, filter を使う時には try catch しろと何回書かせるんだヴォケ。
今時、XMLHTTP のどの例文を見ても try catch してるだろ。意味考えろ。
この場合は try catch いらねーだろ何言ってんだハゲ
>>102 '手取り足取り' の現状からして放置はありえないと僕は思う.
もったいぶるほどの問題ではないしね.
問題があるとしたら今時 DHTML なんて言ってる質問者の洗脳かな ?
>>98 とりあえず '手取り足取り' へ移動せよ.
一つだけ条件:
・ 最近質問しっぱなしの人が多い.
回答する側としては " うまくいったかどうか " が気になるものなんだ.
レスポンスの悪い人は二度と相手にしない方針だから そのおつもりで...
うまく行かないときは うまく行くまでサポートするけどね.
質問です。 ランダムにフラッシュを表示させるってこと出来ますか? たぶん、JAVAスクリプトだと思うのですが。
121 :
92 :2005/12/19(月) 21:49:13 ID:???
>>93 そうですか。やっぱ無理ですか。
ありがとうございました。
なんだこのカスカテはww
>>120 フラッシュで表示させるもののURIを配列に入れる。
乱数で1つ選ぶ。それを表示するembedとか一式
document.writeで書き出す。以上。これで分からない
なら自分で勉強すれ。これ以上低レベルに教えるスレじゃ
ないんでね。
乱数よりシャッフルがスレの流れだった気がするが
>>125 「順次」表示して行くのならそうだろうよ。しかしフラッシュ
でそんなことするか?ページ表示時に1回ランダムに選ぶんでは?
<span id="test1">hoge1</span> <span id="test2">hoge2</span> document.getElementById('test1').removeNode(); document.getElementById('test2').id='test1'; alert(document.getElementById('test1').innerHTML); これでhoge2と表示させたいわけですがオブジェクトがありませんエラーが出ます。 どうしたらいいんでしょう?
なぜidの test2 を test1 にするん?
処理後、test2だったものをtest1としてアクセスしたい とうことなんですが
>>126 うん、シャッフルして順次切り替えるなら、
フラの中でActionScriptでやった方がいいな。
>>127 var tmp = document.getElementById("test1");
tmp.removeNode();
tmp = document.getElementById("test2");
window.alert(tmp.innerHTML);
ではいかんの?
>>127 Moz1.7とIE6で以下のをやってみたがちゃんとhoge2になるけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var e = document.getElementById('test1'); e.parentNode.removeChild(e);
var f = document.getElementById('test2'); f.id = 'test1';
alert(document.getElementById('test1').innerHTML);
}
</script>
</head><body>
<div><span id="test1">hoge1</span><span id="test2">hoge2</span></div>
<p><button onclick="test()">Test</button></p>
</body></html>
>>127 removeの使い方がおかしい。
普通はこうだろ。
var a = document.getElementById('test1');
var b = document.getElementById('test2');
var c = b.removeChild(b.firstChild);
b.parentElement.removeChild(b);
a.removeChild(a.firstChild).appendChild(c);
attributeは、変更するとおかしな動きをすることがあるので注意が必要。
ブレビューのボタンを押して、新しいウィンドウを開かせ、 nameの値を表示させたいのですが、 方法を教えてください。 <SCRIPT LANGUAGE="JavaScript"> function newwindow() { window.open("test.php","new","width=500,height=500"); } </SCRIPT> <form method="post" action="test.php"> <input type="text" size="30" name="name" value="名前"> <input type="submit" value="送信"> <input type="button" value="プレビュー" ONCLICK="newwindow()"> </form>
>>124 これを元にするんですか?
<SCRIPT language="JavaScript">
<!--
// ランダムに画像を表示する
img = new Array();
img[0] = "img/img0.jpg";
img[1] = "img/img1.jpg";
img[2] = "img/img2.jpg";
img[3] = "img/img3.jpg";
img[4] = "img/img4.jpg";
n = Math.floor(Math.random()*img.length);
document.write("<img src='"+img[n]+"' border='0'>");
//-->
</SCRIPT>
139 :
Name_Not_Found :2005/12/20(火) 16:18:52 ID:nebPWcnS
あげ
>>138 それを見てもわかんないなら
基礎から勉強しなきゃならん
>>136 まずnameという名前をつけるのはやめとけ。トラブルと混乱のもと。
(1)「onclick="newwindow(this.form.名前欄の名前.value)"」とする。
(2)「function newwindow(n) { window.open('test.php?' + n, ....)...」とする。
(3)PHPの中で環境変数QUERY_STRINGを取得すれ。PHPのことは知らん。
>>116 try catch は、「常に」必要。
理由が分からないということは、おまえは自覚無しにウィルスばらまきの可能性がある。
>>140 そうだよ、それで<img src...の代わりに<embed...を
生成すりゃいいの。普通に<embed...書くことはできるんだろ?
何が生成されてるかチェックするには「<」を一時的に抜けばOK。
try{ }catch(e){ }
> まずnameという名前をつけるのはやめとけ。トラブルと混乱のもと。 なんだこのショボさ。冬休み早く終われ。
>>134 > 指摘の通りremoveNode()がよくなかったみたいです。
ショボい指摘に納得すんな。MSDN読め。引数にtrueが必要だろ。
IE専なんか覚えなくてよろしい。
お粗末な
>>108 、
>>116 に対しては、杞憂にならないと思うから、超基本を書いておこう。
WinIE で ActiveXObject, filter などを使う時に try catch する理由は、
ActiveXコントロールを有効にしていない場合、これへのアクセス自体が出来ないから。
// こんなウェブ初心者スレレベルのことも知らずにしゃしゃり出て来られても。
ついでだが、
JScript では、catch が必ず必要。try finally とは書けない。
JScript では、catch (e) とした場合、catch (e) {catch ブロック} 以外でも e が残るので注意。
> e が残るので注意 ついでのついでだが、これを上手く利用すれば、アクセス解析に、MSXMLのバージョンという項目を作れる。
いえいえどう致しまして。てか、常識かと。
152 :
Name_Not_Found :2005/12/20(火) 19:53:56 ID:HNFVAfey
「e」って何ですか?
___ ____ ___ /  ̄/ / / / / / / / / /、 \/ /、 _/ / / \ \ / \ | l /\___/ヽ :☆: / :::::::\ .::* ◎.。 + | '''''' '''''' .:::| + .::彡彳*‡:*.. |(●), 、(●)、.::::| .:+彡*★:ミ:♪:ミ。:, + | ,,ノ(、_, )ヽ、,, .:::::::| .:彡'゚‡,※゚.◎::▲:ミ,::.. \ `-=ニ=- ' .:::::/ +.,;彡*;▲彡゚*★::.ミ~:ミ+:.. `ー`ニニ´-一´ヽ、 ..*彡゚◎.从♪.:ミ,☆,゚〓:ミ:,, + / _ l .:彡★*..☆,彡.:◆.ミ.+:◎,ミ。:.. /  ̄`Y´ ヾ;/ | .:゚:彡彡彡彡彡彡ミミミミミミミミ::._________,| | |´ ハ ;■■■■; | | |-‐'i′l ■■■ |__ | _| 7'′ .;■■■;... ( (  ̄ノ `ー-'′\  ̄  ̄ \
やべ誤爆ww
すみません、質問させていただきます。 アンケートでチェックボックスを使おうと思うのですが たとえば、20個あるチェックボックスのうち、3個までしかチェック できないようにしたいんですが、どうしてもうまくいきませんでした。 下記のソースは色々調べたのですが不備がありますでしょうか? <script language="JavaScript"> function check() { var j=0; for(i=0; i<3; i++) { if(document.form1.elements[i].checked) { j++; } } if (j>2) { alert("エラー"); return false; } else { return true; } } </script> <FORM NAME=form1 onSubmit="return check()" ACTION="hoge.cgi"> <INPUT TYPE=checkbox NAME="CBOX1" onClick="kensa()">チェックボタン1 <INPUT TYPE=checkbox NAME="CBOX2" onClick="kensa()">チェックボタン2 <INPUT TYPE=checkbox NAME="CBOX3" onClick="kensa()">チェックボタン3 <INPUT TYPE=checkbox NAME="CBOX4" onClick="kensa()">チェックボタン4 〜〜20個まで続く </FORM>
>>157 「var j = 0;」を関数kensa()の「外に」置くように。
現状のように中にあると呼ばれるたびにゼロになって
始まるから永遠に3にならない。
>>157-158 げげ、全然違う。だが洩れが思ったのは
>>158 のようにしておいて
チェックしたときにカウントアップ、チェック外したときにカウント
ダウンしてカウントアップで3を越えないようにするということだけど。
ともあれ、現状の方針で直すべきなのは「onclick="kensa(this)"」
として、それをたとえばxという引数で受けたとして、alert()を
出した後return falseする替わりに「x.checked = false」でチェック
外してしまうことかな。
>>157 // for(i=0; i<3; i++) {
// if(document.form1.elements[i].checked) {
// j++;
どういう論理だかw
最初の3つの要素しか見てないじゃん
あと4つ目チェックしようとした時の処理な
出直しを祈る
>>157 > for(i=0; i<3; i++) {
ここもまずい
すべてのチェックボックスをチェックしないと
オマエラ随分叩きが控え目ですね
165 :
157 :2005/12/20(火) 23:31:46 ID:???
ありがとうございます、一度ためしてみます また報告にきます
166 :
Name_Not_Found :2005/12/21(水) 00:02:34 ID:RBndLq13
JavaScript初心者です。 ホームページ上で何かのリンクをクリック際、あるいはページをひらいたときに exeファイルを自動的に作動させたいのですがそういうことは可能でしょうか? もし知ってる人がいたらおしえてください。 よろしくおねがいします。
168 :
166 :2005/12/21(水) 00:15:17 ID:RBndLq13
わたし全然ほんとに何もわからないので変な質問だったらすいません。
ウイルスのことを連想してくれたらよかったんだけどな。
170 :
166 :2005/12/21(水) 00:41:18 ID:???
検索でしらべたらウイルス関係のページがちらほらでてきたので 多分そういう仕組みなんだろうあな・・・とはおもっていたんですが 方法がわからないので質問させてもらいました。 私の場合はHPを見るとき時刻をサーバー時計と連動させたかったのですが ここに書くのはおかどちがいおだったらすいません。 どこで聞いたらいいのかわからなかったので。
自分のPCの時刻を標準時に合わせたいだけならsntp使え Web制作とは関係ない
172 :
166 :2005/12/21(水) 00:50:45 ID:???
>171 時間で変わるホームページをつくりたいのですが、パソコンの時計の時刻を変えられたら 変化の意味がないのでページを見ている間だけは見た人がサーバー時計に 接続できるような環境をつくりたかったんです。 いってること変でしょうか・・・・?
exeを食わせるようなサイトには二度と行かない それに PCを正時に合わせるかどうかはPCの管理者の自由
>>172 ということは、サーバ側に時刻情報を返すCGIなりを仕込んで
それをXMLHttpRequestとか隠しフレームで読んで動作すると。
サーバ側にそういうものを仕込む技術はあるのかね。そいつは
このスレの受け持ちじゃないのでね。
普通、パソコンの時計を参照するよな、アンタのページのため
だけに時計をずらそうとする物好きなんかいるのか。そんなこと
しなくてもJavaScript読んで直してしまう(それで何時の画面でも
表示させる)方がカンタンのような。
175 :
166 :2005/12/21(水) 01:07:54 ID:???
>exeを食わせるようなサイトには二度と行かない 用心深いひとならそうなんでしょうね。 公開するとしたらちゃんと素性をあかして公開しようとおもってます。 悪意があるかないかは来た人に判断してもらうしかなにのでしょうね。 >174 CGIつかわないとやっぱりむりでしょうか? 機動している間は勝手に時刻あわせてくらるソフトってありますよね、 CGIつかわなくてもなんとかそういうものを利用してできないものかと 考えたんです。 ようするにJavaScriptだけではむずかしいということなのですね・・・。
176 :
166 :2005/12/21(水) 01:08:57 ID:???
あわててうったので誤字おおすぎました。すいません。
・些末なサイトでexeを見たら怪しむのが普通。 ・JavaScriptではPCの時間を設定することはできない。 ・でもサーバの時間を元にスクリプトを動作させることはできる。 ・しかしソースを見れば何やってるのかはバレバレ。
178 :
166 :2005/12/21(水) 01:47:19 ID:???
>でもサーバの時間を元にスクリプトを動作させることはできる。 どうすればいいのでしょうか? >しかしソースを見れば何やってるのかはバレバレ。 ばればれでもかまいません。 パソコンの時刻を変えることはふつう誰でも発想するとおもうんです。 でもソースを読むとなるとなると、一般の人はHTMLの基本的な 構成すらわかっていない人が大半だとおもうんです。 「あれ?時間変えてもホームページはそのままなんだね〜」 で終わっちゃうとおもうんです。 絶対にわからないようにというのではなく一般の人が わからないレベルでいいんです。 すこしでも何かいいヒントあったらおねがいします。 そういうことができる書籍があるとかその程度でかまいまいません。
>>178 一つの方法は
>>174 サーバで php (か何かのスクリプト)が使えるなら
html ファイルの拡張子を php に変えてしまう。
んで
var now_server = new Date(document.lastModified);
これでページを開いた時のサーバの時間が取れる。
# 古い一部のブラウザには
# lastModified をそのまま new Date に入れても解釈できないものがある
同時に
var now_local = new Date();
とやってローカルの時間を取得。
now_server と now_local の差分を取っておけば大抵の要望はかなうだろう。
180 :
166 :2005/12/21(水) 02:24:17 ID:???
>179 ありがとうございます。 その方法はサーバー時計とは関係ないのですよね? わたしのほうは本当に初心者でphpもつかえません。 最終的に他に方法がないなら必死に勉強してなしとげるしかないとおもっていますが。 いただいた情報は大切に保管させて参考にさせていただきます。 私はほとんど素人なので簡単に考えてしまっているのかもしれませんが htmlのJavaScriptの設定のみではやはりそういうことは無理なのでしょうか?
181 :
166 :2005/12/21(水) 02:42:54 ID:???
>179 とりあえずPHPをダウンロードしてみます。
今回の「php」ってのは単に拡張子を変えることで「lastModified=サーバ基準のアクセス時間」にする小細工に過ぎない。 phpの言語とは今のところ関係ない。 ちなみにサーバーサイドで「時間によって変わるページ」を書き出せばそれだけで166の望みどおりのページになる。もちろんソース見ようがPC時計いじろうが問題は無い。
183 :
166 :2005/12/21(水) 04:33:02 ID:???
>182 >phpの言語とは今のところ関係ない 私は基本的なことがよくわかってないので。 いま借りてるサーバーはphpつかえます。 ぶしつけなお願いですが、すぐにはって使えるソースとかあったらおしえてもらえませんか。 無理でないようでしたら。
馬鹿かおまえら。 サーバ時刻はレスポンスヘッダに含まれてるだろ。 CGI?PHP?いらねえよそんなもの。404だけで十分だ。
そうか! レスポンスヘッダにあるのか。
>>183-185 PHP使えるのなら404出さすよりPHPに日付だけ返させた
方が素直でいいと思う。これでいいんでしょ(スレ違いだけど)。
<?php
$a = getdate();
echo $a["mon"], ".", $a["mday"], ".", $a["hours"], ".", $a["minutes"];
?>
これをサーバ側の「なんとか.php」に入れてそれを読んでみ。
これに返させた文字列を取得するのとかは上にサンプルあるよな。
try-catchは追加するとして。じゃこれで回答おわりだ。
なんかよく分からないんだけど、ページ表示させたまま 刻々と時刻によって内容を変化させるっていうこと? 表示させた時点の時刻で内容が決まるというだけなら PHPでその時刻用の内容生成して返せば終わりなわけだよね。
188 :
166 :2005/12/21(水) 11:41:58 ID:???
あの、すいません。質問したものです。 そういう場合ページを見る前に時間を変えたらどうなるんでしょうか?
サイトのデザインの都合でHPをフレーム表示にできません。 現在はページ数が少ないので、すべてのページにサイドメニューを表示させているのですが、 今後ページが増えると更新作業につらいので考えた結果、思いついた方法が、 javascriptの外部ファイルとしてHTML文章を読み込もうと思いました。 javascriptでHTMLの文章を書くとき、 document.write('はじめまして<BR>'); document.write('<FONT color="red">Hello World!!</FONT>'); でのように書くとのことなんですが、 かなり長いHTML文章なので、前後に「docment.write('');」をいれるのが辛く、 一気に表示するにはどうすればいいか悩んでいます。 サイトもある程度回ってみたんですが、複数行での書き方は発見できませんでした。 ヨロシクお願いします。
>>189 フレームじゃなくても外部HTMLを埋め込む方法は色々あるけど。
iframe、objectタグ、XMLHttpRequestで持って来て挿入、などなど。
>>190 マクロ?何をどうするという話なのか説明キボン。
>>188 「そういう」ってどういう?サーバでその時刻用のページを生成
するんならサーバの時刻だから読み手にはいじれないわけだが。
ページを表示中に時刻に応じて変化させるのなら読み手のPCの
時計変更されたらそれに影響されるよね(普通のDateオブジェクト
を参照する場合。それは困るからサーバの時計を持ってくるという
話だったんじゃないの?
192 :
166 :2005/12/21(水) 17:23:33 ID:???
>191 ですよね。変なしつもんでした。
193 :
Name_Not_Found :2005/12/21(水) 18:11:48 ID:dNjyEvT+
JavaScriptを込みこんだホームページを作ったのですが、 エラーが出てしまいます。 自分では、解決できそうにないので質問させてください。 <エラー内容> フレーム1に表示しているページ(HTMLファイル)を単独で開くと正常に作動している フレーム表示にするとエラーになる <画面の表示> 画面を2フレームに割って表示させている。(フレーム1、フレーム2) フレーム1の中に、リンクアイコン数個とインラインフレームを表示 <やりたい事> フレーム1の中にあるアイコンの上にマウスを持ってくると、 インラインフレーム内に画像が表示され、アイコンをクリックすると フレーム2の表示が切り替わるようにしたい。
194 :
193 :2005/12/21(水) 18:12:36 ID:dNjyEvT+
<SCRIPT Language="JavaScript"> <!------ var icon = Array(4) icon[0]=new Image();icon[0].src="botan-1.gif" icon[1]=new Image();icon[1].src="botan-2.gif" icon[2]=new Image();icon[2].src="botan-3.gif" icon[3]=new Image();icon[3].src="botan-4.gif" function SetIcon(flag, position) { parent.window.document.images[position].src=icon[flag].src } // ------> <body> <iframe src="mado.html" name="window" frameborder="0" scrolling="no" align="middle" height="46" width="70"></iframe> <a href="sample.html" target="f2" onMouseOver="SetIcon(1,0)" onMouseOut="SetIcon(0,0)"><img src="icon.gif" alt="" height="18" width="18" border="0"></a> 長々と書いてしまってすみませんが、どなたか原因がわかる方いらっしゃいますでしょうか?
195 :
Name_Not_Found :2005/12/21(水) 18:29:33 ID:6bMC66oc
>>193 「どの行で」「どういうエラーが」出るか書けないヤシは帰れ。
あとなんで「parent.window.document....」なんだ?
>>195 洩れのとこでは動くなあ。Moz1.7.2でもIE6でも。となると
アンタの環境に何かそういうのを抑制するものが入ってる
んじゃないの?
198 :
195 :2005/12/21(水) 18:44:58 ID:???
>>197 ありがとうございます。
他のマシンで試したら問題なく動いたので、確かに自分のマシン環境の問題のようです。
VisualStudio.NET 2003 と Microsoft Script Debugger 入れてるんですが、そのせいなのかなあ。
誰か同じ症状の人いませんか?
200 :
Name_Not_Found :2005/12/21(水) 19:10:11 ID:YTqRQRaJ
URLは知っているのですが、URNって何ですか?
こんにちは DOMのメソッドはたくさんありますが、押さえておくべきものは どのようなものですか? 基本的なリストとかあれば教えて下さい。
204 :
193 :2005/12/21(水) 19:18:04 ID:dNjyEvT+
>>196 ちゃんと説明できなくて すみません。
画面を2フレームに分けて表示させた状態だと、アイコンの上にマウスを持って行っても
インラインフレーム内の表示が切り替わらなくなります。
>あとなんで「parent.window.document....」なんだ?
ネットで調べて、似たようなフリーのスクリプトがありましたので参考にしました。
(参考にしたものはインラインフレームを使用していないものでした)
>>199 説明不足で すみません。
>>204 フレームについてもっと勉強した方がいいかもね
>>204 エラー表示が出るんだろ。その行とエラー内容を書け。
>>3 これだけ言って分からないなら2度と来ないでくれ。
似たようなものって、理解しないままスクリプトを書く
なんて不可能なんだよ。勉強するかあきらめるかどっちか
自分で選べ。
>>200 href="..."に書くものは規格では「URI」(uniform resource identifier)。
URIにはURL(uniform resouce locator)とURN(uniform resource name)
の2種類がある。URLは「場所を指定する」もの。URNは「場所に関わらず
何であるかを指定する」もの。URNはすべて「urn:」ではじまる。
たとえば「urn:isbn:ISBN番号」とかね。でも実際にはブラウザで開く
ものは全部URLだな。
ずっと uniform"ed" Resource Identifier だと思ってた… ハズカシス
209 :
193 :2005/12/21(水) 20:12:56 ID:dNjyEvT+
>>206 フレームの親になるHTMLファイルを開いた時、ステータスバーのところに
『ページでエラーが発生しました』とでます。
スレ汚してすみませんでした。もっと勉強します。ありがとうございました。
>>209 エラーを人に説明出来るようにならないと無理
>>209 だから
>>3 を読め。ブラウザを設定すれば行番号と
詳しい内容が出るようになる。ブラウザも設定できない
奴がページ作るて無理すぎ。
>>209 ステータスバー右の黄色い△をダヴォ(・∀・)click!
ノンノンノン。 ブ、ブ。ルックルックルック、ブ。 ダボォ(・∀・)クリッ!
>>209 ステータスバー右の黄色い△をダボォ(・∀・)クリッ!
215 :
Name_Not_Found :2005/12/21(水) 21:39:49 ID:qwMDhRQD
質問です。 var obj = getElementById('hogehoge') で id='hogehoge' の要素を取得し、 obj.style.xxxx でCSSを修正できますが、 class="hogehoge" で指定したものすべてを JavaScript で修正する方法はな いでしょうか? よろしくお願いします。
>>215 過去ログに満載ある。CSSを修正するのならclass指定の
スタイルシートをJSで設定するのが効率的。それもある。
ともかく
>>1 をよく読めボケ。
>>214 ヴェルィ(・∀・)グッ
>>215 getElementsByClassName の実装はいろんな人が試みているからググって見るといいかも。
まあ、要素全部の中からclassNameに目的の文字列が含まれているものをチマチマ探す
だけなんだけど。
余談だけど、ObjectのprototypeをいじることがIEは出来ないので、getElementByClassNameは
メソッド化することはできない模様。
>>218 > 余談だけど、ObjectのprototypeをいじることがIEは出来ないので、getElementByClassNameは
> メソッド化することはできない模様。
よく意図がわからないから、もうちょい詳しく希望
>>218 多分そうではなくて
既にクラスで指定されているスタイルそのものを差し替えれないか?
という話だと思うのだけれど。
まあログにあるはずなので略。
>>219 やめとけよ、とうとうと演説し始めて止まらなくなるから。
前にこの話題なったときもそうだった。過去スレ検索したら
うんざりするほどその演説が読めるからさ。頼むからスルーで。
全部の要素持って来てclass調べるのならのろいけど次のように。
var a = document.getElementsByTagName('*');
for(var i = 0; i < a.length; ++i) {
if(a[i].className == '目的の名前') {
// a[i] をなんか処理
}
}
さ、もうやめといてくれ。
222 :
218 :2005/12/21(水) 22:07:04 ID:???
ごめん派手に勘違いした。
>>219 タグ名から要素を返すgetElementsByTagNameのように、
クラス名から要素を返すメソッドがほしいのかと思ったんです。
んで、関数として手作りすることは出来るけど、オブジェクトのメソッドとして
実装することは出来ません(Gecko系は出来たけど)、という話です。
すまそすまそ。
つーことで、
>>217 の言うとおり、
スタイルシートごと切り替える方法で対処するのが楽そうですよ。
予想的中キタ━━━━(゚∀゚)━━━━ッ!!
225 :
189 :2005/12/21(水) 22:51:59 ID:???
レスありがとうございました。
>>190 マクロだけでは正直意味がわかりません、すいません。
>>191 IFRAMEは閲覧してくださる人のディスプレイサイズによって
スクロールバーが出る可能性があるので考えていません。。
objectタグとXMLHttpRequestというものについてですが、
XMLHttpRequestは触ったことがないのでイマイチわかりませんが、
objectタグで調べてみようとは思います・・・。
引き続きナニカ方法がありましたらお願いしますm(-_-)m
226 :
Name_Not_Found :2005/12/21(水) 22:53:15 ID:yvsms4vE
var hoge = { fuga : 'piyo' } みたいなプロパティの設定方法?を初めて知ったのですが 単純な代入しか出来ないようで、なんとかDOMノードの塊を 代入する事は出来ないでしょうか? hoge.p = doc.createElement('p'); hoge.p.appendChild(doc.createTextNode('hoge')); みたいなのを上記の設定方法の中でやってしまいたいのです。 IEとGeckoで使えればW3CDOMでもinnerHTMLでも何でもいいです あと、上記のやり方の呼び名あったら教えていただけないでしょうか。 調べようがなくて困ってます...
>>226 試してないけど普通にDOMのメソッド等を組み合わせればいいのでは。
var hoge = { p: d.createElement('p').appendChild(d.createTextNode('hoge')).parentNode }
名前は「オブジェクトリテラル」でいいんじゃないの。つか、そんなの
ECMAの言語仕様に載ってるだろ、何が「調べようがない」だ?
まさか
>>1 を読んでないのか?
>>225 スクロールバー出さなくできるけど。やりたければCSSスレで聞く。
objectタグで調べてみたのですが、別のIFRAMEのような 形なのですね。スクロールバーが出てしまうので 使えなさそうです。申し訳ないです><
サイドメニューやりたいなら それこそフレーム使うかPHP
>>228 スクロールバーはどれだって出なくできる。やりたければCSSスレで聞け。
>>229 PHPと何の関係があるのか理解できん。メニュー出すたびにサーバに
通信するのはまっぴらだと思うが。
>>227 上手く動きました。
ECMAの言語仕様も全部読んで見ます。
どうもありがとうございました
233 :
228 :2005/12/21(水) 23:58:41 ID:???
>>227 >>230 あ、確かにスクロール出さなくても出来ますね・・・・><;
忘れていました申し訳ないです。
解決しそうです、ありがとうございました^^
>>232 確かにJSONでDOMツリーのリテラルが書けると嬉しいが、
そんなライブラリ(?)はまだ聞いたことがない。あるなら教えて。
ここ2日レス消費50件で賑わってると思いきや冬厨が涌いてるのネン
こういう香具師はどうせ
>>1 など読まずに最新記事読んで(これも読まんと
救いようがない)書きこんでくるだろうから。もう1度誘導しとく。
他の香具師も涌き出たと思ったら、以下のアンカで誘導汁
こんにちは。 質問させて下さい。 JavaScriptを用いて掲示板の削除パスにcookieを使おうとしているのですが、 これはもしかしてセキュリティー的に問題ありでしょうか? 全くのパソコン初心者の方とか、何でもかんでも同じパスにしておられる方も多いと思いますので、 もしかしたらそれが原因でパスが流出なんてことになりはしないだろうかという不安があります。 詳しい方おられましたら、どうかよろしくお願いします。 スレ違いだという場合は他所へ行きます。
どの程度の問題をセキュリティーに問題ありとするんだろか。 暗号化していない以上、通信傍受の可能性は常にあるので、 流出の危険はJavaScriptだろうがCookieだろうがあると思う。 ちなみにYahooはJavaScriptを使ってMD5で暗号化してから送信している。えらい。
「MD5って何?」って聞くの禁止
このスレって実績ある?
ここ見てすぐPerlコーディング初心者質問スレ見たらまったく同じ文面のレスがついててびっくりした
>>239 「Yahooでは暗号化」と言うことは、少しは危険も存在し得るということであり、
危ない橋は渡らないにこしたことなさそうですね。
cookie使うのはやめて、毎度パスを入力してもらうことにします。
有益な情報ありがとうございました。
それにしても、livedoorのレンタル掲示板OTDはスゴイですねw
まさか掲示板開設しようとしてJavaScriptの勉強を始めるとは思ってませんでした。
たいていの事は自己解決してますが、またお世話になるやも知れません。
>>244 > 毎度パスを入力してもらう
そのパスも平文で流れるんだが…
246 :
Name_Not_Found :2005/12/22(木) 19:52:50 ID:X0U7wllG
お話中すいません。 window.onload は分かるのですが、document.onload ていうのがイマイチ よく分かりません。windowが読まれたときは、documentも同じだと思うので すが、ちがいはどこにあるのでしょうか。
>>246 document.onloadというプロパティを探してみたが、W3C DOMにも
MozillaのリファレンスにもIEのリファレンスにもなかった。
つまりそんなものは本来ない(あっても何がなんだか分からない)
から使わないのが吉だと思うが。
いつMicrosoftが天下を取ったのか知らないが それはきっと誤植だろうと "document.onload" の検索結果のうち 日本語のページ 約 73 件中 1 - 38 件目 (0.07 秒) "window.onload" の検索結果のうち 日本語のページ 約 9,890 件中 1 - 100 件目 (0.12 秒)
ふいんき の検索結果 約 116,000 件中 1 - 10 件目 (0.07 秒) ふんいき の検索結果 約 64,100 件中 1 - 10 件目 (0.06 秒) 検索結果なんてアテにならんよヽ(´ー`)ノ
MS日本のページなんて読む奴は阿呆。大嘘の連打だろ。
すぐ気づかなくちゃダメだって。リファレンス見るのなら
テンプレにある英語のを読め。なぜテンプレに英語版しか
掲載してないのかもちゃんと書いてあるだろ。
>>1-10
>>245 では、いずれにしても同じということで?
ウイルスバスターでCookieファイルが「念のため」スパイウェアといっしょに検出されるので、
「Cookieファイルの流出は危険な場合がある」みたいに思ってました。
結局「SSLうんぬんかんぬん」使わないと意味がないんですね。
掲示板でそこまでするのもあれですし、もう掲示板ではセキュリティーとかあまり気にしないことにします。
>>252 あのさあ、「Cookieファイル」が流出するのはまずいだろ。
ショッピングとかのもあったりするっしょ? しかし、
トラフィックを監視して往復してるクッキーを見るとか
まで気にする必要は(掲示版程度とかなら)ないよ。
>>253 ちょっと言葉足らずでした。すみません。
「Cookieファイルの流出は危険な場合がある」と言うよりは、
「Cookieファイルの流出はさえ防げば大丈夫」みたいなイメージがありました。
色々教えていただきありがとうございます。
レンタル掲示板でパスの入力までJavaScriptでいじくるのはちょっと怖いかもと思ったのです。
>>254 クッキーは平文で流れるから
必要な時は
ハッシュ値取って記録させるか通信そのものを暗号化する。
OTD のキーは削除にしか使わないから
通信を監視してまでキーを取得しようなんて人はそういないでしょ。
ウイルスバスターとかで警告されるのは
トラッキングクッキーの中でも悪質なものが検出されたってことだと思うよ。
それは上の話とは別問題。
デジタル時計を使って外国の時間をリアルタイム表示させたいのですが、 単純に時差分だけ時間を足して .getHours()-8 = のような考えしか浮かばず 日本時間 2005/11/05 00:03:02 時差 2005/11/05-08:03:09 このような感じになってしまいます パソコンの時計を基準に時間も日時も正確に表示できるようなスクリプト教えてください flashで利用したいと考えています。
日本でしか閲覧されない前提であれば getHours() でもいいけど 世界標準時を基準にした方がいいかもね。 日本標準時 date.setUTCMinutes(date.getUTCMinutes() - date.getTimezoneOffset());
>>256 それだったらActionScriptスレで聞いた方が良いけどASもJSも同じだしいいか
260 :
258 :2005/12/23(金) 00:34:40 ID:???
>>258 「日本標準時」じゃなくて「現地時間」だね
261 :
256 :2005/12/23(金) 02:22:16 ID:???
>>257-260 勉強させていただきました みなさま有難うございました
日付についての関数を調べてきます
262 :
189 :2005/12/23(金) 23:07:07 ID:???
>>189 の書き込みをしたものです。
インフレームで整ったかのように見えたのですが、
スクロールバーを消すCSSを入れて、自分のIEから見えるのが
きれいになったから大丈夫だと思っていたのですが、
閲覧者の意見で、文字サイズを変更するとインフレームからはみ出る
&スクロールバーも出ないので逆に操作しにくくなってしまったようです。
やはりjavascriptでの方法がいいんですが・・・・orz
ナニカいい方法ありませんでしょうか。。
>>262 メニューとかは JS 使わない方がいいよ
どのみち JS off の人用に別のメニューを作らにゃならんのだから
文字サイズを変更しても崩れないデザインにして
変更があった場合は
高機能なエディタでがっつり置換するか(
>>190 )
アクセスが少なくて鯖に余裕があるなら
SSI とか PHP とか鯖サイドのスクリプトで取り込む
>>263 JavaScript オフにしている人の対応ですか・・・orz
確かにそうですね。。
CSSで文字サイズが崩れないように設定も一応しているのですが、
何故か私がIEで確認しても崩れてしまうんですよね><;
まぁ、今のところ根気良く置換してみます・・・ありがとうございました。
>>262-264 JavaScript-OFFの人用にはメニューエリアに
メニュー用HTMLファイルへのリンクだけを
最初から書いとく。
でもってONの人はAjaxでHTMLファイルからもってくればいいだけ。
必要な部分だけをinnerHTMLでメニューエリアに挿入する。
noscript要素使うってのはなしなの?
267 :
265 :2005/12/24(土) 10:23:54 ID:???
>>266 >>265 の場合noscriptだとAjax対応してない古いブラウザがだめじゃない?
(どれぐらいから対応してるとか詳しいことは知らないけど)
そんなのまで気にしないんならnoscriptのほうがいいと思う。
> Ajax を使う > Ajax 対応 馬鹿ども、調べてでも具体的な言葉を使え。 そういう姿勢だから、回答者のくせに、 > どれぐらいから対応してるとか詳しいことは知らないけど みたいな意味不明のことを言うわけだ。即座に調べろよタコ。
269 :
Name_Not_Found :2005/12/24(土) 13:36:25 ID:WRWMNFLD
こんにちは ページにiFrameを埋め込んでファイルを呼び出しているんですけど、 ページロードの具合によって、呼び出しが不発に終わることが度々 あります。 JavaScriptで確実にそこに収まるように呼び出す方法とかありませ んか。
>>269 そりゃもちろん、iframe側のonloadイベントで操作を起動
するように直すんだろ。
271 :
265 :2005/12/24(土) 14:53:59 ID:???
ま、注文だけで貢献しないヤシはスルーでいいよ。
273 :
269 :2005/12/24(土) 17:07:12 ID:U4K9al1S
>>269 >>273 --- t1.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() { alert('???'); }
</script>
</head><body><iframe src="t2.html">iframe here...</iframe></body></html>
---- t2.html ----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test1() { top.test(); }
</script>
</head><body onload="test1()"><h1>inner</h1></body></html>
275 :
269 :2005/12/24(土) 18:14:15 ID:qAdG/Ylz
>>274 さん ありがとうございます。
このスクリプトって、iFrameにt2.htmlが読み込まれたときに、イベントを
起動させるってだけのものですよね。
そうじゃなくって、確実にiFrameにt2.htmlを読み込ませる方法を知りたいの
ですが・・・
>>275 ふーん、そういう質問だったのか…
現在どうやってるわけ?普通にやれば不確実でなくできると
思うんで、普通じゃないヘンなことをやってるんだろ。
その不確実な*最小限の例題*を作って貼れ。
インターネットの性質上、「確実に」は無理だな
278 :
Name_Not_Found :2005/12/24(土) 19:07:55 ID:24BwEKeb
Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… と思って、諦めてたのですが、 某ページに >IE5.5では、クッキー以外にもローカルディスクにデータを保存することが可能です。 と書いてあるのを見つけました。 どのような方法があるのでしょうか?
某ページで聞け
FileSystemObjectだろ
281 :
Name_Not_Found :2005/12/24(土) 22:18:29 ID:qET0LQzk
当方マカーなんですけど、MacOS X 用のeclipseにJavaScriptEditorをダウンしてきてjsファイルを作成しても Unable to create this part due to an internal error. Reason for the failure: The editor class could not be instantiated. と出てしまい使えません。Windowsは手元に無いデス。 JavaScriptが持つ標準的な関数、ユーザーが定義したクラス、メソッドなどの入力補完が出来るエディタで他に良いものありませぬか。 DreamWeaverは持ってません。
282 :
IEまにあ :2005/12/24(土) 23:37:02 ID:???
283 :
254 :2005/12/25(日) 00:48:21 ID:???
せっかく教えていただいてなんですが、結局クッキーは使うのやめました。
↓JavaScriptの学習を開始して1週間かかってようやくこんな状態にまで整備できました。
ttp://otd10.jbbs.livedoor.jp/1000018541/bbs_tree 記入漏れ・削除キーの字数不足などによってエラーページに飛ばされ、
記入内容が消えてしまうのを防ぐようにしています。
(カスタム前の状態:
ttp://otd10.jbbs.livedoor.jp/1000019214/bbs_tree )
ここに至り、解決手段が調べても全く分からないことが生じたので質問させてください。
この掲示板は60秒の連投規制があり、60秒以内に投稿してしまうとエラーメッセージのページに飛び、
記入内容が消えてしまいます。
今度はこれに対する対策をしようとしてタイマーを表示させたのですが、
返信ページに飛ぶ際にタイマーの数値を返信ページに引き継ぐ方法が分かりません。
タイマーに限らず、別ページに飛ぶ際に変数の値を引き継ぐ方法があれば、
挑戦してみたいので教えていただけないでしょうか?
>>283 削除キーを必須にするんだったら
クッキーに覚えさせた方がよくないか?
毎回 alert が出るのは煩わしいと思う
>>283 ページ間の値の受渡しこそ過去ログに実例が満載ある。それを読んで
適用しようとしてまだ分からなければその時質問すれ。
◆コードを書いてみたこと: テストコードを書いてみて、いくつかの具体例は分かりました。 ・オブジェクトのメソッドとして呼び出した場合は、そのオブジェクトへの参照がthisに入る。 function obj1(arg){ this.id = arg; this.method = function(){alert(this.id)}; } o1 = new obj1("aaa"); var o2 = new Object(); o2.id = "bbb"; o2.method = o1.method; o1.method() // => aaa o2.method() // => bbb ・コンストラクタの中では新しいオブジェクトへの参照がthisに入る。 ただし、コンストラクタから別の関数を呼ぶとGlobalオブジェクト?がthisに入る。 var prop = "global"; function showProp(){ show(this); } function show(obj){ alert(obj.prop); } function obj2(){ this.prop = "obj2"; show(this); // obj2 showProp(); // Global } // new obj2() 具体的な個々の場合についてはテストコードを書いてみれば分かるのですが、出来ればきちんとした仕様を知りたいです。
>>290 そのページのどこを見たら、コンストラクタの中では新しく作成したオブジェクトがthisに入るという事が読み取れるんでしょうか?
また、コンストラクタから関数を呼び出したときはGlobalオブジェクトが入るという事も。
そこのページには場合によるとしか書いてなくて、上のような具体的なケースに何が入るかは試してみないと分からないのかと懸念しているのですが。
>>293 大体こんな感じです。
基本的に、実験して思ってた通りですね。
newして呼び出したときについて言及されていませんが、
あとはECMAScriptの定義書を参照してみます。
ありがとうございました。
295 :
Name_Not_Found :2005/12/25(日) 15:46:29 ID:GMYlRhIH
>>293 どうしていつも、「http」を「ttp」と書くんですか。
意地悪なんですか。
それとも、URLをリンク表示にしない大切な理由でもあ
るのでしょうか。
ど 意 そ る (`Д´≡`Д´)??
>>295 2chブラウザを使っていないお前のためにリファラ防止
どいそる!
299 :
295 :2005/12/25(日) 18:14:53 ID:0S1JgLCi
あー、そうなんですか。 リファラ解析されると、どんな不都合あるんですか?
あー、あんたは***というサイトから来たのですね、というのがバレバレになる。 あれ、不都合じゃない…orz
302 :
Name_Not_Found :2005/12/26(月) 11:42:52 ID:DV6m2T79
質問です。 1024を2進数で、とやると、 1024 = 0b10000000000 になります。「b」があったら2進数じゃないんじゃないですか?
それに続く数値が二進表記であるということを示す接頭辞
305 :
Name_Not_Found :2005/12/26(月) 16:46:04 ID:kSlPuIBt
伺いたいのですが JAVASCRIPTで あるOnLoadの時に同じページ内のリンクを押した事にしたいのです。 ボタンはDocument.フォーム.ボタン.Click() で実現できそうなのですが リンクを押した事にするような動作を実現するにはどうすればいいでしょうか? よろしくお願いします。
location.href
307 :
Name_Not_Found :2005/12/26(月) 17:29:44 ID:kSlPuIBt
>>306 ありがとうございます。
記述漏れがあったので追加するんですが
リンクはフレームで上下に分かれた上側に存在します。
そのリンクにはスタイルシートが適用してあり
Activeな時の色がredにしていされています。
(横に複数のリンクが並んでいる)
で、単純に呼び出せば表示は出来るのですが
クリックした時のようにリンク色をActiveな色にしたいのです。
|
|
|
|
|
|
|
308 :
Name_Not_Found :2005/12/26(月) 17:34:10 ID:kSlPuIBt
書いてる途中で送信してしまった・・・ こんな感じです 下手でごめんなさい __________________________________ |Link1 Link2 Link3 Link4 | |_________________________________| | | | | | 上で選んだページ | |(選んだリンクはActiveで | | 指定された色に) | |_________________________________|
element.style.color
element.setAttribute("style", "color:PARAM;");
<SCRIPT LANGUAGE="JavaScript"> function calc(form) { var n = eval(form.nnn.value) ; var y1 = (n+1) form.result1.value = y1 ; } </SCRIPT> こんな感じのシンプルな計算機を作ったんですが 計算結果をクッキーに書き込み、過去の計算結果を表示させるにはどうすればよいのでしょうか? 調べてはみたんですが良いサイトに巡り合えずここに質問させて頂きました ご指南お願いします
document.cookie
function calc() { with (document.simple) { if ((parseFloat(o1.value) == 0) && (parseFloat(o2.value) == 0)) { result.value=0;return;} switch (func.options[func.selectedIndex].value) { case "+": result.value = parseFloat(o1.value) + parseFloat(o2.value); break; case "-": result.value = parseFloat(o1.value) - parseFloat(o2.value); break; case "/": result.value = parseFloat(o1.value) / parseFloat(o2.value); break; case "X": result.value = parseFloat(o1.value) * parseFloat(o2.value); break; } } }
------html------------------
<table bgcolor="#C0C0C0">
<tr><td align="center">
<a href="
http://www.mrcalculator.com ">
<font color="magenta" size=+1>© MrCalculator 1999</font>
</a>
<form name="simple">
<input type="text" name="o1" value="0" size=5 onChange="calc()">
<select name="func" onChange="calc()">
<option value="+" selected>+
<option value="-">-
<option value="/">/
<option value="X">X
</select>
<input type="text" name="o2" value="0" size=5 onChange="calc()">
=
<input type="text" name="result" value="0" size=5 onFocus="blur()" onChange="calc()">
</form>
</td></tr>
</table>
>>313 どうもありがとうございます
色々やってみます!
>>316 キエロ
それをホレ氏にもいってみろよ。ヴォケ
もっと建設的な書き込みをしろ。
320 :
Name_Not_Found :2005/12/27(火) 23:19:51 ID:C24OHDG/
×onCharge ○onChange
あるチェックボックスを選択すると、 違うチェックボックスを無効化するようにしたいのですが、 過去スレに無いようなので質問させてください。。 A,B,C,D,E,Fと6つチェックボックスがあるんですが、 AとBとCは同時選択できるけど、ABCのどれかにチェックが入るとD,E,Fは無効化されて、 逆にDEFは同時選択できるけど、選択するとABCが無効化される。 と、いうものなんですが・・・
チェックボックスをスクリプトから無効にするが分かる Yes.→じゃできる。終了w (自作のはできましたが効率的かどうか見て下さいなら、見てもらえるだろう) No.→手取りスレ
325 :
323 :2005/12/28(水) 01:09:50 ID:???
手取りスレなんぞあるのですかorz 関連スレになかったもので、見ていませんでした申し訳ない。 行ってみます。
ちょっと最近問題があったのでPCやネット初心者の方に警告です。
こちらの掲示板に書き込むと多数のハッカーがIPアドレスなどを調べて
悪質な嫌がらせをするので質問掲示板を探す際はお気をつけ下さい。
↓
http://bbs.j-ns.com/
>>325 アンタが思うほどいいところではないかもよ>>手取り足取り
まあ読んでみれ。このスレ的にはその質問は「過去ログ読め」
程度で終わってしまうけどちょっとだけ。
(1)checkboxのON/OFF切替えで動作起動
→<input type="checkbox" onchange="..." >
(2)checkboxのdisable ON/OFF
→ID振ってdocument.getElementById('ID名').disabled = true/false;
(3)checkboxのチェック状態参照ないし変更
→ID振ってdocument.getElementById('ID名').checked を参照またはtrue/falseいれる。
328 :
Name_Not_Found :2005/12/28(水) 10:51:04 ID:CdMXx1D3
window.showModalDialog で開いた html 内のアンカーをクリックすると、 別ウインドウで遷移してしまうのは避けられないですか? モーダルウインドウ内で遷移して欲しいのですが・・・
モーダルダイアログは普通の窓みたいにJSであれこれ操作できない と思うよ。IE専なのでよく知らないけどさ。
330 :
Name_Not_Found :2005/12/28(水) 13:36:15 ID:T2hWQLoG
フリーソフトを自サイトで公開し、それがダウンロードされた件数を サイト上に表示させたいのですが、JavaScriptで出来ますか?
>>330 何かを「記録」するのはサーバ側でないとできないよ。
自分のブラウザの上で動くプログラムで「他人が何を
してるか」分かるわけないだろ。
332 :
Name_Not_Found :2005/12/28(水) 14:50:16 ID:x4Y4Q+Li
以下を実行するとFirefoxでは動くのですが、IEではエラーになってしまいます。 onlickでstart()を呼び出す際にエラーが出るようです。 start()を適当なほかの名前、dostart()などに変更するとエラーがなくなるのですが、start()だとエラーになります。 これをonclickではなく、onloadで呼び出すとこれもエラーが出なくなります。なぜなのか気になるのですが、どなたかご存知ですか? <html> <head> <script type="text/javascript" language="JavaScript"> <!-- function start() { alert("hello"); } --> </script> </head> <body> <form> <input type="button" value="click" onClick="start()"> </form> </body> </html>
333 :
Name_Not_Found :2005/12/28(水) 15:05:29 ID:MkdngPVZ
textareaでのスクロールで、いちばん下までいったら、また 戻って来るようにするにはどうすればよいですか。
startは予約語。OLでも使う
335 :
334 :2005/12/28(水) 15:11:53 ID:???
ごめん。勘違い。忘れて!
337 :
325 :2005/12/28(水) 15:26:54 ID:???
>>327 親切にありがとう。
いい機会なので自分でどっか参照しながら作ってみます。
それでも無理っぽかったらまたソースと一緒に質問します…。
338 :
333 :2005/12/28(水) 15:59:53 ID:???
>>336 さん
ありがとうございます。
往復運動をさせたいのですが、参考にして勉強してみます。
>>333 textareaでなければいけないの?普通のレイヤーとかなら
さんざん既出なんだけどねえ。
>>332 IEでinputにstartという名前の標準メソッドかプロパティが
あるためそっちが参照されてしまうとかじゃないのかな。
IEのドキュメント調べてみたら。そういう使いたくなりそうな
名前を勝手に取るのやめて欲しいよね>>IE
341 :
332 :2005/12/28(水) 19:29:39 ID:???
>>339-340 ありがとうございます。やはり同名のものがあったのですね。
とりあえず名前を変えるかそのwindowに属することを指定するかして回避したいと思います。
> そういう使いたくなりそうな > 名前を勝手に取るのやめて欲しいよね>>IE これはひどい言いがかり。同じ文句がalertその他全てに当てはまる。
343 :
Name_Not_Found :2005/12/28(水) 20:24:37 ID:VwFvd71r
>>342 いやいや、だから各ブラウザ共通ならいいの。またwindowオブジェクト
のならまだいい。IEの場合、ブラウザ独自のが膨大にあって、しかも
inputにそういうものがついてたから邪魔だけでなく見つけにくかったんでしょ。
>>343 その32pxを変更した場合に画像の位置はまったく変化しないの? それとも
変化するんだけど計算方法が分からないってこと?後者なら窓の幅から画像の
幅を引いた値の半分を設定すればいいだけでしょ。
>>345 私は(まだ初心者でどれが予約語かわからないので)「fnction 〜」が予約語と被らないための工夫として、
日本語のローマ字打ちを「〜」に使うようにしています。
例えば、「function start」としそうなところを「function kaishi」とか・・・・。
結構オススメできそうな工夫だと思っています。
347 :
Name_Not_Found :2005/12/28(水) 22:08:51 ID:id41/09a
>>347 ソース見てわからないんじゃしょうがないんじゃない?
ひでえサイトだな、アサヒビール。 もう行かないw
>>345 またもや宗教的なIE批判か。
そもそも、どうやって間違いを指摘したのかねえ。
HTMLにイベント属性を書くと、見えないfunctionで囲まれ、
その見えない関数の実引数は、実装依存で、無くなるか、イベントオブジェクト一つになる。
また、thisで要素オブジェクトが参照できるようになり、
識別子はこのthisのプロパティ/メソッドから探索開始される。
こういう知識があったから、間違いを指摘できたわけだろう。
一体、どこにIE批判を入れなきゃならない理由があるのでしょうかねえ。
>>346 startは予約語ではないよ、いちおう言っておくと。
予約語を識別子に使うと、実行以前に、文法エラーとかコンパイルエラーとかいうメッセージが出力される。
あと、予約語一覧くらいどこにでもあるだろ。
ECMA262-3とJavaScriptとJScriptで差異があるから、それも含めて調べてはどうかと思う。
>>351-352 その2つのリファレンスを比較してみたけど、JavaScript 1.5と
ECMA-262 ed.3では予約語に違いはないようだが…ってことは
JSCriptだけ違っているってこと?
>>350 ん?宗教と呼べば宗教になるわけではないぞ。イベントハンドラ中の
名前コンテキストにはそのinput要素なりが含まれて検索されるという
共通仕様を考えるなら、input要素とかにやたらとプロパティをくっつける
IEは嫌がらせとしか「思えない」ね。現に
>>332 のようにハマる奴が
いるわけだし。一般に衝突を避ける名前を選ぼうという指針を持つ方が
いいにせよ、あの山のようなプロパティ一覧見ると「目まいがする」ね。
これ単に洩れ個人の感想。アンタはさぞかしそういうIEの罠には決して
ハマらずすいすい使えているんだろうな、うらやましいことだ。
さ、「宗教」論争らしいから言いたいことは双方述べ合ったということで、
あとは読み手が決めるんでいいだろ。これ以上やり合っても無益。
356 :
332 :2005/12/29(木) 09:48:17 ID:???
言い訳といえば言い訳なのですが、私の場合この休みを利用して javascriptの勉強がてら小さいサンプルをちょこちょこ作ってる最中で、 メソッド名を考えるのもめんどくさかったので適当にstart()とかstop()とか、 そういう名前を使っていました。 サイトに実装するのであればきちんと目的にあった名前をつけるのが ベストだとは思いますが、サンプルを作るときには結構使われたりするんじゃないかと。 クロスブラウザの問題はこれ以外にも多くあるのでお互い徐々に統一していければいいと思います。
>>356 そりゃ100%良い訳だろ。
「メソッド名を考えるのもめんどくさかったので」などというのは、ハナから素質
を疑う。そういうときでも、きちんとした教育のある者なら対処法があるのだが。
>>357 もったいぶらずにそのきちんとした教育とやらの対処法を説明して
このスレのレベルアップに貢献したらどうかね。叩かれるかも試練けど。
洩れ的には、
>>356 はテストしていて動かない原因を知りたかったの
であり、自分の勉強なんだから別に構わないと思うけどね。転ばなければ
転んだらどうなるか分からないだろ。本番で下手打たなければいいのさ。
>>357 素質とはなんぞや?
小一時間ほど問いつめたい
冬厨禁止
>>359 本職ではないのですが、仕事柄コーティングをすることが多いので、その経験上考えられる事を上げてみます。
プログラマーに必要なのは、全てを論理的に突き詰めて考えられる頭と、地道なデバックを積み重ねられる根
気だと思います。
プログラムを作ることは、まさにバグとの戦いです。
バグを見つけては、その原因を探り、対策を行う。
この繰り返しが、仕事の半分以上を占めると考えてもいいでしょう。
ですから、根気がない人はきちんとデバックが出来ませんし、論理的に考えられない人はバグの原因が突きと
められません。
私としては、知識よりも、この性格のほうが重要ではないかと思います。
知識としては、常に新しい規格の言語が出てくるんで、その都度覚えていくしかないんですよね。
昔から変わってない言語というと、Cくらいですか。
今現在、覚えておいた方がよいと思われるのは、このCとSQL、Javaではないかと思い
ます。
>>359 プログラマーの必要な素質
1 忍耐力 営業やSEのわがままを我慢できる
2 体力 少々の徹夜はだいじょうぶ
まず、この2つじゃないでしょうか
そして、何でも興味を持つことが必要だと思います
プログラミング技術や最新の情報は興味を持っていれば
今の世の中いくらでも入ってきます。
プログラムの能力は仕事のなかでいくらでも
磨けます。もし3ヶ月やっても理解できなければ
あきらめたほうがいいかもしれません。
プログラマーの素質とは 何よりもまずはプログラミングの基本を覚えることでしょう。 VBやVBAで自己流に組んでみる、というのは、変な癖がつきがちです ので、プロを目指される方にはお勧めいたしません。 昔は勉強にはアセンブラ、だったのですが、今なら、良質な書籍の 入手しやすさなどから言って、Cがいいかもしれませんね。 システム関係の仕事の中で一番しんどいのは、「他人が作ったできの 悪いプログラムの修正」です。 「このコードで金を取ろうというのか」というくらいに低レベルな 自称プログラマがあふれている今だからこそ、基本をしっかりと身に つけてください。 SEとしてやっていかれるとしても、プログラミングの基本が理解でき ていることが大前提になると考えます。 カスタマエンジニアも立派な仕事ですが、「プログラマとしてやって いける自信がないからカスタマエンジニア」という発想ではなく、 「自分の適性はカスタマエンジニアなのだ」という前向きな考え方を しましょうよ。 厳しいことを書いたようですが、今、プログラムが理解できないから といって落ち込む必要はないと思いますよ。 これから勉強すればいいだけですから。 私もシステム関係の仕事に就いてからまだ10年にもなっておらず、 今でも勉強中です。
>>362 1,2は組織の中でプログラマーとなる場合。
何でも興味を持つこと、コレ大事!
なんでわざわざ Web 制作板でそんな話をし始めるんだろう
ここまで読み飛ばした。プログラマ談義はマ板へ!!
>>365 問い掛けたヤシがいたからじゃね?
へたなレスは沈黙に劣るよい例w
368 :
312 :2005/12/29(木) 20:12:22 ID:???
お蔭様で想像していたものに大分近づきました しかしまた躓いてしまったんですが、 [a][b][c][クッキーに保存(フォームa,b,cに入力されたデータを一括保存)][クッキーから読み込み] [計算][a+1][b+2][c+3][(a+b+c)/2] こんな感じに複数のフォームから数値を読み込んで計算し、 複数のフォームにデータを表示させたいんです どの様にすれば良いのでしょうか?
>>368 こんな風と言われてもどのような動作なのかよく理解できないんだが。
表示する側のフォームはクッキーから読むだけで書くことはないの?
370 :
312 :2005/12/29(木) 20:51:06 ID:???
>>369 はいそうです
上段のフォームがデータ記入用で、下段は表示しかさせません
動作の流れは
Aパターン:上段のフォームに数値入力→計算ボタンで計算→終了
B:上段のフォームに数値入力→登録ボタンでクッキーへ保存→Cへ 若しくは終了
C:読み込みボタンからクッキーの値を上段フォームに表示→計算ボタンで計算→終了
こんな感じです
>>370 まあ細かいところはいいや。それでアンタが分からないのは
クッキーへの値の保存と取り出しなんだろ。そこだけ例題。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function save() {
var s = encodeURIComponent(document.getElementById('t0').value);
document.cookie = 'value=' + s;
}
function load() {
var a = document.cookie.match(/value=([A-Za-z0-9%]*)/);
document.getElementById('t0').value = decodeURIComponent(a[1]);
}
</script>
</head><body><div>
<input type="text" id="t0">
<button onclick="load()">Load</button><button onclick="save()">save</button>
</div></body></html>
373 :
Name_Not_Found :2005/12/29(木) 21:52:01 ID:MDpKaXCJ
374 :
312 :2005/12/29(木) 22:03:20 ID:???
>>374 (´-`).。oO(【cookie JavaScript】でググッたらいいのに・・・
376 :
312 :2005/12/29(木) 22:36:27 ID:???
>>376 ちょっとまて、「フォーム」なのか?「ページ」じゃなくて?
そして「ページ」と「フォーム」はどういう関係なのか?
日本語が不自由すぎて題意が理解できないんだが。
実は1つのページで済むのでクッキーなど不要であるという悪寒。
379 :
312 :2005/12/29(木) 23:06:54 ID:???
>>377 えぇと・・・
すみません 理想が高すぎていたようです
自分の国籍さえ疑わしく思えてきました
今回の件は諦めます 返信下さった方、有難う御座いました
ご迷惑お掛けしました
>>376 の言う「フォーム」と言うのは実は「フォーム部品」
なんじゃないかと思えて来たんだが。
>>376 そのCookie関数さあ、
インデントとかめちゃくちゃだよ。
その書き方はまねしないほうがいいと思う。
>>381 インデントなんぞいちいち入力してるおまえがショボイ。
>>380 フォーム部品という言葉は正しいとは言えない。
HTMLの仕様には、form control という言葉が使われている。
しかし、このスレでは、テンプレにあるように、ごちゃごちゃ書かずにソース書け、だ。
特に、フォームコントロールは属性が重要だから、HTMLを書かなきゃ話が進展し難い。
384 :
383 :2005/12/30(金) 00:01:40 ID:???
と、ほとんど定型文を書き込んだが、ちゃんとHTMLは提示されていた。 質問した人、ごめんなさい。
html 見ても何がしたいのかわからんという不思議 果たしてクッキーを使う必要があるのかも
386 :
381 :2005/12/30(金) 00:32:17 ID:???
「フォーム部品」は確かにHTMLの正式用語ではないが 他のものと混同する恐れもないしいいんじゃないの。 「コントロール」は多くの人にとってなじみのない用語。 それとも以後コントロールと呼んで分からないヤシは 叩きまくることにでもするの? インデントがめちゃくちゃなのではなく「ない」んでしょ。 元ソースをそのまま貼ると2ちゃんでは空白が取れるから。 しかしそれを全角空白、nbsp、「_」などで表してしまうと コピペで動かすとき取らなくちゃならなくなるから。エディタ に復元さすのがいいと思うね。
冬厨退散まであと何日?
>>388 おまいなんでそんなに冬厨が気になるんだ?
スルーすればいいだけだろ
おまいのレスが冬厨っぽく感じるのは俺だけか・・・?
JavaScriptを走らせていて、エラーが生じたら原因のソースの問題の箇所に飛んでエラー箇所を教えてくれる デバッガーみたいなものってありませんか?
>>390 あるよ。つかちょっと調べればMSでもGeckoでもすぐ見つかる
だろ。アンタみたいな検索もしない教えて野郎にはこれでも
大サービスだ、2度と来るな。
>>391 > MSでもGeckoでも
二種類有ると言うことは、それぞれの環境でデバッグしないと予期せぬエラーが出るから、
ということですか?
393 :
330 :2005/12/30(金) 12:28:07 ID:lkt1XAu5
>>331 配布元サイトは自宅サーバーに設置しているのですが
これなら可能ですか?
>>392 ハア? 洩れはUNIX使いだからMSのデバッガなんか普段は使わない。
テメエがWindowsのことしか頭にないのはよく分かったからとっとと帰れ。
>>393 その自宅サーバの上で動くプログラムにしかダウンロード件数は
分からないよ。アクセス解析とか入れてればダウンロード件数は
分かるだろから、単にそれをHTMLで表示させれば?とにかくスレ違い
の板違いだからWebProg板へ逝け。ブラウザ上のJSでは*絶対に無理*
> ハア? 洩れはUNIX使いだから 釣り?
別に使いたいデバッガ使えばいいだけだろ。IEなど普段 開けもしない読み手が一定数いることはWeb制作板的には 基本だと思うが。ちなみに洩れはiMac使ってるがブラウザは Mozだなあ。
>>330 そういうのはCGIでやれってこった。PerlでもPHPでも
オマイの環境でいいのを探せ。
つ
http://pc8.2ch.net/php/ それで自鯖ありますとは明らかに釣りなのだが。
>>389 こういう「JavaScriptでどこでもドアが出来ますか」的な質問に
生め尽くされる状況は荒し同然で痛いが
書いてる香具師は分かってないから
>>330 みたいにスレ違いでも
とことん粘着するし、0からすべて諭すのは労力が要る。
スルーすれば、他のアホが構うからどうしようもない状態ということの確認。
>>398 だから分かってない奴は一度は普通に教え、粘着なら罵倒を。
罵倒されても粘着するヤシはそうはいないだろ。
オマエラ、評論活動や演説はもう聞き飽きた。 実のある質問と回答を希望。
ふつうに実のある質問が来れば苦労はしないんだよな… アホばっか来るからこういう現状があるわけで。
Ajaxを使った通信について相談です。 正月にXMLHttpRequestを使って非同期通信のチャットを作ってみようと思っているのですが、 サーバプログラムとの通信をどのような形で確立するかについて迷っています。 基本的にはプッシュかプルかしか無いと思うのですが、 ・プッシュ クライアント−サーバ間のHTTP接続を張りっぱなしにしておく(Establish) ・プル 数秒おきにクライアントからサーバに問い合わせる(ポーリング) とりあえず私に思いつくのは上の二つだけです。 実験なので、同時接続ユーザは1000人を想定しています。サーバは貧弱ADSL自宅サーバとしましょう。 Establish方式だと、サーバで情報を保存する必要がないというメリットがありますが、 HTTPの仕様としてのタイムアウトや接続を張りっぱなしにすることによるサーバの負担などが不安です。 他にもサーバ側でリクエストを即座に返さず同期を取るプログラムを書かなければいけないなど、想像しただけで萎えます。 (今回は関係ないですが、張りっぱなしだとロードバランサーが使えなくなる恐れもありますね) ポーリング方式だと、プログラムは非常に簡単に組めますが、当然ポーリング間隔が問題です。 リアルタイム性を追求すれば5秒とか10秒とかになるでしょうが、サーバの負担はひどいことになるでしょう。 それに仮に5秒間隔だとしても反応が悪すぎて、Ajaxを使っている意味がほとんど無くなります。 下手なCGIチャットと同等になってしまう予感がします。デメリットとしては大きすぎます。 リアルタイム性を追い求めれば、HTTP接続を張りっぱなしにしておくしかないのでしょうか。 どなたか似たようなことに挑戦された人や何かアイデアのある人など、助言を是非ください。 よろしくお願いします。
>>402 でJavaScriptには何をさせるん?
>>402 サーバプッシュはNetscapeだけじゃね?
それにAjaxとは言わないんじゃないの?
>>402 どういうチャットをめざしてるんだ。誰かが1文字打った瞬間に
それが全員の画面に現れるようなものを考えているんだったら、
ユーザ数1000というのはマルチキャストでも使わないとつらい。
つまりブラウザでできることを越えている。普通に1行単位で
投入するのだったら、打つのに10秒くらいは掛かるんだから、
10秒間隔ポーリングで十分チャットできるだろ。それで毎秒
100アクセスならショボくないマシンでサーバ立ててれば耐えるよ。
サーバ側ではメッセージに全部連番を振り、最新1000くらい保存。
ブラウザ側からは「何番以降をくれ」という形で要求すれば
必要なものだけ返されるし負荷があがっても欠落しない。
そのときページリロードじゃなく部分書き換えにするために
XMLHttpRequestを使うというのならきわめてまっとうだと思う。
406 :
402 :2005/12/31(土) 10:45:23 ID:???
>>403 クライアントがJavaScriptであることを考えています
>>404 プッシュというのはブラウザ特有の機能ではなく、単に概念の名前です
>>405 10秒ポーリングでチャットとして機能するのは間違いないのですが、
今回の実験ではリアルタイム性を追求したいと思っています。あくまで実験ですので。
1文字打った瞬間に表示する…というのはやり取りするデータ量が半端ではなくなるので
無理でしょうけれど、1行ごとに表示、ただしほぼリアルタイムというのが理想です。
>>406 実験ということでそうやるのなら、クライアント数1000は無理
だと思うけど接続しっぱなしをやってみれば。打った瞬間に表示
でもまとめて表示でも転送するデータ量は変わらないだろ?結局
現在表示してないものが全部来るだけ、ということなんだから。
TCPのポート数が全部で4096しかないんだから、そのうち1000も
張りっぱなしというのは無理っぽいということは警告しておくよ。
408 :
402 :2005/12/31(土) 13:09:37 ID:???
>>407 接続を張りっぱなしとは言っても、私が想定しているのは1クライアント1接続のみです。
(実際は稀に2接続になると思いますが)
具体的には、
1:クライアント(ブラウザ)でチャットHTMLページにアクセスした瞬間、Ajaxを用いてサーバに空のリクエストを送る
2:サーバはAjaxリクエストを受け取っても即座にレスポンスを返さず、保留する
(3:別のユーザがチャットで発言したら、その発言内容をサーバが受け取る)
4:サーバは先ほど2で保留していたレスポンスを、3で受け取った発言内容を含めてクライアントに返す
5:クライアントは発言内容を受け取ったらそれをHTMLで表示し、またサーバに空のリクエストを送る
6:2に戻る
というような形になります。
というわけで、HTTP通信では80番のみしか使わないので、ポート数の問題は関係ないですよ。
ちなみにTCPのポート数は65536(65535?)個です。
411 :
402 :2005/12/31(土) 15:06:31 ID:???
>>409 今そこでチャットしてきました。非常に良く出来ていて驚いた。
しかもソースもものすごく綺麗だし、いいところを紹介してくださってありがとう。
412 :
410 :2005/12/31(土) 15:24:05 ID:???
>>409 ソース見た。
せめてPrototype.jsは使ってて欲しかったorz
使わないでよくあんなに作ったな(´・ω・`)
413 :
409 :2005/12/31(土) 15:41:47 ID:???
やっぱポート2000番にチャットサーバたててるのかなあ。 そうなるとレンサバで動かすのが難かしいか・・・
>>413 ポート2000番ですね。
↑これは何するポートなんですか?
ググッても【callbook】としか分かりませんでした。・゚・(ノД`)・゚・。
415 :
402 :2005/12/31(土) 16:04:53 ID:???
ポート2000番にHTTPサーバを立てているだけですよ。 8080番とかにテスト用サーバを立てるのと同じです。 どうやらサーバはRubyで動かしている模様ですが、 PerlやPHP、JSPでも原理的に同じことが出来るんじゃないかなとは思います。
416 :
414 :2005/12/31(土) 16:23:12 ID:???
>>415 それなんですか。
必死こいて調べてみたのに・・・orz
417 :
>>416 :2005/12/31(土) 16:24:18 ID:???
>>416 訂正
>それなんですか
それだけなんですか
の間違い
>>412 もしくはご存知の方
prototype.js のbind関数について、わかりやすく教えてもらえませんか?
419 :
412 :2005/12/31(土) 16:34:18 ID:???
<a href="#1">なんたら</a> をクリックしてページ内にジャンプの際、 パッとではなく、よいしょっと縦スクロールをするサイトを以前見かけたのですが、 これはJavaスクリプトでやってるんでしょうか?(表現が下手で申し訳ない)
JavaScriptとPHPではどっちの方が難しいですか?
違うカテゴリのものを比較してもしょうがないと思うのだが
>>420 普通そうだね。過去スレに山盛りあるから教えないよ。検索しろ。
>>421 個人的には言語自体は似たようなもんだと思う。その言語で
やることについては、PHP→機能が満載あるんで、それぞれの
機能を分かって使うのが大変、JS→ドキュメントがバラバラに
分かれてるのとクロスブラウザに配慮するのと(DOMでは)データ
構造をいじくる操作が多いのとで大変、という感じでそれぞれ
難しさの方面が違って比較できない。
>>421 やるとしたらどっちかの意味を含んでるなら、
何をしたいかにもよるのでは?
JavaScriptの方がブラウザがあれば一応遊べる仕様。
>>423 ,424
PHPを普段使っていて、JavaScriptに興味があります。
イマイチ概念が掴めなくて…。本でも買って勉強します。
ありがとうございました。
426 :
Name_Not_Found :2006/01/01(日) 17:15:28 ID:ytRRsu+j
>>420 > パッとではなく、よいしょっと縦スクロールをするサイトを以前見かけたのですが
具体例のURLを求む。
Prototype.jsは使う気にもならんな。 たとえ、BE が Python 使いであっても、Java は別格だと暗にも明にも言及している。 新しい何かを出す時、本家は、必ず、Java を手本にする。 Prototype.js では、避けられない理由があるわけでもないのに、変数名に $ が使ってある。 $ は残しておかなきゃならないんだよ。 まあ、ふつうに塵だな、あれは。
$だけは勘弁して欲しかった bindAsEventListenerも値返せないしね Function.prototype.bindAsEventListener = function(object) { var __method = this; return function(event){ event = event || window.event; var target = event.target || event.srcElement var retval = __method.apply(object, [target, event]); if (typeof(retval) != 'undefined' && !retval){ if (event.returnValue){ event.returnValue = false; } else if (event.preventDefault){ event.preventDefault(); } return false; } } };
>>427-428 まあMyライブラリのない人には普通に便利だと思うけどな。
それに他のライブラリとかでもprototype.js使ってたりするからなぁ。
ただVer1.4はかなり動きが怪しい・・・。
(だから本家は1.3のままなのかもしれないけど)
prototype.jsはひどい。特にObjectに勝手にプロパティを追加するな。 ECMAScriptの設計思想として、継承に頼らないオブジェクト指向を目指しているのに、 なんでわざわざ継承のために言語機能を制限する必要があるのか。 ECMAScriptを使って継承を使わざるを得ない状況は、設計ミスとしか思えない。
PCが気が付かぬうちにjavaスクがOFFになってるのですが ONにする方法教えてくれませんか? IE6とWin2000です
JavaScriptで
ある一定の時間だけポップアップウィンドウを表示させることってできますでしょうか?
具体的には
http://siteA http://siteB http://siteC ってのがありまして、
まずサイトAのポップアップを5分表示してウィンドウを閉じて、今度はBを5分間表示、
自動でウィンドウを閉じてCになるみたいな感じです。
ウィンドウを閉じないでポップアップがBになるようなのが可能でしたらそっちのほうがありがたいです。
サンプルをつくっていただけないでしょうか
>>433 popup = window.open("A.html");
setTimeout("popup.location.href='B.html'",1000*60*5); //開いてから5分後に移動させる
setTimeout("popup.location.href='C.html'",1000*60*10); //開いてから10分後に移動させる
改造できないなら434のスレに移動しな。
436 :
433 :2006/01/02(月) 11:16:54 ID:???
さんくすです! できました!
HTMLタグが付いたストリングからタグ以外の文字を取り出す方法はこれでもいいですか? str.split(/<[^>]*>/).join("")
438 :
Name_Not_Found :2006/01/02(月) 21:01:46 ID:v0eKj+rC
JavaScript ファイル内で外部JavaScriptを参照し定義されている関数やクラスを使うことはできないのですか? htmlファイルのタグで各JavaScriptファイルを呼ぶことはいいんですけど…… 何がしたいかっていうと、関数やクラスをファイルごとに役割を持たせて管理しやすくしたいの。
439 :
438 :2006/01/02(月) 21:16:26 ID:???
JavaScriptでサーバサイドのファイルを読むことってできますか?
442 :
441 :2006/01/02(月) 23:54:12 ID:lk/MrbVZ
ageます
XMLHTTPReqest
445 :
Name_Not_Found :2006/01/03(火) 08:20:22 ID:28hP5EGP
ループで書き出した </div><div class="">の最後のDIVの空タグを削除したいのですが、 document.getElementByTagName('div')[10] これ以降どうすればいいのでしょうか? ご教授ください。
>>445 書き出した時点で html 的に問題がある
もちろん最初に<div class="">最後に</div>はつけてます。 ゆえに[10]番目を削除したいのです。
document.getElementByTagName('div')[10].outerHTML = "";とでもやってろww
オブジェクトでサポートされていないプロパティまたはメソッドです。 とエラーが出てしまいます。divも表示されてしまいます。
getElementsByTagName()
451 :
Name_Not_Found :2006/01/03(火) 12:42:43 ID:AVS9MZAQ
下記関数のif文の意味が分からないです。 否定の否定ってどう解釈すればいいのでしょうか? function writeTable(tableId,dataAry) { //引数があれば下記を実行 if(!!writeTable.arguments[0]){ removeTable(tableId) ; //テーブル削除 mkTable(tableId,dataAry) ; //テーブル生成 mkGraph(tableId) ; //グラフ生成 } } 普通に肯定↓ではだめなのでしょうか? if(writeTable.arguments[0]){
>>451 コインの裏の裏は表
Boolean型に変換するだけ
それならBoolean()の方がいい
でもJavaScriptだからif(writeTable.arguments[0])でいい
>>でもJavaScriptだからif(writeTable.arguments[0])でいい へんなツッコミでなんだが、では、JavaやPHPでは!!を使うこともあるってことかな? 見たこと無いので…
JavaScriptみたいに型にルーズじゃなければ
>>452 の意味で考えられるのでは?
>>445 >>446 の指摘のとおり書き出した時点で問題がある。その後はそのコードの無茶を通す
解答なのでお奨めできない。
>>4 は読んだかな?どうせdocument.write(...)してるんだろ?
document.write('<div>');
for(var i=0;i<10;i++)document.write('</div><div class="">');
イタイナ
innerHTMLかDOMでappendChild汁。
やり方は
>>1 の過去スレ検索してくれ。
>>445 なんかこのスレに同じ質問が既にあったような気がするが。
var e = document.getElementsByTagName('div')[10];
e.parentNode.removeChild(e);
イタイ処理そのままでe.parentNode.removeChild(e); で後始末なんだw
458 :
445 :2006/01/03(火) 18:51:09 ID:???
>>456 で解決致しました。
>>450 sが抜けていいたのですねonz。
なぜそんなにイタイのか?はよくわかりませんが、ありがとうございました。
厨だからだ
>>445 その解決したソース晒してみ。酒のつまみにイタさを拝んで見たいw
document.write('<div>');
for(var i=0;i<10;i++)document.write('</div><div class="">');
var e = document.getElementsByTagName('div')[10];
e.parentNode.removeChild(e);
な悪寒。
数字の文字列、例えば'"1539400"に3桁づつコンマをつけたいのですが、どのようにすれば いいかご教授お願いできますでしょうか? 文字列の長さは不定です。 "1539400" → "1,539,400"
462 :
445 :2006/01/03(火) 20:32:31 ID:28hP5EGP
ご要望に応えまして ご指摘をいただけると幸いです。 float: left; <script type="text/javascript"> document.write('<div align="center" class="hoge">'); str = "0123456789abcdef"; for (i = 0; i < str.length; i++) { for (ii = 0; ii < str.length; ii++) { for (iii = 0; iii < str.length; iii++) { if ((iii != 0) && (iii % str.length == str.length-1)) { if ((ii != 0) && (ii % str.length == str.length-1)) { document.write("[" + str.charAt(i) + str.charAt(ii) + str.charAt(iii) + "]" + '</div>\n<div align="center" class="hoge">'); } else { document.write("[" + str.charAt(i) + str.charAt(ii) + str.charAt(iii) + "]" + '<br>'); } } else { document.write("[" + str.charAt(i) + str.charAt(ii) + str.charAt(iii) + "]"); } } } } document.write('</div>'); document.getElementsByTagName('div')[16].outerHTML = ""; </script>
463 :
Name_Not_Found :2006/01/03(火) 22:08:41 ID:aovUrNsz
キター! document.write('<div align="center" class="hoge">'); キター! document.write("[" + str.charAt(i) + str.charAt(ii) + str.charAt(iii) + "]" + '</div>\n<div align="center" class="hoge">');
464 :
Name_Not_Found :2006/01/03(火) 22:11:06 ID:aovUrNsz
for (i = 0; i < str.length; i++) { for (ii = 0; ii < str.length; ii++) { for (iii = 0; iii < str.length; iii++) { if ((iii != 0) && (iii % str.length == str.length-1)) { if ((ii != 0) && (ii % str.length == str.length-1)) { これ見て目がシュパシュパすっるの俺だけ?w
どう厨なんですか? どうアホなのか、サービスして教えてください。
とりあえず
>>4 復唱3回のペナだな。
オマイに合わせてinnerHTML ver,で晒すか。
スバババーン
<html><head>
<script type="text/javascript">
function init(){
var ar=new Array();
for(i=0xfff;i>=0;i--){
var dmy = '000'.concat(i.toString(16));
ar.push('[' + dmy.substr(dmy.length-3,3) + ']');
}
var b = document.body;
for(i=0;i<0x10;i++){
b.innerHTML+='<div align="center" class="hoge"></div>';
for(j=0;j<0x100;j++){
b.childNodes[i].innerHTML+=ar.pop();
if(j%0x10==0x0f)b.childNodes[i].innerHTML+='<br>';
}}}
</script></head><body onLoad="init()"></body></html>
あとDOMにしたければ
>>1 の過去スレを
appendChild,className,setAttribute
なんかで検索汁。
471 :
Name_Not_Found :2006/01/04(水) 10:06:01 ID:9VI7UDuB
bookmarkletでお気に入り整理の為にタイトルタグの文字列の前に日付と時間を挿入したいのですがすればいいのでしょうか? + JavaScript の質問用スレッド vol.44 +を →[06/01/04(水)10:03:07]+ JavaScript の質問用スレッド vol.44 + としたいのです。よろしく御願い致します。
document.title
>>468 > var ar = new Array();
> for (i = 0xfff; i >= 0; i--) {
> var dmy = '000'.concat(i.toString(16));
> ar.push('[' + dmy.substr(dmy.length - 3, 3) + ']');
> }
ar[0] から ar[4095] までの 4096個中、
ar[0] から ar[3839] までの 3840個に対して、substr が余計な処理である。
具体的には、3840回の '000' との連結、引き算、substr 全てが余計な処理である。
こういう時には、小細工せずに、ループを分けろ。
var ar = Array();
var i = 0xfff;
for (; 0xff < i; i--) ar[ar.length] = '[' + i.toString(16) + ']';
for (; 0xf < i; i--) ar[ar.length] = '[0' + i.toString(16) + ']';
for (; 0 <= i; i--) ar[ar.length] = '[00' + i.toString(16) + ']';
(そもそも、substr は、実装レベルにおける後方互換として認識すべきであり、
ECMA262-3 以降に書かれたスクリプトでは、使われるべきではない。)
javascript:d=new Date();Y=d.getFullYear()-2000;M=d.getMonth()+1;D=d.getDate();w=d.getDay();HH=d.getHours();MM=d.getMinutes();SS=d.getSeconds(); j=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");function f(v){if(v<10){v="0"+v;}return(v);};Y=f(Y);M=f(M);D=f(D);HH=f(HH);MM=f(MM);SS=f(SS);document.title=Y+"/"+M+"/"+D+"("+j[w]+")"+HH+":"+MM+":"+document.title; これだとだめです。 どうすればいいのでしょうか? よろしく御願い致します。
アラートだとだいじょうぶですが、document.titleだとページに表示されてしまいます。
void
void も後ろにつけたり、挟んだりとしたのですが余計に動かなくなります。
じゃあきらめろ
なんで
あんたにゃ出来ん
任意の位置であるn番目の配列を削除したいのですが、どのようにすればいいのでしょうか?
splice
出来たら聞きません。 どなたか御願い致します。
ページ内検索でハイライトしたいのですが、
以下のソースだとHTMLタグ内のものも検索して無残なことになります。
たとえば、"href"をハイライトしちゃったりとか。
タグ外の文字列だけ置換できないでしょうか?
宜しくお願い致しますm(_ _)m
var x=prompt("強調する単語を入力してください。","");
if(x!="")document.body.innerHTML=document.body.innerHTML.split(x).join("<b style=\"background:yellow;color:black\">"+x+"</b>");
[
http://hp.vector.co.jp/authors/VA015664/minitoys.htm ]
>>486 DOM でノードの種類を取得してテキストノードだったら置換
結構大変
488 :
473 :2006/01/05(木) 09:24:13 ID:???
一応できましたが、文字化けはどうすればいいのでしょうか?
>>476 bookmarkletのコードは最後に文字列等が値になるとそれを
ページに表示してしまう。最後の値がundefinedにならないとだめ。
そのために必ず最後に「;void(0)」を付けるようにするとよい。
490 :
471 :2006/01/05(木) 09:49:38 ID:???
>>489 とてもご親切な説明有り難うございます。
しかしこの場合
>>474 につけても動きません。
document.titleの仕様上の問題と思われます。
491 :
Name_Not_Found :2006/01/05(木) 11:57:20 ID:Y8qM2ixm
a.html から b.html を開いて、b.html を常に最前面にさせたいと思っています。 そのためには b.html に <body onblur="focus();"> とすればいいのはわかったのですが、 b.html にあたるものが相当数あるので、a.html の方で仕込もうと考えました。 そこで a.html に w = window.open("b.html"); w.document.onblur = w.document.focus(); としてみたのですが、期待する動作になりません。 どうすればいいでしょうか?
492 :
491 :2006/01/05(木) 11:59:15 ID:Y8qM2ixm
すみません、 動作環境は Windows2000(SP4) + InternetExplorer 6(SP1) です。
>>490 これはどう?
javascript:(function(){d=new Date();Y=d.getFullYear()-2000;M=d.getMonth()+1;D=d.getDate();w=d.getDay();HH=d.getHours();MM=d.getMinutes();SS=d.getSeconds();
j=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");function f(v){if(v<10){v="0"+v;}return(v);};Y=f(Y);M=f(M);D=f(D);HH=f(HH);MM=f(MM);SS=f(SS);document.title=Y+"/"+M+"/"+D+"("+j[w]+")"+HH+":"+MM+":"+document.title;})();
>>487 nodeTypeぐらいヒントやれよw知りたければ
>>1 の過去スレで検索GO
495 :
471 :2006/01/05(木) 13:21:25 ID:???
>>493 深く感謝致します。
実は同様のものを自分でも書きました。しかし動きませんでした。
そこでこれを拝見し、モジラとオペラで動作確認致しました。
なんで、IEは動かないのでしょうか?w。
オミトロンや外部ファイルにして呼び出ししたりといろいろトライしてみましたが、
やはり仕様なんでしょうか。
w取り消しますので、お願いします。 javascript:document.body.innerHTML=document.body.innerHTML.split('w').join('');focus();
498 :
493 :2006/01/05(木) 14:15:41 ID:???
上記スクリプト実行後に javascript:alert(document.title); を実行すると、 IE6でもtitle要素に日付が追加されているようだけど、タイトルバーには反映されないみたいだね。
>>491 阿呆か。focus()をまず呼んでしまって、それが返す値
(undefinedかな?)をどっかに入れても意味がないだろ。
「w.onblur = function() { w.focus(); }; 」じゃないの。
しかし激しくウザいと思うのでやらない方がいいと思うが。
500 :
491 :2006/01/05(木) 20:13:47 ID:Y8qM2ixm
>>499 ありがとうございます。
確かにバカでした。
しかし教えてもらったように
w.onblur = function() { w.focus(); };
したり
w.onblur = function() { focus(); };
したり
w.document.onblur = function() { focus(); };
したけどダメでした(;;)
501 :
Name_Not_Found :2006/01/05(木) 22:20:10 ID:v2vxPt0l
すみません質問なのですが JavaScriptの途中終了ってなんて書けばいいんでしょう? vbで言うとこのENDとかExit Subです。 Subはないけど・・ こんなつまんないこと1時間も探し歩いてます。
>>501 関数だったらreturn;だけど。関数じゃないコードを途中でやめる
方法はないんじゃないかな。だからやめる必要があるならそれを
関数にして1回呼び出すようにするとか。
>>501 ループ途中で切りたい時によくやるけど
while(1){if(hoge[i]=='hoge')return;i++;}
504 :
Name_Not_Found :2006/01/06(金) 12:38:37 ID:+1hoH4si
この板(JavaScript の質問用スレッド )はアクセス解析されているのでしょうか?
ジャマイカ?ブラジルじゃなくて?
いや。アルジェリアと言いたかったのでは?
508 :
491 :2006/01/06(金) 19:42:07 ID:TrxjQp9t
だれも答えてないじゃん
510 :
Daniel Bachner :2006/01/08(日) 11:03:13 ID:iZxAx9dy
Hallo, Ich habe ein Problem, das ich nicht lösen kann (keine grosse Erfahrung in JavaScript). Ich habe einer Tabelle mit der ID = myTableID. In head-Abschnitt meiner HTML-Seite habe ich zuerst folgendes geschrieben: <script language="JavaScript" type="text/javascript"> <!-- document.onload = function foo() { ....... var table = document.getElementById("myTableID"); ...... } //--> </script> Die Variable table ist nicht null und die Funktion foo funktionierte wunderbar. Dann habe ich die Funktion foo mit einem Parameter versehen, der an getElementById übergeben wird, und in eine js-Datei ausgelagert. Der Aufruf sieht dann folgendermaßen aus: <script language="JavaScript" type="text/javascript"> <!-- document.onload = foo("myTableID"); //--> </script> Hat jemand vielleicht eine Idee, wie ich doch die Funktion fehlerfrei auslagern kann ? Ich danke im voraus.
>>510 Do you mean to use the variable "table" afterwards?
If so, you should drop "var" keyword because with
"var" the variable will be made local to that function.
どうでもいいが、まさかこんなところでドイツ語が見られるとはな。
>>510 本当にドイツ語圏の人なのかネタなのか。
返答無き場合はネタとみなす(`・ω・´)
誰か訳してよ。
独→英 I have a problem, which I cannot solve (no large experience in Javascript). I have a table with the ID = myTableID. In head section of my HTML side I wrote the first following ----(script)------- The variable table is not zero and the function foo functioned marvelously. Then I paged the function out foo provided with a parameter, which is handed over on getElementById, and into a j s-file. The call looks then as follows: -----(script)----------- Does someone have perhaps an idea, how I can page doch?die function out error free? I thank in advance
上を日に 私は私が解決することができない問題を有する、(ジヤバ・スクリプトの大きい 経験無し) 。私にのテーブルがID = myTableID ある。私のHTML の側面のヘッ ドセクションに私は最初の続を書いた <script language="JavaScript" type="text/javascript"> <!-- document.onload = function foo() { ....... var table = document.getElementById("myTableID"); ...... } //--> </script> 可変的なテーブルはゼロでないし、 機能foo はすばらしく作用した。それから私はgetElementById で引き渡される、 そしてjs ファイルにページを捲った変数を提供されたfoo からの機能の。呼出し は次の通りことをそれから見る: - <script language="JavaScript" type="text/javascript"> <!-- document.onload = foo("myTableID"); //--> </script> 多分考えが、誰かにいかに私間違いからのdoch?die 機能の自由にページを捲っ てもいいあるか。 私は前もって感謝する
中国人ですね。
518 :
前英語レスした香具師が独語習得→釣りFA? :2006/01/08(日) 14:57:38 ID:qm9PTGQH
一応 解決できない問題があります(JavaScriptはあまり経験がないんで)。 属性値が"ID = myTableID"のテーブルタグがあります。 自分のサイトのヘッダにまずこのように書きました。 <script language="JavaScript" type="text/javascript"> <!-- document.onload = function foo() { ....... var table = document.getElementById("myTableID"); ...... } //--> </script> 変数tableはnullになってないし、関数fooもちゃんと機能してる。なんだけどgetElementByIdやJSファイルを 通じて引き渡される属性をつけた関数fooをページアウトしたんだけど。呼び出しはこんな感じだ。 <script language="JavaScript" type="text/javascript"> <!-- document.onload = foo("myTableID"); //--> </script> エラー無しで関数をページアウトするにはどうするか知ってる人いませんか? とにかく聞いてくれてありがとう。
519 :
Name_Not_Found :2006/01/08(日) 15:25:44 ID:zwY+d8N+
>>510 ALLE in dieser Seite konnen nicht auf deutsches
oder Englisch richtig verstehen. Ich habe Angst, das Sie nicht antworten
erhalten konnen, die Sie auf deutsches oder englisch wunschen.
Wenn Sie nicht auf japanisch verstehen und schreiben konnen,
wurden Sie besser die Frage in anderer Seite, in dem Deutsch gesprochen wurde.
>>515-516 余計なことをする必要は全く無い。
えらそうな質問者にご奉仕する類のスレではない。
>えらそうな質問者 詳しく まあたまにくる外人さん用に、テンプレにJapanese Onlyな意味の 外国語の誘導文を入れてもいいかも。
入れなくたって日本語ばっかりなのは分かるだろ。 あとはお遊びってことでいいんじゃないの。
カタイこというなよ。10年で何件あるかのレベルだろ。 玉野珍事ということ。毛唐に備えて語学に励む必要もない。
526 :
Name_Not_Found :2006/01/08(日) 21:03:53 ID:pfBbyzKJ
まぁ解る香具師は教えてやれよ。みんなでシアワセになろうぜ。オレは英語もドイツ語もわからねーけど。
>>525 だからどうした。
日頃、ECMAの英語を読めない奴はなどといっている板で、いざ英語の
質問があると、この長姉だ。
英語は多くの常連にとって全然問題ないよ。ドイツ語はちょっとね…
英語は一応、義務教育で習うからね。
生まれてから12歳まで米国で生活してその後日本の公立中学に通ったけど 英語の時間ほど退屈なものは無かったよw
それは気の毒ですね
過去スレの香具師の英文(
>>525 )が
モロ日本人英語であることを見抜けないのが
このスレのクオリティ
ここはJS質問スレなんだからペラペラである必要はない。 JSの質問が分かって答えられれば十分だろ。
生まれてから12歳まで英語知らなくてその後日本の公立中学に通ったけど 英語の時間ほど楽なものは無かったよw
JavaScriptの良質な質問希望。 英語なんか糞食らえだ。
もうすでにほとんどのJavaScript関連の質問が出尽くしたってことですよ
要するにおまえら釣られすぎってことですよ。
543 :
Name_Not_Found :2006/01/10(火) 11:41:51 ID:+MUcqcvV
この掲示板はとてもためになり、ROMユーザーですが愛読しております。 2ちゃんねるでこのたび、DIONのISPからのアクセス・書き込みが出来 なくなる(全面的なプロキシ規制)とのことですが、本当でしょうか。 JavaScriptが見られなくなるのはとても残念です。 2ちゃんねるの中でも優良掲示板なのに。
MochiKit使ってる人いる? swapDOM($('footable'), TABLE(null, TR(null, TD(null, "test")))); が、Firefox1.5では動くのにIE6では動かないんですが 分かる人います?
545 :
Name_Not_Found :2006/01/10(火) 16:33:06 ID:zlmE5Sof
textareaに文字を追加していく(前の文字を残したまま)のはどやったらできますか?
+=
548 :
Name_Not_Found :2006/01/10(火) 20:06:32 ID:IDSGgxvB
質問です。 「09」から「10」にするとき、 num='09'; として、 numをsubstring(0,1)で判別してインクリメントさせたりしている のですが、もっとスマートなやり方ってありますか?
Number();
>>544 swapDOM($('footable'),TABLE(null,TBODY(null,TR(null,TD(null,"test")))));
>>544 swapDOM($('footable'),TABLE(null,TR(null,TD(null,"test"))));
document.body.innerHTML = document.body.innerHTML;
これでもOKだった。
なんかタグ自体はちゃんと作られてるけど、
IEの場合TABLEの場合だけおかしいみたい(´・ω・`)
>>548 ++じゃダメなの?
552 :
Name_Not_Found :2006/01/11(水) 11:05:56 ID:/YSW2oaD
head内に var str = ''; for (i = 0; i <10; i++) { str += 'var p'; str += i+' = "s'; str += i; str += '";\n'; } str; としても宣言されません。 ループで宣言するにはどうしたらいいのでしょうか? よろしく御願い致します。
>>552 var p = new Array();
for (var i = 0 ; i < 10 ; i++) {
p.push("s"+i);
}
/*こういうことね
p[0] = "s0";
p[1] = "s1";
・
・
*/
554 :
Name_Not_Found :2006/01/11(水) 12:44:58 ID:/YSW2oaD
>>553 お返事有り難うございます。
実際には
document.f1.strループ.value = k["strループ"];
と宣言したいのでArray()に入れるとうまくいきません。
こういう場合はどうしたらいいのですか?
>>554 >k["strループ"];
これの意味わからんけど、
document.f1[p[0]].value = k["strループ"];
こういう宣言もできる。
手取り足取りスレでやりたいこと書いたほうがはやく解決するかも・・・。
557 :
556 :2006/01/11(水) 13:02:11 ID:???
>>555 ごめん。俺も読んでなかった・・・orz
eval(str);?
560 :
552 :2006/01/11(水) 14:10:07 ID:/YSW2oaD
わかりにくい説明で申し訳ありません。
要するに
ttp://homepage3.nifty.com/aokura/jscript/get_arg.html これをもっと引数を大量にするために
document.f1.str0.value = unescape(ARGV["str0"]);
document.f1.str1.value = unescape(ARGV["str1"]);
document.f1.str2.value = unescape(ARGV["str2"]);
document.f1.str3.value = unescape(ARGV["str3"]);
としたいのですが
そのまま書けばOKなのですがループで書くとNGです。
なぜなのでしょうか?
for(i=0;i<100;i++) {document.f1['str'+i].value = unescape(ARGV['str'+i]);} でできました。 有り難うございました。
>>561 もちろんです。
なんですか、その言い方は。
>>563 もちろん、本当に熟読してればあんな質問などしないに
決まってるからだろ。
MS-IME2002で「ぎれ」と入力した人いますか? なんですかこれ?
ピカチュウ?
567 :
Name_Not_Found :2006/01/13(金) 12:14:33 ID:Z4Qb4OYF
初心者スレからきました。教えてくださいませ。 a.html内でクリックしたらb.htmlが別ウインドーで表示されるのですが そのb.html内のボタンをクリックするとa.htmlに指定したhtmlを表示させたいのです。 そんなjavascriptがあれば教えてください。 なければ参考になるサイトを教えていただければなんとかします! よろしくおながいします。
>>567 こんなかんじ?
window.onload = function(){
var tmp = document.getElementsByTagName("a");
for(var i=0 ; i<tmp.length ; i++){
tmp[i].onclick = function(){
var url = this.href;
if(window.opener || !window.opener.closed){
window.opener.location.href = url;
return false;
}
}
}
}
>>567 その質問内容のどれが判らないのかが判らない。
>>568 は
よけいなものがついているから見ない方がいいと思うよ。要は、
(1)新たに開いた窓の中のスクリプトから元窓はwindow.opener
で参照できること。
(2)ある窓に新たなページを表示させるには
その窓オブジェクト.location.href = 'URI文字列'
という2点を理解すればいい。あわせると
window.opener.location.href = 'URI文字列';
となるわけだ。ボタン押し時の動作つけ方は知ってるんだよな?
570 :
Name_Not_Found :2006/01/13(金) 13:07:31 ID:1g7cNvCb
質問です。 HPに掲示板を設置しているのですが、そのアクセス解析をしたいと思っています。 ISPのオマケ掲示板なのでCGIスクリプトへ直接に解析タグを埋め込むことはでき ません。 そこで、フレームにしてA、Bと分け、B側に掲示板を持って来ようとおもいます。 で、A側を解析タグを埋め込んだHTMLにしたいのですが、ロードされたときに、 自動的にB側にアクセスがあったことを感知して解析をきどうさせるようなJavaScript はどうかけばよいのでしょうか。 よろしくお願いいたします。
>>570 アクセス解析はJSでは無理ですね。そもそもフレームA
とフレームBは別鯖になるんでしょ。FAQ
>>4 を嫁ボケ。
何でも出来ると思うなカス。
どんぶりの上にカツが乗ってるだけだろクズ
574 :
570 :2006/01/13(金) 14:32:12 ID:???
いやいや。ちがいますよ、JavaScriptも知らなくてよく人の質問にワンフレ回答しますね。
>>571 だれがどこでJavaScriptでアクセス解析ができるなどと言いました?
解析サイトのCGIにリンクさせている解析タグですよ。
>>572 自分で何を言っているかもわからないんですね。ただ
>>571 につられてションベン
してるだけでは?
>>573 意味不明ですが、こんな感覚でプログラミングしてるなら、どうせロクなコードは
書けないでしょ。
ってことで、ちゃんとした読解力のあるまともな回答お願いします。
575 :
570 :2006/01/13(金) 14:34:54 ID:???
ああそうそう、書き忘れた。
フレームで別鯖って、どーゆーこと?
あんたにゃ、JavaScriptは無理でしょ。
>>571
サブドメインも駄目なんだっけ? 教えてエロいひと。
サブドメインから短くする場合はdocument.domainに短くする 値を入れてやればいいと書いてあった気がするけど、試した ことがない。あまり使われてない機能だしブラウザによっては 駄目という可能性もあると思うが…
580 :
570 :2006/01/13(金) 17:48:11 ID:???
>>577 別鯖の解説。あはは。
あんた、リンクとフレームのHTMLのちがいって分かる?
もうほっとけ
582 :
Name_Not_Found :2006/01/13(金) 18:20:03 ID:hpRlMs3a
質問させてください。 あるディレクトリにファイルがいくつあるかをJSを使って知ることはできますか。
JSだけでは無理ぽ。
>>582 そのディレクトリはどこにあるの。小泉首相のパソコンとか
言わないよな(w
586 :
582 :2006/01/13(金) 18:35:34 ID:???
おしいです。 孝太郎の方です。 よろしくお願いします。
自分のPC内なら可能でしょう。 ただしJScriptなら ですが。
>>587 WSHならWSHスレへ逝った方が。一般のWebでは無理。
適当なActiveXを使えばできるのかも試練けど危ないから普通
そんなのを入れさせるのは無理だろ。
591 :
Name_Not_Found :2006/01/13(金) 19:09:41 ID:hpRlMs3a
582です。
ありがとうございます。
自分のPCで使いたいのですが、JavaScriptでは無理でしょうか。
※
>>586 は私(
>>590 予定)ではありません。
>>591 WSHとJavaScriptの根本的なところを理解していない
>>591 たとえば *.bat ファイルのような形で手もとのマシンで動作させ、
言語はJavaScript、というのが WSH。これはファイルが扱える。
それは上にあるようにWSHスレへ。
Webサーバに入れるHTMLに埋め込んで多くの人むけの動作を書く
のが普通のJavaScriptの使い方で、そっちではファイルは扱えない。
594 :
Name_Not_Found :2006/01/13(金) 20:21:56 ID:hpRlMs3a
>>592 >582です。
はい。JavaScriptをはじめて10日目です。いちおうプロパティとメソッドの
使い方をマスターし、DOMを大体体系的に頭に入れました。
WSHってなんですか?なんの略でしょうか?
595 :
Name_Not_Found :2006/01/13(金) 20:24:19 ID:hpRlMs3a
>>593 さん
>592==594です。
ああん、そうなんですか。よく分かりました。
入れ違いでした。ありがとうございます。
Windows Scripting Host
ずっと Windows SHell だと思ってた… ハズカシス
598 :
Name_Not_Found :2006/01/13(金) 23:28:00 ID:pGJHQ1gK
javascriptでチェックボックスを全て選択する関数を作っています。 チェックボックスが2個以上のときはうまく関数が適用できますが、 1個の場合関数が機能しません。上手く関数をつかって一個でもチェックできる 方法をお知りの方いらっしゃいませんか? function checkAll(){ document.form.k.checked=true; }
599 :
つばさ :2006/01/14(土) 00:51:51 ID:xcSxQmgi
僕がこのことをここに書き込むのは場違いかもしれませんが、 よければ教えてください。 チャートなどをみるときや、色々なところにログインするとき、 (ここではハンゲームにログインすると仮定して書きます。) 下に、javascript:void(〜〜〜 と表示され、ログインすることができません。 今なにが問題なのか、どういう解決策があるのか。 なにもわかりませんが、手助けお願いしますm(_ _"m)ペコリ
>>598 checked が "undefined" か "boolean" かで分岐する。
あるいは、HTMLDocument#getElementsByName を実装しているぶらうざだけなら、
document.getElementsByName("k") を回す。
自分の物差しを振り回すなガキが
>>598 で「2個以上の時すべてチェックする」動作に
なるの?よくわかんないな。
605 :
Name_Not_Found :2006/01/14(土) 09:54:15 ID:wobGHUxv
>>600 ありがとうございます。
boleanかundefinedで分岐する方法をやろうとしましたが、
undefinedである場合のチェックが、
document.form.k.checked=true;
でうまくいきません。undefinedの時のk要素が何番目になっているのか分かりません。
できれば教えていただけないでしょうか??
606 :
Name_Not_Found :2006/01/14(土) 09:57:49 ID:wobGHUxv
>>604 598ではfor文が抜けています。
すみません。何か良い対処方をお知りでしたら教えて下さい。
お願いします。
フォームにcheckedってプロパティあるの?
608 :
Name_Not_Found :2006/01/14(土) 10:21:38 ID:wobGHUxv
>>607 質問の意味が把握できてないかもしれませんが、
フォームにcheckedプロパティはあるのではないでしょうか?
実際にプログラムしたものは
<form name="form">
<input type="checkbox" name="k">
</form>
<script>
function checkAll(){
//for文
document.form.k.checked="true";
}
</script>
です。jspなどで動的にふたつ以上チェックボックスが生成された時は
うまくいくのですが、1つのときができず困っています。
すまんdocument.formsと勘違い a: <form name="form"> <input type="checkbox" name="k"> </form> b: <form name="form"> <input type="checkbox" name="k"> <input type="checkbox" name="k"> : : <input type="checkbox" name="k"> </form> function checkAll(){ if(typeof document.form.k.length == "undefined"){ document.form.k.checked=true; else for(i=0;i<document.form.k.length;i++) document.form.k[i].checked=true; } これでa、bどちらでも動くはず・・・
すまん・・・間違った 正しいのはこちらです function checkAll(){ if(typeof document.form.k.length == "undefined") document.form.k.checked=true; else for(i=0;i<document.form.k.length;i++) document.form.k[i].checked=true; }
611 :
Name_Not_Found :2006/01/14(土) 12:02:50 ID:wobGHUxv
また冬厨が涌いてるね。そのまま居座っちゃたかね?
なのでもう一度誘導しとく。以下のアンカ先を欲嫁。
>>236 あとこういう厨にどんな回答しても理解できないのは既出。
更なる無意味な質問責めと回答を得られ図に乗って粘着するのがオチ。
こういう厨に回答する香具師も荒し同然デスよ。
誘導も
>>3-4 だとわからない可能性もあるので。
>>236 がお奨め。
(゚Д゚)ハァ?
香具師=野師 だろ。だからなんなんだというんだ。
617 :
Name_Not_Found :2006/01/14(土) 23:14:29 ID:4U6cRbZX
ウィンドウの内側の幅や高さを求め方について質問させて頂きます。 過去ログや参考サイト等で調べたところ、IE以外はinnerWidth(又はHeight)で求められる様ですが、IEはclientWidth(又はHeight)とoffsetWidth(又はHeight)の二種類がありました。 使用目的は、CSSのfloatを使用して回り込ませたボックスの幅を、ウィンドウの内側の幅によって変えたいというものです。 clientとoffsetのどちらを使うべきでしょうか? ご教授お願い致します。
offset : 要素の padding + width/height client : 要素の width/height になるはず……なんだけど、MacIE 5 は標準準拠モードのレンダリングでも両方同じ値。
619 :
Name_Not_Found :2006/01/15(日) 00:11:06 ID:2XvMpUGX
すいません。 整数の定義についてよくわかりません。 整数が、「4バイトの -2~31 〜 2~31 -1 」で定義されているというのは、 どういうことなのでしょうか?
620 :
619 :2006/01/15(日) 00:13:15 ID:2XvMpUGX
訂正です。 ×「4バイトの -2~31 〜 2~31 -1 」 ○「4バイトの -2^31 〜 2^31 -1 」 ついSHIFTキー押してしまいました。ごめんなさい。
ちょっと質問なんだけど、 JavaScriptって、配列の要素を取り出す構文ある?
全く無いよ。配列に入れたら入れっぱなし。 開発者が「よし、配列に入れたぞ」で満足したら終わり。
624 :
617 :2006/01/15(日) 01:11:58 ID:qsR56bte
>>618 解りやすい説明ありがとうございます。
もう一つ質問があるのですが、ウィンドウサイズ変更時にリロードするにはどうすれば良いでしょうか?
function rld{location.reload();}
window.onresize = rld();
としてもリロードされないです…。
>>622 うそつくなよ。
pop
slice
splice
626 :
624 :2006/01/15(日) 01:19:07 ID:qsR56bte
すいません、自己解決しました。
627 :
626 :2006/01/15(日) 02:31:55 ID:qsR56bte
と思ったら解決できてませんでした…。・゚・(ノд`) <body onresize"location.reload();"> ↑でIEやNN、Operaでは動作したのですが、Firefoxでリロードされませんでした。
628 :
628 :2006/01/15(日) 03:03:31 ID:qsR56bte
記述に誤りがありました。 正しくは <body onresize="location.reload();"> です。
629 :
628 :2006/01/15(日) 03:10:24 ID:???
やっぱり自己解決しました。すみません。
630 :
628 :2006/01/15(日) 03:45:52 ID:qsR56bte
…(;'Д`)シテマセンヨ(汗)
>>624 function m() {return 1}
var a = m;
var b = m();
typeof a;// "function"
typeof b;// "number"
a == m;// true
b == m;// false
b == 1;// true
632 :
624 :2006/01/15(日) 06:36:48 ID:qsR56bte
>>631 すみません…手元にある参考書だけでは理解できないです…。
図々しいとは思いますが、解説して頂ければ幸いです。
ソイツの説明はへたくそだから聞かない方がいい。 「window.onresize = rld();」だと、関数rld()をまず呼んで しまって、その返す値(この場合undefinedだろうね)を window.onresizeに格納している。やるべきことは関数 そのものを格納することだから「window.onresize = rld;」
>>633 > この場合undefinedだろうね
おいおい、
>>624 には、function rld{location.reload();} と書いてあるが、
この文法違反が 「undefined だろうね、」なの?
俺(おまえのいう説明がへたくそなソイツ)の方がよほどましだろう。
>>633 仮に、正しく関数 rld が宣言されていたとして、リロードを繰り返さないのはおかしいなあ、と思うわな。
それを思わないお前って、ものすごい馬鹿でしょ?
>>624 なんか気持ち悪いやり方だけど置いとく。
window.onresize = function(){
location.href = location.href;
}
てゆーか、サイズ変更で再読込みてうっとうしくない?
>>636 location.reload() を書き換える理由が分からない。
>>625 JavaScriptでは配列要素は抜き出せないというのが定説。
そんなんで出来るんなら、成功例を希望。
初心者も利用している板でいい加減な回答は迷惑。
開発環境にはプログラマの脳力も含まれると思われww
638は何が疑問なの?
641 :
Name_Not_Found :2006/01/15(日) 12:30:40 ID:FZ1z626u
preタグ内で改行(例えばwidth:800px;で)をさせたいのですがどうすれば よいでしょうか。CSSの問題なのは分かりますがそのあとで、JSを組み込み たいのでお分かりのかたよろしくお願いいたします。
preなんだから、改行したいとこで改行する。 ってか要は幅指定してんのに領域越えて表示される(or要素幅が拡大する)って話?
643 :
636 :2006/01/15(日) 12:52:15 ID:???
>>637 <html>
<head>
<script type="text/javascript">
window.onresize = function(){
location.reload();
}
</script>
</head>
<body>
<p>これFIreFoxで動く?。俺のとこの1.5はだめだった。</p>
</body>
</html>
644 :
624 :2006/01/15(日) 13:25:52 ID:???
皆様沢山のご回答ありがとうございます。 ここに書き込みしてからもしばらく自分なりに調べてみたのですが… onresize自体、正式に定義されていないという様な内容のサイトもありましたので、 Firefoxがonresizeに対応していないのでしょうか…?
>>641 pre タグの幅を指定して、後はブラウザ依存だけど、
pre {
white-space: -moz-pre-wrap ;
white-space: -pre-wrap ;
white-space: -o-pre-wrap ;
white-space: pre-wrap ;
}
みたいなことするとできたりしない? pre-wrap 知らない人多いよね。
#JavaScript じゃないYO
646 :
645 :2006/01/15(日) 13:39:59 ID:???
word-wrap: break-word; も追加(IE用)
648 :
624 :2006/01/15(日) 13:57:20 ID:???
>>647 お前みたいな空気の読めない奴はイラネ
帰れ
649 :
641 :2006/01/15(日) 14:08:42 ID:???
>>645 さん
ありがとうございました。IEでもできました。゚0゚)/
CSSなので叱られると思いながらでしたが、ご親切に多謝です。
>>650 できるYO
-moz- は mozilla 用 - と -o- は Opera 用 pre-wrap は CSS3.0 対応もの(将来?)用
652 :
Name_Not_Found :2006/01/15(日) 16:30:13 ID:qsR56bte
HTML文書のclassやidを指定した要素のみに、JavaScriptでCSSをつける事はできますか? 例えば、<div id="HOGE">で、CSSで初めから #HOGE{Width:100px}として、JavaScriptでページ読み込み時に Width:150pxとする感じです。 (この例ではあまり意味がありませんが…)
document.getElementsByTagName("STYLE")[0].innerHTML
654 :
Name_Not_Found :2006/01/15(日) 20:03:48 ID:qsR56bte
Operaだと documen.getElementById("hoge").style.color="blue" とかも使えないんですね…。
addRule過去スレ読んでから濃いやボケ
>>652 過去スレに満載あるよ。
>>654 使えるはずだけど。何か別のことが間違ってるんじゃないの。
657 :
652 :2006/01/15(日) 20:54:47 ID:qsR56bte
一応過去スレと検索してわからなかったので書き込んだんですけど、document.styleSheetの方はどこかのサイトにOperaは対応していないと書いていた気がします。
getElementも試したのですが、
>>654 の通りですが、使えるという事だけでも教えて頂けて助かりました。
もう一度漁ってきます。
あらら、怒られちゃったね。 「JavaScript の質問用スレッド vol.31」の過去スレね。 恐いヒトいるから、ちゃんと予習しようね。
>>656 過去スレに満載は、ねーだろ。おもしれーこと言うなあ、おい。
タクシーん中でやけに静かだと思ってたら、これ考えとったんかい?
660 :
Name_Not_Found :2006/01/15(日) 22:23:07 ID:1QZXlzO9
javascriptで、簡単な占いもどきのページを作ってみたいと思っています。
内容は、入力フォームに好きな1桁の数字を入力して、ボタンをクリックしたらあらかじめ作成した占いの結果が描かれたgifファイルを表示するというものです。
gifファイルは下記URLに置くものとします。
http://www.abc.com/defg/ ○.gif ( ○の部分に0〜9の数字を入力する)
いろんなサイトを参照して、下記のようなプログラムを作って見たのですが、初心者なもので予想通り、うまく動いてくれません。
下記プログラムだと 「nyuryoku_number が宣言されていません」とエラーになります。
5行目の var nyuryoku_number = document.iform.nyuryoku_number.value; のところで変数の宣言をしているつもりなんですが・・・。よろしければ、ご教授お願い致します。
<script type="text/javascript">
<!--
function uranai() {
var nyuryoku_number = document.iform.nyuryoku_number.value;
}
var uranai_url1 = "<IMG src=
http://www.abc.com/defg/ "
var uranai_url2 = nyuryoku_number
var uranai_url3 = ".gif>"
var uranai_url = uranai_url1+uranai_url2+uranai_url3
//-->
</script>
<FORM name="iform" action="javascript:document.write(uranai_url)">
<INPUT size="2" type="text" name="nyuryoku_number">
<INPUT type="submit" value="占い" >
<INPUT type="reset" value="消">
</FORM>
>>660 変数宣言に関数の中でvarをつけるとローカル変数になるから
その中で代入しても外に出ると消えてなくなる。varを取る。
662 :
Name_Not_Found :2006/01/15(日) 23:26:01 ID:/iN1qC5Q
質問です。 boolean判定で A = A | B ; という式がありますが、これの意味を教えてください。
664 :
662 :2006/01/15(日) 23:29:06 ID:/iN1qC5Q
自己解決しました。 考え過ぎてました。すいません。
>>662 AもBも論理値つまり真か偽ということでいいのね。
真を1、偽を0に変換して、ビット毎のandを取る。つまり
AまたはBのどっちかが真なら実行後にAは1になる。
これをループの中などで繰り返し実行すると、「1回でも
Bに真が現れたら終わった後Aは1」ということになるな。
Aの初期値が0とか偽とかだったとしてね。
今年2006年の1月1日の日本時間午前 9時00分00秒にうるう秒が入ったらしいね。 知ってた?知らなかった。 JSで確認するといいよ。
うるう秒は結構あるよね。
670 :
660 :2006/01/16(月) 08:56:11 ID:o7B5O+K5
>>661 レスありがとうございます。
>関数の中でvarをつけるとローカル変数になる
…そうなんですか。色々知らないことがあります。
早速、varをとってみました。
nyuryoku_number が宣言されていません・・のエラーになるので、
関数の外に、var nyuryoku_number;を持ってきて関数の中のvarを省きました。
<script type="text/javascript">
<!--
var nyuryoku_number;
function uranai() {
nyuryoku_number = document.iform.nyuryoku_number.value;
}
var uranai_url1 = "<IMG src=
http://www.abc.com/defg/ "
var uranai_url2 = nyuryoku_number
var uranai_url3 = ".gif>"
var uranai_url = uranai_url1+uranai_url2+uranai_url3
//-->
</script>
<FORM name="iform" action="javascript:document.write(uranai_url)">
<INPUT size="2" type="text" name="nyuryoku_number">
<INPUT type="submit" value="占い" >
<INPUT type="reset" value="消">
</FORM>
これで何とか、宣言していない・・のエラーは出なくなりましたが、
今度は var uranai_url2 = nyuryoku_number 部分の出力?がundefinedのエラーとなってしまいます。
また、行き詰ってしまいました。(泣)
671 :
Name_Not_Found :2006/01/16(月) 09:37:19 ID:n03LXCFj
ごくごく基本的なことで恥ずかしいんですが、lastmodifiedってありますよね。 以前はこれ、ローカル時間にならずにバカにされてましたが、いまはちゃんと ローカル時間(JST)になるんですね。仕様がかわったんですか?
>>672 なにを言ってんだか。
>>671 bugzilla.mozilla.orgだったか忘れたが、最近1年以内に話があったはず。
変更理由も忘れた。
Firefox1.5では、JSTどころか、ローカルマシンの時刻表示書式に
合わせているんじゃないの?
> バカにされてましたが、
されてたか?
むしろ、以前の、HTTP Date な書式 (RFC1123) の方が
利用しやすいような気がする。
あるいは、W3CDTF に変更してくれた方が便利だったようにも思う。
>670
<script type="text/javascript">
function uranai(){
nyu_num=document.iform.nyuryoku_number.value;
document.write("<img src='
http://www.abc.com/defg/ "+nyu_num+".gif'>");
}
</script>
<FORM name="iform" action="#" onSubmit="uranai()">
<INPUT size="2" type="text" name="nyuryoku_number">
<INPUT type="submit" value="占い" >
<INPUT type="reset" value="消">
</FORM>
675 :
a :2006/01/16(月) 11:46:45 ID:K2eamZL9
JavaScript についての良い解説書はなかなかありませんね。 以下を参照するとためになるかと思います。 (サイトからの原文引用) Bad Books Nearly all of the books about JavaScript are quite awful. They contain errors, poor examples, and promote bad practices. Important features of the language are often explained poorly, or left out entirely. I have reviewed dozens of JavaScript books, and I can only recommend two: JavaScript: The Definitive Guide (4th Edition) by David Flanagan and Dynamic HTML (2nd Edition) by Danny Goodman. Both are from O'Reilly. ― Douglas Crockford(www.crockford.com) ―
678 :
Name_Not_Found :2006/01/16(月) 15:32:42 ID:af9m4wET
質問です。 function hoge(){alert(this);} var myObj = new Array('○','×'); myObj.hoge = hoge; myObj.hoge()[1]; で、myObj.hoge()[1];はどうして「×」にならないん でしょうか?
680 :
678 :2006/01/16(月) 17:15:48 ID:???
>>679 オレが無知かどうか判断してくれなんて頼んでないだろが。
このヴォケ
答えられんのなら、だまっとれ。
681 :
678 :2006/01/16(月) 17:33:01 ID:7FvnoMrI
>680はぼくではありません。 おっしゃっていることは、その通りだと思いますがw
>>678 逆に何でそれで期待通りの結果になると思ったの?
myObj.hoge()は配列返したりしないんだから[1]つけても何にもならないよ
これでいいじゃん
var myObj = new Array('○','×');
alert(myObj[1]);
それか
function hoge(i){alert(this[i]);}
var myObj = new Array('○','×');
myObj.hoge = hoge;
myObj.hoge(1);
683 :
660 :2006/01/16(月) 19:44:48 ID:j/Gvz6F4
>>674 ありがとうございます。
そんなにシンプルに書けるんですねぇ。
<FORM name="iform" action="#" onSubmit="uranai()"> の
action="#"のところが、まだどういう意味なのか分からないので
これから、勉強してみます。
ほんとに、ありがとうございました。
actionってのはCGIにプログラムを渡す時に使う。 この場合CGIなんて使ってないから#で無効にしてる。 action="#" CGIを使わない場合、この記述自体無くても別に構わない。
685 :
660 :2006/01/16(月) 20:31:47 ID:j/Gvz6F4
>>684 >この記述自体無くても別に構わない。
そうなんですか。よく分かりました。ありがとうございます。(笑)
javascript 初心者です。
親ウインドウからポップアップ画面を開き
その中のリンクで親ウインドウを遷移させたいのですが、
その時に親ウインドウを閉じてた状態にした場合、
下記ソースで実行すると親ウインドウがクリックした数だけ開
いてしまいます。
1画面だけに表示させるにはどのようにすればよろしいのでし
ょうか?
function openerJump(n) {
if ( window.opener.closed == false ) {
window.opener.location.href = n;
} else {
win = window.open(n,'oya','');
}
}
参考にしたサイトは下記です
ttp://www.interq.or.jp/japan/satoshi0/sample/remoteWin/
687 :
678 :2006/01/16(月) 20:49:29 ID:8OaZKzq3
>>682 さん
解説ありがとうございました。
2番目の式、なるほどです。どうしたらそんなふうに
すぐできるようになるんでしょうか。
ぼくが考えたのは、myObjは配列を変数に代入しているので、
オブジェクトの中でインデクッスを指定すれば、配列のその
値がmyObj.hoge()[1];で取れるとおもいました。解説の2
は確かに理論的で丁寧な記述だと思いますが、そうしなく
ても取得できるのではと・・・。
勉強になりました。ありがとうございます。
>そうしなくても取得できるのではと・・・。 で?他にはどんな方法があるわけ? まさか直接 myObj[i]とか言わないでくれよ? その2の方法も十分合理的。
689 :
Name_Not_Found :2006/01/16(月) 21:36:45 ID:RzmCyp+j
function hoge(){return this;} var myObj = new Array('○','×'); myObj.hoge = hoge; alert(myObj.hoge()[1]);
678が答えないと意味ないでしょうが・・・
6+9=15とかは普通じゃん? 5+10=15とか4+11=15とかそのまんまじゃん? 7+8=15って少なくね?おかしくね? 7って結構でかくね?8なんて更にでかいじゃん。 7でさえでかいのに8って更にでかいじゃん? 確かに15って凄いけどこの二人が力を合わせた ら16ぐらい行きそうな気がしね? 二人とも強豪なんだからもっといってもよさそ うじゃね?なんかおかしくね?
>>686 closedの場合常にopenするんじゃなく、まず変数winに既に何か
入っているか調べ、入っているならopenする代わりに
「win.location.href = n;」とすればいいんじゃないのかな。
JSとはほとんど何の関係もない、プログラミングロジックの
問題だと思うんだが。
JavaScriptをやり始めたんだけど、ちょっと質問。 この言語の場合、ザックリ言って、ハッシュ=連想配列ってことなの?
スレ違いだけど探しても見つからなかったので質問します。 複数のチェックボックに一気にチェックを入れたいんですが。 なにかいいjavascriptが公開されていないでしょうか。 スレ誘導等ありましたらお願いします。
695 :
694 :2006/01/17(火) 16:00:23 ID:???
>>693 言語仕様にハッシュという言葉はない。ハッシュとは?
同様に、言語仕様に連想配列という言葉はない。
しかし、これは、サイ本などの二次情報源において、
bracket notation を意味する言葉として、よく使われているから、
説明抜きだからといって正しく伝わらないなんてことは、まず無いだろう。
まあ、自称やり始め君にごちゃごちゃ言ってもアレなんで、まとめる。
その通り、ハッシュは言語仕様にも何処にも無い。それらしきものも無い。
あるのは連想配列だけ。
697 :
Name_Not_Found :2006/01/17(火) 22:40:36 ID:ZjpwrPUA
>>697 WindowsならCTRL+C CTRL+Vでコピーペーストできます
>>691 再登場?8bitのナンバーのインクリメント質問した人物じゃないのか。
要は、01,02,03,.....,48,49,50で10未満をどう処理するかだな。
正規表現と条件分岐の2つのやり方がある。
700 :
へっぽこ :2006/01/17(火) 22:57:03 ID:1tgS01Kd
すんません ライブドアブログみたいなテキストボックスの選択文字列に 「b」ボタンを押せば<b>選択文字列</b>みたいに挿入してくれる ライブラリありませんか? ライブのHTMLみたら tag って関数使ってるんだけど こんな便利な関数欲しいです。
( (101+i)+"").substr(1,2);
702 :
ホントにお願いします! :2006/01/17(火) 22:58:52 ID:BWte408a
703 :
697 :2006/01/17(火) 22:59:25 ID:???
>>699 私のことでしょうか?
01、02などは元画像のリネームで1、2、に変更できます。
その場合はどう書けばいいでしょうか。
704 :
ホントにお願いします! :2006/01/17(火) 22:59:26 ID:BWte408a
706 :
697 :2006/01/17(火) 23:45:18 ID:???
>>705 むちゃなんですけど、こんな感じで
var imgs = new Array()
for (i=0; i<=50; i++){
imgs[i] = '
http://hoge.com/ ' + i+1 + '.jpg'
}
For文で書く方法はないでしょうか。
(i + 1) なんかの顔文字にみえた
709 :
697 :2006/01/17(火) 23:51:50 ID:???
>>707 あーーども
var imgs = new Array()
for (i=0; i<=50; i++){
imgs[i] = '
http://hoge.com/ ' +( i+1) + '.jpg'
}
でもダメみたいです。書き方あってますでしょうか。
1が01になってねーってことだろ つーかテトリ行きかなw
711 :
697 :2006/01/18(水) 00:03:21 ID:???
>>710 それだった・・・_| ̄|○自分で言っておきながら情けね
かいケツしました。ありがとうございますた。
getFullYearを間違えて geyFullYearと書いてしまった ○| ̄|_
間違えて str.toTowerCase(); と書いてしまった。 タテにビヨ〜ンと拡大してしまった(トホホ
714 :
すみません :2006/01/18(水) 15:01:07 ID:???
もしも、このスレッドと関係ない質問になっていたらすみません 質問です・・あるサイトの動画ファイルのURLですけど、 HTMLのソースでは、 (省略) /?key=GH1IcI7V3G1S4_K1XWBjMb:Zxl6&ext=wmv&act=view となっているのに、 実際のファイルのURLは、 ↓ (省略) /gdb/GH/1I/cI/7V/3G/1S/4_/K1/XW/Bj/Mb/Zxl6.wmv このように変換されて、ダウンロードが可能になるようです。 このような、まるで暗号のようなURLの復元は、 JavaScript? cgi? どのような処理がなされてるんでしょうか? スクリプトなどで、URLを本来のモノに変換する手はあるでしょうか? このようなURLを、本来のURLに変換する方法を知りたいんですが・・ 誰かヒントでもよろしいですから、教えてください
>>714 暗号化されてる文字列だったとしても
おまいが複合化することはできん。そんな簡単にもどせたら暗号化の意味がない。
ていうか、これは暗号化とか関係なくて、ただ識別してるための文字列だと思う・・・
正規の方法以外のダウンロードを禁止するためにそういうことをしてるんだろうな。
つまり、その文字列が変換されてるんじゃなくて
99% CGIとかサーバにリクエストしてるはずだから、(JavaScriptで処理してたら、意味ないし。。。)
「(省略) /gdb/GH/1I/cI/7V/3G/1S/4_/K1/XW/Bj/Mb/Zxl6.wmv」
これを得たければ、いままでどおり
(省略) /?key=GH1IcI7V3G1S4_K1XWBjMb:Zxl6&ext=wmv&act=view
を送ってやってください。
ナニカフツゴウガアルノデスカ?
その手のは大抵不可逆だな。 可逆だったら最初から変換する必要ねえしな。
おまえらもう一回
>>714 の
URLをよく見てみ。
718 :
すみません :2006/01/18(水) 15:37:45 ID:???
>>715 わかりやすい解説つきの返答、感謝しますm(_ _)m
JavaScriptじゃなさそうだってことだけでも、参考になります
cgiの関係から、勉強してみます
すみませんでした
Firefox1.5にて外部テキストファイルを読み込み、 jsで加工して画面に出力するにはどうすればよいですか? (html,js,txtファイルはすべてローカル) ・#include: SSIは動作しない ・textarea: このタグでは外部ファイルを読み込むことはできない ・iframe: 改行が無視される ・データバインド: IEのみ ・document.implementation.createDocument: XML形式で*.xmlなファイル名のみ ・XMLHttpRequest: ローカルhtml,js→ローカルtxtではアクセスできない ・localhost: システムに手を加えることのできない環境では×
>>720 FireFoxスレに行った方がよいかも
722 :
Name_Not_Found :2006/01/18(水) 19:22:51 ID:d06PerHj
javascript:var t = document.title;if (t.match(/'("|*|,|/|:|;|<|>|\?|\\|\|)'/g)){alert("禁止文字が入っています")}; 文字の繰り返しを表す正規表現演算子が不正ですというエラーがでます。 どこの表記がいけないのでしょうか?お教えください。
>>722 if (t.match(/["\*,\/:;<>\?\\\|]/g))
gもつけなくていいよ
727 :
722 :2006/01/18(水) 21:04:56 ID:???
有り難うございます。 <title>||||||||</title>だけは動きますが "*,/:;<>?\の連続した禁止文字だと 正規表現で構文エラーが発生しましたとエラーメッセージが出ます。 どういうことなのでしょうか?
すいません。JavaScriptとDOMの違いがイマイチわかりません。 JavaScriptには無理でDOMにできることってなんですか? その特徴が生かされてる例を教えてください。 //JavaScriptとDOMごっちゃに見ていったので、DOMの概念的な感覚がイマイチわからないんです-ω- ;
http://e-words.jp/w/DOM.html まずでもみる。
DOMが英語まんまの意味だって分かると思う。
DOMに出来ないことと言うか、DOMはJavaScriptがオブジェクトを参照する一つの方法で
言語じゃない。「DOM」を用いるのが「JavaScript」だったってだけの話。
DOMだけじゃ何も出来ない。
書き込み失礼します<(_ _)> 今私は学校の研究で、CMSの開発を行っています。 WEBコンテンツはXML形式であり、 XSLT形式のスタイルシートを適用することでWEBコンテンツを生成することとしました。 XMLファイル・XSLTファイルは分割して置いておき、 コンテンツ開発者が様々な組み合わせ方をすることで 様々なタイプのWEBコンテンツが開発できるというシステムにしたいと思っています。 その組み合わせるファイルの選択というのはWEBブラウザ上で行い、選択フォームなどで情報を渡し、 その情報をもとにサーバがファイルの結合を行い、 完成したWEBコンテンツをブラウザで表示という感じで考えているのですが、 どのような手法で 「ブラウザでのファイルの選択」→「ファイルの結合」→「結合し完成したWEBコンテンツの表示」 を行えばよいのかいい案が沸かないので、アドバイスいただければと思います。よろしくおねがいします。 尚、今後開発が進めば組み合わせの部分でAjaxを用いようかと思っているのですが、 この場合javascript用いるので開発もjavascriptで進めるべきなのでしょうか?
そこまで流れがわかっていて、何がわからないのかがわからない。 ある程度決まった中から選ぶなら、JavaScriptはいらないし、 ユーザからの情報が「選択する」くらいのものなら、わざわざAjaxとか持ち出す理由もないような・・・ サーバに、XMLとXSLTのファイルに応じてフォームつきのHTMLを生成させて フォームの情報を受け取って、XMLはかせればいいだけなんじゃね?
732 :
sage :2006/01/19(木) 04:07:07 ID:s3878FPj
初心者なのでこんな質問ですみません 今万年カレンダーを作成していて 選択ボックスから年、月を選択してリロードを行い 選択した年、月を表示させたいのですが 選択した値を反映させるにはどうしたらいいでしょうか?
初心者と自分でいう奴には一切何も教えん
てとりす
>>730 お兄ちゃん、xmlにも書き込みしてタネ
オナニーサイトなら構造だけ昇華させたコンテンツメードでもいいけど
人様に見てもらいたいならデザインも考慮しないとね
ど素人ですがjavaスクリプトでできると知ったので質問です とあるgif画像にマウスをあてたら、別の位置にある画像がかわるみたいな スクリプトをやりたいのですがオススメのサイトがあれば教えてください!
>>740 調べてみましたが大量にでてきてどれを参考にしたらいいかわかりません。
なんか良いサイトないでしょうか
元ボタンにあるURLを画像が変更される先のURLに入れるような感じになる
気がするんですが、いささかそのやり方が・・
742 :
Name_Not_Found :2006/01/19(木) 15:46:23 ID:MLH7htvt
質問させてください (-人-) アクセスする毎に画像が変わるJavaScriptについてなのですが、1枚の画像のみのやり方はいろんな所で確認しています。 でも、1の画像が変わった時に2の画像も変わる様にしたいのです。 色に例えて下に書いてみたのですが、下記のスクリプトだとあたりまえに別々のランダム表示になってしまいます。 ・1_blue の時は 2_blue が表示 という様に、1と2を関連付けて表示させるにはどうしたら良いのでしょうか。 今日1日取り組んでいるのですが、どの方法もうまく行かなくて困っています。 どうぞよろしくおねがいします。 <html> <hrad> <script type="text/javascript"><!-- function imageEX1(){ var s = Math.floor(Math.random()*3) if ( s == 0 ) document.write('<img src="images/1_blue.jpg">'); if ( s == 1 ) document.write('<img src="images/1_red.jpg>'); if ( s == 2 ) document.write('<img src="images/1_green.jpg>'); } function imageEX2(){ var s = Math.floor(Math.random()*3) if ( s == 0 ) document.write('<img src="images/2_blue.gif">'); if ( s == 1 ) document.write('<img src="images/2_red.gif">'); if ( s == 2 ) document.write('<img src="images/2_green.gif">'); } //--></script> </head> <body> <script type="text/javascript">imageEX1();</script> <script type="text/javascript">imageEX2();</script> </body> </html>
var s = Math.floor(Math.random()*3) function imageEX1(){ if ( s == 0 ) document.write('<img src="images/1_blue.jpg">'); if ( s == 1 ) document.write('<img src="images/1_red.jpg>'); if ( s == 2 ) document.write('<img src="images/1_green.jpg>'); } function imageEX2(){ if ( s == 0 ) document.write('<img src="images/2_blue.gif">'); if ( s == 1 ) document.write('<img src="images/2_red.gif">'); if ( s == 2 ) document.write('<img src="images/2_green.gif">'); }
744 :
742 :2006/01/19(木) 17:38:10 ID:???
>>743 ありがとうございます!!!
希望の形で動く様になりました(^-^)
うれしーい。
動けばOKなスレだったんですね
<hrad> に誰も突っ込まない件
おれもこれではイカンと思ってこれよりは使いやすいの書いてみたけど 見えない力に阻まれエンターキーが押せなかった。
749 :
Name_Not_Found :2006/01/19(木) 21:10:04 ID:TdTyKYHp
Web上のExceLファイルを開いて、修正して、保存するにはどうすればいいのでしょうか?Webdavは設定しました。
<html> <hrad> <!-- ←必要に応じて変更すること。--> <script type="text/javascript"><!-- function imageEx(){ var v = new Array("blue","red","green"); var s = Math.floor(Math.random()*v.length); var dir="image/"; document.img1.src="./"+dir+"1_"+v[s]+".jpg"; document.img2.src="./"+dir+"2_"+v[s]+".gif"; } //--></script> </head> <body onload ="imageEx()"> <img src="image/dummy.jpg" name="img1" /> <img src="image/dummy.jpg" name="img2" /> </body> </html> テストしてないけどたぶん動く。色が増えても使える、万能版だyo!
WebDAVを理解している人間の書き込みとは思えない
752 :
730 :2006/01/19(木) 22:30:41 ID:???
>>731 返答ありがとうございます。
学校で与えられた課題はAjaxを用いてということだったので…
Ajaxを用いた場合では選択フォームとかではなくて、
ドラッグ&ドロップの作業でコンテンツのパーツを配置できるようにしたいと考えてます…
でもとりあえず今はAjaxなんてとてもじゃないのでとりあえず選択フォームで結合できるようにしたいと思っています。
>>736 マルチすみません。
おっしゃるとおり、コンテンツ開発にはデザイン部分も重要になってくると思うので、
デザイン性の高いコンテンツが作りやすいやすいようなシステムになればというのが理想ですorz
研究と課題じゃ大違いだ
754 :
749 :2006/01/20(金) 00:07:27 ID:jSQyyoze
>>751 webdavとVBScriptではできたのですが、
jspがまったくわからないのです。
その上 jsp ときた
あれですか。 Java と JavaScript の区別が付いてないっていう話ですか。
757 :
749 :2006/01/20(金) 02:02:14 ID:jSQyyoze
>>755-756 確かにそのへんまったくわかってない。
実現したいことが、ファイルへのリンクが表示されてて、
クリックするとExcelファイルが出てきて、
修正して、(上書き保存ボタン等で)Webに保存したい。
ほんとに何とか知恵を貸してください。
758 :
749 :2006/01/20(金) 02:15:20 ID:???
板を間違えたことに気づきました。 他の板で質問します。
759 :
749 :2006/01/20(金) 02:25:47 ID:???
「ブラウザでのファイルの選択」→「ファイルの結合」→「結合し完成したWEBコンテンツの表示」 そのページで、「ファイルの選択」をクリックすると Ajaxでファイル名を取得して表示させて、 さらにその表示内容をクリックしたら Ajaxでファイル内容を取得して、加工して表示すればいいのでは? Ajaxで作れっていうんだからページ自体のリロードなしでってことだろ?
763 :
Name_Not_Found :2006/01/20(金) 11:47:06 ID:nTQ9vK6T
HPに埋め込まれている画像があります。 画像はそれぞれ、01.png,02.pngと連番で25枚あります。 これをダウンロードしたいのですが、右クリックで一つづつ ファイル名を打ち込むのが大変です(pngはなぜか拡張子を 自動表示してくれません。なので、.pngとそのつど打ちます)。 これを、ループを使って自動的に25枚を自分のPCの指定した ディレクトリに格納するスクリプトを組みたいのですが、どう 書けばよいのでしょうか。 ご教示くさだい。
画像をローカルディスクにコピーするなんてjavascriptでできるわけないだろ。
javascript をローカルで動かせば可能かもしれないww wget 呼び出したりできるかなぁ
766 :
763 :2006/01/20(金) 12:49:47 ID:???
>>765 ご回答ありがとうございます。
wgetってどのようなものでしょうか。
>>762 ググっていいんですか(笑)
思いきり拡大解釈した説明があったりして、無茶苦茶ですよ、その用語は。
商魂丸出しの流動的で曖昧な糞用語じゃなく、具体的に言ってもらえませんかねー。
あっそ
>>766 なぜJavascript スレにかこうと思ったのかわからんが、俺なら
perl -e 'for(1..25) { system("wget(
http://hogehoge.com/ " + sprintf("%02d",$_) + ".jpg)");}'
と書くかもしれない。
今ブラウザ上でてけとーに書いたので、細かい質問は受け付けない。
wget はぐぐろう。
wget や perl のインストールに手間取るのなら、あきらめてくれ。
こういうことのためにも、windows なら cygwin をいれておくとかしておくと楽しいぞ。
わるいが、用語の質問はうけつけない。
>>767 ググっていいですよ(笑)
拡大解釈してるのはおそらくお前。
771 :
763 :2006/01/20(金) 18:22:20 ID:???
>>769 ご回答ありがとうございます。
cygwinってどのようなものでしょうか。
>>771 cygwin ってあっはーん(´・∀・){うっふん 今日は金曜日だよヘ(;´Д`ヘ)!! もう最高☆ 楽しいぞぉーっヽ(*´ー`)ノ てかてかてか!!!
773 :
763 :2006/01/20(金) 18:34:48 ID:???
>>772 ご回答ありがとうございます。
(´・∀・){うっふんってどのようなものでしょうか。
えっと、そこのキミたち、お喋りはやめなさい。 今は、JavaScript の時間ですよ。
>>763 JavaScriptで出来るんじゃないか、と思っても世の中には
ダウンローダーと言う、すばらしきツールがある。
無駄に考えず、先人の知恵を生かすべき。
第一にJavaScriptのみでDLできたらセキュリティホール。
JScriptとか、VBScriptでWSHを使えば出来るが。
776 :
Name_Not_Found :2006/01/20(金) 22:52:17 ID:NNX422AE
ttp://www.funfunbiz.com/hover/ 上記サイトで「ホバーウィンドウ」なるモノを販売しているのですが
これって金払って買う程凄いスクリプトなんですか?
面白そうだな〜とは思ったんですが、5,500円払ってまでいらないやと・・・。
ちなみに自分はコレの宣伝をしてる訳じゃなく、自分じゃ書けそうも無いモノだけど
javaScriptに精通している人なら簡単に出来ちゃうんじゃないかと。で、それを5,500円で
販売しているのはいかがなものかと・・・。まっ、余計なお世話ですけどね。
>>776 ビックリするほど見るべきところのないサイトだね
内容もソースも
ちょいと変な質問ですがよろしくお願いします。 ********* □=インラインフレーム * * * □□ * * * ********* このように、左右にインラインフレームを設けています。そして、左(name="menu") のリンクをクリックすると結果を右(name="body")に反映させたいのですが、どうもうまくいきません onClick=document.body.location.href = './****.php' このようにやっていますが、どこが問題なんですか?よろしくお願いします
body
document.body == document.getElementsByTagName('body')[0]
たとえば、JavaScriptの場合だと、 obj.func1().func2() みたいなこともできますか。 簡単な例を教えて下さると助かります。
ね、ね。Venkman ってどーよ?
786 :
Name_Not_Found :2006/01/21(土) 16:13:46 ID:thO/cWdt BE:314597647-
document.writeとかinnerHTMLで、HTMLタグ等を出力しているのですが、 ループとかエスケープ文字を多用しているため、最終的にブラウザが どのような内容で認識しているのか、わかりづらいです。 ブラウザの表示で確認する以外に、出力された内容を確認する方法はないでしょうか。
>>786 ブックマークレットを使ってみたらどうでしょう
(下記のコードをURL欄にコピペして実行)
javascript:document.body.innerHTML="<plaintext>"+document.all.tags("HTML")[0].outerHTML;eval();
クライアントフォルダをユーザー指定させて、そのフォルダに入っているファイルを ずいじアップロードする方法はないでしょうか?
フォームをbookmarkletからsubmitすることはできないんですか? javascript:document.getElementsByTagName("Form")[0].submit(); こんな感じでやりたいんですけど、エラーでちゃってできません。
>>787 >>786 じゃないけどこれイイですね。
一応FireFoxでも動くようにしました
javascript:document.body.innerHTML="<plaintext>"+document.getElementsByTagName("HTML")[0].innerHTML;eval();
いつもは<textarea>でやってたので感動しました。
>>787 あのー、plaintextタグはW3Cでは非推奨・廃止予定タグ なんだけど。。。
おい。空気よめよ
いずれにしてもブックマークレットはブラウザ依存すぎ javascript:alert(50%30); は、ネスケおよびIEのばあい、なんと500を返す。
お前 50%30 を見せたかっただけだろ
795 :
Name_Not_Found :2006/01/22(日) 00:52:52 ID:yQvU954/
1つめ x=1; y=2; という処理を (x,y)=(1,2); のような書き方ができると非常に楽なのですが、javascriptにはないのしょうか? 2つめ 関数からの戻り値を2つ以上得たい場合、今のところ ・returnの直前でわざわざ新しい配列を作る ・戻り値を受け取るところでも新しい配列を作っておいて(新しい配列)=関数 という手順を踏んでいます。 なにかいい方法などありましたら、ご教授ください。
function getPerson() { // 配列ではなくて、オブジェクトを利用して複数の値を返す return {name: "ほげ太郎", age: 8, address: "橋の下"}; } var person = getPerson(); alert(person.name); alert(person.age); alert(person.address);
>>795 >(x,y)=(1,2);
そんなのがあるのは変態言語の Perl だけ。
PHP は関数で代わりになるのが提供されている
798 :
795 :2006/01/22(日) 02:08:23 ID:yQvU954/
>>796 自分でクラスの定義をすることは、これまであまり使い方が分からず避けてきたのですが、やっと使い方が分かりました。
使い道が分かって、チュートリアルサイトで再学習してみたら、ちゃんと動くものができました。
ありがとうございました。
>>797 perlにあったのが特殊なのですね。
できないことを書いてある場所がなくて、すっきりしなかったのですが、やっと分かってすっきりしました。
ありがとうございました。
クラスはC++で学んで
配列かクラスにいれて参照で渡せ。 そこしか使わないのなら、引数渡しせず 関数内でそのまま替えちゃえ。デスマーチの責任はとらんがなw
>>797 Ruby, Python にもあるにょ
>>800 ECMA Script 262-3 には class はない。
クラスにいれるとは?
803 :
Name_Not_Found :2006/01/22(日) 15:38:23 ID:QyK1RxKs
vine linux3.2+firefox1.5にての質問です。 greasemonkeyにて次のような自動ログインスクリプトを作りました。 -- function AutoLogin(){ document.forms[0][0].value = "hogehoge"; //document.f.pass.value = "hogehoge"; } } window.addEventListener("load", AutoLogin(),false); -- document.forms[0].nameはf document.forms[0][0].nameはpass という名前になっています。 今の状態だとパスワードが入力されますが コメントアウトを入れ換えるとパスワードが入力されません。 JavaScriptで一文字の名前は使えないのでしょうか? それともgreasemonkeyの仕様なのでしょうか。
>>803 「document.forms.f.elements.pass.value」ではどうかな。
>>797 LuaやCommon Lispにもあるにょ
806 :
Name_Not_Found :2006/01/22(日) 18:35:22 ID:kTnNYf/Q
違う質問スレに書き込みしたらココで質問しろといわれたので
マルチになって申しわけありませんが、再度質問させてもらいます。
ライブドアのブログ製作してるのですが
トップの画像を自分のデザインした画像のURLをCSSに貼ってTOP画像にしてます。
そこで質問ですが、自分で用意したTOP画像をランダムで表示させる方法を教えてください。
わかりづらくてすいません。
ttp://kamibakusho.com/ ↑のサイトのようにTOP画像をランダムで表示させたいのです…。
>>806 過去スレに山のようにあるから。それが検索できない奴は
質問してはいけないことになっている。
>>1-5 は読め。
808 :
Name_Not_Found :2006/01/22(日) 19:31:51 ID:kTnNYf/Q
わかりました。一応目は通したのですがイマイチだったのでもう少し勉強してきます。
809 :
803 :2006/01/22(日) 20:42:47 ID:???
>>804 アドバイスありがとうございます。
早速やってみたのですが、パスワードは入力されないようです。
現状でも使えないわけではないのですが、後学のために御教示下さい。
フォーム名が1文字の場合の不具合というのは既知の問題ですか?
それともfirefoxかgreasemonkeyの問題なのでしょうか。
>>809 : window.addEventListener("load", AutoLogin(),false);
これがおかしいと思う。
window.addEventListener("load", AutoLogin,false);
であるべきでは?なぜかという説明はこのスレのどっかにあったな。
812 :
803 :2006/01/23(月) 00:16:12 ID:???
>>811 そのようです。
指摘ありがとうございます。
taglist=document.all.tags("tr") 等でTRタグの配列をとれると思うのですがでは あるTR内の中にあるTDだけを配列で取得したりすることはできるのでしょうか? 指定行の指定列という感じで・・。
>>814 getElementsByTagName
とか。
>>814 非標準のdocument.allを使わずにDOM2のメソッドを使う。
そっちの方がIE以外でも動くという点でも優れている。
document.getElementsByTagName('TR')[何番目].getElementsByTagName('TD')
だけどそもそも、特定の表のセルを取るのだったらtbodyにID振って
document.getElementsById('ID名').rows[行番号].cells[列番号]
この方が分かりやすくていいよね。tableでなくtbodyにID振るのに注意。
table.rows(i).cells(j)
818 :
817 :2006/01/23(月) 14:57:49 ID:???
ごめん、table.rows[i].cells[j]の間違い。 しかも先にもっと詳しく説明されてるし……orz
orz(笑)
document.write("<strong>禁酒日数</strong><br>開始日:2005年8月10日<br>経過日数:168日目<br>浮いたお金:50400円");
>>821 丸投げはここでは無視される。自分で勉強する気がないのなら帰れ。
これ、なんで出力だけJavaScriptなんだろう。
825 :
821 :2006/01/24(火) 18:38:51 ID:???
勉強させてください。それにはまず、お答えをいただかないとできません。 よろしくお願いいたします。
いみがわかりません JavaScriptの基本くらいは勉強してきてください 答えてもわからないと思いますが?
827 :
Name_Not_Found :2006/01/24(火) 19:10:20 ID:tmwqa8sX
821を書き込んだのは自分です。 解決しました。スレ汚しすみませんです。
828 :
Name_Not_Found :2006/01/24(火) 23:22:34 ID:uF/2ul1Y
質問です。お願いします。 for文でループの刻みを小数にしたいのですが、うまくいきません。 たとえば、 for (var i = 0.7; i < 1.2; i += 0.1) { if (i == 1) {alert('Hello World')}; } としてみましたが、エラーさえ出ません。 どうすれば動くようになりますか。
もしくは if (Math.abs(i - 1) < 0.001) {} とか
831 :
828 :2006/01/25(水) 00:01:41 ID:???
>特に
ぐすん
835 :
828 :2006/01/25(水) 09:26:26 ID:???
ボケはおまえだろ。
836 :
Name_Not_Found :2006/01/25(水) 16:09:03 ID:synjleCC
すみません。 フォームに入力されたURLにリンクするにはどのようにすればよいですか?
>>386 <input type="text" id="url" size="40" value="
http:// ">
<input type="button" value="Go" onclick="while(true)alert(unescape('%u81EA%u5206%u3067%u4F5C%u308C'))">
>>836 <input type="text" id="url" size="40" value="
http:// ">
<input type="button" value="Go" onclick="while(true)alert(unescape('%u81EA%u5206%u3067%u4F5C%u308C'))">
840 :
chu :2006/01/25(水) 18:30:06 ID:S1j3Ovzf
>>840 だってアンタが書いてるのはHTMLじゃないもん。そのヘンなタグを
加工する何かに通さないと駄目なんじゃないの?だからスレ違いね。
842 :
Name_Not_Found :2006/01/25(水) 18:42:47 ID:iOhi2X9a
テーブルのセルにマウスが載ったときに縦の列すべて背景色を変えるにはどうしたらいいのでしょうか? 横の行すべてを変えることはできたのですがどうしても縦ができません。
>>842 横ができるんなら、縦が「どうしても」できないとは思えないが・・・
>>844 だからさ、あるセルに乗った時に縦の全部のセルを変えるのは
tr要素にonmouseover="this.style.backgroundColor=..."とか
書くより敷居が高いでしょ。
>>842 このスレの少し上を読むと表のi行j列のセル要素を取り出す方法が
書いてある。で、ループを使ってj列のセル全部の背景色を変更。
これで分からなければ修行が足りないので自分で修行してくらはい。
846 :
844 :2006/01/25(水) 21:54:16 ID:???
あとは、cell数とrow数からタテの位置を割り出し、それをループか 条件分岐でイベントと結びつけることかな。 いずれにしても、ヨコができるなら、タテは地道な応用にすぎない。
847 :
Name_Not_Found :2006/01/25(水) 23:56:03 ID:An1yU9Iy
質問。というより、みなさんにお聞きしたいのですが・・・ 小説『博士の愛した数式』を読んで真理の美しさについて考えてしまいました。 エルデシュ的な感性というか、オイラーの等式のような美というか、JavaScriptに もそのようなシンプルな美しさを持ったコードがあると思います。 おススメの美しいコートを教えてもらえませんか。
>>847 過去スレを全部読んで自分の好みのコードを見付けるべき。
つかアンタと同じ質問前に出てるよ。
>>847 javascript:while(true)alert(unescape('%u81EA%u5206%u3067%u4F5C%u308C'))
これをアドレスバーに入れてみろ
850 :
847 :2006/01/26(木) 00:50:00 ID:???
>>849 恐くて自分のPCではできません。どうなるんでしょうか?
851 :
Name_Not_Found :2006/01/26(木) 00:52:43 ID:qh8TZrtv
var before = "2006/1/9" これを "2006/01/09" に変換したい。
>>851 // JScript5.5, JavaScript1.5
before.replace(/\/(?![0-9][0-9])/g, "\/0")
853 :
814 :2006/01/26(木) 08:10:32 ID:???
854 :
Name_Not_Found :2006/01/26(木) 09:34:42 ID:VmUhb5lk
質問させてください。 refererを絶対パスでなく相対パスでもJSが動くように出来ませんか。 オフラインのリンクで使いたいです。
意味が分からんな。
すげー意味不明だな。どっちにしろオフラインだと referrerは使えないんじゃなかったっけ?
document.referrerじゃなくて、外部.jsファイルのことを聞いてるのかも知れん。 どっちにしろこのスレで聞くことじゃない気がするが。
>>856 オフラインじゃ無理だろな(理由は自明)。
あと、referrerはスペル、これでいいのか?
859 :
Name_Not_Found :2006/01/26(木) 13:01:55 ID:zHfIgKNX
空行を削除したいです。(IE6) var hoge = "\r\nほげ\r\nふが\r\n\r\n"; hoge = hoge.replace(/^$/g, ""); alert("\"" + hoge + "\""); とやったら " ほげ ふが " となってしまいました。 "ほげふが" となってほしいのですが、どうすればいいですか?
>>859 hoge = hoge.split("\r\n").join("");
861 :
Name_Not_Found :2006/01/26(木) 13:15:17 ID:zHfIgKNX
>>860 おお!と思ったのですがごめんなさい。
僕が間違っていました。
空行だけが消えてほしいので、
"ほげ
ふが"
となってほしいのでした。。。
せっかく教えてくれたのにすみません。
863 :
Name_Not_Found :2006/01/26(木) 13:38:28 ID:zHfIgKNX
>>862 すみません、ちょっと意味がわからないです。
とりあえず
hoge = hoge.replace(/^\s/mg, "");
hoge = hoge.replace(/\s$/mg, "");
と2段階はさむことで期待する値にすることができました。
なんで /^\s$/ じゃダメなんだ・・・
しっくりしないです。
マウスでのドラッグでWindowsのペイントのように線を書くことはできないでしょうか?
>>864 JavaScriptで任意の線を描くにはSVGとかVMLとかが必要だね。
そっちのスレでまず勉強してくれば?マウスのドラグ情報を
取得する方法は過去スレにあるからね。
SVGでやったらかっこいいね。 データが使い回しできるし。 マウスの奇跡に1×1のgif画像を並べる、ってのは ググれば結構例があったと思う。
868 :
Name_Not_Found :2006/01/27(金) 04:46:00 ID:NYuOlo6N
var x='aaaaaaaaaabbbbbbbbbbbcccccccccc'; という場合、xの内容が異常に長いのでソース上、途中で改行したい時って どうすれば良いのでしょうか。
869 :
868 :2006/01/27(金) 05:00:24 ID:???
自己解決しました¥
870 :
868 :2006/01/27(金) 08:53:58 ID:NYuOlo6N
iframeにGoogleの地図を表示させた場合に、ピンが表示される詳細地図になると
IE/FF共に(一応表示はされるのですが)エラーも表示されてしまいます。
エラー: uncaught exception: Permission denied to get property Window.GInfoWindowTab
具体的には以下のソースでフォームに「千代田区永田町」までですと問題ないのですが
「千代田区永田町1-7-1」と入力するとエラー。
対処法などありませんでしょうか。
<html>
<head>
<script type="text/javascript">
<!--
function MapChange(address) {
address = '
http://maps.google.co.jp/maps?f=q&hl=ja&q= '+encodeURI(address)
top.googlemap.location.href=address
}
// -->
</script>
</head>
<body>
<form action="">
<input type="text" onChange="MapChange(this.value)">
</form>
<iframe name="googlemap" id="googlemap" width="500" height="300" frameborder=0 scrolling="NO"></iframe>
</body>
</html>
>>870 Googleが送り込んで来るJSをいじる方法がないんだから無理。
Googleにお願いして直してもらうかiframeをあきらめるかどっちかだな。
Ajaxで他のドメインのデータを読む方法を見つけたんだが(IE限定) このセキュリティホールは既に公開されている? されていなかったらIPAあたりに通報しなくては
document.domainの話?
「yyyy/mm/dd から xx日後 は yyyy2/mm2/dd2 です」 という計算をするには、どのようにすればよいでしょうか・・・。 カレンダールーチンを作成してしまうことも考えましたが・・・。 yyyy/mm/dd、xx日は、算出済みです。 ご教授よろしくお願いいたします。
875 :
874 :2006/01/27(金) 16:03:51 ID:w5lMTO+0
age忘れました。面目ない。
>>874 yyyy = 2006; //年
mm = 1; //月
dd = 27; //日
xx = 7; //何日後
dateobj = new Date(yyyy,mm-1,dd);
dateobj.setDate(dateobj.getDate()+xx);
yyyy2 = dateobj.getFullYear();
mm2 = dateobj.getMonth()+1;
dd2 = dateobj.getDate();
alert(yyyy2+"/"+mm2+"/"+dd2)
878 :
874 :2006/01/27(金) 16:32:03 ID:???
>>876 >>877 両氏、レスありがとうございました。
>>877 氏のソースを埋め込み、変数名など調整すると、無事動作させることができました。
ありがとうございました。
879 :
Name_Not_Found :2006/01/27(金) 18:01:17 ID:JAIJo43w
改行についてです。 str='abcdrfghijkelmopqrstuvwxyz'; とある変数の文字列(実際には相当ながい)でつねに4文字ごとに改行を いれてdocument.write(str)で表示するにはどういう命令をJSでプログラ ムすればよいでしょうか。お願いします。
>>879 str=長い文字列;
[strの中に4文字ごとに改行を入れる]
document.write(str);
881 :
879 :2006/01/27(金) 18:34:51 ID:???
それではプログラムはいりませんよね。 自動的にしたいんですが。
>>881 もういっちょヒント
str=長い文字列;
new_str = [0〜3文字目を抜き出す]+改行+ [4〜7文字目を抜き出す]+改行+以下略
document.write(new_str);
>>879-881 document.write(str.replace(/(....)/g, '$1<br>'));
>>881 えっと、ぼくなどが答えるのもなんですが、それって、str.lengthとって
あとは%を使ってわければよいのでは?と思いますが・・・
ぼくの質問です。
文字列の中に半角のスペースがあったとき、半角スペースでsplit()
させるにはどういうパラメータを使えばよいでしょうか。%20とかじゃ
ダメみたいです。
>>885 おいおい、
>>883 できっちり4文字ずつ分けられるだろ。
何で後からダサイ回答を出すわけ?
879がお礼を言ってないからだと思うよ
連想配列の場合、中身の個数はどうやって求めればいいんですか? array.lengthだと0になってしまいます。 for(i in array)で回すしかないんでしょうか?
正規表現をこんな風に使うなんて、頭の固いおじさんにはきついっす。 速度とかを無意識に考えて候補にもあがらない。反省だ。
>>890 そうね。あとは入れる時に数えるとかだな。
>>891 自前でループ回るよりきっと速いよ。よかったら計測してみ。
893 :
879 :2006/01/27(金) 21:04:20 ID:???
みなさん、ありがとうございました。 助かりました。
894 :
Name_Not_Found :2006/01/28(土) 00:19:55 ID:W2atByE/
過去ログ倉庫でvol39-vol43までのを見たいのですが、ありません。 どこかにありますか?
896 :
890 :2006/01/28(土) 08:36:23 ID:???
>>891 ありがとうございます。
うーん、やっぱりないですか。
すみませんがご存知の方がいらっしゃいましたらお願いします。 treeMenuを使用しているのですがメニューの展開などの制御を行いたいのですが できますでしょうか? treeMenuの簡単なサンプルはあるのですがそれ以上の内容があるものがみつかり ませんよろしくお願いします。
「JavaScript ツリーメニュー」でぐぐれば?
899 :
896 :2006/01/28(土) 12:09:25 ID:???
902 :
Name_Not_Found :2006/01/29(日) 05:15:03 ID:WDtQbKto
x = xml.childNodes.item(0).nodeName.text とした時に、Firefoxでは値が取り出せませんが どのようにコーディングするべきなのでしょうか。
903 :
902 :2006/01/29(日) 09:16:17 ID:???
別の方法で解決 4時間もかかちまったorz
904 :
Name_Not_Found :2006/01/29(日) 11:35:00 ID:B5iARQ1j
画像で基調色(主に背景部分)が黒と白の画像があったとき、 黒と白を自動判別してstyle="border:2 black|white ...;"というように 縁の色を反転させようと思うのですが、JSでできますか。
縁の色はどうにでも変えられるけど、画像の中の色を 取る方法がないと思われ。
初歩かもしれんが、Javascript で出力された html を valid チェックするにはどうすれば?
親窓から開いた小窓ってスレッドが独立したりはしませんか? 親窓の処理スピードを落とさないために小窓で分散処理させて 結果だけ親窓が受け取る――みたいなことができたらいいなあ なんて思ってるんですが。
結構調べたのだが、どうしても見つからず Orz教えて欲しい・・ [テキストフォーム] [プルダウン] [ラジオ]and [ラジオ]or [検索ボタン] テキストフォームにうった文字を、検索するのだが。 プルダウンで選んだジャンルによって 検索するフォームアクション変えたい! ってな…ソースってどう書いたらよいのだろうかOrz また、参考になるページ等でもあるとすごい助かります。
document.forms[0].action = "…";
>>908 '手取り足取り' に誘導したいところだけど回線状態がなぜか悪い.
サンプル書いてあげても良いと思うけど何を望んでいるのかサパーリ.
特に "検索するフォームアクション変えたい!" ってあたり.
flow chart 書けるなら書いて欲しい.
(動作の順番にリストにするだけでもよい)
nullは大人しく隔離されててくれよ
質問です。 フォームにスクリプトを使いたいのですが、 XHTML1.1でFORM要素にname属性が使えないので、 代わりをどうしたらいいかがわかりません。 それから、alertウィンドウでFirefoxやOperaなどだと ホスト名も一緒に出てくるのは仕様なんですか?
>>912 上
テンプレ読んだか?
下
悪用されかねないセキュリティーホールとして最近話題になった
IE はうんこ
>>910 長すぎたので、2回くらいに分けて書きますOrz お手数かけます。
>>910 説明が足りなくて申し訳ない・・助かりますOrz
<form><input type="text">
<select>
<option>掲示板_1_検索</option>
<option>掲示板_2_検索</option>
<option>掲示板_3_検索</option>
<option>HP全体を検索</option>
<option>検索_1</option>
</select> <input type="radio" checked>and <input type="radio">or<input type="submit" value="検索"></form>
flow chartまでとは、言えないかもしれないが…
▼
▼掲示板_1_検索のフォームアクション <form action="bbs_1.cgi" method=POST> <input type=hidden name=andor value=and><input type=hidden name=logs value="bbs_1.dat"> <input type=hidden name=no value=0> <input type=text name=word value=""> <input type=submit value="検 索"> ▼掲示板_2_検索のフォームアクション <form action="bbs_2.cgi" method=POST> <input type=hidden name=andor value=and><input type=hidden name=logs value="bbs_2.dat"> <input type=hidden name=no value=0> <input type=text name=word value=""> <input type=submit value="検 索"> ▼掲示板_3_検索のフォームアクション <form action="bbs_3.cgi" method=POST> <input type=hidden name=andor value=and><input type=hidden name=logs value="bbs_3.dat"> <input type=hidden name=no value=0> <input type=text name=word value=""> <input type=submit value="検 索"> ▼
▼HP全体を検索のフォームアクション <form method = "POST" action = "zentai.cgi"> <input type = "text" name = "key"> <input type = "submit" name = "submit" value = "検索"> ▼検索_1のフォームアクション <form action=kensaku_1.cgi> <input type=text name=words> <input type=submit value=検索> こんな感じです。 検索ボタンをおしたときにプルダウンで選んだ フォームアクションを実行させたいって感じです。 長文失礼。
ラジオボタンいりませんでした^^;ラジオは却下で
>>914-917 selectのonchangeで選んだ番号に応じてフォームの
actionその他変更する必要があるもの全部を選んだ
ものに対応して変更すればいいだろ。それ以上どう
にも説明しようがないがな。
>>912 です。
解決しますた。
テンプレ熟読しておらず大変申し訳ないです。
セキュリティホールについても調べてみます。
ありがとうございました。
>>944 メンゴ !
あっちの繋がりが悪いので今回だけ大目に見てくれ〜.
>>916 まだ全体を読み解いていないけど,
ようするに文字通り, form action を切り替えるだけでいいのね ?
>>908 です。
javascriptで変えられるかな…と思って色々今検索してます。
>>919 そうしたい所だが、そうもいかなくなってしまったので、何が方法はないかと考え中
>>921 ですです。プルダウンで、form actionを切り替えれればOKみたいな感じです。
>>922 >>914-916 を元にサンプル書いてみるね. (サンプルは upload する)
しかし, この掲示板の状態が悪いようなのでリンクを書き出せるかどうか...
方向修正: upload してもストレートに動作確認できないっぽ. (つまり意味がない) それと ここの状態, 悪すぎなので やくそくできない. 悪いけど今回見送りか後日 "手取り足取り" で.
ポインターの入っているFORMに、JavaScriptを使って特定の文字列を挿入したいんですが可能でつか?(´・ω・`)
>>925 可能でつが
それはいいインターフェースなのか疑問でつ
>>923 どうもありがd!
明日会社の帰りでも、本屋でもよって、ちょっと自分でも調べてきま!
>>926 (・∀・;)?
顔文字が使えない(辞書に登録できない)携帯端末で、顔文字を使いたいんでつ。
で、よく使う顔文字を、お気に入りに「javascript:〜」の形式で登録しておいて、使いたいときに挿入させたいんです。
>>922 こういうんでいいんじゃないの?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var uri=['a.cgi','b.cgi','c.cgi','d.cgi'];
function chg(sel) { document.forms.f0.action = uri[sel.selectedIndex]; }
</script>
</head><body>
<form name="f0" method="post" action="a.cgi"><p>
<input type="text" name="t0"></p></form>
<div><select onchange="chg(this)"><option>A</option><option>B</option>
<option>C</option><option>D</option></select></div>
</body></html>
>>928 携帯かぁ
今時の携帯ってJavaScript使えるん?
Operaくらいの機能が有ればできそうだけど
とりあえず携帯スレの方に行った方がよろしいかと
次スレは975越えたら。テンプレの変更予定は今のところなし。
932 :
Name_Not_Found :2006/01/29(日) 23:13:53 ID:05enxIxz
今日からJavaScriptの勉強を始めます。
複数の項目でラジオボタンを表示させ、それらすべての項目に 一つのラジオボタンをチェックし、リンク先を変えることは出来ますか? 例を挙げます。 <項目1> ○A ○B ○C <項目2> ○D ○E ○F A+D → リンク1 A+E → リンク2 ・・・ こんな感じのリンク方法を実現したいのです。
>>932 前半 : やりたいことは分かった。自分でやったことを示してもらいたい。
後半 :
>>3 (2)
>>932 頭がこんがらがった状態でここに来ても役に立たんだろ。
丸投げスレじゃないんだから自分である程度書かなければ
誰も助けない。地道に2〜3週間いろいろ試しながら勉強
すれば質問できる水準まで来ると思うよ。がんがれ。
>>934 ラジオボタンのどれが選ばれているかの番号を管理して
おき、その番号でリンク先を入れた配列を参照すればいい
のでは。
>>930 PSPなんでつ。
PSP搭載ブラウザのNetFrontは、JSは使えるんですが、コピペ・辞書書き換え等が不可…orz
(せっかくATOK積んでるのに)
で、顔文字を入力する手段が、JSで自動挿入くらいしかないぽ…(´・ω・`)
>>938 そもそもbookmarkletには対応しているの? IEだったら次のでできるが。
javascript:r=document.selectin.createRange();r.text='XXX';void(0)
しかしこれ完全にIE専のはず。PSPブラウザがそんなのに互換なものか。
>>939 javascript:document.selection.createRange().text='XXX';void(0);
selectinはselection
変数使わずにcreateRange().textでおk
最後にセミコロン付けたほうがいい
Thanks. やってみまつ(´・ω・`)
> 最後にセミコロン付けたほうがいい 理由は?
943 :
932 :2006/01/30(月) 21:32:33 ID:K5Vtntwl
ハア? 自分で勉強して分かるようになってから質問してくれ。
945 :
932 :2006/01/30(月) 21:49:08 ID:???
946 :
938 :2006/01/30(月) 21:51:29 ID:???
PSPからアクセスしてまつ。 で…、むりぽだった('A`) 「javascript:〜」を、URLとして認識してくれませんですた…orz PSPスレで聞いてきまつ。
>>945 フォームも外部JSもそこら中にサンプルがあるんだ。
それくらい分かるようになってから質問しろというのは
当然だと思うが。
次スレは975越えたら。テンプレは今のところ変更予定なし。
Javascriptを使ってページ内の特定の要素のみ印刷させたいのですがそういう方法はあるのでしょうか? CSSはそこそこわかるのですがスクリプトは素人同然でどうにも上手くいきませんでした。 印刷ボタンを押したときにclassの値を変えて印刷不要な要素をすべてdisplay:none;としました。 IEでは上手くいきましたが、他のブラウザでは意図どおりに動作せず、 仕掛け自体も汎用性がなくて現実的ではありません。 どなたかフォローお願いします。
>>949 CSSに印刷用のメディアタイプがあるのは知ってる?
951 :
932 :2006/01/30(月) 22:31:46 ID:K5Vtntwl
>>947 >>945 は私じゃないです
でも、FORMとかjsははもっと調べてみます。
それで、
>>932 の最初の質問は、
どのようにすればいいでしょうか。
>>950 言葉不足ですみません。
印刷ボタンから出力するときは特定箇所のみ、
メニューから印刷したときはページ全部印刷させたいのです。
それがなければ@mediaで実現できたのですが。
上記のようなことをJavascriptで実現できますでしょうか?
お願いします。
>>952 どんな経路で印刷をするかは JavaScript の管轄外。
JavaScript でできるのは
スタイルシートを複数持たせて何らかのタイミングで差し替えることぐらい。
>>951 そのアンタの
>>932 の最初の質問というのは、「そうしたければ
そうすればいいんじゃない?」としか答えようがない感じだなあ。
全角にするとか、再入力させなくするとか、シャッフルとか、全部
そういう風にプログラム書けばいいんじゃないの、と思うわけで。
955 :
952 :2006/01/30(月) 23:02:32 ID:???
>>953 cssの差し替えははじめに検討したのですが検索してソースを参考にしても
入門以前の私には高度で扱えるものではありませんでした。
やりかたは2つのcssを用意し、DOMを使ってid属性をつけたlink要素を見に行って
href属性の値を動的に書き換えるんですよね?
document.getElementIdBy('css').getAttlibute('href')=('print.css')
イメージ的にはこんなことをやって差し替えているのかなと思うのですが
もっと簡単に差し替えられるのでしょうか?
ちなみに上のソースは間違っているようでちゃんと動いてくれません(´・ω・`)
956 :
932 :2006/01/30(月) 23:02:50 ID:K5Vtntwl
>>954 シャッフル以外のはプログラムかけたんですが、
シャッフルのプログラムと混ぜるのができないんです。
アドバイスもらえませんか?
>>955 スペルミスとかありすぎw
document.getElementById('idの値').setAttribute('href','差し替えるCSSファイル')
とか
document.getElementById('idの値').href = '差し替えるCSSファイル'
とか
959 :
952 :2006/01/31(火) 00:22:30 ID:???
部分印刷の新しいやり方について一つ閃きました。 スクリプトは不得意でこれが上手くいくかわからないので評価お願いします。 仕様 ファイルメニューから印刷するときはページ全体を、 button要素のイベントハンドラから印刷するときは特定の部分のみ印刷する。 1.特定印刷部分をdiv要素などで括っておく。 2.イベントハンドラから印刷するときはdiv要素をスクリプトから絶対指定(position:absolute)にする。 3.印刷メディアをA4用紙に想定し、スクリプトからdiv要素をミリメートルで大きさ指定する。 4.div要素の大きさはA4用紙と同サイズとし、A4用紙の1枚目は絶対指定したdiv要素のみ印刷されるようにする。 5.スクリプトからbody要素のoverflowをhiddenにする。 6.ここまでできたらprint();//ここまでのスクリプトはbutton要素のイベントハンドラから実行されます。 7.絶対配置したdiv要素だけ印刷されて欲しい。 これ、ダメでしょうか?
960 :
952 :2006/01/31(火) 00:28:09 ID:???
すいませんでした、印刷メディアのことしか考えていませんでした。
>>959 を実行するとスクリーンのほうがめちゃくちゃになってしまうかもしれませんね…。
スクリプトからメディアタイプを限定したスタイルの書き換えはできるのでしょうか?
>>958 模範解答ありがとうございます。ずっとByIdだと思っていました。通りでヒット数が少ないわけだ。
>>960 メディアタイプごとにCSSファイルを分ければいいんじゃないの。
>>959 やってみるしかないよな。その通り作ればいいじゃん。我々は
コーディングの奴隷じゃないんだ。
>>956 シャッフルのやり方なんて過去スレに合計10以上あると思うぞ。
過去スレ検索もせずに質問すな。
配列の取り方なんですが document.item["no[1]"].valueという書き方だといけるのですが this.formでパラメータを渡しても form.no[1].valueだとエラーがでるのでしょうが何が原因なのでしょうか? 基礎的なパラメータの渡しミスとかはありません。
>>960 最初に通常の印刷用CSSをlink要素
(<link id="何か好きな値" rel="stylesheet" href="通常の印刷用CSS" media="print">)
で置いといて
ボタン押したら
>>952 の希望を満たす(特定の箇所以外display:noneした)CSSを
>>958 の方法で入れ替えたのちにprint()するようにすればいけると思うんだ。多分
965 :
Name_Not_Found :2006/01/31(火) 12:39:34 ID:gUjgHyCI
windowAからwindow.open()でwindowBを開いて、そこからopenerを使ってwindowAのフォームのテキストを 書き換える仕掛けを作りました。 さて、windowAで <input type="button" name="hoge" value="fuga" onclick="foo()"> //(1) として function foo() { window.open(windowB,'','〜'); } で呼び出しました。 で、windowBの操作でwindowAのフォームデータの変更はできるのですが、 (1)を <input type="button" name="hoge" value="fuga" onclick="foo();submit();"> とすると、変更したはずのフォームデータが元に戻ってしまいます。 感覚的には テキストボックス:old→windowBでアクション起こす→テキストボックス:new→約0.5秒後→テキストボックス:old→submit という現象になります。 どこで間違っているのでしょう?
966 :
Name_Not_Found :2006/01/31(火) 13:06:02 ID:DlnG9gkm
<SCRIPT LANGUAGE="javascript" TYPE="text/javascript"> <!-- document.write("最終更新:",document.lastModified); // --> </SCRIPT> このスクリプトってユーザーが最後に更新ボタンを押した日時ってことですか? 管理人がファイルを最後にアップした日時を表示させる方法はありませんか?
>>965 windowB の方で
window.opener.document.forms[0].submit(); にしたら?
>>966 静的な html ならば
lastModified は「管理人がファイルを最後にアップした日時を表示」を返す。
サーバ側で動的に生成されたファイルでは生成された日時を返す。
一見静的な html でも
鯖側で広告が挿入されたりするとその時間になる場合もある。
この辺は鯖によって違う(かもしれない)から
実際に試してみてファイルをリクエストした時間とほぼ同じなら
そういうもんだと思ってあきらめるしかない。
これはテンプレ入れないの? JAPANESE ONLY We all write responses in Japanese in this Site. No other language does we speak in.
970 :
Name_Not_Found :2006/01/31(火) 13:44:25 ID:gUjgHyCI
>>968 965です。できました!ありがとうございます。
でもなんでwindowAでsubmitするとうまくいかないのでしょうか・・・?
実はwindowBではopenerに渡すためのフォームのインスタンスを一時的に作っていて
そのフォームに書き込んでいるだけなのでwindowBが終了した時点で元通りになるとか・・・
そんな気がしてきた
971 :
962 :2006/01/31(火) 14:29:46 ID:???
>>963 ありがとうございました。今より長くなってしまうんですね。
ではもう一つついでにすいませんがQ4見る限り[]が.と一緒になってますが
[]と認識させる方法は別にあるのでしょうか?
多分962の分もno.1がありませんとでてたのでこっちが原因ぽいです・・。
obj["p"]==obj.p
>>969 英語やドイツ語やヘンな言語面白いじゃん。ほっとこうよ。
974 :
966 :2006/01/31(火) 15:32:37 ID:DlnG9gkm
>>971 そもそも聞きたいのだけど、formにnoという名前の
部品がいくつかあってその2個目の値を取りたいとすると
form.no[1].value を参照するよな。で、アンタがやりたい
ことと上記の場合とはどうやって区別すると思ってるの?
>>970 onclick="foo();submit()" だと、foo()が呼ばれて窓Bが
開かれ始めるけど開く前にsubmit()が起きてしまうと思う。
だから窓Bの中からsubmit()すれば大丈夫になるわけさ。
すべてのできごとがアンタの脳内期待通りの順序で起きるとは
限らないことに注意すれ。
>>973 どっちでもいいが、あとでまた変なの出て来て
翻訳祭りになっても文句言うなよw
ローカルルール変更申請出してやろうと思ったら やることが早いなw
>>977 洩れは言わないよ、せいぜい20レスくらいでおさまるだろ。
20も釣られるスレってここ以外にあるだろうか?
いや、だからこのスレだとその質問にマジ回答するからね。 別にいいじゃん、質問が架空だろうと面白ければ回答したって。
>>975 そこらへんわからないので聞いていたのです。
すいませんでした。
>>982 だから「name=」で指定したものは1つの文字列だから
form.elements['...'] のように文字列として指定する
のが基本。ただ、「'abc'」みたいに普通の名前になってる
場合だけはもっと簡単にform.elements.abc とか書くことが
許される。「'no[1]'」みたいに記号が入ってたらそうは行かない。
984 :
973 :2006/02/01(水) 09:45:05 ID:???
つ〜か誰か天婦羅入れたね。 ボロボロな言われようだけど、俺の英語能力なんてあんなものorz
985 :
969 :2006/02/01(水) 09:46:00 ID:???
×973 ○969 スマゾ
みんなわかってるから書きこまないんじゃないかな
そろそろ1000とりで遊んでみてはいかがですか?
>>982-983 の話題が続いてるならもう少し放置プレーでもいいが
銀河鉄道
まだ早かったなw 10レスぐらいw
1000になった奴は機械の体が手に入ります!
992 :
Name_Not_Found :2006/02/02(木) 10:34:22 ID:hE0BuTUx
よ〜し、パパ1000取れたらLD株全力買いしちゃうぞ!!
993 :
Name_Not_Found :2006/02/02(木) 10:36:06 ID:hE0BuTUx
993
994 :
Name_Not_Found :2006/02/02(木) 10:37:07 ID:hE0BuTUx
994
995 :
Name_Not_Found :2006/02/02(木) 10:38:01 ID:hE0BuTUx
995
996 :
Name_Not_Found :2006/02/02(木) 10:38:38 ID:hE0BuTUx
996
よーし、たっくんのパパも挑戦だ
998 :
Name_Not_Found :2006/02/02(木) 13:10:52 ID:jThuNsfT
998
999 :
Name_Not_Found :2006/02/02(木) 13:11:37 ID:jThuNsfT
999
1000 :
Name_Not_Found :2006/02/02(木) 13:13:12 ID:jThuNsfT
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。