+ JavaScript の質問用スレッド vol.45 +
【質問を書く上で】 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()。
8 :
Name_Not_Found :2006/01/31(火) 17:56:48 ID:GGrnMgrE
JAPANESE ONLY We all write responses in Japanese in this Site. No other language does we speak in.
へたくそな(違和感のある)英語だな。だいたいアンタが英語で 書いてるじゃねかつーの。「I can't speak English」てか (w
>>8 はギャグだろ。はいはいワロスワロス。で質問↓
>>8 ここは日本語の掲示板です!
僕たちは外国の言葉とか読めないし書けません!
日本語が理解できないひとは他をあたってください><!!!
これでOK!
>>14 誰も英語が読めないとDOMとかの標準を読む奴が
いなくてこのスレが成り立たないだろ。矛盾してるよ。
自分が読めないからといってエラソーにすな。
おこられちゃった><
17 :
Name_Not_Found :2006/02/01(水) 17:33:29 ID:r6940dgE
下記ソースですがIE6では動作してるんですけどFirefox1.5でうまく動作しません。 調べてみたところ、「innerHTML」はFirefoxで動作したりしないとか。 代替の関数などありますでしょうか? <div id="response"></div> <script type="text/javascript"> -- 省略 -- function showResponse(originalRequest) { document.getElementById("response").innerHTML = originalRequest.responseText; } </script>
>>17 FFでinnerHTMLが動かないなんて聞いたことないよな。アンタが
勝手に略したどっかが間違ってると見たけどね。
19 :
17 :2006/02/01(水) 17:53:50 ID:???
>>18 すみません。
全部のせてみます。
「prototype.js」を使用してAjaxのテストをしています。
IEではうまく動作してるんで表示部分(innerHTML)がおかしいかなと考えてました。
<html>
<head><script type="text/javascript" src="prototype.js"></script></head>
<body>
<form name="form1" onsubmit="return false">
<input type="text" name="keyword" value="" onKeyUp="search();">
</form>
<div id="response"></div>
<script type="text/javascript">
function search() {
var url = 'keyword.php';
var keyword = $F('keyword');
var pars = 'keyword=' + encodeURIComponent(keyword);
var myAjax = new Ajax.Request(
url,
{method: 'get', parameters: pars, onComplete: showResponse}
);
}
function showResponse(originalRequest) {
document.getElementById("response").innerHTML = originalRequest.responseText;
}
</script>
</body>
</html>
>>19 type="text に指定できるイベントハンドラは、
・onBlur
・onChange
・onFocus
・onSelect
KeyDown を利用可能なオブジェクトは、
・document
・Image
・Link
・Textarea
らしいよ?
>>20 onclick="zoom();" → onclick="zoom(id);"
function zoom() → function zoom(ID)
"kakudai()" → "kakudai('" + ID + "')"
"syukusyou()" → "syukusyou('" + ID + "')"
function kakudai() → function kakudai(ID)
function syukusyou() → function syukusyou(ID)
getElementById("id_img1") → getElementById(ID) // 2箇所
>>20 引数で id を渡すようにするだけじゃない?
ぶはっ 20分も遅れてかぶった
>>19 <input type="text" name="keyword" value="" onKeyUp="search();" id="keyword">
その他、つっこみどころあるけど・・・。
>>21 おいおい(^ ^ ;)どこでそんなこと言ってんの?
>>19 だからinnerHTMLの代わりにalert()で表示してみ。
それで表示されればinnerHTMLが悪いが、表示されないなら(w
>>23 >>24 ありがとうございます。まだうまく行かないですが・・
もうちょっといじってみます。
29 :
九尾狐 ◆85KeWZMVkQ :2006/02/02(木) 23:09:46 ID:MAYZsaza
初めまして。 ハングル板で暫定看板管理人やっている九尾狐と申します。 看板の架け替えを.jsでランダム表示やっているのですが、アニメgifが表示されません。 よろしければ知恵貸していただけないでしょうか? よろしくお願いします。
中身はこんな感じです。
fileMax = 5;
//以下IMGファイル名(.jpg,.gif,.png)の指定
IMG = new Array(fileMax);
IMG[0]="f0005.jpg";
IMG[1]="f0007.jpg";
IMG[2]="f0008.gif";
IMG[3]="f0010.jpg";
IMG[4]="f0011.gif";
fileNo = Math.floor(Math.random()*fileMax);
document.write("<IMG src='
http://www.horon-bu.com/kanban/ ",IMG[fileNo],"' border=0>");
31 :
Name_Not_Found :2006/02/02(木) 23:23:30 ID:a+/szrtn
>>30 IMG = new Array("f0005.jpg","f0007.jpg","f0008.gif","f0010.jpg","f0011.gif");
document.write("<IMG src='
http://www.horon-bu.com/kanban/ "+IMG[Math.floor(Math.random()*IMG.length)]+"' border=0>");
//短いスクリプト書くくらいなら徹底的に短くしようぜ
32 :
Name_Not_Found :2006/02/02(木) 23:23:33 ID:aiBa3OrB
ありがとうございます。 今のところ、これでも動いているようですが、 IMG[4]="f0011.gif"; #これはアニメgifファイルですが、これだけ表示されません。 いろいろと試してみたのですが、ランダムでこのファイルと思われる場合だけ、 画像のリンクエラーになるようです。
>>34 document.write()の複数引数はブラウザ依存。アンタのブラウザで
だけ動いてればよく、他人はどうでもいいというのなら勝手だが。
そういうヤシは製作板に来ないで欲しいね。
>>37 IE、FIREFOX、opera,Sleipnirで動作テストしました。
39 :
Name_Not_Found :2006/02/03(金) 00:06:27 ID:2pFeq6Ih
すいません、どなたかご教授いただけますでしょうか。
今、画像ボタンを押すことで、リンク先をランダムに別窓表示するスクリプトを作っているのですが、
その別窓のアドレスバーとかステータスバーを表示させない様にして
且つ、ウインドウの大きさを縦500と横350くらいに指定して開かせたいのですが、
自分では知識不足でずっと悩んでいます。
テンプレにあった過去スレ等も読んで、もしかしてこうか!みたいな事も試したのですが
どうしても上手くいきません。
以下がスクリプトなのですが、何とかお力を貸していただけないでしょうか。。。
よろしくお願いします。
環境はWinXpのIE6.0です。windows標準搭載のメモ張で作っています。
randomurl = new Array();
randomurl[0] = "
http://www.2ch.net ";
randomurl[1] = "
http://www.goo.ne.jp ";
randomurl[2] = "
http://www.yahoo.com ";
randomurl[3] = "
http://www.yahoo.co.jp ";
randomurl[4] = "
http://www.google.co.jp ";
urlCnt = Math.floor(randomurl.length * Math.random());
document.write('<a href="'+ randomurl[urlCnt] +'" target="_blank" ><img src="../img/test.gif" width="100" height="100" border="0"></a>');
>>39 while(true)
window.status = ""
>>38 「+」で連結して1つの文字列にするなら、それは「標準通り」
だからそれが通らないブラウザは「標準を逸脱」だし、まず存在
しない。「,」で複数引数にして通らないブラウザは実在した。
昔ぶちあたったことがある。何だったかはもう忘れた。いくつ
テストしようとまだテストしてない奴がそうかも知れないしな。
標準に従うのが難しい場面ならともかく、どっちも1文字なのに
何つっぱってるんだと思うね。
>>39 「何が」分からないのか書いてないんだが。ボタンなんて
どこにあるの?
42 :
39 :2006/02/03(金) 00:21:21 ID:2pFeq6Ih
43 :
39 :2006/02/03(金) 00:22:40 ID:2pFeq6Ih
すいません。。。書き込んでしまいましたorz
>>40 >>41 ありがとうございます。
44 :
39 :2006/02/03(金) 00:25:49 ID:2pFeq6Ih
また書き込んでしまいましたorz・・・・・・・。
2chに慣れてなくて。
randomurl = new Array();
randomurl[0] = "
http://www.2ch.net ";
randomurl[1] = "
http://www.goo.ne.jp ";
randomurl[2] = "
http://www.yahoo.com ";
randomurl[3] = "
http://www.yahoo.co.jp ";
randomurl[4] = "
http://www.google.co.jp ";
urlCnt = Math.floor(randomurl.length * Math.random());
document.write('<a href="'+ randomurl[urlCnt] +'"target="blank" ><img src="../img/test.gif" width="100" height="100" border="0"></a>');
ボタンは最終行の img src="../img/test.gif" です。
よくわからない部分は
1.別窓で開いたページのアドレスバーやステータスバーの消し方
2.別窓で開いたページのサイズ指定方法
の2点です。
説明が下手ですいません。
説明下手だな
46 :
39 :2006/02/03(金) 00:35:18 ID:???
>>45 申し訳ないです。ちょっと緊張してしまって。
緊張してるな
質問です。 javascriptで\n(改行コード)を<br>に一括変換とかできますか? ブックマークレット?にしてレンタルブログで記事投稿する際に使いたいんですけれど…
49 :
39 :2006/02/03(金) 00:58:01 ID:2pFeq6Ih
なんとか今のスクリプトで完成させたいのですが、
無理ならば、リンク用の画像をJavaScriptの中に入れないで
画像をonClickとかで別窓開くようにして、その新ページの中を
開くと同時にをランダム用に作ったページにランダムに飛ばしてしまう
とかにしないと出来ないのでしょうか?
>>48 申し訳ありません。あたしにはわからないです。
53 :
39 :2006/02/03(金) 03:19:12 ID:2pFeq6Ih
>>51 >>52 深夜にも関わらず教えていただいてありがとうございます。
返事遅れてしまい申し訳ございません。
お二人からのアドバイスに基づきリンク先等読ませていただいたのですが、
私には自分のスクリプトのどこに追加していけばいいかがわかりません。。。
どの様に組合わせるとランダムでリンクさせつつ、リンク先のウインドウなどを
操作出来る様になるのでしょうか?
質問ばかりで本当に申し訳ございません。
饒舌な物乞いだな。
つか、window.openは迷惑スクリプトに分類してスルーしたほうがよくね?
>>53 アドレスバー等を消すにはwindow.open()で開く必要があるのでaタグの代わりに
<button onclick="window.open(開くURL, '_blank', '')"><img ...></button>
が生成されるようにすれば。
>>32 >>37 >>41 10年くらい前だと、document.write()で出力する際に複数の文字列を「,」で
つないでるサンプルが結構あったことを頭の片隅に入れておいてくれ。
もちろん、当時のブラウザも「標準通り」に「+」で文字列が連結できたけどな。
そんなのねえよーー(笑)
59 :
17 :2006/02/03(金) 15:29:41 ID:???
>>26 「id="keyword"」の追加でうまくいきました。
とても勉強になりました。ありがとうございます。
> その他、つっこみどころあるけど・・・。
勉強不足ですみません。
よろしければつっこんでもらえませんか?
60 :
17 :2006/02/03(金) 15:32:49 ID:???
>>27 頭がまわりませんでした。
そうやってデバックしたら原因調査ができますね。
ありがとうございます。
マウスカーソルを非表示にする方法を教えてください。 カーソルの形状を変更する方法調べたらわかったのですが カーソルを非表示にする方法がわかりません。 よろしくお願いします。
いやです。
透明にする
♪消えます、キエマス、きえます、キ・エ・マ・ス 洩れも古いなorz
難解はいかんな
.htaccessでユーザーエージェント規制してるんですが、UA偽装してアクセスする人がよくいるので、 JAVAスクリプトのnavigator.appNameでブラウザチェックした方が、 UA偽装に対して有効だと聞いたんだけど色んな解説サイトで説明を見ると HTMLページに記述する方法ばかりなんです。 HTMLへのアクセスじゃなく、特定の階層にまとめて置いてある画像や動画ファイルのみに、 navigator.appNameを適応させて、そこのファイルにアクセスしたら、.htaccessのように 別のHTMLに飛ばしたりするには、どうしたらいいですか?
>>66 バイナリの画像や動画ファイルにどうやってJavaScriptを仕込むんだ?
だからHTMLの話ばっかりなんだろ。アンタがやりたいことはCGIでやる
しかないな。
>>59 >document.getElementById("response")
↓
$("response") //(便利)
>var keyword = $F('keyword');
>var pars = 'keyword=' + encodeURIComponent(keyword);
↓
var pars = Form.serialize("form1");//(これも便利)
<form>もid使う
あとはEvent.observe()使う&
<body>内じゃなくて<head>内に書いたほうが綺麗になるよ。
(ホントは自分的にはHTMLファイルには一切JS書きたくないけど)
70 :
Name_Not_Found :2006/02/03(金) 23:19:09 ID:qegAIbe8
チェックボックスを使ってユーザーがリンク先を選べるようにしたいのですが、Java scriptでできますでしょうか? 以下のような感じです。 □リンク1 □リンク2 □リンク3 OK (OKボタンでリンク先にジャンプ+複数選択の場合はそれぞれ別々のニューウィンドウで開くようにしたいです)
>>70 できません。Java scriptスレを探して移動してください。
>>69 ここで書くにあたって、
一般的な書き方をして、意図の伝わりやすさを最優先した、
という場合が考えられなくもない。
つまり、元ファイルでも $ を使っていないとは断定できない。
というか、こんなかったるいもの使う気にはならないというのが本音じゃないかな。
> function $() {
> var elements = new Array();
> for (var i = 0; i < arguments.length; i++) {
> var element = arguments[i];
> if (typeof element == 'string')
> element = document.getElementById(element);
> if (arguments.length == 1)
> return element;
> elements.push(element);
> }
> return elements;
>}
また、JSを書く際における作法というものを言い出せば、
$ という文字を使用することは決してほめられることではないだろう。
RegExp.$1 RegExp.$2 RegExp.$3
>>73 おいおい、いまどきそんなカビの生えた機能使わないって。
グローバル変数だから危うい。まさに「避けた方がよい」。
過去ログ集でどうやってるか調べればすぐわかるのに。
>>70 ちなみにJavaScriptでだったら普通にできるので。概要は
OKボタンが押されたらチェックボックスの状態を順に見て
チェックされているものに対応するURLを集める。集まった
ものが1個ならlocation.hrefに代入してそのページを表示。
2個以上ならwindow.open()を繰り返し読んで窓を開く。以上。
(全部書けというのは断る。それぞれの書き方は勉強しろ。
どうしても分からない部分はまた質問してくれ。)
75 :
Name_Not_Found :2006/02/04(土) 10:20:39 ID:pahA72aP
77 :
69 :2006/02/04(土) 10:50:28 ID:???
>>72 なるほど。(´・ω・`)
ちなみにver1.5では $$ 登場予定らしいよ。
78 :
17 :2006/02/04(土) 11:17:28 ID:???
>>69 > $("response") //(便利)
こんな書き方できたんですね。すごい。
> var pars = Form.serialize("form1");
これも便利ですね。
「prototype.js」を読んでみたんですけど
複数個のパラメータを渡す必要がある時もこれ一行でOKで
おまけにURIエンコードもしてくれという感じであってますか?
> Event.observe
これも便利そうなものですね。
どう使っていいのかわからないですけど^^;
scriptは読んで頂きやすいようにベタ書きしました。
私も外部からインクルードが好きです。
>>72 フォローありがとうございます。
79 :
17 :2006/02/04(土) 11:22:03 ID:???
アドバイス頂いて修正したソースものせておきます。 ソースの改行、インデントなどは修正しています。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function search() { var url = 'keyword.php'; var pars = Form.serialize("form1"); var myAjax = new Ajax.Request( url,{method: 'get', parameters: pars, onComplete: showResponse}); } function showResponse(originalRequest) { $("response").innerHTML = originalRequest.responseText; } </script> </head> <body> <form name="form1" onsubmit="return false"> <input type="text" name="keyword" value="" onKeyUp="search();"> </form> <div id="response"></div> </body> </html>
80 :
Name_Not_Found :2006/02/04(土) 13:28:27 ID:0EK1DWBS
<html> <head> <script language="JavaScript"> <!-- function Name() { str = new Array("あ","い"...); switch(document.ruu.words.value) { case str[0]:location.href = "1.html#001"; break; case str[1]:location.href = "1.html#002"; break; ・ ・ ・ default:alert("うった文章に誤りがあります。"); } } //--> </script> </head> <body> <form name="ruu" action="none"> <input type="text" size="40" name="words" style="border: solid 1px #0000ff;"> <input type="button" value="検索" onclick="Name()" style="border: solid 1px #000000; color: #ff0000;"> </form> </body> </html> このような、簡易的な検索を作ったときに、検索ボタンを直接おせば リンク先に移動できるのですが、文章をうった後にEnterキーでも リンク先に飛ぶようにするには、どうしたらいいでしょうか? 乱文で分かりにくいと思いますが、是非お願いします。
type="submit" onclick または onsubmit で Name() の返り値を取るように変更
>>80 Enterを検出するサンプル。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(e) {
if(e.keyCode == 13) { alert('enter key'); return false; }
else return true;
}
</script>
</head><body><form name="f0" action="#"><p>
<input type="text" name="t0" onkeydown="test(event)">
<button type="submit">Test</button></p></form></body></html>
Webブラウザを動作させているクライアントのOS(Windows、Mac、UNIX)を判定して画面に表示するのと、マウスポインタをMENUのどれかに重ねると、文字が大きくなったり、文字色や背景が変わったりするもの。 これを誰かやってみてください
>>80 <form name="ruu" action="none" onSubmit="Name();return false;">
85 :
Name_Not_Found :2006/02/04(土) 14:30:45 ID:5NhF2nVr
86 :
Name_Not_Found :2006/02/04(土) 15:03:36 ID:W3DZm5NX
>>84 ありがとうございます。たいへん悩んでいたので本当に
ためになりました。もっと、JavaScriptの理解を深めるよう
努力していきたいと思います。
87>> 申し訳ございませんでした<m(__)m> 自分でもちょっとやったのでこのあとどこにSTYLE入れるか教えてください。 <SCRIPT Language="JavaScript"> <!-- function OScheck() { var theAgent = navigator.userAgent; if (theAgent.indexOf("Mac") >= 0) return "MacOS"; if (theAgent.indexOf("Win") >= 0) return "Windows95/98/NT"; return "UNIX"; } // --> </SCRIPT> </HEAD> <BODY bgColor="#FFffFF"> <CENTER> <H2>OSは<SCRIPT Language="JavaScript"> <!-- document.write(OScheck()); // --> </SCRIPT> です。</H2> </BODY> </HTML> ここに<FONT size="5"> <FONT color="#ff0000"> <FONT onmouseover="this.color='#ff0000'" onmouseout="this.color='0000ff'" face="Arial"> <STRONG><I>マウスが乗ると文字色変更</I></STRONG> </FONT></FONT></FONT> を入れるにはどこにいれればいいでしょうか?。゜゜(□`。)゜。
>>88 その滅茶苦茶なHTMLをまず直せ。FONTは非推奨だから。
色を変えたい範囲の前に
<span style="font-size:large; color:#ff0000"
onmouseover="this.style.color='#ff0000'"
onmouseout="this.style.color='#0000ff'">
そして色を変えたい範囲の後に
</span>
を入れるんでしょ。
まあ、非推進のタグでもCSS使うときとかに使うよな
うん。たしかにそうだが、そんなメチャクチャな書き方もあるんだなあ。 勉強になる。
推進じゃない、推奨だ!! そして非推奨なもん使う必要は普通ないぞ。
このスレってWeb制作者どれくらい居るわけ?
いくらかもいません
95 :
Name_Not_Found :2006/02/04(土) 22:42:17 ID:5NhF2nVr
<SCRIPT TYPE="text/javascript">
<!--
var background_out = "#E4E4E4"; //マウスが外れた時の背景色
var background_over = "#FFFFFF"; //マウスが乗った時の背景色
//メニュータイトルと対応する飛び先のアドレスの数は必ず一緒にして下さい。
//ポップアップに表示されるメニュータイトル
var menu_name = new Array("CSS", "JavaScript", "DHTML", "アクセス向上", "色について", "HTML");
//ポップアップでメニュータイトルに対応する飛び先のアドレス
var address = new Array("
http://www5e.biglobe.ne.jp/~access_r/hp/css/ ",
"
http://www5e.biglobe.ne.jp/~access_r/hp/javascript/ ",
"
http://www5e.biglobe.ne.jp/~access_r/hp/dhtml/ ",
"
http://www5e.biglobe.ne.jp/~access_r/hp/access/ ",
"
http://www5e.biglobe.ne.jp/~access_r/hp/else/color.html ",
"
http://www5e.biglobe.ne.jp/~access_r/hp/html/ ");
if(window.createPopup){
var menu_status = ""; //メニュー内容
var oPopup = window.createPopup(); //ポップアップオブジェクト作成
menu_status = '<DIV STYLE="border:1px solid black; background:' + background_out + ';">';
//メニュー内容作成
for(count = 0; count < menu_name.length; count++){
menu_status += ('<DIV ' +
'onmouseover="this.style.background=\'' + background_over + '\';" ' +
'onmouseout="this.style.background=\'' + background_out + '\';" ' +
'onClick="parent.location.href=\'' + address[count] + '\';" ' +
'STYLE="font-size:10px; height:11px; padding:3px; cursor:hand; border-bottom:1px outset gray; border-right:1px outset gray;">' +
menu_name[count] + '</DIV>');
}
menu_status += '</DIV>';
}
続く
96 :
Name_Not_Found :2006/02/04(土) 22:42:56 ID:+PicB9z5
質問です。 contentEditableを設定したエリアでの改行は<p>とおなじですが、 これを、<br>にするにはどうすればよいのでしょうか。
97 :
Name_Not_Found :2006/02/04(土) 22:43:44 ID:5NhF2nVr
続き function ContextMenu(){ if(window.createPopup){ var topper = event.clientX + 10; //ポップアップを表示するX座標を取得 var lefter = event.clientY + 10; //ポップアップを表示するY座標を取得 oPopup.document.body.innerHTML = menu_status; //ポップアップに表示する内容を設定 //ポップアップを表示するメソッドをcall oPopup.show(topper, lefter, 200, (17 * menu_name.length) + menu_name.length + 2, document.body); return(false); } } //--> </SCRIPT> <A HREF="../../index.html" onMouseOver="ContextMenu();">ポップアップメニュー</A> このスクリプトを2つ設置したいんだけど、どの変数・名称を変えればいいの?
createPopup でやる気をなくした 他のブラウザにも対応できるスクリプトを探した方がいいかと
>>95 menu_name, address, menu_status を一組にまとめて、これを二組用意する。
一つのoPopup.document.bodyの内容を書き換えて使いまわす。
関数ContextMenuにmenu_status, menu_nameという名前の2引数を持たせれば、変更は少なくて済む。
>>96 function ps2brs(section) {
var ps = section.getElementsByTagName('p');
while (ps.length) p2br(ps.item(0));
}
function p2br(p) {
p.appendChild(document.createElement('br'));
p.removeNode(false);
}
いろいろ調べたのですが、できないので質問させてください。 データバインドでテキストファイルから配列を作りたいのですが、 <object id="ID1" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"> <param name="DataURL" value="data.txt"> </object> <span id=hidden1 style=display:none datasrc=#ID1 datafld=text></span> <script language=javascript> var rs = ID1.recordset; var Test = new Array(); for(var i = 0; i < ID1.recordset.RecordCount; i++){ Test[i]=rs.fields(0); rs.MoveNext; } document.write(Test); </script> -------data.txt------ data0 data1 data2 --------------------- こんな感じで作ってみたのですが、無理でした。 どうすれば、うまくいくでしょうか。
input textに対してのみスタイルを設定したい場合はどのようにすればいいのでしょうか? input {}でやるとinput type=submitのボタンにまで適用されてしまいます。 あとスタイルでonkeyup〜とかのスクリプトを埋め込みたいのですがどうしたらいいのでしょうか? 不躾で2つもすみません。
>>103 1つ目の方はJSの質問じゃないような気がするけど、単にスタイルを適用したい部分にclass=をつければいいんでないか。
2つ目の方は質問の意味がわかりにくいけど、onkeyup="this.style.〜=〜"とかonkeyup="this.className=〜"とか書けばいいんでないか。
>>103-104 submitボタンを<button type="submit">...</button>にするとかも。
2番目の質問はほんと意味が分からん。
input[type="text"]でがまんしなさい IEが7になったら対応してくれるから
107 :
103 :2006/02/06(月) 10:43:09 ID:???
わかりにくくてすみませんでした。 2番目はonkeyupとかの動作もクラスに埋めこめれないかということなんですが 例えば input {onkeyup=〜} とかで指定できたら <input type=text onkeyup〜 ←ここの部分も個々に記述しなくても良くなるので・・ ってこれスレ違いですかね??CSS板いった方がいいですか? いろいろすみません。
>>107 全部CSSでやらせたいと思うのなら当然CSSスレへ逝け。
いや無理なんじゃないか? あーでもIEのexpressionならできるのかなぁ 俺はまったく使ったことないからわかんないけど
ごめん今の発言取り消して 知らないのに中途半端なこと言うもんじゃないな expressionじゃなくてDynamic Propertiesだったし
111 :
IEマニア :2006/02/06(月) 18:19:54 ID:???
便所でつぶやき behavior
112 :
IEマニア :2006/02/06(月) 18:32:47 ID:NxlreVw1
お風呂でつぶやき おやおや 向こうで叩かれてもめげるなよw
シャワでつぶやき あげスマソ
Web制作板なんだから可能なかぎりクロスブラウザで。 IE専はできるだけ避ける。
自分で調べて試してみたのですが、上手くいかない(新しく開かない)ので、質問させてください。 自分のサイトにきたら、別ウインドウを出す(サイズ指定して、画面中央表示)っていうのを したいのです。 自分で参考にして書いたソースは、 <script language="javascript"> <!-- function new Win(){ w=screen.availWidth/3; //有効な幅の1/3を取得 h=screen.availHeight/3; //有効な高さの1/3を取得 window.open("top.html", "newWin1", "width=800, height=550, scrollbars=no, titlebar=yes, resizable=no, menubar=no, status=yes, toolbar=no"); newWin1.moveTo(w,h); //中央に移動 } //--> </script> です。 どうかご指導お願いします。
>>115 エラー出てないよね?出てるのならそれを書かない奴は質問するなと。
(1)関数を定義だけして呼び出している箇所がないから開かないんでしょ。
最後に「Win();」とか入れれば?
(2)ウィンドウ名は変数名になるわけではない。「w = window.open(...)」
のようにして自分で変数に入れて「w.moveTo(...);」で動かす。
(3)どう見ても窓の幅は「800」高さは「550」に固定にしか見えないんだけど…
function new Win(){ function new Win(){ function new Win(){
あらー絶対エラー出てるじゃん。エラーがチェックできない 奴は2度とくるな。
基本がダメダメじゃん テトリスだな
printで印刷ダイアログはだせると思うのですが 印刷プレビューをだす関数とかってないですかね??
123 :
Name_Not_Found :2006/02/07(火) 20:26:38 ID:qiJZ3eB7
すみません、htmlでJavaスクリプトを使って ローカルのバッチファイルを起動させたいのですが、どうすればよいでしょうか? PCはWindowsOSです。 ネットで調べたところ、WSHというものを使い <script language="jscript"> wshshell=new ActiveXObject("WScript.Shell") wshshell.run("〜.bat p1 p2") </script> とやれば出来ると書いてあったのですが、 上記のJavaスクリプトを起動させる方法がわかりません。 お手数ですが、お教え頂ければと思います。
WSHスレへ逝けば?
>>122 二日酔いの俺が吐くから安心汁 ゲボ
ブックマークレットはスレ違いになりますか?
おk
ブックマークレットの専用スレがあれば、そちらへ。
専用スレは検索したのですが、無かったみたいなので、質問させていただきます。
http://www.abcde.com/fghijk/xxxxx/ ←開いてるページ
http//xxxx.abc.com/xxxx/fghijk/←開きたいページ
このようなブックマークレット(これは例ですが)を作りたいのですが、ヒントをください。
自分はjavascriptの経験が0なのですが、このようなブックマークレットを作ってみたいと思い、
質問しました。
仕事で使うとかではなく、これだけを作りたいので、全部を勉強するのおっくうで…。
>>129 自力でやる気がない人は手取り足取りスレに行ってください
それから質問の内容がさっぱりです
>>130 スレ違い申し訳ないです。説明も下手ですみません。
該当スレの方に再質問しにいきます。ありがとうございました。
>>129 この程度のbookmarkletなら専用スレ逝かなくてもホレ。
javascript:var a=location.href.match(/
ttp:\/\/www\. (.*)\/([^\/]+)\/([^\/]+)\/$/);if(a)location.href='
http:// '+a[3]+'.'+a[1]+'/'+a[3]+'/'+a[2]+'/';void(0)
別にいいじゃん、このサンプルからどうにでも直せるでしょ。
ブックマークレットで衝突回避不可能な変数を勝手に作っちゃまずいのでは。
if (location.href.match(/^(
http:\/\/ )www([^\/]+\/)([^\/]+\/)(([^\/]+)\/)$/))
location.href = RegExp.$1.concat(RegExp.$5, RegExp.$2, RegExp.$4, RegExp.$3);
>>137 RegExp.$1を使うくらいなら
function(){var a = ...}();void(0);
とすればよい。変数いくつでも使えるので汎用性もある。
もっと過激なのはこうだな。
function(a){if(a)location.href=...}(location.href.match(...));void(0);
139 :
Name_Not_Found :2006/02/08(水) 17:17:28 ID:jvsFAZqU
JavaScriptで、ブラウザ関係の質問です。 internet Explorer5.5、6.0およびsafari以外のブラウザに対して 「推奨ブラウザではありません」と表示させるにはどう記述すればいいでしょうか。
>>139 そんなアホなブラウザ限定やめなよ。自分がスキルゼロなのを告白
してるようなもんだぞ。
>>139 そいつらかどうか調べて、innerHtmlとか。
>>141 なんでそうなるわけ。document.write()で十分じゃん。
>>138 (function () { })( ) のようにしないと、宣言と解釈されてしまう実装あり。
( ) が省略できるのは、= の右側など、式であることがはっきり分かる場合。
>>139 WinIE は、条件コンパイル。
読み込み時に一度処理されるだけだから、これ以上速いものはない。
または、typeof document.compatMode == 'string' とか。
Safariは、0 <= navigator.userAgent.indexOf('AppleWebKit') とか。
質問失礼します。
当方イラストサイトを作成中です。
現在はフレームの左にメニュー、右に絵を表示という形をとっています。
作品数が増えてきたため、ツリー式メニューを利用しようと考えています。
現在、ツリー式メニューを同一ページに複数設置出来たのは良いのですが、
そのリンクをクリックしてもtarget指定先(フレームの右)に表示されません。
いろんなサイトで調べてみたのですが、サイトによって細かいところが違ううえに
やはり表示されませんでした。
おかしい箇所、足りない記述等ありましたらご指摘お願いします。
ブラウザはIE6です。
http://irohamomijiaozora.web.fc2.com/frame.htm …それでチェックしていただきたくてWEBにアップしてみたところ、正常に表示されました…
なぜオフラインで作業していると正常に表示されないのでしょうか。
WEBで正常に動くならそれで良い気もするのですが
何か気持ち悪いのでお答え下されば幸いです。
訳の分からない書き込みになってしまいすいません。
宜しくお願いします。
ローカルファイルとWeb経由とではセキュリティ制約の扱いが 変わる。これみたいにフレームの片側で別サイトのを表示させ ようとかするのなら、ローカルからだと動かなかったかも 知れない。
初めまして。質問なのですが、 document.write("・・・");でMETAタグの記述は出力できますでしょうか。 イラスト系サーチエンジン用のMETAを出力できたらと思っています。 HTML <head><title>・・・</title><META 省略> <script type="text/javascript"> <!-- chieri(); // --> </script> <script type="text/javascript" src="test.js"></script> ・・・ </head> 外部ファイル function chieri(){ document.open(); ・・・ document.write("<META NAME='chieri-update' CONTENT='" + 時間変数+ "'>"); ・・・(他2つ似たような記述 document.close(); } ご回答よろしくお願いいたします。
151 :
Name_Not_Found :2006/02/09(木) 13:39:41 ID:6yb0PHrd
>>150 もちろん出力は可能だけど、で、やってみてどうだったの?
使いモノになった?
>>151 回答ありがとうございます。できますか!
本当は「HEADが書けるか」だけお聞きして、できるようであれば
実際に使ってみて(日付を今日にしてHEADを更新、ロボットの巡回を待つ)、
イラストサイトの更新サイト一覧に表示されるかテストすることにしていました。
ロボットが来るまで待たないといけないので、
使い物になるかはもう少し待たないと結果が出ないです。
>>147 質問とは関係ないところですまんが、メニューのサブ項目は初期状態で
展開しておいたほうがいいよ。で、メニューページのonLoadでたたむ。
初期状態でたたんであると、スクリプトを実行しない環境でサブ項目に
アクセスできなくなっちゃうよ。
>>150 それ、そのサーチエンジンのクローラ(サーチボット)がスクリプトを解釈して
くれないと意味無くない? まずはそのサーチエンジンにそこから問い合わせる
のが先じゃないかと。
>>153 回答ありがとうございます。そしてorz
そうでした・・・クローラがとりにくるタイプなのでこれじゃ意味ないですね・・・
本当にありがとうございました。
JSに更新内容まとめてHTMLいじらないようにしたかったのですが、この仕様だけ無くします。
>>149 テンプレ中のECMAの和訳はそのページのリンクにあるヤシだけどね。
そうだね、次回テンプレでこのページ入れようか。
156 :
Name_Not_Found :2006/02/09(木) 17:45:09 ID:qRuQKAw0
質問失礼します。 ページにフレームを使っていて、メニュー(f1)とボディ(f2)の2つに分け、 さらにその中に一つずつインラインフレームを置いてるのですが、 ボディのiframe(f3)のリンクをクリックすると、 メニューのiframe(f4)が変わるようにするにはどうしたらよいのでしょうか。 f3内で、 [外部JS] function aaa(){ parent.frames['f4'].location.href="./***/aaa.html"; } [HTML] <a href="JavaScript:aaa()">リンク</a> のようにしているのですが、クリックしても何も変わってくれません。 ご回答宜しくお願い致します。
157 :
156 :2006/02/09(木) 17:55:48 ID:???
>>156-157 iframeのWindowオブジェクトを取得する例は過去ログ調べれば
あるよ。
×<a href="JavaScript:aaa()">リンク</a> ○<a href="javascript:aaa()">リンク</a>
160 :
156 :2006/02/09(木) 20:36:29 ID:???
お返事ありがとうございます。
>>158 いろいろ調べてみましたが、結局、同一ページにiframeを2つ置くことで解決しました。
何日間も悩んでたのがうそみたいにすんなりとw
>>159 確かにそうですよね。ご指摘どおり直しました。ありがとうございます。
<a href="#" onclick="aaa();return false">リンク</a> のほうが正しい。 javascript:〜は非公式。
>>161 そうなんですか!?
やってみたら、確かにそのタグでも動きました。
こちらのほうが、不具合が少ないのでしょうか・・・。
それなら大変だけど、全ページ書き直そうと思います。
163 :
161 :2006/02/09(木) 21:51:24 ID:???
aaa()の最後にreturn falseを追加すれば <a href="#" onclick="aaa()">リンク</a> でも同じ動作に。
>>163 そっちのほうがすっきりしていいですね。
早速直すことにします。
詳しく教えてくださってありがとうございました。
parent.parent.frames['f1'].frames['f4'].location.href=
['f1'] が新手の毒男に見えた
161を信用してはいけません
>>159 アホか。文法上はどちらもラベルに過ぎない。自動で作られる匿名関数内の。
>>163-164 アホか。HTMLのイベント属性は、自動で作られる匿名関数内に書いているわけだから、
onclick="return aaa()"
170 :
156 :2006/02/10(金) 03:16:46 ID:???
サイトいじってたらこんな時間になっちゃいました。
見たら書き込みが増えていたので、寝る前に。
>>165 解決なんて言っておきながら、いじってるといろいろ不都合な点が出てきて。
もうパンク状態です。
>>166 それで明日やってみます。
>>169 全部
>>163 で書き直してしまいましたが、一番いいので作りたいので、
こうなったらトコトン直すつもりです。
これまた明日、それに直します。
171 :
Name_Not_Found :2006/02/10(金) 03:29:54 ID:FJ9NeM37
>>170 人信じすぎじゃね?オレエレ詐欺にひっかかるタイプw
>>171 人を信じて何がわるいか
オレにはわかんらんよ。
>147です。 >148さん そうだったんですか! それではWebでコソーリ動作確認してからうpすることにします。 回答ありがとうございました! >153さん なるほど、そうですね。 申し訳ありませんが、初期状態で開いておくためは どんな記述をすれば良いのでしょうか?
174 :
Name_Not_Found :2006/02/10(金) 10:17:25 ID:LI/VXlyO
単にクリックで文字を表示させるように <span onmouseover="document.all.item('text1').style.visibility='visible'"> を使いたいのですが、 'text1'と'visible'の ’’(アポストロフィー?)が前後の文章に使われていて、使えません。 ''の代わりになるものは""以外に何かあるのでしょうか? もしくは検索でのググるようの単語を教えてくださいorz (括弧とかで調べてみたのですがわからなかったです)
175 :
153 :2006/02/10(金) 17:22:07 ID:???
>>173 各メニューのスタイル指定で display:none ってなってるのをはずせば OK。
で、onLoad ハンドラで
document.getElementById("treeMenu1").style.display = "none";
document.getElementById("treeMenu2").style.display = "none";
(以下メニューの数だけ繰り返し)
ってやって全部たためばいい。
>>173 document.write('<style type="text/css" media="screen, projection">',
'#treeMenu1, #treeMenu2, #treeMenu3 {display: none;}',
'<\/style>');
>>175 JS に onLoad はないが、onload ならある。
HTML は大文字小文字を区別しないが、DTDでは小文字で定義してある。
>>176 それは畳み方の説明で、173の質問(開いておくのはどうするか)の
答えになってない。
179 :
Name_Not_Found :2006/02/10(金) 22:23:09 ID:fz8VPOSF
質問です。 トグルスイッチを1行スクリプトで作ろうとして、 <a href="#" onclick="javascript:n=1;if(n){alert('Good');n=0}else{alert('Bad')}"> のようにしましたが、n=1に戻って来る時点で切り替わりません。 どうかけばよいでしょうか。
>>179 <html>
<body>
<a href='#' onclick='window.n=(window.n==1)?0:1;if(n){alert("Good");}else{alert("Bad");}'>click</a>
</body>
</html>
181 :
179 :2006/02/10(金) 23:04:13 ID:???
>>180 さん
ありがとうございました。なるほどと感心しきりです。
<a href="#A" name="A" onclick="javascript:void( n=!n; alert( n ? "A" : "B" ); );return false;">
>>182 javascript: て書くの流行ってるの?
>>183 どう見ても id が全部一緒です
本当にありがとうございました
>184 …orz 本当にありがとうございました 本気で
186 :
Name_Not_Found :2006/02/11(土) 01:44:13 ID:8wbd1j9b
javascriptファイルから別のjavascriptファイルを呼ぶ方法ってりますか?
188 :
Name_Not_Found :2006/02/11(土) 17:45:47 ID:40uhc7/h
質問です。
ページを読み込んだときにCGIから時刻を送って来るのですが、
表示時間は刻々と変化しません。CGIからの表示画像は
<img id="clock" src="dummy.gif">
という画像に表示することにし、スクリプトを
onload=function TimeGet(){
document.images['tc'].src="
http://www.blabla/cgi-bin/.... ";
setTimeout('TimeGet()',10000)
}
しかし、これで画像の分表示の部分が変化してくれません。
表示時刻は「12:34」のようになります。
アドバイスお願いいたします。
189 :
188 :2006/02/11(土) 17:48:10 ID:40uhc7/h
>>188 ×document.images['tc'].src
○document.images['clock'].src
すいません。
>>188-189 同じsrcを入れ直してもダメじゃないの?URLの最後を
「...?" + Math.random()」とかしてみてはどうかな。
191 :
186 :2006/02/11(土) 18:34:07 ID:8wbd1j9b
>>187 えと、1000行位になってるんですけど・・・
>191 標準的にはJSファイル上ではないでしょ ん?自作ライブラリでも使ってるんか? 動的に読み込めばいいんでないの? ・適時フレームで読ませるとか(フレームを同期しないとな) ・XMLHTTPRequestでeval()とか ・あとなんかある?w
>>191-192 過去スレを読めば「script要素のsrc属性を設定」という一番
普通のワザがすぐ見つかると思うけど。
194 :
192 :2006/02/11(土) 19:23:14 ID:lN7RqRYL
>193 ああ、それが本道だね ド忘れw つーか動的解釈ってのは 読み込みの保証を考えたら Web上ではあんまやりたくない技だけどね
195 :
153 :2006/02/11(土) 20:06:27 ID:???
>>183 ID が全部同じ……、というのは 184 さんの指摘で解決してるね。
またまたスクリプトとは関係ないところで悪いんだけど、
マウスカーソルを変えるのにスクリプト使う必要は無いよ。
スタイル指定で cursor:pointer; ってしておけばいい。
今回の例だと span エレメントを
<span id="p1" onclick="Node_Click('c1')" style="cursor:pointer;"><B>電車男</b></span>
とすれば OK。
脇にそれてばっかりでスマン。
196 :
192 :2006/02/11(土) 21:17:11 ID:???
>>191 ま、動的と言うよりは単純に
構造化プログラミング的に共有ライブラリの組み方工夫でどうじゃろ
<script type="text/javascript" src="Lib01.js"></script>
<script type="text/javascript" src="Lib02.js"></script>
…
複数に分けてやれば各ドキュメントに必要なライブラリだけで済むよね
ま、どこまで小分けできるかは内容次第かなぁ
1000行ぐらいならキャッシュを期待して1発読みでいいんじゃないかな
そんなのは分かってんだよ?www
じゃこれでバイバイw
197 :
Name_Not_Found :2006/02/12(日) 14:37:54 ID:8ZyNAJ5N
初心者の質問ですいません。 new Arrayで作成した配列を引き出すときに function EXIT(No) { exit0.innerTEXT = Ex[No][0]; exit0.innerTEXT = Ex[No][1]; exit0.innerTEXT = Ex[No][2]; } Ex = new Array(); Ex[0] = new Array("Ex1","Ex1-1","Ex1-2"); Ex[1] = new Array("Ex2","Ex2-1","Ex2-2"); Ex[2] = new Array("Ex3","Ex3-1","Ex3-2"); ・・・・・ 上記のようなスクリプトを組んで配列から引き出そうとしているのですがうまく作動してくれません。 外部からファイルを読み込むようにしてあるのですがどうでしょうか?
>>197 意味不明だな。「引き出し」だったら洩れのうちの箪笥にもあるが。
何をどうしたいのか分かるように説明できたら考えてみるよ。
ヤマカンで言うなら、表示したい箇所にID振って
document.getElementById('exit0').innerHTML = Ex[No].join();
xsltでhtmlとして表示され、部分ごとに分割されたサイトを作成しているのですが menu.xslによって表示されているメニュー部分のとあるリンク(仮に0501とする) をクリックするとその0501という文字列(OR数字)をコンテンツ表示部分のmain.xslに変数として移し、 main.xsl側で文字列(数字)に応じた変換結果を得たいのですが、javascriptで可能でしょうか?
>>199 それはJavaScriptの問題ではなく、XSL Transformの知識が足りない事による勘違いだと思う。
xslファイルにjsから情報を送るのは無理、というか処理のフェーズが違う。
>>199 可能。.xslふぁいるはXMLだから、DOM操作で変更すればよい。
>>200 −202
素早い返答ありがとうございます御三方。
>>200 単純にjsからxsltに送る事ができるかなと思っていたので確かに知識不足でした。
>>201 感覚的に言えばDHTMLのようにxslを書き換えてしまえということで良いですか?
>>202 一般的なjsの使用法通りクライアント側での実行(websiteとして)を考えているので、
ブラウザ毎の違いは覚悟しています。
リンク先参考になります。
質問から質問を派生させるのはあまりよろしくは無いと思いますが、
jsとxmlの親和性ってどの程度(主観・客観問わず)なのでしょうか?
よく扱うデータ形式によって適したスクリプト言語(プログラム言語)があるという話は目にしますが。
>>203 書き換えるでOKだが、あくまでクライアントのキャッシュ上だということは分かってるよね?
>>203 適しているかどうかはともかく、W3Cに準拠しているかどうかについては、
JavaScriptとJScriptはずば抜けて高い。
206 :
Name_Not_Found :2006/02/13(月) 13:10:47 ID:iDHR4KG0
JavaScriptが有効であったらForm->Submitを有効に もしJavaScriptが無効であったらForm->Submitを無効にさせたいのですが どのように記述すればいいのか全く解りません。。(;;) 投稿フォームを作っていて、Javascriptで連続した投稿を制限しているのですが、 JavaScriptを無効にされてたら意味がないので、有効ならSubmitを表示、無効ならSubmitを表示させないで有効にしてもらう というようにしたいのです。 よろしくお願いします。
document.write() で submit ボタンを書き出すのが一番簡単。 でも JavaScript on を強要するのはちょっとどうかな。
ありがとうございます。 ただ、連続投稿の制限をしたいので、、 やはりJavaScriptでの制限 && JavaScriptのON強制はNGですかね?
連投規制とかデータの整合性のチェックとかは 本来、鯖側のアプリケーションが備えているべき機能。 JavaScript はそれを補ったり、使いやすい UI を提供するのが役目。 補うという点で JS で submit ボタンを disable にするとかはアリかとは思うけど。
なるほど。 ただ、ブラウザで高速にEnterを押されて規制しているのに何度も投票されてしまうんです。。 なのでJavaScriptで対処しようかと。。
連投は鯖側の負荷が上がるのでクライアント側で規制さす のはアリと思うよ。document.write()でsubmtiを書くのが 洩れも簡単でいいと思う。または最初disabled trueにして おいてJSでfalseに変更とかも。 UIとしては、ただ単にdisableするより、ただのボタンに しておいて押すと普通はすぐsubmitするが連投だと一定時間 カウントダウンしてからsubmit、とかだとイライラしにくくて いいかもね。
CGIでsleep()を使っても、Formの送信が高速に行われてると連投規制が出てしまう前に投稿が完了してしまうようなので、是非それでやってみようと思います。 ありがとうございました。
213 :
Name_Not_Found :2006/02/13(月) 22:15:33 ID:uw4rmBkw
よくわからんのでおまえらの知恵を貸してくれ。 ブログにバナー式のアクセス解析を埋め込んでるんだけど、 ある人からのコメントの書き込みがあって、ブログの方からコメントのログを見ると、 IPがわかるよね。でもアクセス解析の方には、その時間にその人のIPはないの。 これはどういうことなの?相手側はjavaスクリプトをOFFにしているんだろうか??
画像 OFF にしてるとか直接コメント叩いてるとか まぁスレ違いだ他池
iframeタグを使わずにjavascriptでflashを表示させるには、 どうすればいいのでしょうか。
>>215 ふつーiframeなんか使わんだろ。embedをdocument.write()
で書けばいいだけだし。
ソース例を公開してくれているサイトとか、 ありませんか?
iframeタグ禁止のサイトだったので、 javascriptで何とかならないかと思ったんですけど。 初心者スレで聞いた方がいいですか?
219 :
Name_Not_Found :2006/02/14(火) 00:39:07 ID:i+lDyDfD
そうでもない
htmlでjavascriptをロードするときに引数param1を渡して、 <script src="hoge.js?param1=helloWorld" type="text/javascript"></script> helloWorldを表示させるにはどのようなスクリプトを書けばよいのでしょうか。 よろしくお願いいたします。
setTimeoutで設定したタイマーを一定の条件ですぐに実行したいのですが timerid等を使ってsetTimeoutの時間を変える事などって出来ますか?
>>221 できない。timeridを使ってキャンセルし、動作は別途 呼び出す。
>>220 scriptタグの「?」の後ろを取るのは面倒だよ。まずそのscriptに
id振って「document.getElementById('ID名').src」でsrc全体を
取り出し、あとは文字列操作で「?」の後ろをとる。以上があらすじ。
あとは自分で勉強すれ。
>>218 日本語が読めないのか。Flash使うのにiframeなんて不要だろ。
iframeタグ禁止だろうと関係ないじゃん。初心者スレ逝った方が
いいと洩れは思う。
>>217 embedをJSで書き出すのは過去スレのどっかに複数あったな。
223 :
Name_Not_Found :2006/02/14(火) 09:06:06 ID:u3NiyzMN
リンクが押されたら0.5秒間waitさせたいのですが、どのように記述すればいいですか?
>>220 var src, q;
//IE
src = document.scripts.item(document.scripts.length - 1).src
//W3C
src = document.getElementsByTagName('script').item(
document.getElementsByTagName('script').length - 1).src
//RFC3986
if (src.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/))
q = RegExp.$7;
>>224 標準にこだわってるわりにはECMA標準にない$nとか使うのね。
var a = src.match(...); if(a) q = a[7];
>>223 <a href="JSオフ用行き先"
onclick="setTimeout(function(){location.href='行き先';},500);return false">...</a>
>>225 RegExp が実装されていて、RegExp.${一桁} を使えない実装の例を挙げてくれ。
>>225 要するに、古いスクリプトを処理するために実装はされ続ける可能性は高いが、
新規に書くスクリプトでは、非標準で廃止が進むRegExp.$nは使うな、ということね。
というか、RFC3986の正規表現はJSで取得するsrcプロパティならば
必ずマッチするから、実は、if が不要。src.match(...)[7] みたいに書ける。
>>227 それは過激じゃない?正規表現書き間違うこともあるし。
>>226 標準に準拠してるかどうかという話なんだから実装状況は関係
ないでしょ。今は並列ってないけど、もし並列実行とか入ったら
Regexp.$nはグローバル変数だから危ういことになるとか。
それとこのnを計算で求めるときは配列の方がずっと素直に
書けるというのもあるね。「Regexp['$' + i]」じゃちょっとね。
らくばかり くろうしらずのいいじだい だけどじぶんでかけてこそ いちにんまえ
iframeタグを使って ページの一部にflashゲームみたいなのを入れようとしたら、 iframeタグが使えないようなので、 javascriptを使って同じようなことをしたいのですが、 どうすればいいでしょう。 また、flashゲームをiframeを使わずに表示しようとすると、 flashプラグインの有無を判別するコードなどを書かなければならないと 言われたのですが、 それはどうすればいいのでしょう?
>>230 flashプラグインの有無を判別するコードなどを書かなければならない
下手な煽り方だな
マルチらしいよ
>230 >216
>188 ブラウザのキャッシュが効いてるからでしょ? 画像のHTTPヘッダで、 Cache-Control=no-cache Expires=-1 Pragma=no-cach あたりを指定すれば更新されるはず
>>230 何回言えば分かるんだ、過去ログのどっかにあるから探せ。
過去ログが探せるようになるまでここは2度と書き込むな。
手取り足取りスレに行けば物好きが面倒見てくれるかも。
以後、この質問はスルーで。
addEventListenerで指定する関数って()とる必要がありますが、どうにかしてパラメータを渡す事って出来るでしょうか?
>>238 自分で考えたのは、グローバルな変数に入れて取り出すぐらいなのですが
他に方法があれば教えてください。
そのぐらいしか思い付かないな
第2引数を無名関数にしてその中で実行する関数に引数渡すとか Object.addEventListener( Event, function(){ test(a) }, capture );
>>222 >>224 >>220 が言おうとしてるのは違うんじゃないか?
サーバーサイドでスクリプトを生成したいってことじゃないのかな?
まぁjsのみでは当然無理だが。
任意の数字を、任意の桁数まで、先頭にゼロを埋める方法はどうしたらいいの? それが、zero_prefix(num, size) として、 document.write(zero_prefix(123, 6)); => 000123 となってほしいんだけれども。 あとついでに、 document.write(insert_comma(12345)); => 12,345 とかも、そういうのって、定石ある?
>>237 >>239 >>240 このスレの過去スレ読めば山のようにそのやり方が議論されて
るぞボケ。
>>241 の方法は外側の環境でaの値を変更して
しまうとイベントハンドラが呼ばれる時の値も変わってしまう。正解は
addEventListener(..., function(a){return function(){test(a)};}(引数), ...);
>>243 過去スレで繰り返し出て来る質問。探せ。終了。
(・_・)
>>244 addEventListenerで過去スレ検索してみたけど
議論されている様子は特になかったぜ…
addEventListenerと関係なく沢山使われてる。
でも実際こんなカオスなコードを書かないといけないあたりおかしいんだけどな。
>>249 へー、じゃあプログラミング言語的にはどうあればいいって
いうわけかな。(まあMLとかにもっと書きやすい構文あるけどね。)
全くカオスに見えないんだけど カオスに見える奴は新しいプログラミングパラダイムに慣れていないんじゃないかと思う
関数クロージャってLispからだからかれこれ40年くらい歴史 あるだろ。ただ、いまどきクロージャが駆使できる言語って 関数型の系列を除くとJavaScriptだけだから皆慣れてないの だよね。C、C++、Javaで甘やかされてるというか(まああっちは あっちで面倒なとこは別にあるんだけどさ)。
>>252 確かに新しい、というのは語弊だったね。
その人にとって新しい、という風に読み替えてください。
過去ログ読め読め言うなよ。 確かに過去ログに答えは載ってるかも知れないけど、 それじゃあ質問スレの意味がなくなっちゃうじゃん。
なんかキモイスレになってきた
>>254 目新しい質問は歓迎するよ。過去スレにあるようなものは
繰り返すな、探す努力をしろ、というのがここ何十スレに
渡っての方針なわけ。だからテンプレにずっとそう書いて
あるだろ。それに反対なら800過ぎてからテンプレ改訂論議を
してくれ。もっとも、探す努力してるのが分かれば常連も
そうむげにはねつけたりはしないと思うけどね。
JavaScriptは蔑称「邪魔スクリプト」とも呼ばれ、 多くの場合は管理側の営利目的、または単なる自己満足、装飾のためだけに設置され 訪問者にとってはほとんどプラスになる要素はないが、 実用レベルの演算,変換処理を行わせる用途であれば、 非常に有用な言語へと化ける。 そのユーザビリティを履き違えてはならない。
いないよ、今ここに人間なんていないよ
260 :
Name_Not_Found :2006/02/15(水) 23:58:26 ID:AX/CvTZ3
答えられない質問を過去ログ嫁で片付けてりゃ さぞかし楽だろうなw
>>243 左から"00000"くっつけて、右からsliceで6個とる。
これはJavascriptだけでなく、JAVA appletにも言える事なのです。
自分の制作したJavascript又はJAVA appletを表示させるHTML fileを、自分
のPCにIE v.6.0.2900 で表示させようしました。そうとすると、アドレ
スバーの下に、「セキュリティ保護のため・・」と書かれた情報バーが必ず
出ます。そうすると、そのたびに「ブロックされているコンテンツを許可」
をクリックしない表示できません。
自分のPCですから、ステイタスバーの右端のアイコンは「マイコンピュー
タ」になっています。
いちいちそうするのはうざいので出ないようにしたいのですが、どうすれば
いいでしょうか。
JavascriptとJAVA appletの両方ともIEの設定を以下の様に設定しても、や
っぱり情報バーは出ます。
スクリプトを実行しても安全だとマークされていないActiveX cotrolの初期化
とスクリプト実行:有効
署名されていないActiveX controlのダウンロード:有効
Wep pageが制限されたプロトコルをactive contentに使用する事を許可する:有効
以下に、次のように書かれています。
http://office.microsoft.com/ja-jp/assistance/HP030895491041.aspx >>つまり、ユーザーのコンピュータのフォルダやドライブをセキュリティ
>>ゾーンに割り当てることはできません。
>>264 【ie 情報バー 非表示】Yahoo検索の一発目に出たぞ。
>1. [ツール] - [インターネットオプション] - [詳細設定]
>2.「セキュリティ」項目内の 「マイ コンピュータのファイルでのアクティブ コンテンツの実行を許可する」にチェックを入れる。
>>265 ご返答有り難うございました。
示された項目をcheck ONにすると情報バーが出なくなりました。
267 :
223 :2006/02/17(金) 03:30:33 ID:BofjAKfc
>>225 あれからいろいろ手を加えてみて、
次はフォームでやってみようと頑張っています。
onSubmit
で "setTimeout(function(){location.href='行き先';},500);return false"
を動かそうと思い、onSubmit="setTimeout('retrun true',500);"
としましたが、うまく動きません。。(IE6)
どうすればフォームの送信でも0.5秒間の待ち時間を作れるのでしょうか?
>>267 onsubmitハンドラの最後でreturn falseしないとsubmitが起きて
しまうだろ。そして0.5秒後にreturn trueだけやっても無意味。
そういう基本的なことを一通り勉強しなよ。時間の無駄(お互いに)。
つか、洩れが書いたそれ全体をonsubmitの中に入れるんだってば。
分かっていなさすぎ。「あれこれやる」のはやめて本でも買って
地道に学習しろ。
0.5秒差を体感できる奴って居るのかな…
270 :
223 :2006/02/17(金) 10:32:24 ID:BofjAKfc
onclick="setTimeout(function(){location.href='行き先';},500);return false" をonSubmitにしてやったのですが、フォームの値がきちんと送信されていないんです。。 Javascriptを切ると正常に送信されているのですが、、
>>270 ちょwwwwww
それサブミットしてないじゃんw
だからちゃんと勉強しろって。
<Input type=submit value="送信" onclick="setTimeout(function(){location.href='行き先';},500);return false"> ということでしょうか? とりあえずこれでやってみます。
試行錯誤して onclick="setTimeout(function(){document.forms[0].submit()},500);return false" でできました。 クライアントサイドは初めてでしたが、いろいろとありがとうございました。
275 :
220 :2006/02/17(金) 13:36:12 ID:CeTtDxvS
javascriptで引数を表示させる方法ですが、やっと分かりました。 <script language="JavaScript" src="loader.js"></script> <script language="JavaScript">ret=func("hoge");</script> loader.jsの中身 function func(str){ document.write(str); } こんな感じでやれば引数を渡せました。 もしかして常套手段なのかもしれませんが、 flash使いとかにはかなり便利だと思うので一応報告しておきます。
276 :
Name_Not_Found :2006/02/17(金) 15:36:41 ID:Y3xV0D98
質問です。 イベントハンドラの件ですが、 テキストフィールドで <input type="text" onchange="....> のようにonchangeを使うのは正しいですか?
278 :
276 :2006/02/17(金) 17:27:09 ID:???
>>277 さん ありがとうございました。
やっぱしてはイケナイことですね。
>>278 > <!ATTLIST INPUT 略 onchange %Script; #IMPLIED 略 >
280 :
276 :2006/02/17(金) 19:00:10 ID:???
あれあれ。イケナクないのでしょうか。 W3Cの原文を読む力もありません。悲しいです。
>>280 教養が無いって悲しいね。
次の質問者どうぞ
282 :
276 :2006/02/17(金) 20:37:45 ID:???
教えて!モナ〜ちゃ〜ん!
INPUTのATTLISTにonchangeは定義されているモナ! それ以上でもそれ以下でもないモナ!
| | | |∧∧ |_|・ω・`) ひとあし遅かったでつ。 |鬱|o o. みんなやさしくね。 | ̄|―u' """"""""""
286 :
Name_Not_Found :2006/02/17(金) 23:32:40 ID:g+4csxp8
readonlyをJSで動的に設定したいのですが・・・
JavaScriptでCGIのタイムスタンプを欺くことは可能でしょうか。 可能ならコード教えてください。 よろしくお願いします。
なんだって?
>>286 すれば?要素にID振って
「document.getElementById('ID名').readOnly = true/false;」
>>287 できません。終了。
290 :
Name_Not_Found :2006/02/18(土) 03:34:31 ID:QqdBGCbh
質問させてください。 html内で<meta name="page" content="hoge">として、 ------------------------------------------------------------------------------------ page = document.getElementsByName("page").item(0).content; SetCookie( "page", page ); function SetCookie( entry, value ){ document.cookie = entry + "=" + value + "; expires=Thu, 1-Jan-2030 00:00:00; "; } ------------------------------------------------------------------------------------ とすると、firefoxでは、狙い通り page に hoge が格納されるんですが、 IE6.0だと二行目で 「オブジェクトでサポートされていないメソッドまたはプロパティです。」 と出て、動作させることが出来ません。 javascript:alert(document.getElementsByName("page").item(0).content); とやってみると、ちゃんと hoge と表示されるんですが。。。 よろしくお願いしますm(_ _)m
ID 振るんじゃ駄目なの? <html> <head> <meta id="page" content="hoge"> <script> SetCookie( "page", document.getElementById("page").content ); function SetCookie( entry, value ){ document.cookie = entry + "=" + value + "; expires=Thu, 1-Jan-2030 00:00:00; "; } </script> </head> <body><script>document.write(document.cookie)</script></body> </hrml>
再起処理ってどういう条件でループから抜けるんですか?
たとえば↓のサブディレクトリの再帰処理ってとこ。
http://pureheart.ddo.jp/wsh/ 基本javascriptで書いててちょっとScripting.FileSystemObjectを借りようかと。
で、サンプルで動くには動くんですが、
再起処理が終わった時点で違う関数に飛ばそうと思っても
どこにコード挟めばいいのかわかりません。
>>293 最後っていうのは・・・
var fso = new ActiveXObject("Scripting.FileSystemObject");
var target = "c:\\targetfolder";
var f = fso.GetFolder(target);
function showfiles(folder) {
var folders = new Enumerator(folder.SubFolders);
var fc = new Enumerator(folder.Files);
WScript.Echo("フォルダ: "+ folder);
for(; !folders.atEnd(); folders.moveNext()) {
WScript.Echo(folders.item());
}
for(; !fc.atEnd(); fc.moveNext() ) {
WScript.Echo(fc.item());
}
folders.moveFirst();
for(; !folders.atEnd(); folders.moveNext() ) {
showfiles(folders.item());
}
ここ?
}
showfiles(f);
この場所にたとえばalert(1)ってやると
見つかったフォルダの数だけ実行されます。
ifか何かでフィルタかければよさそうだけど
「最後の再起処理」がどういった状態なのかよくわからず
条件がかけません。
てかさっきから・・・ ×再起処理→○再帰処理
>>294 一番最後のこと。
showfiles(f);
WScript.Echo("------------------ここ-------------------");
>>296 すいません。言い忘れてました。
onload後任意のタイミングで実行したいんです。
それだとそこはダメですよね?
>>297 >292
>再起処理が終わった時点で違う関数に飛ばそうと思っても〜
おいおい( ̄□ ̄;)!!
>>298 あ〜ひょっとして自分大変な勘違いしてますか?
>>291 どうも原因不明なんで、nameじゃなくてidにしました。
CSS使っててややこしいんで、あんまりid使いたくないんですが。。。
しかしなんで動かないんですかね。。。
>>300 おれの環境では普通に動くけど。エラーなんかでないよ。
外部jsファイルにしたら、
var page = document.getElementsByName("page").item(0).content;
にしないと何故かだめだったけど。(var付けただけね)
>>298 ボタンでも押されたら処理とめるってこと?
showfiles(folders.item());
この部分をifではさむとかは?
その前のforは実行されるけど。
>>301 これ使って必要なファイルの一覧を作ろうかと思ってます。
この再帰処理とやらで一番わからないのは
どうなったらループが終わるのかということなんです。
自分の知識ではこれ永遠に回るんじゃないか?と思ってしまうんですが
サブフォルダを一巡したら処理が終わりますよね?
それはどういう条件で処理終了とみなしてるんでしょうか?
それがわかればどうとでもできそうなんですが
なんだかよくわかりません。
>>302 こういうこと
var fso = new ActiveXObject("Scripting.FileSystemObject");
var target = "c:\\targetfolder";
var f = fso.GetFolder(target);
function showfiles(folder) {//@引数でフォルダ受け取る
var folders = new Enumerator(folder.SubFolders);//A受け取ったフォルダのサブフォルダコレクション作成
for(; !folders.atEnd(); folders.moveNext() ) {//Bサブフォルダの数だけ回す。だからなければ終わり。
WScript.Echo(folders.item().Name);//確認用(渡すフォルダの名前)
showfiles(folders.item());//@にもどる。
}
}
showfiles(f);//一番最初の実行(@へ)
>>303 >こういうこと
>var fso = new ActiveXObject("Scripting.FileSystemObject");
>var target = "c:\\targetfolder";
>var f = fso.GetFolder(target);
>function showfiles(folder) {//@引数でフォルダ受け取る
>var folders = new Enumerator(folder.SubFolders);//A受け取ったフォルダのサブフォルダコレクション作成
folders.moveFirst(); ←★これはなんでしょう??
>for(; !folders.atEnd(); folders.moveNext() ) {//Bサブフォルダの数だけ回す。だからなければ終わり。
>WScript.Echo(folders.item().Name);//確認用(渡すフォルダの名前)
>showfiles(folders.item());//@にもどる。
>}
>}
>showfiles(f);//一番最初の実行(@へ)
for(; !folders.atEnd(); folders.moveNext() ){
showfiles(folders.item())
}
のforは一度だけしか実行されない!?
forで自分自身を呼び出したときは
そのforの直前までしか実行されない??
そうじゃないとfolders.moveFirst()でコレクションの先頭に戻ってまたforに入って・・・
あれれれ???
すんませんもうちょい詳細な流れをお願いします。
306 :
305 :2006/02/19(日) 09:20:07 ID:???
同時に二つの質問で申し訳ないですがもうひとつ大変な事態が。
アクティブデスクトップで動作するウィジェット的なものを作ってます。
簡単に言うとページをリロードしてもメモリが開放されず、
数回リロードするとエクスローラが落ちます。
さらに顕著な症状として、ObjectでWMP埋め込んでますが
再生したままリロードしても再生がとまりません。
リロードしたページでさらに再生かけると音が重なって再生されます。
停止させるにはタスクマネージャでエクスプローラを殺すしかありません。
これはez-htmlなどのエディター上でも同じで、
プレビュー画面で再生したままコード画面に戻っても再生がとまりません。
数回同じようにプレビュー→コード→プレビュー
と繰り返すとメモリ使用量がどんどん増大してez-htmlも落ちます。
落ちるときのメモリ使用量は256積んでて100M越えぐらいのとき。
原因というかこうなったきっかはわかってます。
ひとつのhtmlファイルにすべてのスクリプトを書いてたときは問題ありませんでしたが、
ウィジェットの各機能をモジュール方式にしてからおかしくなりました。
@
>>305 の方法でmoduleフォルダ下のjsファイルを検索、ロード。
Aそのjsから必要なhtmlや設定データを個別にxmlhttpで取得。
Bdocument.body.insertAdjacentHTMLで本体に書き込み。
C動作開始
という仕様にしてみたところこの問題が発生しました。
onunload時に書き込んだhtmlを削除するといくらかマシですが
時間稼ぎにしかなりません。
長文になってしまいましたが
自力ではまったくお手上げ状態なので力を貸してください。
>>305 showfiles()という関数が沢山あるとおもいなよ。
showfiles0()、showfiles1()、showfiles2()、…
で、最初にshowfiles0()を呼ぶ。そうするとそれは
フォルダの数と同じ回数だけshiowfiles1()を呼ぶ。それは
サブフォルダの数と同じ回数だけshowfiles2()を呼ぶ。…
しかし実際にはこれらは1つのshowfiles()という関数なわけね。
だから「1回だけやりたいこと」はshowfiles()の中に書いては
いけない。何回も呼ばれるんだから。showfiles()を最初に
呼び出すところに(そのshowfiles()の呼び出しの直後に)
書けばshofiles()による処理がすべて終わった後で1回実行される。
308 :
Name_Not_Found :2006/02/19(日) 11:43:29 ID:s7YdMegH
質問です。 TABLEの<TD></TD>タグ内に外部のファイルを読み込ませることはできますか。 できれば、概説お願いします。
309 :
303 :2006/02/19(日) 11:51:41 ID:???
>>305 >folders.moveFirst(); ←★これはなんでしょう??
そのレベルで、リファレンス持ってないんですか?落としてきたほうがいいですよ。
どうやってコード書いてんのか謎です。
>>306 の内容については私はサッパリですので、
WSHスレで聞いたほうがいいと思いますよ。
>>308 その<td></td>の中にiframeタグ入れれば。
311 :
305 :2006/02/19(日) 12:23:39 ID:???
>>307 ふむ。なるほど!
しかしそれだと再帰処理やらしてその結果を
returnで受け取る的な使い方は不可能ってことに?
なんだか使い勝手が悪いですね。
>>309 >どうやってコード書いてんのか謎です。
いや〜近視眼的にjavascriptばっかりやってたものでWSHは。。
jsのリファレンスはありますよ。。サイ本も。
>>306 サッパリですか・・・
ところでこの内容ってWSHなんすか?
ん〜動的に追加したobject埋め込みがよくないのかなぁ〜?
でもそんなことでこの問題が発生するとしたら
重大なバグですよね?
たぶんweb上で再現できますよこれ。
困った。モジュール化は絶対実現したいしなー
>>311 別に受け取りゃいいじゃん。何が問題なんだ。ただし
大元は「1つの関数を」呼ぶんだから、最後は「1つの値が」
帰るようにすべて設計する必要がある、それだけだ。
その1つの値が配列だろうと何だろうとそれは自由。
制御構造がグチャグチャのうちに他のバグを取ろうなんて
無理に決まってるじゃん。
アンタの再帰の学習をするスレじゃないんだ。そういう
ことの勉強がしたいのならプログラム板へ逝ってくれ。
FileSystemObjectは普通のWebでは使えないから、それの
アドバイスはWSHスレに逝くのがよい。IEにはバグは沢山あるとも。
313 :
305 :2006/02/19(日) 15:21:15 ID:???
>>312 再帰処理についてはほんと勉強不足なんで
おっしゃるとおり他でがんばってきますね。
でもこのバグは興味ありませんか?JS使いとして。
どんな制御構造がグチャグチャのコードだったとしても
リロードしてもメモリが解放されず動作し続けるなんて
ちょっとひどくないすか?
もうちょい格闘してみます。
何かわかったら報告しますね( ̄ー+ ̄)
314 :
Name_Not_Found :2006/02/19(日) 22:27:52 ID:JGzDQCi9
<FORM NAME="A" ACTION="B">という要素があった場合に その属性名「NAME」「ACTION」を抜き出したいのですが、 どう書けばよいのかおしえてください。
属性値じゃなくて属性名を取り出したいの?
316 :
Name_Not_Found :2006/02/19(日) 23:41:51 ID:SQduCDmZ
質問です。 以下のようなスクリプトを組みましたが、動いてくれません。 どこがいけないのでしょうか。どうしてもわかりません。 var timerID = 0; var ichi = 68; var maxX = 120; var perX = 2; var speed = 10; function layerMv(){ if(ichi<maxX) { ichi = ichi + perX; if(document.all){ document.all['S1'].style.visibility = "visible"; document.all['S1'].style.left = ichi; } if(document.layers){ document['S1'].visibility = "visible"; document['S1'].left = ichi; } timerID = setTimeout("layerMv()",speed); }else if(ichi==maxX){ clearTimeout(timerID); } } よろしくお願いします。
>>316 まずはテンプレの
>>2 を読もうや。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
ただ「動きません」「エラーです」は何も情報がないため嫌われる。
エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
>>316 document.all は(一応) IE 専
document.layers は Netscape4 専
どこかのサイトを参考にしたのなら
もうちょっと新しめのスクリプトを探した方がよいかと
あと
やりたいことを推測して html を書くのはまんどい
次からは最小限の html も書いてくれ
>>316 1つ聞くが、その動かそうとしてるレイヤーはposition:absoluteを
指定してあるんだろうな? あとざっと見たところ:
(1)document.allはやめてID振ってdocument.getElementById()を使え。
それでIE5以降、Gecko、Operaなどすべて対応。N4とIE4は対応しないが。
(2)CSSでの位置指定には単位が必要。最後に「'px'」を連結すれ。N4では不要。
(3)ほんとにいまどきN4に対応するつもりなのか?
(4)clearTimeout呼ぶ必要ないだろ。よく考えろ。
>>316 function f(){
if( document.getElementById('S1').style.pixelLeft < 500 ){
document.getElementById('S1').style.pixelLeft + = 10;
setTimeout('f()',10);
}
}
こうしたら動いた。
NN4はもう要らんような気がするが。
pixelLeftはIE専だから教えるならそのことを注意しろよ。 洩れはやっぱり自前で(JS側で)変数持っておくのがよいと思う。
講座サイトから訪問回数を表示するスクリプトを拾ってきて、自ページに貼って使ってます 訪問回数は、クッキーを利用しますよね?プログラム内で何日クッキーを記録させるかとか設定しますが、 その部分を何日ではなくて、日が変わると(深夜0時を過ぎると)クッキーを初期化する事って出来ないのでしょうか? Javascriptに関しては無知なもので全く分かりません…どなたかお願いします
>>323 そりゃ現在時刻を元にして0時との差分を計算すりゃ出来るが
そんなことしても大して意味無い。
ブラウザの設定によっていくらでも制限がかかる可能性があるからな。
というか多分オマエは Cookie をわかってないぞ。
JavaScript と Cookie を切り離して考えろ。
>>323 クッキーに訪問回数に加えて最終更新日を記憶させ、
その日付が今日なら回数を1プラスし、そうでなければ
ゼロにリセットすればいいんだろ。「無知」で「全く
分からない」ならそれ以上どう説明のしようもないから、
自分で勉強してくれ。がんがれ。
326 :
Name_Not_Found :2006/02/20(月) 15:33:27 ID:wZUd753B
以下のJavaScriptで別窓を開いた時、ウィンドウのキャプションにURLが
入りますが、URLを表示せずにタイトルだけを表示する事は可能でしょうか?
location=yes にしたら出来ますが、アドレスバーは出したくないです。
「
http://localhost - test - Mozilla Firefox」
--> 「test - Mozilla Firefox」
function NewWin(){
var NW;
NW=window.open("","NewWin1","toolbar=no,location=no,directories=no,Width=400,Height=150");
NW.document.open();
NW.document.write("<html><head><title>test</title></head><body>aaa</body></html>");
NW.document.close();
}
>>326 それは「ユーザをだます窓が作れないようにわざとそうして
いる」ように思えるね。ということは回避するのは無理ぽ。
328 :
Name_Not_Found :2006/02/20(月) 17:41:02 ID:wZUd753B
>>327 仕様かもしれないんですねー。
その事を明記してある文章って何かありますでしょうか?
まぁアドレス情報をどこにも出さないと『セキュリティホールだ!』とか言ってくる なかなか仕事熱心なセキュリティ屋が出てくるから困る
330 :
Name_Not_Found :2006/02/21(火) 11:32:57 ID:3Bgt/J6G
質問です。 「003」から「004」を取得するにはどうしたらよいですか。 一般に「00n」から「00(n+1)」にする方法を知りたいです。 (ケタを揃えて)
詐欺師乙
>>330 過去ログに多数回登場してる質問。探せば?
わーい過去ログの人出たー
>>332 過去ログの夢でも見たんんだろ。多数とは、何回、どこで?
どうせ根拠は民主党の堀江メールみたいなものにちがいないw
「過去ログくん」というDBがほしいw
小学生かよ どのみちここは手取り足取り教えるスレじゃない
アンカーとか検索キーくらい示してあげればいいのに
>>334 お前は今まで食べたパンの枚数を覚えているのか?
今まで食べた米粒の数 > 今まで食べたパンの枚数 > 過去ログ
>>338 そうだな、いま数えてみると、36万5247枚になるなあ。
ずいぶん食べたもんだ<今まで食べたパンの枚数
で、おまえの方は?何回見たんだ?volナンバーも教えろや
キミも一流の回答者になれる。 コツは「過去ログに多数回登場してる質問。探せば?」 と書けばOKw ヴォケをつけると尚酔い
342 :
Name_Not_Found :2006/02/21(火) 12:27:47 ID:zuN8LjiS
ajaxで2Mぐらい読むと5、6秒ぐらい固まるんですが仕様ですか?
>>342 どっかにバグがあると思うよ。何度も見直した方が良い。
>>342 innerHTML?
読むのは問題ないけど、書くので固まるな。
これです↓ぱくったんであんましくみ分からないんです function loadXMLDoc(url){ //* XMLHttpRequestオブジェクト作成 var xmlhttp = createXmlHttp(); if (xmlhttp == null) { window.alert("XMLHttpRequest非対応のブラウザです。"); } //* レスポンスデータ処理方法の設定 xmlhttp.onreadystatechange = handleHttpEvent; //* レスポンスデータ処理用のコールバック関数を定義 function handleHttpEvent(){ if (xmlhttp.readyState == 4) { document.getElementById("moto").innerHTML = xmlhttp.responseText; //レスポンスデータを表示します。 } } //* HTTPリクエスト実行 xmlhttp.open("GET", url + ".html" , true); xmlhttp.send(null); }
347 :
続き :2006/02/21(火) 13:15:02 ID:???
function createXmlHttp(){ var xmlhttp; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { xmlhttp = new XMLHttpRequest(); } catch(e) { xmlhttp = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); } catch(e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlhttp = false; } } } return xmlhttp; } あと、.htmlを付けてるのは実験してみたかっただからですので、SEO避けではありませぬ
>>346 これに変えてみてみ。たぶん理由がわかる。
function handleHttpEvent(){
if (xmlhttp.readyState == 4) {
alert("読込み完了、これから書き込むぞ");
document.getElementById("moto").innerHTML = xmlhttp.responseText; //レスポンスデータを表示します。
alert("書き込み完了");
}
}
激しく間が開きますね・・・・・ というか普通に開いても重いのか・・・・・
>>350 これじゃ芸はまだ見せられんな。
だいたい、
>>330 の訊いてることとまったくちがうだろ。
アンタの提示したのは、ただのケタそろえにすぎん。
インクリメントってのは知ってるの?
アホか。そんな応用力のないヤシはとっとと帰れ。 このスレに居るべきでないね。
そういうヤシのための「手とり足とり」スレですよ。
ゴネれば答えてもらえるという前例を作るなよ
1 「xについて教えてください」
2 「過去ログ読め。終了」
3 「過去ログ読め読め言うなよ」
4 「
http://example.com/ 」
5「ゴネれば答えてもらえるという前例を作るなよ」
6 「yについて教えてください」
7 「過去ログ読め。終了」
8 「過去ログ読め読め言うなよ」
9 「ゴネれば答えてもらえると思うなよ」
10「どうせ答えられねーんだろ」
11無駄にスレ消費
2の段階でさらっとアンカーでも出せばいいのに
過去スレ検索できないヤシって腹立つんだよな。だから過去ログ 読め読めはこれからも言わせてもらうね。読めというときは自分で 探せば見つかるという確信はあるね。
とりあえず過去ログ嫁って言っときゃいいんだよ 質問スレなんてどうせロクに検索しないでくるやつばっかなんだから
もっとやれ。
いや、過去スレに無いのに読めっていったらまずいだろ。 読めと言われたら必ずある、というふうにしないとね。
String(10001 + parseInt(str,10)).substring(1)
だとxの桁数に柔軟に対応できないので
>>354 見てこういうのを考えてみたんだけど
もっと上手く出来るかアドバイスくれないか
function zeroHeadedString(str,n){
var a=str.match(/^([+-])?(0+)([0-9]+)$/);
if(a){
a[3] = parseInt(a[3],10) + n;
if(a[3] < 0) a[1] = '-';
return ((a[1] ? a[1] : '') + a[2] + Math.abs(a[3]));
} else return false;
}
alert(zeroHeadedString('003',1));
>>361 10桁くらいまで「String(10000001 + ...)」とかでできるだろ。
何がやりたいのか書いてくれよ。そのreturn falseとかする
仕様が謎すぎ。
完全に釣られまくってるな。 とにかく、過去ログ読めとかいってないで、自分で何行か書けないのか? 洩れなら、ヒントですませる。 どこにあるかも分からず過去ログに誘導するようなレベルのヤシは帰れ。 これはネタだから、洩れは場外だが。
>>361 alert(zeroHeadedString('009',1)); やってみ
001 みたいな数字ってわかってるなら
length とったらもうちょっと楽にかけるでしょ
365 :
361 :2006/02/21(火) 17:47:31 ID:???
>>362 str='003';
alert(String(10001 + parseInt(str,10)).substring(1))
にすると0004になっちゃうからさ、003を入れれば004、000003を入れれば000004
になるようにしたいんだ。return falseはとりあえず何も考えてなかった。
'abc'とか入れられたらfalseで返せくらい
>>364 あ...
調べもしないで質問に来るヤシに何行か書いたら学習しないじゃん。 だから読め読めと言ってるだけで。書いた方が自分にとっては速い に決まってるけどね。
>>358 こんなのがここにいるから、信用できんのだよ<過去ログ嫁
>>365 意図は分かったが、自分のページで何桁にそろえたいかはそれぞれ
決まっているんじゃないのか。その桁数を決め打ちで書いて1行で
済ませた方がずっと分かりやすくていいと思うよ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function f(s, d) {
var a = String(s).match(/^(0+)([1-9]+)$/); if(!a) return s;
var n = String(d + Number(a[2]));
return (n.length>a[2].length?a[1].substring(1):a[1]) + n;
}
document.write(f('000009', 3) + '<br>');
document.write(f('000003', 2) + '<br>');
</script>
</body></html>
>>367 別に信用しないのは勝手だよ。答えを知りたくないのならここに
来る必要はないわけだしさ。ちなみに
>>368 みたいな関数は過去
ログにはなかったと思うな。
>>366 おれのいちばんきらいなたいぷ。
こんなとこにいないで学校のセンセでもやれよ。
こまってる人を助けたら、それでいいじゃん。べつに。
要するに過去ログ読めと言ってるのはホレ氏なのね。 そりゃ山のようにサンプル書いてるから自分で書いた 覚えがあるんだろうね。
> ホレ氏 この人まだ居るの?
>>370 もちろん自分の性格の悪さはこのスレで昔から自分で認めている。
それこそ過去ログにあるな(w
今更どうにもならんね、悪いけど。嫌いなヤシのいないとこへ
行けばいいんじゃないの。でも洩れ、難しい質問なら真剣に
答えてるよ。安易な質問するヤシは蹴飛ばすけどね。
げげ、
>>368 のRegExpにバグあるじゃん。ま、バグ取るのは
練習問題ってことで。何がバグか気づけば簡単だよね。
寝覚めが悪いのでやっぱり出しとく、スレ浪費すまそ。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> </head><body> <script type="text/javascript"> function f(s, d) { var a = String(s).match(/^(0+)([1-9][0-9]*)$/); if(!a) return s; var n = String(d + Number(a[2])); return (n.length>a[2].length?a[1].substring(1):a[1]) + n; } document.write(f('000009', 3) + '<br>'); document.write(f('000003', 2) + '<br>'); document.write(f('000100', 3) + '<br>'); document.write(f('000199', 1) + '<br>'); </script> </body></html>
>>368 あの、これ実行しました?
これ何やる関数?
378 :
377 :2006/02/21(火) 18:16:10 ID:???
>>377 「003を入れれば004、000003を入れれば000004」のつもりだけど。
第1引数は当然ながら文字列、足す値が第2引数でそれは数値。
document.write(f('000009', 100) + '<br>'); これは想定内?
>>380 2桁増えることは考えてなかったね。そこを直すとすればこうか。
うん、かえって簡潔になったよ、ご指摘感謝。ただし先頭の「0」
が足りないとエラーになるという弱点が新たに生じるので注意。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function f(s, d) {
var a = String(s).match(/^(0+)([1-9][0-9]*)$/); if(!a) return s;
var n = String(d + Number(a[2]));
return a[1].substring(n.length-a[2].length) + n;
}
document.write(f('000100', 3) + '<br>');
document.write(f('000199', 1) + '<br>');
document.write(f('000009', 100) + '<br>');
</script>
</body></html>
382 :
361 :2006/02/21(火) 18:36:44 ID:???
>>368 >>376 >>381 を参考にしてまた書いてみた
言うの忘れてて申し訳ないんだけど減算も対応してみたかったんだ...
function f(s, d) {
var a = String(s).match(/^([+-])?(0+)([1-9][0-9]*)$/); if(!a) return s;
var n = Math.abs(d + Number(a[3]));
var l = String(n).length-a[3].length;
if(d<0) a[1] = '-';
return (a[1]?a[1]:'')+((l > 0)?a[2].substring(l):a[2]) + String(n);
}
document.write(f('000003', 5) + '<br>');
document.write(f('000009', 3) + '<br>');
document.write(f('000009', 300) + '<br>');
document.write(f('000009', 3000000) + '<br>');
document.write(f('000001', -2) + '<br>');
というかこんなんに付き合ってくれてありがとう
>>382 そこまでぐちゃぐちゃならこの方が素直かも。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function f(s, d) {
var l = s.length, i = Number(s), j = i+d, r = String(j);
if(j >= 0) { while(r.length < l) r = '0' + r; }
else { if(i >= 0) ++l; while(r.length < l) r = '-0' + r.substring(1); }
return r;
}
document.write(f('000003', 5) + '<br>');
document.write(f('000009', 3) + '<br>');
document.write(f('000009', 300) + '<br>');
document.write(f('000009', 3000000) + '<br>');
document.write(f('000001', -2) + '<br>');
</script>
</body></html>
384 :
361 :2006/02/21(火) 21:28:25 ID:???
>>382 はちょっとまちがってた。また書き直してとりあえずこんな感じで満足
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title></head><body>
<script type="text/javascript">
function f(s, d) {
var a = String(s).match(/^[+-]?(0+)([1-9][0-9]*)$/); if(!a) return s;
var j = d + Number(s), r = String(Math.abs(j)), l = r.length-a[2].length;
return ((j<0)?'-':'')+a[1].substring(l) + r;
}
document.write(f('000003', 5) + '<br>');
document.write(f('000009', 3) + '<br>');
document.write(f('000009', 300) + '<br>');
document.write(f('000009', 3000000) + '<br>');
document.write(f('000001', -2) + '<br>');
document.write(f('-000001', -2) + '<br>');
document.write(f('abc', -2) + '<br>');
</script></body></html>
>>383 おーそれもいいかも
みんなほんとにありがとう。いろいろ勉強になったよ!
>>330 の参考にもなると幸い。
>>340 そんなにたくさんパンを食べる方法を教えてください。
30年毎日食べ続けても、一日30枚以上ですよ?
388 :
340 :2006/02/21(火) 23:24:39 ID:???
>>385 え?30年だって?ぼくは、1年と8か月くらいしかかかんなかったよ。
毎日、きょうは1枚、あしたは1枚と半分、あさっては2枚って具合に食べ
たのさ。式に書くとだね、
bread=0
for(i=0;i<(1.65*365);i=0.5+i)
bread += i;
alert(b)
かな。
なんか文句ある?
389 :
340 :2006/02/21(火) 23:26:31 ID:???
ごめん。変数まちがえちゃった。 alert(b)-->alert(bread)ね。
IE 専用でいいなら VBScript でかまわないような気がするが。 こんなんでどう? <html><head> <style> table { width:400px; border:1px solid black;} th, td { width:200px; border:1px solid black;} </style> </head><body> <div id="midashi" style="width:300px; overflow:hidden;"> <table><tr><th>見出し1<th>見出し2<tr><th>見出し1<th>見出し2</table> </div> <div style="width:320px; height:50px; overflow:scroll;" onscroll="vbscript:midashi.ScrollLeft=Me.ScrollLeft"> <table><tr><td>データ<td>データ<tr><td>データ<td>データ<tr><td>データ<td>データ</table> </div> </body></html>
禿しくズレてる
みんなが楽しそうにしてるんで、私も書いてみました。 function numbers_increase(numbers,increase) { var value = Number(numbers)+increase; var s1 = numbers.replace(/[+-]/g,'').length; var s2 = value.toString().replace(/-/g,'').length; var padding = new Array(1+Math.max(s1-s2,0)).join('0'); return (padding+value).replace(/(0*)(-)/,'$2$1'); } alert(numbers_increase('-0100',101)); alert(numbers_increase('0100',-101)); しずかちゃんすごいね。
マッチングに変数を指定することは出来ますか? 出来るとしたらどのように記述したらよいのでしょうか。 hoge = abcdefg; という変数hogeがあるとして、 match(/ /) ↑ここにabcdefgを適用させたいのです。
>>393 reg = new RegExp(str, "i");
hoge.match(reg);
395 :
Name_Not_Found :2006/02/22(水) 16:24:53 ID:88oRAtHI
すいません。 var n = new Array('K','I','N','G'); q=n.replace(/,/,''); alert(q); として「KING」にしたいのですが、運とも寸ともいいません。 どこがいけないのでしょうか。
>>395 配列にreplaceメソッドなんてない。
まずjoinか何かで文字列にしたら。
>>395 var n = new Array('K','I','N','G'); alert(n.join(''));
n='KING'; alert(n[0]);とか出来るんだから
そもそも配列に入れなくてもいいと思うけど
398 :
395 :2006/02/22(水) 17:47:15 ID:???
>>396 そうですね、たしかに。ありがとうございました。
>>397 var n = new Array('K','I','N','G');
alert(n.join('')); →「undefined」
400 :
399 :2006/02/22(水) 17:54:03 ID:???
>>399 全面削除
n='KING'; alert(n[0]); →「undefined」
の方だった。orz ゴメソ
>>398 ごめん嘘教えた
stringでn[0]みたいのFirefoxとOperaはできたけどIEじゃダメみたいだから
n.charAt(0)とかn.slice(0,1)とかn.substring(0,1)とか適当にやって
>>402 だからさ…実験して「できた」じゃなく標準にそういうのは
ナイんだから。これが逆(IEでできてGeckoでできない)だと
できないブラウザが悪いとか言う奴が出没するんで困るんだよな。
IE専もGecko専もちっともいいことではない。
404 :
Name_Not_Found :2006/02/22(水) 19:01:06 ID:bE0bKZDE
こんばんは。 テキストリンクをクリックしたときに、リンク先URLがステータスバーに で(てしまい)ますが、表示しないようにできますか。色々考えたので すが、ダメでした。クイズゲームで使用したいです。
>>404 ゲームなんだからリンクを使わずに
<button onclick="location.href='行き先'">...</button>
にすればいいんでない?ただしJS OFFだと遊べないけどね。
>390 サンクス。 おかげで条件を満たす表ができました。
コレクションと配列はどのように違うものですが? コレクションとは何かがよくわかりません。
>>408 配列はJS言語(ECMA-262)で規定されたオブジェクトで、
Collectionはそれとは別にDOM2などの標準側で規定された
オブジェクト。添字アクセスしてるぶんには同じだけど、
ふるまいが微妙に違うんだよね。
>>390 > onscroll="vbscript:
これ、文法的にはただのラベル。
IEにとってだけ、vbscript, vbs, perlscript というラベルが意味を持つ。
(IEにとって意味を持つラベルがこれで全てかどうかは知らない。)
例えば、onclick="vbs:msgbox(1)" は、IEにとっては有効なVBScriptだが、
その他にとっては、無効なJavaScriptであるということ。
つまり、ブラウザ分別として全く機能していない。
>>409 >ふるまいが微妙に違うんだよね
kwsk
412 :
Name_Not_Found :2006/02/23(木) 07:06:59 ID:q2EC9IMN
JavaScriptのプログラムテキストをホームページなどから そのまま割り出すのはどういった方法が最適ですか?
>>411 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div><a href="t0.html">0</a><a href="t1.html">1</a><a href="2.html">t2</a><br>
<script type="text/javascript">
var a = [1,2,3,4], b = document.links;
for(var x in a) document.write(x + ':' + a[x] + '<br>');
for(var x in b) document.write(x + ':' + b[x].href + '<br>');
</script></div>
</body></html>
>>412 それをJavaScriptでやるっていうはなし?HTMLと一緒に入ってる
奴ならdocument.documentElement.innerHTMLとか
document.body.innerHTMLとかを取り出してその文字列の中から
抽出するのかな。
>>388 そんなにたくさんパンを食べる方法を教えてください。
一斤6枚切りとしても、最終日は17.1kg以上ですよ?
そうそ。少しずつ地道に増やして行くと、そんなにたくさん食べるこ ともできるようになるんだ。継続はチカラなり。勉強といっしょだね。
417 :
411 :2006/02/23(木) 12:23:40 ID:???
>>413 ホレ氏、サンクス
こういうこと?
javascript組み込みの配列を扱うArrayオブジェクトはその目的の仕様として
lengthプロパティなどにはfor(in)列挙されない
特殊な属性がある(列挙されてしまうと不便だからw)
HTMLCollectionつーのはあれか?w
DOMの組み込み仕様として
とある同じ条件で集めたnode(HTML要素ならHTML要素名、同nameや、あるHTML要素の子要素の範囲で、とか)
を配列で返してくれるもの
ただし、こっちは前述のArrayオブジェのような仕様はなく
また実際に取得した配列で実在する要素へのアクセスは読み取り専用である(DOMとして直接取得した要素は書き換えできない。意味ないがw任意要素は追加可)
こんなんで?
418 :
411 :2006/02/23(木) 12:28:50 ID:???
つか411は408ではありませんw ただの通りすがりですw
>>417 どうも「たとえば」そういう点があるようだ(ブラウザによって?)、
というだけで、それが全てというわけでもない。つまり「微妙に」
違う。あと忘れていたけど
interface HTMLCollection {
readonly attribute unsigned long length;
Node item(in unsigned long index);
Node namedItem(in DOMString name);
};
だから当然、item()やnamedItem()がある(配列にはない)。
420 :
Name_Not_Found :2006/02/23(木) 18:35:41 ID:gChkpR2C
ページの中に2つsetTimeout()を使うと、一方が止まってしまいます。 回避方法はありますか?
421 :
Name_Not_Found :2006/02/23(木) 18:56:59 ID:VzRY3Tui
リンクボタンを押した際に開くウィンドウを 常に1つに限定したいと考えています。 どのように指定すればできますでしょうか? よろしくお願いします。
>>410 390 にはブラウザ判別云々は関係ないような。
ターゲットブラウザが IE 決め打ちでいいんなら (VBScript からしか操作できない) IE の
独自拡張機能を気にせず使っちゃえってことでしょ。
確かに JavaScript スレから見ればスレ違いな解決法だが。
424 :
421 :2006/02/23(木) 19:24:38 ID:VzRY3Tui
>>423 ご回答ありがとうございます。
targetを使う場合、
<a href="URL" target="_●●●●">test</a>
のように指定すると思うのですが、
この●●●●の部分をどのようにしたら
良いのかがわかりません。
「_blank」で新規ウィンドウを開いた後、
そのウィンドウ内で新たなリンク先を
表示したいと思っています。
新規に開いたウィンドウにname属性をつけるのかな?とも
想像したのですが、その方法自体がわからず
考えあぐねている所です。
お手数ですが、教えていただけないでしょうか?
>>424 そこは自分の好きな名前にすればいい。
いくつかのアンダースコア ( _ ) 付の名前が特別なウィンドウを示す予約名なだけであって、
それとかぶらなければどうとでも自分の好きな名前にしてかまわない。
開いたときのターゲット名が以後そのウィンドウの名前になる。
426 :
421 :2006/02/23(木) 20:24:35 ID:???
>>425 ご丁寧にありがとうございました。
ご指示の通りに試した所無事成功しました。
>>開いたときのターゲット名が以後そのウィンドウの名前になる。
まさにここの部分で悩んでいたので非常に嬉しいです。
ありがとうございました。
>>420 使い方がおかしいとしか思えない。2つsetTimeout()があっても問題なく動くぞ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var d0, x0 = 10, s0 = 3, d1, x1 = 20, s1 = 5;
function init() {
d0 = document.getElementById('d0'); d1 = document.getElementById('d1');
setTimeout(f0, 50); setTimeout(f1, 38);
}
function f0() {
if(x0>400) x0-=400; d0.style.left = (x0+=s0) + 'px'; setTimeout(f0, 50);
}
function f1() {
if(x1>400) x1-=400; d1.style.left = (x1+=s1) + 'px'; setTimeout(f1, 38);
}
</script>
</head><body onload="init()">
<div id="d0" style="position:absolute">0</div>
<div id="d1" style="position:absolute">1</div>
</body></html>
428 :
393 :2006/02/23(木) 23:28:53 ID:???
>>394 レス感謝です。
説明が下手ですみません。
hoge = abcdefg;
という変数hogeがあるとして、
match()の内部で変数hogeと正規表現を混在させたいのですが。
例えばある文exampleの末にあるabcdefghijという文字のマッチングは
example.match(/abcdefghij$/)と書けば良いですよね。
これを変数hogeとhijとを組み合わせてmatch文の中に書く方法はありませんか?
430 :
393 :2006/02/24(金) 00:11:30 ID:???
文字列です。 本来はsubstring等を使って文字列を切り出す予定なのです。
>>430 example.match(new Regexp(hoge + 'hij$'))
Regexpコンストラクタを使えば任意の文字列を組み立てて
それをRegexpにできるから万能。それくらい知っとけ。
example = "abcdefghij"; hoge = "abcdefg";//文字列なんだろ? example.match(new RegExp(hoge+"hij$")); hogeに正規表現リラテルが混じってる場合のエスケープ処理も必要だ
433 :
393 :2006/02/24(金) 00:48:15 ID:???
>>431 ,432
勉強になりました。ありがとうございました。
精進していきます。
434 :
Name_Not_Found :2006/02/24(金) 01:08:55 ID:XhHCd9xE
ホームページなどからプログラムテキストを そのままコピーするにはどのような方法が 一番適していますか?
435 :
394 :2006/02/24(金) 02:11:34 ID:???
なんで俺にはお礼を言ってくれないん?
436 :
393 :2006/02/24(金) 06:45:47 ID:???
>>435 >>428 でお礼申し上げております。
改めて感謝申し上げます。ありがとうございます。
おかげで目標としていたスクリプトが動くようになりました。
>>434 「ソースを表示」してマウス等で選択してコピペ。
JSの別ファイルならscriptタグのsrcを見てURLを調べ
ブラウザで改めて開くか普通のダウンローダで取る。
質問なのですが、getElementById("ID名")で、ID名に変数を使用する方法はありますか?
>>438 var hensuu = "変数名";
getElementById(hensuu)
という話ではなくて?
440 :
438 :2006/02/24(金) 11:05:48 ID:???
自己解決しました。
<form> <p> <span></span> <input type="button" onclick="func(ココ);" /> </p> </form> DOMで<span></span>の部分を指し示したい時、ココにはどう記述すればいいですか?
すみません。言い忘れました。 IDやNAME属性を使わないやり方でお願いします。
thisとした場合それ自体を示しますが、1つ前の要素を示したい場合や、1つ後の要素を示したい場合はどうすればいいですか? ということです。
質問です。 テキスト入力項目を添え字を指定しない配列にしたとき、 その対象エレメントを指定するにはどうしたら良いのでしょうか? (例1) 入力1:<input type="text" name="txt[0]"> 入力2:<input type="text" name="txt[1]"> 入力3:<input type="text" name="txt[2]"> このとき、 document.form1.elements('txt[2]').focus() とすると入力3のテキストボックスにカーソルが移動しますが、 (例2) 入力1:<input type="text" name="txt[]"> 入力2:<input type="text" name="txt[]"> 入力3:<input type="text" name="txt[]"> この場合はエラーになります。どのようにしたら入力3のテキスト ボックスにカーソルを移動させることができるでしょうか?
446 :
Name_Not_Found :2006/02/24(金) 11:59:32 ID:w+58+dhe
au WIN CDMA 1X W22SA でjavaスクリプトを使う裏技
447 :
Name_Not_Found :2006/02/24(金) 12:19:06 ID:Fz32vOug
教えてください。 JavaScriptでは、「2_24」は整数とみなされるということですが、 Number(2_24)やNumber('2_24')はいずれもエラーです。 どういうことなのでしょうか。
>>443 一つ後のノードはnextSiblingでとれる。
一つ前は、親ノードの子ノードを数えて、一個前、かな。
450 :
444 :2006/02/24(金) 13:03:53 ID:gpLSMvrW
>>445 えーと…DOM…なんですが、よく分かりませんでした。
「HTML DOM Text Object」ってところを見たんですが……
あと、補足です。
document.form1.elements(n).focus()
というエレメントの順番での指定を使用せず、
txtというエレメント名を指定してのやり方を教えて頂ければと存じます。
>>447 どこでそんな大嘘を習ったのかぜひ教えてくれ。
>>444 input type="text" で名前を同じにするのはHTMLとして
正しくないから一般的に言えば何が起こるか分からないが、
多くのブラウザでは
document.form1.elements('txt[]')[2].focus()
で動作するんじゃないかなあ〜
>>441 ホレ(</span>と<input>の間は改行しないのが吉)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<form action="#" onsubmit="return false"><p>
<span>Test</span><input type="button"
onclick="alert(this.previousSibling.innerHTML);"></p></form>
</body></html>
452 :
444 :2006/02/24(金) 13:25:00 ID:???
>>451 おおお出来ました。すごーい!!
こういう情報って、ググるにしても検索キーワードでいいのが
思いつかないし、解説サイト(とほほとか)見ても載ってないケースなので、
非常に助かりました。多謝 m(..)m
453 :
441 :2006/02/24(金) 13:30:02 ID:???
>>451 ありがとうございました。
previousSibling.innerHTMLという記述ですが、これはDOMの記述でしょうか?
innerHTML以外で要素の中を参照する記述方法はないでしょうか?
それともinnerHTMLはDOM Level1の正式な記述方法なのでしょうか?
455 :
441 :2006/02/24(金) 14:02:00 ID:???
質問内容を言い換えますと・・・ document.getElementById('id').innerHTML 上記をDOMではどういう記述になりますか? document.getElementById('id').nodeValue ではないみたいですし・・・
>>452 とほほは推奨されないとテンプレにもあるだろ(w
>>454 ガセだね。言語仕様はテンプレにあるECMA(の和訳)を見れ。
>>455 ホレ。
ただしタグがあると別ノードになるからね。一般にテキスト
は要素ノードの子供ノードであるテキストノードの値。
innerHTMLはIE独自拡張だが今は多くのブラウザが対応している。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<form action="#" onsubmit="return false"><p>
<span>Test</span><input type="button"
onclick="alert(this.previousSibling.firstChild.nodeValue);"></p></form>
</body></html>
>>455 <Element>.firstChild.nodeValue が多分オマエが表示したいモンだ
458 :
441 :2006/02/24(金) 14:33:32 ID:???
まことにありがとうございました。
459 :
447 :2006/02/24(金) 14:41:32 ID:???
460 :
Name_Not_Found :2006/02/24(金) 14:47:37 ID:w3ToP+L/
javascriptから calc.exeコマンドを打って電卓をだしたいのですが スクリプトからシステムコマンドうてないでしょうか・・
>>460 アンタのブラウザではそんなのが許されているの?
それなら「del *.*」を実行するリンクのページでも開いてみる?
自分の脳内で都合のいいことだけはできて都合の悪いこと
はできないとか思ってもだめよ。Web制作のイロハだろ。
勉強しておいで。
WSH は板違い、とでも書けばスマートだったな
463 :
441 :2006/02/24(金) 15:06:40 ID:???
<p><span>1000</span><input type="button" onclick="alert(this.previousSibling.firstChild.nodeValue);"></p> 上記ではうまくいくのですが、 <p><span>1000</span>円<input type="button" onclick="alert(this.previousSibling.firstChild.nodeValue);"></p> 要素と要素の間に文字列を入れた場合、エラーになります。 何か良い解決策はないでしょうか?
>>463 解決策もなにも、そこに「円」という文字列のノードがあるんだから
「this.previousSibling.previousSibling.firstChild.nodeValue」
にしないと駄目だろ、何を学んでるんだ。
>463 <p><span>1000円</span><input type="button"value="OK" onclick="alert((this.previousSibling.firstChild.nodeValue).substring((this.previousSibling.firstChild.nodeValue).length-1,(this.previousSibling.firstChild.nodeValue).length);"></p> とでもやってみる? エラーの内容くらい書けよ。オブジェクトがないわけっしょ?
466 :
441 :2006/02/24(金) 15:20:51 ID:???
見事です。解決です。
質問させてもらいたいのですが <span>20</span>個 <span>6</span>個 <span>25</span>個 <span>10</span>個 <span>2</span>個 html内にこのようにspanで囲まれた数字がいくつもあって、その数字を合計した値を取得する方法はありますか? ただし、個数以外の文字列とか数字が入ったspanも入り乱れております。 全てに異なるidを付けてその中の数字を足していくというようなスマートじゃない方法は避けたいです。
469 :
467 :2006/02/24(金) 17:04:43 ID:???
しかし、name属性はXHTML1.0 Strictでは使えませんし、id属性は同じものは使えません。 となると、方法は無いように感じるのですが。 1つ可能性があるとすれば、spanの右にある"個"という文字を認識に使えば、あるいは・・・
470 :
467 :2006/02/24(金) 17:15:02 ID:???
どう考えても無理っぽそうなので、ちょっと妥協したいんですが、どうしても <span id="span0">20</span>個 <span id="span1">6</span>個 <span id="span2">25</span>個 <span id="span3">10</span>個 <span id="span4">2</span>個 myTotal = document.getElementById('span0').firstChild.nodeValue + document.getElementById('span1').firstChild.nodeValue + document.getElementById('span2').firstChild.nodeValue + document.getElementById('span3').firstChild.nodeValue + document.getElementById('span4').firstChild.nodeValue; こんな書き方はしたくありません。また myTotal = span0 + span1 + span2 + span3 + span4; こんな書き方もしたくないです。 もっとスマートに書く方法はないでしょうか?たとえば for(i = 0; i = 4; i ++){ myTotal = span + i } こんなスマートな書き方です。 めちゃくちゃですが雰囲気を察してもらえればありがたいです。
>>451 > input type="text" で名前を同じにするのはHTMLとして正しくないから
> 一般的に言えば何が起こるか分からないが、
アフォ?
あ、間違えました。 for(i = 0; i = 4; i ++){ myTotal = myTotal + (span + i) } (span + i)というのは、変数名に数字をくっつけて、その数字をforで1ずつ足していきたいということです。 そんなやり方はないでしょうか?
>>469 この場合、確かに name や id は使いたくないよな。
以下はヒントです。
* span 要素を列挙する
document.getElementsByTagName('span')
span 要素の配列(本当は配列じゃないんだけど)が得られる
* 要素の内容を取り出す
innerHTML
若しくはelem.firstChild.data
* 数値に変換する
Number(text)
数値に変換できない場合、NaN が返ってくる
あなたの場合、そろっと DOM の仕様書に手を出しても良いんないかな。
できることの幅が広がるよ。
474 :
Name_Not_Found :2006/02/24(金) 17:23:26 ID:Fz32vOug
質問です。 <input id="x" value="0"....... />での「0」の有無を確かめるために document.getElementBy('x').value.indexOf('0') としていますが、「サポートされていない」とのエラーです。 どう書けばよいのでしょうか。
>>472 total += Number(document.getElementById('span' + i).firstChild.nodeValue);
しかし思うに、数字の入るspanに決まったclassを指定して
var a = document.getElementsByTagName('SPAN');
for(var i = 0; i < a.length; ++i)
if(a[i].className == '決まった名前')
total += Number(a[i].firstChild.nodeValue);
なんていうのが分かりやすいのでは。
>>474 > getElementBy
getElementById
~~
ここかな?
477 :
474 :2006/02/24(金) 17:26:28 ID:???
>>474 誤記訂正。すいません。
× getElementBy('x')
○ getElementById('x')
478 :
467 :2006/02/24(金) 17:27:10 ID:???
>>473 ヒントありがとうございます。
DOMの仕様書に手を出したいと思います。
>>475 それらは最高の答えです。
ありがとうございます。
>>474 getElementById()じゃないの?
480 :
467 :2006/02/24(金) 17:29:02 ID:???
それにしてもclassをcss以外の目的で使用しても良いとは知りませんでした。 目からうろこです。
481 :
474 :2006/02/24(金) 17:29:30 ID:???
すいません、解決しました。
元のが
>>476 さんのご指摘のように間違ってました。
なさけね〜。
>>474 何ら問題なく動くけど。別のところでのミスでは?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() { alert(document.getElementById('x').value.indexOf('0')); }
</script>
</head><body>
<form action="#" onsubmit="return false"><p>
<input name="i0" id="x" value="0"><button onclick="test()">Test</button>
</p></form></body></html>
さっきから<title>???</title>の人が、いちいち書いて動作確認してることに萌え
>>480 class指定しとけば、後で数字を大きくしてもらえるー?って言われた時にも便利じゃないか
変数に?Objectが入ってる場合、alertとかwriteで[Object]って表示されるんですけど、何が入ってるのか見る方法ありますか?
>>485 「何」とはどういう情報のこと?ちなみに現行JavaScriptには
クラスはないから「クラス名」とかは存在していないよ。
487 :
485 :2006/02/24(金) 19:07:13 ID:???
>>486 document.hoge.hugeとかのことです。
おーい、エスパーさん呼んで来てー
文字列strの途中から終わりまでを抜き出すスマートな書き方はありますか? 途中から終わりまでの文字数は変化します。
>>491 メソッドsubstring()は第2引数を省略すると末尾まで
を抜き出す。少し上で散々それ使ってるだろ。
493 :
491 :2006/02/24(金) 20:13:16 ID:???
>>483 「いちいち」というのは、いい意味では使わないよな。ホレ氏に悪いだろ。
495 :
Name_Not_Found :2006/02/24(金) 20:47:59 ID:Fz32vOug
たとえば、getElementsByTagName('SPAN') などのとき、HTMLではCIですが、 JavaScriptではCSですよね。 getElementsByTagName('SPAN') とgetElementsByTagName('span') はちがいま すか。
質問です。document.writeを使わずDOMでやりたいです。 HTML内に30個ほどある全てのselect要素内に同じoption要素を一括生成するにはどうすればいいですか?
497 :
496 :2006/02/24(金) 21:09:16 ID:???
<select> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> ・ ・ ・ <option value="100">100</option> </select> <select> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> ・ ・ ・ <option value="100">100</option> </select> ・ ・ ・ こういうことで、oprion要素は全てDOMで一括生成したいです。
>>496-497 DOMの勉強をすれば普通にできるようになると思うが。
勉強したくないのならここはアンタの来る場所じゃない。
もっとも、optionの生成とかは過去ログには沢山ある。
煽っても代わりに検索はしてやらないのでそのつもりで。
499 :
496 :2006/02/24(金) 21:30:01 ID:???
>>498 ありがとうございます。
過去ログ見てみます。
"過去ログ読め !" は相変わらずなんだな. 貴重な記事もなくはないが S/N ratio 悪すぎ ! 誰かがまとめれば良いのだろうけど 極めて非現実的だ.
別にキーワードは分かってるわけだし過去スレ検索いけるだろ。
"類似の質問が繰り返されるのは 我慢ならない" と言う気持ちは解らないでもない. さりとて, 膨大な量のがらくたの山から お宝を探せ と言っているに等しい. 識別能力のない人には絶対に不可能な要求だ. "過去ログ読め !" よりも "半年 ROM ってろ !" の方が理にかなっていると思いやすぜ. こまめに覗いていると たまに拾い物があるもんね.
nullが一番noisyな件について
2月の第5週目は質問をDOMに限るとか。探しやすくて委員じゃない。 大学の集中講義思い出した。
過去ログ読め批判の人は何で質問に答えてやらないんだ? それかまとめwikiでもつくればいいのに
しつもんがなくて さみしいんだよ〜 ! "手取り足取り" もよろしく〜. (ぶつぶつ...)
いったことないけど、ほんとに手取ったり足取ったりしてくれるの? はなしうますぎるよかん。
過去ログ読め批判の人?ちがうだろ。 ○○の1つ覚えで過去ログ読め読めいってるヤシだろ。
>>505 ごもっとも !
でも僕はここの体質に合っていないんだ.
(理屈ではなく, 応用に重点を置いている)
んで, 過去ログまとめは考えたことがある.
しかし見事に頓挫.
このスレッドの歴史が解ったのが唯一の収穫だったっぽ.
510 :
496 :2006/02/24(金) 23:25:16 ID:???
過去ログは流れてたのでいろいろ調べてここまで出来たんですが、どうしてもこれ以上は無理そうです。 <script> function start(){ var eSelects = document.getElementsByTagName('select'); for (i = 0; i < eSelects.length; i++){ for (j = 0; j < 100; j++){ nd = document.createElement('option'); nd.value = j; var str = document.createTextNode(j); eSelects[i].appendChild(str); eSelects[i].insertBefore(nd, eSelects[i].firstChild); } } } </script> <body onload="start();"> <select> </select> </body>
511 :
496 :2006/02/24(金) 23:25:50 ID:???
これを実行すると、 <SELECT> <OPTION value=99></OPTION> <OPTION value=98></OPTION> ・ ・ ・ <OPTION value=0 selected></OPTION> 0123456789101112131415161718192021222324252627282930 3132333435363738394041424344454647484950515253545556 5758596061626364656667686970717273747576777879808182 8384858687888990919293949596979899 </SELECT> となってしまいます。 どうすればいいでしょうか? <select> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> ・ ・ ・ <option value="99">99</option> </select> という結果を得たいのですが、どうすればいいのかご指導いただけないでしょうか?
>>507 だまされたと思って来てくれ〜.
でも僕は "手取り足取り" と言うよりも "丸投げスレッド" だと思ってる.
"こんなのできる〜 ?" と言うのに答えて
"どうでぃ ?! おいらに不可能はないっぽ !" てな感じの趣向だ.
>>511 >eSelects[i].appendChild(str);
nd.appendChild(str);
>eSelects[i].insertBefore(nd, eSelects[i].firstChild);
eSelects[i].appendChild(nd);
だよ
515 :
496 :2006/02/24(金) 23:51:18 ID:???
>>513 今自己解決しましたが、それと一致しておりました。
ありがとうございました。
516 :
Name_Not_Found :2006/02/24(金) 23:54:11 ID:rBisTbhW
<html><head></head><body><script type="text/javascript"> <!-- function Kei(){ var i = document.f1.i.value - 1;var j = document.f1.j.value - 1;var l = 0; var k = 0;var result=0; var M = new Array(); for(k=0;k<4;k++){var M[k] = new Array(); for(l=0;l<4;l++){M[k][l]=1;} } M[0][0] = M[2][0] = M[1][1] = M[0][2] = M[2][2] = M[3][3] = 0; M[1][0] = M[0][1] = 2; for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k[l] * M[l][j];}} document.f1.t1.value = result; }//--> </script> <form name=f1><br>i = <input type=text name=i><br>j = <input type=text name=j> <input type="button" value="D" onclick="Kei()"><br> M [ i ] [ j ] = <input type=text name=t1> </form></body></html> が動作しないんですが、どこが間違ってるか教えていただけたら幸いです。。。
>>516 debug を他人に依頼するようでは先行き不安だ.
まさか debug の定石を知らないんじゃないんじゃないよね ?!
518 :
Name_Not_Found :2006/02/25(土) 00:23:03 ID:uf3/VPOy
alert()以前に 関数を呼び出せないんで・・・。 HTMLの記述で不備があるのかな、と踏んでますが、如何とも・・・。
>>516 とりあえず
>var M[k] = new Array();
M[k] = new Array();
>for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k[l] * M[l][j];}}
for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k[l] * M[l][j]];}}
あとk[l]==undefind
これ直してもNaNだけど
sage忘れてた。。。 しかも凡ミスだorz 何かもう恥ずかしいな・・・。
521 :
516 :2006/02/25(土) 00:36:31 ID:???
・・・組み込んでちゃんと動作させました。。。 もうこんな恥ずかしい事絶対聞かねーorz
>>516 >>518 >>520 エラー出てただろ?それをちゃんと報告できない奴は
2度とくるな。
>>510 それを調べたのは評価するけど、テンプレを見れば過去
スレ全集というのが見つかったはずなんだけど。
>>520 ごめん
>>for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k[l] * M[l][j];}}
>for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k[l] * M[l][j]];}}
for(k=0;k<4;k++){for(l=0;l<4;l++){result += M[i][k] * M[k][l] * M[l][j];}}
だこれでいける
>>451 > input type="text" で名前を同じにするのはHTMLとして
> 正しくないから
INPUT要素型のname属性はCDATAだから、正しい。
>>525 HTMLの仕様といった場合、構文部分と意味部分とがあると思うのね。
INPUTについてはTYPEによって意味が変わるでしょ。で、
ttp://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html [checkboxes]
Several checkboxes in a form may share the same control name.
[radio buttons]
Radio buttons are like checkboxes except that when several share
the same control name, they are ...
「同じコントロール名」について言及されているのはこの2種類だけ
なので、残りは同じコントロール名というのはないと読んだのだけど。
激しくスレ違いなので、この議論続けるならStrictスレに移動して
そこで聞くというのはどうかな。
527 :
Name_Not_Found :2006/02/25(土) 10:48:34 ID:3Q/i9DpB
こんにちは。 var num = 1; Math.log(num) / Math.log(10); というのは、どういうことですか。解説お願いできますでしょうか。
>>526 の英文を翻訳させててみました。
[checkboxes]
Several checkboxes in a form may share the same control name.
[radio buttons]
Radio buttons are like checkboxes except that when several share
the same control name, they are ...
[チェックボックス]
1つのフォームの中にあるいくつかのチェックボックスは同一の制御名を共有
しうる。
[ラジオボタン]
ラジオボタンはチェックボックスと同じようなものであるが、ボタンのうちの
いくつかのものが同一の制御名を共有する場合に、それらのボタンは・・・
・・・のこのあとが主題と思われw
>>527 高校数学習った?numの常用対数をとってるんだよ。
Math.LN10という定数があることは知らないみたいだけど。
>>528 checkboxとradioで複数あるのは当然。問題はtype=textだろ。
Strictスレいこ。
531 :
527 :2006/02/25(土) 12:43:29 ID:???
>>529 お答えありがとうございます。
numの常用対数をとるとどうなるんでしょう。その意味は?
すいません、高校中退(1年)のうえにアタマは文科系です(ナキ
>>531 log(x)/log(10) = log10(x) = 「xを10進数で表記したとき何桁あるか」
たとえばxが1だと0、10だと1、100だと2、1000だと3。これらの間の数
もそれなりの数値になる。1だと0というのは分かりにくいかもしれないが
1というのは0.9999999...のことだと思ってくれ(これ以上突っ込みたければ
理系板の数学のスレへ行ってくれ)。
読み返してみると「何桁あるかマイナス1」と説明するべきだったな。 数学屋じゃないのでごめん。
534 :
527 :2006/02/25(土) 13:11:04 ID:???
すみませんecmascriptというのはどのブラウザでも問題なく動作するのですか? javascriptとjscriptの最小公倍数(最大公約数だっけ?)というわけではないんですか?
質問なのですがdocument.body.scrollTopはDOMでしょうか?
違います
ぶっほい!
539 :
536 :2006/02/25(土) 14:36:24 ID:???
>>537 即レスありがとうございます。
それではDOMで、document.body.scrollTopに当たるのはどういった記述でしょうか?
>>539 DOMは文書構造にアクセスしたりするインターフェイスで
javascriptだけじゃなくPerlもPHPもJavaもその他いろいろも使うんだよ
そんなのにscrollTopみたいなのがあると思うかい?
541 :
536 :2006/02/25(土) 14:52:51 ID:???
ないと思います。 だからself.pageYOffsetでクロスブラウザなJavaScriptにしたいと思います。
542 :
527 :2006/02/25(土) 15:05:35 ID:???
>>541 ほんじゃ、これでどーよ。
var x,y;
if (self.pageYOffset) // all except Explorer
{
x = self.pageXOffset;
y = self.pageYOffset;
}
else if (document.documentElement && document.documentElement.scrollTop)
// Explorer 6 Strict
{
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
}
else if (document.body) // all other Explorers
{
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
ok
544 :
536 :2006/02/25(土) 15:16:06 ID:???
>>542 こんな感じで組んでたのですが
(document.all && !window.opera){
var scrY = document.body.scrollTop;
}else{
var scrY = self.pageYOffset;
}
document.getElementById('allTotalSection').style.top = (scrY + offY) + 'px';
そっちの方が良さそうなので使わせてもらって
var scrY;
if (self.pageYOffset){
scrY = self.pageYOffset;
}else if (document.documentElement && document.documentElement.scrollTop){
scrY = document.documentElement.scrollTop;
}else if (document.body){
scrY = document.body.scrollTop;
}
こうなりました。
ありがとうございました。
545 :
536 :2006/02/25(土) 15:16:55 ID:???
あ、上の最初の行ifが抜けてました・・・
546 :
Name_Not_Found :2006/02/25(土) 15:38:24 ID:LYd9TyVI
質問です。 デジタルカレンダー風にひにちの連番を作りたいのですが、月末と月初の数字の 断絶のところで悩んでいます。これを、new Date() を使うなどして自動的に整合 させることはできるでしょうか。 いまは、「0331」になったら、次の番号が「0401」になるように個別に仕込んでいます。
<html> <script type="text/javascript"> function Ex() { document.Ex.Ex1.value = Nn; Ex1.innerHTML = elve(Nn + 1); </script> <body> <form name="Ex"> <span id="Ex1">0</span><br> <br> <a href="javascript:Ex()">+1</a> </form> </body></html> と表示させたいのですが表示してくれません。 書き出して、1を加えて再度書き直したいのですがどのようにすればできるかご教示お願いします。
548 :
Name_Not_Found :2006/02/25(土) 15:57:06 ID:LYd9TyVI
質問なんですが、p.htmlというファイルが、q というディレクトリに入って いるときに、この「q」というディレクトリの名前を取得する方法はありますか。 よい方法がありましたら、教えてください。 q(dir) │ ├p(file)
>>547 マジ?本屋に行って立ち読みしてからこいよ。
551 :
546 :2006/02/25(土) 16:25:56 ID:???
>>550 ありがとうございます。過去ログまで示していただいてすいません。
わたしがやりたいのは、いわば静的な日付けなんです。
たとえば、var date='060331'という変数を取り込んで次の数字(実体
は文字列)を取得します。通常は、'060332'が期待されますが、こ
れを手作業で修正するのが大変なため、なにか方法があるのでは、と
お聞きした次第です。説明不足で申し訳ありませんでした。
552 :
548 :2006/02/25(土) 16:39:30 ID:???
すいませんでした。自己解決しそうです。やってみます。
>>551 > 通常は、'060332'が期待されます
期待するのは'060401'ではなくて?
こちぁーっす!!質問があります!! textareaのキャレットの位置に、ボタンをクリックすると 対応した文字列が挿入されるシクリプトを作りたいです! 過去ログ検索、google検索させていただきましたが いまいちぱっとするものが見当たりません!! なんかイイやり方がありましたら 自分めにぜひ教えてくださいっ!!!
556 :
551 :2006/02/25(土) 17:24:39 ID:???
>>553 >> 通常は、'060332'が期待されます
>期待するのは'060401'ではなくて?
すいません。言葉の使い方が誤っているかもしれません。
要するに、プログラム上では、「060332」になる。しかし、
実際には「060401」にしたい(ならなければならない)と
いうことです。重ねてよろしくお願いします。
>>555 即レス アッッシタ!!
質問はいくつか見つかりましたが、それに対する回答が見当たりません!
よろしければガイドをよろしくお願いいたします!!!
>>556 550にある過去スレで解決すると思うけど。
'060331'をDateに入れ、一日後を求めれば。
nextSiblingだらけになってしまうのを防ぎたい。 ただしIDとかは使いたくない。
561 :
556 :2006/02/25(土) 18:31:07 ID:???
>>559 ありがとうございます。
あ、そうですね。やってみたらきちんとした日付になりました。
ただ、年が4ケタにしなければならないので、文字列操作が必要
です。「06/02/25」のように2ケタを使うことはもうできないの
でしょうか。「20060225」だとちょっと長いので。
質問させていただきたいのですが、 oSelect.parentNode.previousSibling.firstChild.firstChild.nodeValue = hoge; 上記のコードがIEでは問題なく動きますが、Mozillaでは下記のエラーが出てしまいます。 oSelect.parentNode.previousSibling.firstChild has no properties 対処法はありませんか?
564 :
562 :2006/02/25(土) 19:13:23 ID:???
すみません。 HTMLソースは下記です。 <tr> <td><span>ココ</span>ですよ。</td> <td><select onchange="func(this);"><option value="huge0">huge0</option><option value="huge1">huge1</option></select></td> </tr> thisからココを参照したいわけです。
>>562-564 GeckoとIEでテキストノードのできかたに違いがある。具体的には
...</xxx>
<yyy>...
というとき、Geckoではxxxとyyyの間に「改行」のみのテキストノードが
はさまるが、IEでははさまらない(勝手にそれを削除してしまう)。ふるまい
としてはGeckoのが正しいらしい(確かに勝手に情報を削除されるのはヘン)。
ともあれ、この非互換性を避けるためには、ある要素と次の要素の間で
改行しないように、つまり次のように書けばよい
...</xxx><yyy>...
アンタの場合は</td>と次の<td>の間がこれに相当するわけ。ただし
全部長い1行にしろという意味じゃなくて、テキストの途中とかタグの
属性名の前とか、問題のないところで改行すればよい。おわかりかな。
566 :
562 :2006/02/25(土) 19:23:57 ID:???
>>526 違う。仕様にID型にするなんて一切書いてない。
IEには独自にallとchildrenがあるのだから、上手に使えよ。 また、nodeTypeを調べながらループしたって、大概は一回か二回のループだから、 速度は全然問題にならない。何レスも費やすような事じゃないから。ループで即決しろよ。 あと、DOM-Traversalが最良の解決方法になる場合もある。
汎用のxmlhttp関数を作ってみたんですがこれ何か問題ありますか? function HTTP(url,funcName){ if(url.search(/\?/)==-1)url +='?' + (new Date()).getTime(); var httpObj = new ActiveXObject("Microsoft.XMLHTTP"); httpObj.onreadystatechange=function(){ if(httpObj.readyState==4)window[funcName](httpObj.responseText); } httpObj.open("GET", url , true); httpObj.send(); }
なにそれ? なににつかうの?
>>570 // 汎用?特化だろ。
ActiveXObject(...) を使う時は、忘れず try-catch。
573 :
570 :2006/02/25(土) 20:35:12 ID:???
replaceについて質問です。 'abcabc'.replace('a', 'z');とした場合、zbcabcとなるんですが、zbczbcみたいに全部に対して置き換えるにはどうすればいいのでしょうか?
>>574 ...replace(/a/g, z)
文字列じゃなく正規表現リテラルを使え。それが何か
分からないなら論外だから自分で本でも買って勉強しろ。
split() join()
>>573 なんだ、WEB板から外れた話題ですか。
だったら、try-catchは特に必要なくなるだろうし、
"Msxml2.XMLHTTP.6.0" とか、"WinHttp.WinHttpRequest.5.1" とかに決めて書くんじゃないの?
578 :
562 :2006/02/25(土) 20:52:25 ID:???
事故解決しました。
そのこころは?
正規表現リテラル
583 :
570 :2006/02/25(土) 21:04:30 ID:???
>>577 それはMicrosoft.XMLHTPと比べて何がいいんですか?
それと現状の
>>570 はメモリ解放関係でなにか問題ありますか?
>>576 は少し遅い。
function split_join() {
var s = new Date;
Array(65536).forEach(function () {"abcaef".split("a").join("z")});
print(new Date - s);
}
function replace_g() {
var s = new Date;
Array(65536).forEach(function () {"abcaef".replace(/a/g, "z")});
print(new Date - s):
}
js> Array(8).forEach(function () {split_join()})
1735
1797
1625
1765
1625
1781
1610
1781
js> Array(8).forEach(function () {replace_g()})
922
922
891
1390
906
922
938
1375
586 :
570 :2006/02/25(土) 21:22:13 ID:???
>>585 ん?分かってないですよ?
>これは問題ないって。
Microsoft.XMLHTTPが問題ない ということですか?
おっせー
forEach使うから遅いとかもあるように思うが。
2つの変数に同じ値を代入する際に省略した記述方法はありませんか? a = 1; b = 1;
590 :
589 :2006/02/25(土) 22:33:49 ID:???
思いつきました。 a = b = 1; あってますか?
>>586 基本は循環参照 → 明示的な循環だけ(誤)
というふうに記憶が誤って変化していました。
申し訳ない、
>>585 は間違いです、メモリリークします。
http://msdn.microsoft.com/library/en-us/ietechcol/dnwebgen/ie_leak_patterns.asp を信じれば、要するに、クロージャを匿名にせずに、
後から参照してnullを代入すればGCされるらしい、と。
function HTTP(url, funcName) {
if (url.search(/\?/) == -1) url += '?' + (new Date()).getTime();
var httpObj = new ActiveXObject("Microsoft.XMLHTTP");
var httpObj_onreadystatechange = function () {
if (httpObj.readyState == 4) {
window[funcName](httpObj.responseText);
httpObj.onreadystatechange = null;
httpObj_onreadystatechange = null;
}
};
httpObj.onreadystatechange = httpObj_onreadystatechange;
httpObj.open("GET", url , true);
httpObj.send();
}
>>588 Array#forEach ら、Gecko1.8b2の独自拡張は、引数を束縛するから、
寧ろ、純粋な速度比較ができるような気がしますよ。
function f() {
print(1);
f = function () {print(2);}
}
js> Array(2).forEach(f)
1
1 // f は書き換えられたはずなのに、ループ内では反映されない。束縛されている。
js> f.toString()
function () {
print(2);
}
js> Array(2).forEach(f)
2
2
>>592 これってどうやってテストしてるんですか?
(何使ってるんですか?ってことです。)
Rhinoで試したけどforEach使えないっぽいんですが。
594 :
570 :2006/02/26(日) 12:24:38 ID:???
>>591 とりあえず
>httpObj.onreadystatechange = null;
この行、型が一致しませんエラーが出ますよ。
自分も英語読んできます。
質問なのですが、画面下部にナビゲーションを固定したいと思っております。 if (self.pageYOffset){ scrY = self.pageYOffset; }else if (document.documentElement && document.documentElement.scrollTop){ scrY = document.documentElement.scrollTop; }else if (document.body){ scrY = document.body.scrollTop; } document.getElementById('navi').style.bottom = - scrY + 'px'; 上記のようにするとMozillaでは大丈夫ですが、IEでは下にスクロールするとスクロールバーが永久に伸びます。 どのようにすればいいでしょうか?
596 :
595 :2006/02/26(日) 15:04:35 ID:???
自己解決しました。
DOMで現在選択中のoptionのvalueを参照するにはどういう指定をすればいいですか?
598 :
597 :2006/02/26(日) 16:29:53 ID:???
とりあえず今ここまで考えたんですが、まだわかりません。 document.getElementById('a').attributes.getNamedItem('selected').nodeValue; nodeValueではないみたいです。
<select> <option value="00" id="hour00">00</option> <option value="01" id="hour01">01時</option> <option value="02" id="hour02">02時</option> <option value="03" id="hour03">03時</option> <option value="04" id="hour04">04時</option> <option value="05" id="hour05">05時</option> <option value="06" id="hour06">06時</option> <option value="07" id="hour07">07時</option> <option value="08" id="hour08">08時</option> <option value="09" id="hour09">09時</option> <option value="10" id="hour10">10時</option> <option value="11" id="hour11">11時</option> <option value="12" id="hour12">12時</option> <option value="13" id="hour13">13時</option> <option value="14" id="hour14">14時</option> <option value="15" id="hour15">15時</option> <option value="16" id="hour16">16時</option> <option value="17" id="hour17">17時</option> <option value="18" id="hour18">18時</option> <option value="19" id="hour19">19時</option> <option value="20" id="hour20">20時</option> <option value="21" id="hour21">21時</option> <option value="22" id="hour22">22時</option> <option value="23" id="hour23">23時</option> </select> こんなプログラムでプルダウンメニューを作ってるんだけど PCの内部時計に合わせて過ぎた時間を消していくことってできる? 過ぎた時間を選択することはできないようにしたいんだけど。
なぜDOMなの?
IEでいうdocument.selection.clear()をFireFox(というかできるだけ多くのブラウザ)でも実現するにはどうしたらよいですか? ドラッグ中に選択範囲を解除したいのです。
>>597 var select = document.getElementByTagName("select")[0];
alert(select[selectedIndex].text);
603 :
597 :2006/02/26(日) 18:34:52 ID:???
>>602 レスありがとうございます。
しかしそれを参考に組むと、selectedIndexは宣言されていませんというエラーが出ます。
select[select.selectedIndex].text
605 :
597 :2006/02/26(日) 19:28:58 ID:???
>>604 神!!!!!!!!!!!!!!!!!!!!!!!!!!!!
どうしてもcheckboxのcheckedをtrueかfalseか調べることができません・・・ <input type="checked" id="id" onclick="alert(this.attributes.getNamedItem('checked').nodeValue);" /> こういう風にしてるんですけどfalseしか返ってきません。 DOMでやりたいんですけどやり方ないでしょうか?
607 :
606 :2006/02/26(日) 21:44:05 ID:???
あ、間違えました。 <input type="checkbox" onclick="alert(this.attributes.getNamedItem('checked').nodeValue);" /> これです。
今週の重点項目はDOMにきまりだな。
609 :
604 :2006/02/26(日) 22:40:20 ID:???
>>608 同意
onclick="alert(this.checked)"
610 :
606 :2006/02/26(日) 22:42:30 ID:???
checkedはDOMです?
checked は、HTMLInputElement インターフェイスの属性ですね。 HTML に対する DOM API は、 DOM の仕様書の中で DOM HTML という形で記述(定義)されてるよ。
612 :
606 :2006/02/26(日) 23:07:03 ID:???
1つのタグの中でonclick="selectClick()"とonchange="selectChange()"を よびだしたいんだけど無理? つまり、プルダウン等で値が変わったときとクリックされたとき それぞれ違うことをしたいんだけど
URLのhash部分をscriptで、リロード無しで書き換えたいのですが、 Mac IEだけ location.hash='foo'; としても書き換わらないんですが、もしかしてRead Onlyで実装されてるのでしょうか。 「読み込み中」表示のままになったり(Safari)、 location.hash=''; としたときにリロードしてしまうブラウザ(Firefox?)があったりするのですが、 Mac IEだけ、hashの書き換え自体ができないようなので。
location.hash = "#foo"; にしる
618 :
601 :2006/02/27(月) 18:10:12 ID:???
すみません、どなたかわかりませんか?
620 :
Name_Not_Found :2006/02/27(月) 21:15:16 ID:TZdac/N8
var a = 1; var a = 2; とか、 for (i=0;i<100;i++) { var a = 1; } とか、 多重に変数宣言される書き方ってだめでしょうか?
for (i=0;i<100;i++) { var a = 1; } これは問題ないだろ
>>624 >>623 ではないけどサンクス。
オブジェクトの持つメソッドを列挙しようとしたり、色々無駄なことを試してたよ。
626 :
Name_Not_Found :2006/02/27(月) 23:39:02 ID:epo3oryi
>>619 ありがとうございます!
getSelection().removeAllRanges()でできました。
助かりました!
627 :
617 :2006/02/28(火) 03:25:24 ID:???
>>623 僕は見ていた. しかし through することにしたんだ.
なぜなら "focus の当たっている object/element" と言う対象は
script もしくは user の操作によって変化するからだ.
言い換えると変化の原因をしっかり把握していれば済むことなのだ.
"なぜ, そのことに気づかないんだ ?" というのが through の理由だ.
また珍説か
>>617 を助けてやれよ
nullにはちょうどいい内容だろ
>>629 僕は未整理の文章を書くヤシが大嫌いなのだ.
この手合いは script を書かせてもグチャクチャ.
大抵絡みまくった script を解読させられることが多い.
"やりたいことをきちんと書く" ヤシしか僕は相手にしたくないのさ.
nullにそう言われるようじゃおしまいだな(w
>>617 XmlHttpRequestでCSVを読んで自分でフィールドに分けて
自分で整列して整形して表示すればいいんじゃないの。
XmlHttpRequestは検索すれば情報あるよ。あとはどれも
ごく普通のプログラミングだよな。以上が方針。おしまい。
「僕」だってよ。フフフ
XmlHttpRequestでCSVを読むのか
ホームページの横幅サイズを知る方法を 教えて下さい。
nullとは誰ですか?
>>635 それくらい検索しろボケ。
>>636 過去ログ読めばそのコテハン大量に出て来るよ。今は
コテハンやめてるだけで同一人物がいるのは明らか。
まあそれ以上興味あるなら自分で読んで回ってね。
javascript でマウスカーソルの位置を設定する事はできますか? ブラウザであるページを開いた時に、無条件に画面に左上などに マウスカーソルを移動させたいのですが、アドバイス よろしくお願いします。
>>638 ほほお。それはおもしろいね。で、どこまで調べたの?結果は?
mozillaでinsertBeforeを実行すると、おそらく要素のfirstChildにテキストノードがない場合に下記のエラーが出ます。 エラー: uncaught exception: [Exception... "Not enough arguments [nsIDOMHTMLTableCellElement.insertBefore]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: file:///D:/script.js :: initialization :: line 5" data: no] 要素のfirstChildに何もない(空要素)場合、テキストノードを挿入するには他の命令があるのでしょうか? ちなみにIEではエラーは出ません。
createTextNode, appendChild
642 :
640 :2006/02/28(火) 18:35:29 ID:???
あ、勘違いしてました。 では失礼。
643 :
640 :2006/02/28(火) 18:48:55 ID:???
あ、すみません。 要素とclass属性をJavaScript内で生成したものにclassで指定しているCSSがIEでのみ適用されないのは仕様ですか? あと、mozillaでcreateElementした場合、その要素の前に改行が入るのは仕様ですか? また、対処法はありませんか? ご存知の方よろしくお願いします。
644 :
640 :2006/02/28(火) 18:53:34 ID:???
あ、前者の件については過去ログにて解決しました。
>>617 "リンク集" なるものが どんなものか不明なんだけど,
"table を使って sort できる" と言う発想が理解できない.
むしろカテゴリーごとに表示したほうが良いのではないのか ?
目的にあったアプローチを根本的に考え直したほうが良いんでないの ?
一般的に "リンク集" は 作っておしまいと いうものではない.
となると... もっとも重要なことは...
変更のしやすさと, data の使いまわしができることになるだろう.
大切なのは script そのものよりも data file をいかに作るかと言うこと.
"これから勉強する" 人に data file 作りの過程で発生する
bug を fix できるのだろうか ?
(data file を作るときに些細なミスを犯しやすく,
動作しなくなる ことが多い)
>>643 > あと、mozillaでcreateElementした場合、その要素の前に改行が入るのは仕様ですか?
手元では入らない。実例は?
647 :
640 :2006/02/28(火) 19:50:07 ID:???
>>646 今実例を出そうとしてたら原因が判りました。
どうやら
</td><td>★ここにappendChild★
</td><td>・・・
上記のような形で、改行のみのテキストノードをIEが勝手に削除するというバグ対策をすると起こるようです。
そこで
</td><td>★ここにappendChild★</td><td>・・・
上記のように</td>を改行しないことにより解決しました。
ありがとうございました。
648 :
640 :2006/02/28(火) 19:51:07 ID:???
どうやら改行をしていたのは自分自身だったようですね。
649 :
Name_Not_Found :2006/02/28(火) 19:54:59 ID:9uwz3V4l
>>637 検索した結果、わからなかったので、
宜しくお願いします。
>>649 ホームページ 横幅 サイズ
じゃ分からんな
>>650 それじゃ無理だろ。
>>649 で、どういう検索語でどこを検索したのよ。それも書かずに
お願いしますもないもんだ。
>>651 ユードラで3,000万円振りこめば話は別だが。
(ホンモノはケタにカンマが入ってるんだよ、永田クン)
>>650 ホームページでの注文ならだれにも内緒でできます。最近ご自分の横幅に
お悩みのあなた。サイズを気にする必要はもうありません。「幅ドカン!」
なら、明日からすぐにスッキリ美人になれます。
というのが、引っ掛かりましたが、なにか?
>>653 だから「どこの検索に」「どういう指定で検索したか」を
書けといっている。それができるようにならないとここで
その1件だけ教えてもザルで水汲むようなもんだろ。
( ^ω^)こんがらがってどっちが質問者か読んでてわけわからん 655が質問者なのか?
>>656 いや別にいいよ。アンタもう帰ったら。ここで質問するのに
向いてないね。二度とくるな。
最後に教えといてやろ。「JavaScript ページ 横幅」でぐぐれ。
二度と来るなよ。
>>658 なんで俺がぐぐらないといかんの?
当人に言ったら?
ガ━━(゚Д゚;)━━━ン!!!!!
あのう、お客さまはもうとっくにお帰りなりましたんや けどなぁ? よろしく、ゆうてはりましたわ。
msdn.microsoft.com や developer.mozilla.org があるのに、 ぐぐって劣化コピーを漁れとは、おかしな話だ。
いきなりリファレンスが読めるヤシがあんな質問するかよ。
はじめから100点満点とる必要はないでしょ
>>663-665 MSDNとMDCの話をしたのに、document.compatMode で分岐する話を補足しないのは、なぜでしょうねえ。
もしかして、おまえらが初心者でしたか。知ってたけど(笑)
このスレの回答例でcompatModeの出て来るものなんてないだろ。 それはなぜだろうね(w
使用可能なフォントの一覧を取得することってできますか?
>>670 ActiveXでやるのがあるんだ。そりゃ検索して探すしかないだろ。
洩れはGecko使いだから助けてやれないのであしからず。
672 :
668 :2006/03/01(水) 13:49:32 ID:???
最速インターフェース研究会か
674 :
635 :2006/03/01(水) 14:31:06 ID:???
>>658 こんにちは。
実際には
>>635 と
>>649 しか書いてないのですが、いろいろ皆さんで書いて頂き感謝してます。
特に「JavaScript ページ 横幅」でぐぐれと教えてくれた方、ありがとうございます。
document.body.clientWidth等で幅を調べるとウィンドウの幅でサイズを判断するじゃないですか。
そうじゃないんですよ。これは質問前からわかってるんです。
ウィンドウを縮小したときに、横スクロールが出ない限界サイズはいくつか知る方法を教えて欲しいんです。
ウィンドウの横幅サイズではなく、ホームページの横幅サイズなんです。
ここで聞くのは無理なのかな…、とにかく頼みます。
「ホームページの横幅サイズ」ではやはり意味が分からんが、 ページの中身をこつこつ調べるしか無いと思う。 もしくは、実際に縮小していって、スクロールバーの出たサイズを 求める。
>>674 そりゃ書いてる内容によるんじゃないの?
たとえばテーブルのサイズが500pxならウィンドウ幅が
その値に近くなったときにスクロールバーが表示される。
というかその値を求めて何がしたいか書いたほうがいいと思う。
まったく別の方法でやりたいことが実現できることがある。
慣れないうちは自分で思いついたものしか
選択肢がないように思い込んでしまうものだし。
>>674-676 何をしたいかはほぼ明らかだと思うが。内容幅を調べて
スクロールバーが出ないように窓の幅を調整するんでは。
そういうインタフェースはアリだと思うな。で、ホレ。
(本来のページ内容を全部1つのdivに入れるようになってる)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function init() {
var w0 = document.body.clientWidth;
var w1 = document.getElementById('d0').offsetWidth;
window.resizeBy(w1+20-w0, 0);
}
</script>
</head><body onload="init()">
<div id="d0" style="position:absolute">
<pre>
abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde
</pre>
</div>
</body></html>
エスパー乙
<html><body> <input type="button" value="追加" onclick="widthTest()"> height:<span id="result"></span> <div id="testDIV1" style="width:100px; height:100px; border:1px solid black;"> <div id="testDIV2"></div> </div> <script> function widthTest(){ testDIV2.insertAdjacentHTML('beforeEnd','適当な文字列'); result.innerHTML=testDIV1.style.height; } </script> </body></html> 縦横をピクセル指定したtestDIV1の中の testDIV2の内容が動的に増えてtestDIV1が押し広げられたとき、 testDIV1の現在の正しいwidthやheightを取得する方法はありませんか? この場合どんなに押し広げられても元の100pxという値しか取得できません
>>679 テンプレを読んでないな。とくに FAQ
>>3 は必須なんだが…
ともかく、
>>677 みたいにoffsetWidth等を参照するのがいいのでは。
まさか
>>677 すらも熟読していないとか…そんな奴は帰って欲しいが。
682 :
679 :2006/03/01(水) 16:01:29 ID:???
>>680 >>681 あー関係のある質問してる人がいたんですね。
offsetWidthとoffsetHeightでいけるんですね。
ありがとうございました。
文字化けで質問なんですが、 Ajaxでcsvファイルを読み込んで表示させる場合、 IEとFireFoxでは問題ないんですが、 Operaの場合文字化けしてしまいます。 文字コードはhtml、csvともUTF-8です。 なんとかならないでしょうか。 宜しくお願いします。
685 :
683 :2006/03/01(水) 18:03:48 ID:???
>>684 だめでした・・・。以下、簡単な確認ソースです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml "><head><title>Ajax</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
<!--
function dataLoad(){
var http = null;
try{http = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){http = new XMLHttpRequest();}
http.open("GET","sample.csv",false);
http.setRequestHeader("Content-Type","text/csv;charset=UTF-8");
http.send("");
document.getElementById("hoge").innerHTML = http.responseText;
}
//-->
</script></head><body>
<input type="button" value="load" onclick="dataLoad()" />
<div id="hoge">表示エリア</div>
</body></html>
Content-Typeはtext/csvでいいのかググってもよくワカラン('A`)
txtファイルにするしかなさそうですorz
UTF-8 と UTF-8N の違いとか。
>>685 ちゃんと読んだのかよ、overrideMimeType()を使ってみなよ。
それでOKかどうかは確信ないけどね。げげ、もしかしてOpera
だとそのメソッドないのかな?
JavaScriptとJavaの違いを理解できず、スクリプトを組むための最低限の HTML・CSSを理解できない私はどこのスレッドに行ったらいいのか教えてください。
もちろん、Web製作初心者スレへどうぞ。特にJSがらみなら 手取り足取りスレへ。
JavaScriptとJavaの違いを理解できないのではっきりJSかどうか分からないのですが
一応
<SCRIPT language="JavaScript">
<!--
function ms(){
で始まってるので手取り足取りスレへ行ってみます。
ありがとうございます
>>689
691 :
685 :2006/03/02(木) 08:38:22 ID:???
693 :
685 :2006/03/02(木) 08:55:26 ID:???
>>692 >>684 さんのところの
>>756 で見ました。
>Operaには(8.01現在)setRequestHeaderメソッドが実装されていません。
>そのためHTTPクライアントとしての機能は非常に制限されたものとなっています。
というのがあったんですが、8.5と9.0では特にエラーでjsがとまることも無いので、
使えるのかなと思ってやってみたんですが、文字化けは直らないですね。
もうバグだということにしてあきらめようと思ってます。
617が参考になるんじゃない?
>>693 これはさあ、
>>692 に書かれているURIを読むとOperaでは文字
コードを常に自動判別としてるじゃない。UTF-8を自動判別って
いうのは危ういと思うんだよね。先頭にUTF-8だと判別されやすい
データをわざといれるとかどうかな(どういうデータというのは
よく分からないけどさ)。
696 :
Name_Not_Found :2006/03/02(木) 12:43:18 ID:v7/pi70d
単純な質問で恐縮です。 var many=4; var fig='z'; としたとき、変数 many と fig を1回ずつ使って、文字列 z+z+z+z を作る書きかたってありますか。掛け算なら簡単なのですが 分からなくなってしまいました。
697 :
696 :2006/03/02(木) 12:51:36 ID:???
ごめんなさい。肝心なこと書き忘れました。 for(i=0;i<many;i++){ res+='fig' } とかのfor文でないやりかたが知りたいのです。
宿題ですか
それ間違ってるし。 forがダメならwhileとかあるけどな
700 :
Name_Not_Found :2006/03/02(木) 13:22:08 ID:v7/pi70d
referrerについて質問です。 JavaScriptでアクセス制御をやりたいのですが、限界があるという話を 聞きました。やはりクライアントサイドでは無理というか不十分ですか? 訪問者がJavaScriptを切っていたらムダだという意味だと理解したので すが・・・。
JavaScriptでのアクセス制御自体の可否は知らないけど >訪問者がJavaScriptを切っていたらムダ 重要な情報は外部ファイルのスクリプトで表示を制御 することにして、そのスクリプトファイル自体もCGIで 呼び元によってスクリプトの内容を出力する/しないを 制御すれば隠匿は可能かも。
702 :
701 :2006/03/02(木) 13:53:53 ID:???
ごめん、クライアントサイドだけで、って話だったね。
703 :
Name_Not_Found :2006/03/02(木) 13:56:43 ID:v7/pi70d
ネスケでは<PRE>タグ内の文字列の空白を詰める設定がCSSであったとおもい ますが、IE(6)で、改良されている文字列の改行を破棄するにはどうすれば いいのでしょうか。具体的には、 杉田玄白たちは医学のプロだったがオラ ンダ語は素人同然だった。そのた めに 1日かけて「眉というのは目の上に生え た毛である」という言葉を翻訳している。 というのを 杉田玄白たちは医学のプロだったがオランダ語は素人同然だった。そのた[改行なし] めに1日かけて「眉というのは目の上に生えた毛である」という言葉を翻訳している。 のようにずっとつなげたいです。すいません、よろしくお願いします。
704 :
703 :2006/03/02(木) 13:59:54 ID:v7/pi70d
重ねての質問ですいません。訂正です。
>>703 ×改良 ○改行
>>703-704 JSの話題じゃないじゃん!!! CSSスレへ逝けアホ。
>>700 document.referrerは「URL直打ち」や「お気に入りから飛ぶ」
場合は値が入らないから何の役にも立たないよ。
>709、06 みなさん、ありがとうございました。 2chの人でもやさしい方いらっしゃるんですね。
708 :
Name_Not_Found :2006/03/02(木) 16:10:35 ID:EkDcu9ll
いろんなサイトのJSをいじったりしてみたら、セキュリティがどうのと、でてきたりするんですが、 ウイルスにやられたり、不正アクセスで、サイトの管理人とかに通報されたりしないでしょうか?
>>708 ハア?もっと具体的に書いてくれないと答えようがないよ。
「いろんな」じゃなく、どれか1つに絞って、どこで何をしたら
どういうメッセージ(省略せずにそのもの全部)が出たけどという
風に質問してくれ。
URLもぜひたのむ。
712 :
708 :2006/03/02(木) 17:04:56 ID:EkDcu9ll
すみません。スレ違いな質問でした。
713 :
Name_Not_Found :2006/03/02(木) 18:24:28 ID:lL9W5LFf
同じ項目のtextbox等作るときいちいちonkeyup〜とか記述するのが めんどいのですが この重複を省くことはできないのでしょうか? CSSのクラスとかみたいに管理できれば嬉しいのですが・・。
onload で textarea にイベントハンドラ付ける わからなければ今まで通りにやっとけ
ハハハ。厳しいが Good な回答だな。
ちょっと疑問に思ったのだけれど、
別ドメインのjsを読み込んだとき、そのスクリプトから見えるドメインはどこなんだろう?
たとえば
http://test.com/a.html で、
<script type="..." src="
http://example.com/example.js "></script>
と記述した場合、
example.jsの中でexample.comに(たとえばXMLHttpRequestで)アクセスした場合、
それは動かないと思うんだけど(というのもsrc属性はそこに当該URIの内容を埋め込むから)、
この認識はあっているかな?
<script langage="JavaScript"> <!-- //最近2chで質問しようと文章を打っているうちにこたえが浮かぶようになってしまった //淋しいような気もするけど、ちょっとうれしい。ありがとう。 // --> </script>
文章を打つというのは自分で整理するということでもあるから、 その過程で解決策が浮かぶのはそれほど不思議なことではないけどね
720 :
Name_Not_Found :2006/03/03(金) 21:18:20 ID:X6Hq8mCR
DOMでformのvalueにアクセスするのは、邪道ですか。 var f=document.getElementsTagName('form'); f[0].childNodes[2].nodeValue='test'; みたいなコードはできないでしょうか。
721 :
Name_Not_Found :2006/03/03(金) 21:31:22 ID:KbaktoFX
ajax使って入力文字からPHP→DB→XML→フォームの値を与える ってことやってるんですが、 document.getElementById('total').value = total; みたいにして input の値は書き換える事できたんですが、 select の値が変わりません。(選択が変わりません。 ちなみに <select name="course"> <option value="第一コース">第一コース</option> <option value="第二コース">第二コース</option> </select> となってて、value と インデックスは 一緒の値です。
>>720 ちゃんとノードツリーの構造が合ってればいいんでは。
なお、getElementsTagNameというメソッドは存在しない。
>>721 selectの場合は「...selectedIndex = 番号」で選択肢の
番号を設定すれ。
>>722 有難うございます。
document.form.course.selectedIndex = 2;
とかすれば変わったのですが、
XMLから取得する値はvalueの値なんで数字がわからないんです。。
数字以外の方法か、valueの値から番号を取得する方法ってないですかね?
724 :
Name_Not_Found :2006/03/03(金) 22:02:04 ID:bkec/b30
>>3 にある
>innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
とのことですが、それに変わる何か推奨される手段はありますか?
>valueの値から番号を取得 optionをforで回してvalueと任意の文字列とが等しいか判定 番号はi
726 :
Name_Not_Found :2006/03/03(金) 22:09:52 ID:KbaktoFX
>>725 できればもう少し詳しくお願いしますm(_ _)m
728 :
725 :2006/03/03(金) 22:32:15 ID:???
list = new Array("あいう","かきく","さしす","なにぬ","はひふ"); num = null; for(i=0;i<list.length;i++){ if(list[i]=="なにぬ"){ num = i; break; } } alert(num); //3
729 :
Name_Not_Found :2006/03/03(金) 22:50:22 ID:c6kBsDzo
質問です。 bodyに要素を追加して、その要素をクリックしたら削除する、ということがしたいです。 function obj(){ this.div = document.createElement("div"); this.txt = document.createTextNode("閉じる"); this.div.appendChild(this.txt); this.div.onclick = function(){ this.remove(); } } obj.prototype.append = function(){ document.body.appendChild(this.div); } obj.prototype.remove = function(){ document.body.removeChild(this.div); } var o = new obj(); obj.append(); と書いたのですが、this.remove is not a functionとエラーになります。 おそらくthisのスコープ?がおかしいのは解るのですが、どのように書けばよいのかが 解りません。 その他おかしいところもあるかもしれませんが、よろしくお願いします。
730 :
Name_Not_Found :2006/03/03(金) 23:16:43 ID:KbaktoFX
document.getElementById('
>>728 ').value = ありがとうございます。うまくいきましたm(_ _)m
>>729 コンストラクタがなんで要るのかわからん。
function add_div(parent_obj) {
var div = document.createElement('div');
div.appendChild(document.createTextNode("閉じる"));
div.onclick = function () { parent_obj.removeChild(this); }
parent_obj.appendChild(div);
}
add_div(document.body);
この方が好み。
element.onclick=function(){...} 中の this は element を指すので
オブジェクトを指すためにはコンストラクタ内で
self = this と保存して self を使ったりする。
732 :
729 :2006/03/04(土) 00:10:30 ID:NQKAJ77o
>>731 ありがとうございます。
実際に使うときには、このブロックの中に他にもいくつかの要素がはいり、かつ、
このブロックがいくつも生成されるので、オブジェクトにしています。
> element.onclick=function(){...} 中の this は element を指す
は理解できました。
コンストラクタ内で
> self = this と保存して self を使ったりする
がよく理解できません。上記のエレメントの無名関数になんとか
オブジェクトを渡さなければならないんですよね?
733 :
729 :2006/03/04(土) 00:15:59 ID:NQKAJ77o
早計でした。 ちょっとわかりかけましたので、もう少し悩んでみます。 また解らなかったら質問します。 ありがとうございました。
735 :
674 :2006/03/05(日) 12:34:41 ID:89xgebl7
>>676 >>677 かなり遅くなりましたが、ありがとうございます!
で、何がしたいかというと、
ホームページって印刷するとA4に収まりにくいじゃないですか。
はじっことかはみ出たり。
初心者にとっては、プリンタのサイズ調整とか、別のブラウザを使うとか、
メーカーから出てるソフト使って印刷とかそういうのって面倒だと思うんです。
ですから、JavaScriptでブックマークレットみたいに使って、
どんなページでも横がA4サイズに収まるにしたいんです。
縦はしょうがないにしても、横のサイズを無理やりでもいいので。
がいしゅつならごめんですが、目的はそれです。
出来る方、宜しくお願いします。
これでおーるおっけー javascript:for(i=0;i<document.styleSheets.length;i++){void(document.styleSheets.item(i).disabled=true);}
微妙な質問ですがわかれば教えてください。 javascriptを使ってチャットなどで相手にブラクラ送ったりするようなことは できるのでしょうか? 宜しくお願いします。
739 :
Name_Not_Found :2006/03/06(月) 00:41:45 ID:y1gYDlx+
javascriptを使って他サイトから直リンク等で各ページに直リンクされた場合 トップページに自動的に飛ばす方法があるらしいのですがやり方がわかりません。 何方か教えてください。よろしくお願い致します。
740 :
Name_Not_Found :2006/03/06(月) 00:53:10 ID:FztYTvvX
同ドメインからのアクセス以外はトップページに飛ばす
741 :
739 :2006/03/06(月) 02:00:21 ID:y1gYDlx+
レスありがとうございます! ググったりして色々調べたのですがやり方が分からない次第です。 時間をとって悪いのですがソースを教えてくれませんか? 参考になるページのURLでも良いので。 他サイトからの直リンクが減らず困っています。 どうかよろしくお願いします。
742 :
Name_Not_Found :2006/03/06(月) 02:14:10 ID:FztYTvvX
743 :
Name_Not_Found :2006/03/06(月) 05:23:12 ID:gOkjn7K0
上 中 下 と分けたとき margin padding border を 0にすると 中と下の間は埋まるのに どうしても 上のDIV要素と中のDIV要素の間にスペースが入ってしまうんだけど どうすれば良いの?
746 :
Name_Not_Found :2006/03/06(月) 09:12:45 ID:OsDIbqnS
>>746 見ている途中で変更しないんだよな。だったらdocument.write()で
そのタグ全体を書き出すのが一番素直と思われ。日付はDateオブジェクト。
あとは自分でやるべきだな。
748 :
Name_Not_Found :2006/03/06(月) 09:26:36 ID:3wVmb1Iw
だいたいさあ、preとかで長い行があったらどうやったって 横幅広くなっちゃうよね。どういう方針で幅を調整するって いうことなのかな。長いのは切れてもいいわけ?
750 :
Name_Not_Found :2006/03/06(月) 10:25:04 ID:3wVmb1Iw
751 :
750 :2006/03/06(月) 10:28:19 ID:3wVmb1Iw
まちがった
>>749 ですね。
うまい具合に収めるってのがあいまいだし、
無理だってことでしょうか。
WEBを印刷するってよくあることなので、
何かあるかなと思ったんでした。
プリントアウトにいつもA3使ってる。 勝手に用紙サイズ指定されたくない。
>>752 まあまあ、用途にもよるから。社内ネットワークで内部にだけ公開するための文書とかなら
そういうのもありでしょ。
>>751 CSS で screen メディアでの横幅を指定すればすむことのような気がするけど。
A4 なら @media screen {body{width:210mm;}} とかでいいんじゃないの?
749 のいうように画像とか pre とか画面上では見えてても印刷すると切れちゃう
かもしれないものもあるけど。
---------- サンプル ----------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>サンプル</title></head>
<body>
<button onclick="window.document.body.style.width='297mm'">A3</button>
<button onclick="window.document.body.style.width='210mm'">A4</button>
<button onclick="window.document.body.style.width='148mm'">A5</button>
<hr>
The Quick brown fox jumps over the lazy dog.
The Quick brown fox jumps over the lazy dog.
The Quick brown fox jumps over the lazy dog.
</body></html>
---------- ここまで ----------
>>752 あほか?bookmarkletを使って印刷するヤシが手元で
調整するという話をしているんだろ。
755 :
Name_Not_Found :2006/03/06(月) 12:53:35 ID:lu5JYneJ
javascriptで用紙設定を変えれたり、、、はしないですよね?このページだけはB5で印刷されるとか 無理ですね。
A3→A4の縮小コピーの容量で javascript:(function()%7Bvar%20objZoom=document.getElementsByTagName('body')[0].style.zoom=prompt('何倍にしますか?',%201);%20%7D)() で0.7程度にして、印刷すると、まあまあいい感じでした。
なるほどねえ。ただしzoomはIE専だよな、Moz使いの洩れには 使えないわ。
印刷のときだけIE使えばいいんじゃね?
それじゃあ印刷専用のブラウザ作れば解決じゃね?
>>758 説明が不足していてすまん。Unix系だとIEがないんだわ。
>>760 なるほど。
印刷はブラウザの独自機能だから、出来るとしたらpdfの動的生成くらいかな。
762 :
Name_Not_Found :2006/03/06(月) 21:21:38 ID:jm7rrGIr
質問です。 ある要素内のテキストノードだけを検索し、マッチした部分をspan要素で括る、ということが したいです。で、下記のように書きました。 var pattern = "/検索パターン/ig"; function addTag(obj){ var tmp = obj.childNodes; for(var i=0 ; i<tmp.length ; i++){ if(tmp[i].nodeType == 3){ tmp[i].nodeValue = tmp[i].nodeValue.replace(pattern,"<span>$1</span>"); } else{ addTag(tmp[i]); } } } これでは、ただ<span>という文字列が書き込まれるだけで、要素は生成されないのは わかったのですが、ではどうしたら良いのかわかりません。 アドバイス頂けますでしょうか。 よろしくお願いします。
>>762 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css"> span { background-color: purple } </style>
<script type="text/javascript">
function test() {
addt(document.getElementById('d0'), /(.*?)(bc)/g);
alert(document.body.innerHTML);
}
function addt(e, p) {
for(var i = e.childNodes.length-1; i >= 0; --i) {
var f = e.childNodes[i];
if(f.nodeType == 1) { addt(f, p); }
else if(f.nodeType == 3) {
var s = f.nodeValue.replace(p, function(x,y,z) {
if(x != '') e.insertBefore(document.createTextNode(y), f);
var span = document.createElement('span');
span.appendChild(document.createTextNode(z)); e.insertBefore(span, f);
return ''; });
if(s == '') e.removeChild(f); else f.nodeValue = s;
}
}
}
</script>
</head><body><p><button onclick="test()">Test</button></p>
<div id="d0">abcdabcd<p>abcdabcdb</p>ceabcdbcabcd</div></body></html>
どうしてそんなに見づらく書くんだぜ
行数制限あるんで〜。字下げは取れちゃうんだよね、でもコピペ して実行できる方がいいと思うから。
質問があるのですがお願いします。 JSで子ウィンドウから、親ウィンドウのSubmit命令を連続で行いたいのですが、 「アクセス拒否されました」や「書き込み出来ません」などのエラーが出てしまいます。 これを防ぐ方法はありませんでしょうか? ちなみに下記の様にやっています function func(){ for(i = 0;i < submit回数;i++){ while(1){ if(window.opener.document.readyState == "complete"){ break; } } window.opener.document.form.submit(); } } 一応、親ウィンドウが前のsubmitを処理したのを確認出来るように組んだつもりですが 上記の様なエラーが出てしまいます。 ご存じの方がいらっしゃいましたらよろしくお願いします。
(´・ω・`)「アクセス拒否されました」
768 :
766 :2006/03/07(火) 06:59:37 ID:???
すいません追記です。 正常に終了することもあるのですが、かなりの確率で上記の様なエラーが出てしまいます。 情報の後出しすいませんでした。
>>766 Submitの連投==迷惑スクリプトとしか思えん。
迷惑スクリプトは回答されない。
>>1-5 正当な使用法だというのならどういう用途なのか説明してみれ。
迷惑スクリプトに決まってんだろ。 whileで待とうとしてる時点でオワットル
771 :
Name_Not_Found :2006/03/07(火) 13:22:50 ID:sm1fW6Z0
<script type="text/javascript"> function browser(num){ var ua = navigator.userAgent; if(ua.indexOf("MSIE 6", 0)>=0 {return ture;} else if(ua.indexOf("MSIE 5", 0)>=0 {return ture;} else if(ua.indexOf("Safari", 0)>=0 {return ture;} else if(ua.indexOf("MSIE 7", 0)>=0 {return ture;} else{return false;} } var answer = browser(num); </script> <script type="text/javascript"> <!-- if(answer=="ture"){ document.write("テスト\n"); } //--> </script>
772 :
Name_Not_Found :2006/03/07(火) 13:23:33 ID:sm1fW6Z0
「answerは宣言されていません」とエラーがでます。 どこがおかしいんでしょうか。
773 :
Name_Not_Found :2006/03/07(火) 13:28:00 ID:rhBzSv3u
質問です。 画像プロパティへのアクセスで、imgタグでname="pic"としたとき、 document.pic.src = 'car4.jpg'; のような記述は正しいですか?
>>773 DOM的には正しくない。動くブラウザもあるだろうけど。
(1) document.images.pic.src = ...
(2) document.getElementsByName('pic')[0].src = ...
(3) ID振って document.getElementById('ID名').src = ...
のいずれかをおすすめする。
775 :
762 :2006/03/07(火) 14:41:14 ID:FkdrXalS
>>763 ありがとうございました。
おかげで、replaceの2番目の引数に関数を使う方法を学習しました!
>>771 本当にその順で書いてあるの?あとnumが未定義だと思うが。
エラーのでる行はどの行?
777 :
773 :2006/03/07(火) 14:51:37 ID:???
778 :
ポーションまずい :2006/03/07(火) 14:58:36 ID:sm1fW6Z0
>>776 if(answer=="ture"){ の行で「answerが宣言されていない」とでます。
>numが未定義だと思うが。
詳しくお願いします。
プログラミングは初めてなもんで。
>>771 if(ua.indexOf(.. の分岐のどっかで return されて var answer = は走ってないんじゃ?
>>771 これは読みにくい。
var answerは関数の外にあるようにみえるが、、
var answer = browser(num);
のnumはからっぽ。
numを引数にする必要は?
781 :
766 :2006/03/07(火) 16:08:12 ID:???
携帯からなので簡単に書かせて頂きます。 JAVAのlistの内容を親ウィンドウに表示させていて、 そのlistのレコード数を子ウィンドウに合わせたいので一々submitで行っています。 非常に阿呆なコーディングをしているのは解っていますが親のソースを変えられないので このような手間のかかる方法しか思い付きませんでした。 ご迷惑おかけして申し訳ありませんでした
んなわけねーだろ といってみるてす
783 :
Name_Not_Found :2006/03/07(火) 16:22:51 ID:KgxZHMIC
マジ初心者なんだけど質問スマソ。 IEで動作確認しながらスクリプトを組み、正常に作動するのを確認して(IEからバク通知もなかった)、webにアップロードした。 webでは正常に動作している。 けれど、同ソースがローカルで動作しなくなった。 (同ソースを再度アップロードすると、web上にあれば読み込める模様。) インターネットのセキュリティ設定は全て規定値で、いじっていない。 原因として、何が考えられると思いますか?
どう動作しないのか書かんと分からんだに
785 :
783 :2006/03/07(火) 16:41:42 ID:KgxZHMIC
あ、すんません。 スクリプトはフォームタグで作ったボタンを押すと、関数を呼び出してMath.random()によって決定された乱数に従い、document.write()で文章を書き出す単純なもの。 ローカル環境で実行すると、ボタンを押してもドキュメントが書き出されず、エラー表示もされません。
ローカルで動作させるとセキュリティ関係の設定が Web上と違うので動作しないとかはあることだけど。 ところで「どこに」書き出すの。別窓とかだよね。 JSから別窓を開くのが抑止されてるとかじゃないのかな。
>785 文言で説明するより、そのscriptを貼った方が早いと思うんだが。
788 :
Name_Not_Found :2006/03/07(火) 19:22:59 ID:3Wln2SCp
>>781 携帯からなので簡単に答えさせて頂きます。
んなわけねーだろ
790 :
Name_Not_Found :2006/03/07(火) 20:24:14 ID:RdCOqZqo
変数のスコープに関する質問なんですが、 var arr = []; function func(param) { arr.push(function () {return param;}); } func(1); func(2); arr.pop()(); // 2 を返す arr.pop()(); // 1 を返す このようなコードでparamという変数はどこのスコープにどう値を保持してるのでしょうか? 単純にfuncのローカルスコープと考えると2回目のpopの時点で上書きされていそうな1という値が復元できてしまう仕組みがよくわかりません。
>>771 タイプミス多すぎ 色分けできるエディタ使ったほうがいいよ
browser()でifの条件式が閉じれてない
trueがtureになってる
>>790 いやそのまんま func のスコープ、で、当前の動作だろう。
普通は呼ばれる度に破棄されるものだが function () {} の中で束縛されるから保持できてるわけだ。
「上書きされていそう」ってあやふやな理解してると後々面倒になるぞ。知ったことじゃないが。
>>792 レスどうもです。
func(1)の呼び出しが終了した時点でparamはfunction () {}に束縛されているために破棄されていないのはわかりました。
それでその後でfunc(2)の呼び出しのときにfuncのスコープのparamは2に束縛し直されていますが、1はなぜ保存されているのですか?
>>793 んんん?func(1) のときの func のスコープと func(2) のときの func のスコープは別物ってことは分かるよね?
再帰とかでスコープがどうなってるか考えてみ
795 :
790 :2006/03/07(火) 21:47:45 ID:???
>>794 禿しく納得しました。再帰の例でスコープの認識間違いに痛烈に気づきました。
お恥ずかしい限りでorz
ありがとうございました。
796 :
Name_Not_Found :2006/03/07(火) 23:16:34 ID:n6QEAWTF
ボタンをクリックしたら、テキストエリアに日時を表示する方法ってどのようにやるのでしょうか? 教えてください。
>>796 ボタンをクリックしたときの動作はonclick="..."に書く。
テキストエリアオブジェクトを参照するのは色々方法あるけど
たとえばID振って「document.getElementById('ID名').value = 入れる値;」
日時は一番簡単には「new Date().toString()」。
以上ですな。これで組合せられないほど分かってないようなら、このスレ
では教えてもらえないから自分で勉強すること。
798 :
Name_Not_Found :2006/03/08(水) 09:17:45 ID:O8273IB1
質問です。 JavaScriptのソースを開くとsharsetがShift_JISでないものは半角片仮名にな って文字化けしますよね。これをちゃんと読めるようにするにはどうすればい いんですか。お願いします。
HTMLの中に「.gif」と「.png」の混合している<IMG>タグがあったとき、 たとえば、「.png」画像の数をDOMで求めるにはどう書けばいよいですか。 <IMG src="xx.png">が10個あれば、10を求めたいです。
>>798 そんなの自分でコード変換すれ。つかブラウザでその.jsのURL開けば?
>>799 var count = 0;
for(var i = 0; i < document.images.length; ++i) {
if(document.images[i].src.match(/\.png$/)) ++count;
}
alert(count);
書いただけでテストしてないけど。
801 :
771 :2006/03/08(水) 13:09:15 ID:I5W7hCDZ
<script type="text/javascript"> <-- function browser(){ var ua = navigator.userAgent; if(ua.indexOf("MSIE 6", 0)>=0 {return true;} else if(ua.indexOf("MSIE 5", 0)>=0 {return true;} else if(ua.indexOf("Safari", 0)>=0 {return true;} else if(ua.indexOf("MSIE 7", 0)>=0 {return true;} else{return false;} } //--> </script> <script type="text/javascript"> <!-- if(browser()=="true"){ document.write("テスト\n"); } //--> </script>
802 :
771 :2006/03/08(水) 13:10:10 ID:???
ライン:355 文字:1 エラー:オブジェクトを指定してください。 コード:0 どういうことでしょうか。
どこが355行目なのさ。そもそも「(」と「)」の数が 違うっていうだけで既に(ry
<html> <head> <script type="text/javascript"> <!-- function browser(){ var ua = navigator.userAgent; if(ua.indexOf("MSIE 6", 0)>=0){ return true; }else if(ua.indexOf("MSIE 5", 0)>=0){ return true; }else if(ua.indexOf("Safari", 0)>=0){ return true; }else if(ua.indexOf("MSIE 7", 0)>=0){ return true; }else{ return false; } } //--> </script> </head> <body> <script type="text/javascript"> <!-- if(browser()){ document.write("テスト\n"); } //--> </script> </body> </html>
JavaScriptの開発をIE上でやるのがアフォ
808 :
Name_Not_Found :2006/03/08(水) 13:42:04 ID:NlV0gLg6
2chとかで扱われているクッキーをフォームに書き出すJavaScriptなんですが わけあってネスケ3にも対応させたいのですが無理でしょうか?
>>808 N3ねえ、やってみるっきゃないでしょ。できればできる、
できなければできない、それだけ。ここで質問されても
ブラウザ自体持ってないしアドバイス難しいよな。
811 :
Name_Not_Found :2006/03/08(水) 14:10:33 ID:NlV0gLg6
>>809 やってみたと言うより理屈がわからないんだネスケ4とかは食うんだよな
CGI側でUTF-16をURLエンコしたのをクッキーに焼く
JavaScriptでデコードしてフォームに入れる
でネスケ3のクッキーファイルにはエンコされた%XXで入っている
例えば
<script language="JavaScript"><!--
a="あ";b=escape(s);c=unescape(r);
document.write(""+b+"<br>");
document.write(""+c+"<br>");
// --></script>
と書くとエンコもデコもされる
ネスケ3の分離できないバグなら諦めがつくのですが
812 :
Name_Not_Found :2006/03/08(水) 14:18:46 ID:NlV0gLg6
間違い <script language="JavaScript"><!-- a="あ";b=escape(a);c=unescape(b); document.write(""+b+"<br>"); document.write(""+c+"<br>"); // --></script>
>>811 N3はUNICODEに対応していません。自前でUNICODEの表を
全部持つしかない。いやむしろ、CGI側でJISで同じ内容を
重複してクッキーに焼くとかの方が素直かも知れない。
814 :
Name_Not_Found :2006/03/08(水) 14:28:05 ID:NlV0gLg6
>>813 サンクス!
これで諦めて利用者には他のブラウザを利用するか
クッキー無しで利用してね。と、言えます。ありがとう!
(´-`).。oO(ネスケ3の利用者ってどんな人なんだろう)
コンピュータ歴史博物館館長
817 :
810 :2006/03/08(水) 14:58:43 ID:???
>>810 は
>>807 へのレスの間違い。
で、Venkman使ってみたんですが、使い方もよくわからんし、
自分の環境では重過ぎて使い物にならないってことで、ダメっぽいorz。
818 :
Name_Not_Found :2006/03/09(木) 02:05:06 ID:Qhasn1aY
var xmlns = new Namespace("
http://purl.org/rss/1.0/ ");
var xml = new XML(text,'');
var items = xml..xmlns::item;
という処理の意味を教えてください。
itemsには何が代入されるのでしょうか?
::って何?
820 :
Name_Not_Found :2006/03/09(木) 02:09:25 ID:Lk1vRNyb
特定の文字列を画像に変換する関数を定義していますが、うまくいきません。
内容は、textの文字列の文字が
一つずつASCIIに変換し、
strl[0] == "\xf8" && strl[1].match("[\x9f-\xfc]")
もしくは
strl[0] == "\xf9" && strl[1].match("[\x40-\x49\x50-\x53\x55-\x57\x5b-\x7e\x80-\xfc]")
に当てはまった場合、ASCII文字列にし、結合させ、画像URLに変換
当てはまらなかったらそのまま出力
としています。
どうすればうまく動くでしょうか。。
function iencoding(text){
tlength=text.length;
for(i=0; i<tlength; i++) {
strl = text.charAt(i);
if (strl[0] == "\xf8" && strl[1].match("[\x9f-\xfc]") || strl[0] == "\xf9" && strl[1].match("[\x40-\x49\x50-\x53\x55-\x57\x5b-\x7e\x80-\xfc]"))
{strl[0]=strl[0].charCodeAt(0);
strl[1]=strl[1].charCodeAt(0);
hexid = strl[0].toString(16)+strl[1].toString(16);
document.write('<img src="
http://****.ne.jp/img/ '+hexid.toString(10)+'.gif" border=0>');
}else{document.write(strl);}
つかLinuxプロジェクト痞えね
823 :
818 :2006/03/09(木) 08:06:56 ID:Qhasn1aY
>>822 いや、実際にソースがそうなってるんですよ。
コードは動いてるけど、ひょっとしたら
xml.xmlns::item;
ってことなのかも?
そもそも new されてる XMLクラスってのはなんですかね?
>>820 var a = '<aaa';
var b = '>bbb';
var c = a.charCodeAt(0).toString(16) // '3c'
+ b.charCodeAt(0).toString(16);// '3e' ==> '3c' + '3e' ==> '3c3e'
alert(parseInt(c 16));// 15422
ずっーとAjaxをアジャックスだと思ってたw
>>827 俺も最初見て、アジャックスかと思ってた
アジャックスのほうが語呂がいいので、
おれはアジャックスと読み続けることにした
あやっくす…
まじめな話、:は言語使用に無いよね?
>>830 JScript.netやAS2に存在する、
var r:ActiveXObject = new ActiveXObject("...");
のような ":" は、ECMA262-3には存在しない。
JSにとって意味のある ":" が存在するか、という話なら、
var o = { p : 2, m : function () {} }
var x = <p:t xmlns:p="
http://example.com/ns/ "/>
のように、オブジェクトリテラルやXMLリテラルの中に限って存在する。
また、言語仕様ECMA262-3を読めば、"?:" が存在するし、
拡張仕様ECMA357-2を読めば、"::" が存在する。
話は逸れるが、
var x = <a/>;
x.setNamespace(new Namespace('foo', '
http://example.com/ns/ '));
alert(x.toXMLString());// <foo:a xmlns:foo="
http://example.com/ns/ "/>
のように、出力テキストに、意味のある ":" が含まれる場合もある。
仕様じゃなくて規格だろ。ヴォケ
834 :
Name_Not_Found :2006/03/09(木) 15:28:58 ID:mtFTmhKt
すみませんajaxのxml処理って普通のhtml形式は無理ですか・・? えっと巨大なファイルを読み込むと固まっちゃうので百個ずつデータをロード&ライトしていきたいんですけど
マウスに画像がついてくるスクリプトをページで実行させたいのですが、 そういうのが嫌いな人もいると思われるので、 そのスクリプトのON・OFFができるボタンをつけたいと思います。 またできればその情報をクッキーに保存させたいと思います。 画像のマウス追跡のソースは手に入れたのですが、 それのONOFFを制御するスクリプトの方が見つかりません。 もしご存知のかたおられましたらよろしくお願いいたします。
>ソースは手に入れたのですが、 >ソースは手に入れたのですが、 >ソースは手に入れたのですが、 >スクリプトの方が見つかりません。 >スクリプトの方が見つかりません。 >スクリプトの方が見つかりません。
>>836 マウスシーカーとかカーソル変更する必然性がなければ
いらないと思うよ。
おれクッキーも食わせてないからウザいだけ。
ぶっちゃけマウスシーカーはやめたほうがいい
シーカー?
842 :
Name_Not_Found :2006/03/09(木) 18:49:35 ID:D5na8Oei
>>841 こういうサイトは馬鹿だなぁって思う。
嫌なら見なければいいじゃねーか。
843 :
Name_Not_Found :2006/03/09(木) 19:07:33 ID:mtFTmhKt
>>835 やはり、xml形式ではないといけないんですか・・・・orzエクスポーダが対応してないから自作か・・・
>>835 FirefoxならoverrideMimeTypeでContent-Type上書きできる
OperaならContent-Typeの制限なし
じゃなかったか?
846 :
Name_Not_Found :2006/03/09(木) 20:07:17 ID:RJlsUNsw
【目的】 小窓を開く。 いわゆるサブウィンドウを開くJavaScriptを自サイトにおいて用いてみたいということで、 次のサイトよりそのままコピーしようとしている者です。 www.phoenix-c.or.jp/~s-moon/sub323.htm ある文章中において、その文章内の一単語に小窓をリンクさせたいのですが、 コピーして実際にテストしたところ、 『ここをクリック』の部分、すなわちアンカーテキスト部分の前後に改行が入ってしまいました。 ソースを見るに <p> </center> なる、対タグの用意されていない意味不明の使い方がなされているタグを発見し、 これを削除したら、前後にスペースが入るものの、先の問題は解決されました。 そこで発生した疑問(というより気になる)点が、これを削除して問題はないのかということです。 どうなのでしょうか。
847 :
Name_Not_Found :2006/03/09(木) 20:07:53 ID:g15D1HF2
prototype.js を使おうとすると以下のような JavaScript エラーが出ます(Firefox1.5 + WindowsXP SP1 です)。 エラー: illegal XML character ソースファイル: file:///C:/<略>/prototype.js 行: 1, 列: 1 ソースコード: <%= include 'HEADER' %> ソースは↓まで簡略化してもエラーは無くなりません。 prototype.js はついさっきダウンロードしてきたばかりのものです。 その他大勢の *.js たちも同じディレクトリに入っています。 どうすればよいでしょうか? <html> <head> <script type="text/javascript" src="prototype.js"></script> </head> <body> hoge </body> </html>
848 :
846 :2006/03/09(木) 20:08:50 ID:RJlsUNsw
【念のためにそのソースを次に】
<script language="JavaScript">
<!--
function openWin(wUrl,wWidth,wHeight){
scWidthCenter=screen.availWidth/2;
scHeightCenter=screen.availHeight/2;
wOption =
"scrollbars=no,resizable=no,width="+wWidth+",height="+wHeight+",left="+(scWidthCenter-(wWidth/2))+",top="+(scHeightCenter-(wHeight/2));
window.open(wUrl,'window1',wOption);
}
//-->
</script>
<a href="JavaScript:openWin('
http://www.phoenix-c.or.jp/~s-moon/ ',300,300)">ここをクリック</a></center>
<p><script language="JavaScript">
<!-- function openWin(wUrl,wWidth,wHeight){ scWidthCenter=screen.availWidth/2; scHeightCenter=screen.availHeight/2;
wOption = "scrollbars=no,resizable=no,width="+wWidth+",height="+wHeight+",left="+(scWidthCenter-(wWidth/2))+",top="+(scHeightCenter-(wHeight/2));
window.open(wUrl,'window1',wOption); } //--> </script>
849 :
847 :2006/03/09(木) 20:17:46 ID:???
ああ自己解決・・・
# Download the latest version (1.4.0)
でダウンロードした prototype.js には、
>>847 のような <%= include 〜の記述があるのでエラーになってました。
# Just the .js, please
でダウンロードした prototype-1.4.0.js が、そのまま使ってOKなやつでした。
トホホ
850 :
Name_Not_Found :2006/03/09(木) 21:33:19 ID:mtFTmhKt
>>845 それもあったけど・・・・(~∇、~;) ハァハァどのくらい準拠しなきゃいけないか分からない・・・
次の壁は、リファラー?を読んで他サイトからのcgiの実行を拒否するタイプをajaxでやろうと思ったけど
これは規制はいってるのでajaxでは無理だと思ったんで(やってもむりだった)
locationで他のサイトはIEでは開けましたがOとかFFとかでエラーが出るんですが
locationはOやFFでは初期化されないでそのまま元のサイトの情報を持ったまま逝くと思うんですが
これを回避する方法はありますか?
>>850 location.replace の事を言っているのか?
ついでに言っておくと
質問の意味をマジで理解しにくいぞ。
『ですが』を変な場所に使って謎文章にしてるんじゃねぇボケ。
853 :
835 :2006/03/09(木) 23:52:49 ID:???
チョン
855 :
818 :2006/03/10(金) 04:50:34 ID:ssgYRCwT
856 :
Name_Not_Found :2006/03/10(金) 05:00:32 ID:VH+lRGeH
アジャコングがクスクス笑ってajaxなんつって
857 :
Name_Not_Found :2006/03/10(金) 09:02:58 ID:CQJeiv9w
>>851 ごめん途中で文章の根幹を変えちゃったんで、修正が行き届かなかった
例だとゲオシティーズからinfowebのcgiに~~~.cgi?name=aaaaaってのをリンクで飛ぶとエラーが出てトップに飛ばされますが、
これを回避して表示することは出来ないでしょうか?
ゲオから
location.href =
ttp://aaaa.infoweb.co.jp/cgi-bin/serch.cgi?name=aaaa; ってのを実行するとIEでは表示できますがOやFFではエラーが出てしまいます
やったことはlocation.hrefをlocalhostを開かせてからやろうとしても失敗で
時間差でやろうとしても、時間自体が短縮されて?リンク時は一括処理っぽいので無理でした
setRequestHeaderを弄ろとしても、ajaxは規制食らってるのでやるだけ無駄ですし
何か方法ありますか?IEだけならまあajaxで処理は出来ないけどjavaで開けるので良いとして
他のソフトが無理でした
858 :
857 :2006/03/10(金) 09:08:39 ID:CQJeiv9w
ああついで、スパイウェアつくろうとは思ってません。
いづれにしても危険な発想。おわり。
>>858 「ああついで、」
この文章センスは性(サガ)だな
JS以前
Script全くかけないオイラに誰か救いの手を・・・。 画像を固定ピクセルではなく、現在のブラウザの表示サイズに自動的に合わせて表示するScriptが欲しいです。 サムネイルの画像をクリック → 画像をスクロールしなくても自動的に、現在のブラウザの表示できるサイズを 取得して画像をリザイズ表示する。勿論表示だけリサイズします。 こんな感じの機能です。よろしく御願いします。
862 :
Name_Not_Found :2006/03/10(金) 13:46:10 ID:847iRqay
onKeyup="hogeHoge(this);" と onKeyup="hogeHoge(this)" 末尾のセミコロンの有無の違いって、何かに影響しますか? 付けても付けなくても同じですよね?
>>861 厳しいかもしれんが、ここは、スクリプトをある程度書ける人、あるいは、書こうと努力する人用のスレ
864 :
861 :2006/03/10(金) 13:54:10 ID:???
>>863 すれ違いでしたね。引っ越してきます。失礼しました
WindowsXPの視覚スタイルを判別する方法ってないのかねぇ。
867 :
Name_Not_Found :2006/03/10(金) 17:13:40 ID:4yFk8jps
JavaScriptでマルチバイト文字を分割する方法は有りますか?
>>862 なわけねーだろ じゃ、つけないでこれからも行けよ
姐歯のヅラじゃねえぞ
870 :
Name_Not_Found :2006/03/10(金) 19:42:21 ID:JwUulNfq
質問です。 画像の呼び出しで、「a.gif」という画像がなかったときに、onnerrorのような 情報を取得して、ちがう拡張子で読み出すことはできるでしょうか。 q='gif'|'jpg'; のような感じで書けないものかとやってはみたんですが、いい結果でませんでした。
871 :
870 :2006/03/10(金) 19:44:37 ID:JwUulNfq
すいませんスペルまちがえてます。onerrorです。m(__)m
tryでいいんじゃね?
Flashはスクリプトのエラーくらいじゃ停止しないから困る
875 :
Name_Not_Found :2006/03/11(土) 00:44:21 ID:XiB4KQYw
質問です。 str=''; onload=function(){ x=['あ','い','う','え','お']; for(i=0;i<5;i++){ str=str+","+x[i]; ver item = str.split(","); } alert(item[2]) } というようにして配列にデータを格納して、「う」を取り出そうと おもったのですが、うまく行かないようです。どこがいけないでし ょうか。
876 :
875 :2006/03/11(土) 00:47:00 ID:XiB4KQYw
すいません。verの誤記が原因でした。 しかし、item[2]の結果は「い」になります。 「う」にならないのはなぜなのでしょうか。
配列の添字は0から
878 :
Name_Not_Found :2006/03/11(土) 00:54:49 ID:gKlCJgJ4
javaスクリプトを組めるように勉強しようと思うのですが、 入門書は何が良いのでしょうか?
879 :
877 :2006/03/11(土) 01:01:32 ID:???
>>876 ごめん読み違えた
str = str+","+x[i]ってやってるから
0が空文字列になるんだな
882 :
Name_Not_Found :2006/03/11(土) 13:39:34 ID:+lYbg0do
教えてください。現在受け付けシステムを作っているのですが、エラーが出て対処方法がわからなく書き込みました。 CGIにデータを渡すところ(<form action="./uketuke.cgi" method="POST">)を追加したらエラーが出ました。 <form action="./uketuke.cgi" method="POST">と最後の</form>を削除すると正常に動きます。 どのようにしたらよろしいのでしょうか? <SCRIPT LANGUAGE="JavaScript"> <!-- function time() { myDate1 = new Date(); Y = myDate1.getYear(); M = myDate1.getMonth() + 1; D = myDate1.getDate(); document.ukeform.uked.value= Y+"年"+M+"月"+D+"日"; } function time2() { myDate2 = new Date(); Y2 = myDate2.getYear(); M2 = myDate2.getMonth() + 1; D2 = myDate2.getDate(); document.myform.yotei.value= Y2+"年"+M2+"月"+D2+"日"; } //--> </SCRIPT> </head> <body> <form action="./uketuke.cgi" method="POST"> <table border="1" width="80%"> <tr><td bgcolor="#00FFFF">受付日:</td><td><form name="ukeform"><input type="text" name="uked"><INPUT TYPE="button" VALUE="日付表示" onClick="time()"></form></td></tr> <tr><td bgcolor="#00FFFF">予定日:</td><td><form name="myform"><input type="text" name="yotei"><INPUT TYPE="button" VALUE="日付表示" onClick="time2()"></form> </td></tr></table></form>
エラーが出た じゃわかんねえ どういうエラーが出たのか書けって天麩羅にも書いてあるだろうがボケ
form追加したんなら構造おかしくなったんだろ ソースみてないけど
885 :
882 :2006/03/11(土) 14:04:16 ID:+lYbg0do
>>883 すみません。エラーは以下のとうりです。
ライン: 10
文字: 1
エラー: 'document.ukeform.uked'は、NULLまたは、オブジェクトではありません。
コード:0
です。
FORM 要素内に他の FORM 要素を記述してはいけません。
887 :
882 :2006/03/11(土) 14:10:28 ID:+lYbg0do
>>886 FORM 要素内に他の FORM 要素を記述してはいけないとしたら、Javascriptの文またはHTML文をどのようにしたらよろしいのでしょうか?
>>887 > FORM 要素内に他の FORM 要素を記述してはいけないとしたら、Javascriptの文またはHTML文をどのようにしたらよろしいのでしょうか?
FORM要素内に他のFORM要素を記述しないようにすればいい
>>887 888見てわかったけど、前半まるっきり886のコピペなのなw
>>882 言っておくけど、もう答えは出ているからこれ以上教えないよ
ずばりの回答なんて絶対しないから無駄な希望捨てたほうがいいよ
892 :
882 :2006/03/11(土) 14:39:29 ID:+lYbg0do
解決しました。単純にcgiに渡すfomeのところにname=a として document.a.uked.value= Y+"年"+M+"月"+D+"日"; document.ayotei.value= Y2+"年"+M2+"月"+D2+"日"; としたらできました。ありがとうございました。
ジェイコブズのシステム開発の法則: ソフトウェアの開発が遅れているからといって応援を頼むと、 ますます遅れてしまう。
894 :
Name_Not_Found :2006/03/11(土) 20:20:08 ID:2cJqeoTA
JavaScriptで詰まってしまいました。お助けください。 メールフォームの送信ボタンを画像で作ったのですが、何故かWinIE5で 送信できません。IE6や他のブラウザではちゃんと動きます。 ソースは ***スクリプト*** <script language="JavaScript"> <!-- function sbmt(){ document.form.submit(); } // --> ***ボタンのソース*** </script> <a href="#"><img src="xxx.gif" border="0" onClick="sbmt()"></a> という感じです。何がおかしいのでしょうか?ちなみに ・普通のinput type="submit"のボタンでは正常に送信されました。 ・イベントハンドラがonMouseDownだと何故か送信されます。 ・CSSを使うという手もありますが、それだとMacのSafariとかで 適用されないのでパスしました。
895 :
894 :2006/03/11(土) 20:21:42 ID:???
↑失礼。「***ボタンのソース***」の位置がずれてしまいました。お察しください。
>>894 submit()は
<form action=""></form>を送信するためのもの。
formタグかいてあるならそっちも晒す。
で、なんとなく参考にしているのが時代遅れな書き方くさいので、
別のサイトなり本なりで調べた方が無駄な事しなくていいと思う。
<button> か <input type="image"> 使え
>>894 これはどう?
<a href="javascript:sbmt();"><img src="xxx.gif" /></a>
>>894 event.cancelBubble = true
900 :
894 :2006/03/11(土) 20:52:15 ID:???
さっそくありがとうございます。
>>896 ええ。ActionScriptをちょっとだけいじれるだけなのでJSはからっきしです。
formタグはあることを前提にしてしまいました。もちろんあります。
いろいろ調べたんですがこういった不具合は見つかりませんでした。
>>897 <button>はやはりSafariなどで画像が表示されないんです。
<input type="image">なら送信できました。ただリセットボタンもできれば同じ書き方で
作りたかったので選択肢にありませんでしたが、格好ばっかりこだわってもしょうがないですよね…
ところでIE5のこの不具合は一般的なのでしょうか?
だから全部晒せとw
902 :
894 :2006/03/11(土) 20:55:08 ID:???
>>898 うはっこれで出来ました!ありがとうございます!神様!
ていうか僕が勉強不足なだけなんだろうけど…
精進します。
>>900 > この不具合は一般的なのでしょうか
というか、一般的にそれは不具合ではない。
>>898 そーゆーときは、borderに注意。これキホンね
さて、いよいよラスト100突入。このスレの水準 をググッと上げるようなオ前エ挽回の質問キボンヌ
みんな承知ながら使いまくるね、javascript-scheme 別にいいの?
911 :
Name_Not_Found :2006/03/11(土) 21:58:46 ID:W27sB9cK
MacのsafariでWindowsで動くほとんどのJavascriptが 動作しないのですが、これは仕方のない事なのでしょうか?
>>911 はなから Win IE 専で書かれたものは動かないだろうね
>>911 各社の仕様は現場ではどうにもならない。ECMAの標準規格を遵守する仕様で各社
が実装することをの望むだけだ。しかし、MacのsafariはJSを切ってるに等しいな。
ブラウザの実装の違いを吸収するために、 FLASHが一気に広まったしね。
最初からsafariに対応するように作ればいいだけのこと …DOMモデルからしてIE/FFと違うのはやめてくれませんか
IEとFFで処理分ければいいだけのこと
function getBrowserName() { if(navigator.appName == "Microsoft Internet Explorer") return "IE"; else return "Netscape"; } var isIE; var isGecko; var isSafari; var isKonqueror; function HJS_BC_getUserAgent() { isIE = 0; isGecko = 0; isSafari = 0; isKonqueror = 0; ua = navigator.userAgent.toLowerCase(); if((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)) isIE = 1; if(ua.indexOf("gecko") != -1) isGecko = 1; if(ua.indexOf("safari") != -1) isSafari = 1; if(ua.indexOf("konqueror") != -1) isKonqueror = 1; }
ECMAでsubstr()は廃止されたってホント?
XMLHttpRequestやIFrameトリックを利用して、
なんとか他のドメインにアクセスしたいのですが、方法は無いでしょうか?
配布するJavaScriptの内部で、私のサーバにアクセスしてデータを持っていってもらいたいのですが、
出来ることならリダイレクトするだけのCGIを配布することなく実現したいと思っています。
整理すると、
・
http://myserver.com/abc.data を
http://client.com/x.htmlから取得したい ・myserver.comは私のサーバで、いくらでも手を入れることが出来る
・client.comでクライアントはファイルのアップロードしか出来ない(CGIが使えない)
このような状況を想定しています。
自分のサイトにJavaScriptを置いてsrc属性で…というのも考えたのですが、
このスレの
>>716-717 でそれは出来ないと書かれていました。
みなさんのアイデアをお貸しください。よろしくお願いします
XMLHttpRequestつかえるんじゃね?
無理ぽ。常識だね、異度目印。
途中にPerlとかPHPを噛ませばいいと思う 俺にはやり方はわからんが
>>850 あたりで俺やったけど
XMLHttpRequestこっちはなんか書き込みエラーが出るopenかsendで
後者は知りませんorz
928 :
Name_Not_Found :2006/03/13(月) 09:21:48 ID:fR+uon/t
質問です。 form内のselectオブジェクトを関数で呼び出すとき、そのオブジェクトを グローバル変数に宣言するとオブジェクトなしのエラーが出てしまいます。 簡単に書くと次のような場合です。 <script> var s=document.forms[0].elements['s'] function getText(){ if(s.options[s.options.selectedIndex].value=='p'){ //statement }else{....} } </script> <form> <select id="sel" name="s" onchange="getText()"> <option value="p" selected>txt-p <option value="q">txt-q </select> </form> グローバルで呼び出すようにするにはどう書けばよいのでしょうか。
>>928 コードが実行された時点でまだ name が s のエレメントが存在しないから。
document.forms[0].elements['s'] を取得できるようになるのは
<select id="sel" name="s" 〜> より後。
たとえば次のようにすればOK。
<html><head>
<script>
var s;
function init(){s=document.getElementById("sel");}
function getText(){alert(s.value);}
</script>
</head><body onload="init()">
<form>
<select id="sel" name="s" onchange="getText()">
<option value="p" selected>txt-p
<option value="q">txt-q
</select>
</form>
</body></html>
930 :
928 :2006/03/13(月) 12:46:03 ID:???
>>929 さん
納得です。ありがとうございました。
931 :
Name_Not_Found :2006/03/13(月) 13:00:08 ID:CfskfnRu
<script type="text/javascript"> document.write( "こんにちは!<BR>" ); document.write( "<h1 align="center">株価速報</h1>" ); document.write( "YAHOO! の株価[$] " ); document.write( 12336 ); </script> 極最近勉強始めました それでテンプレにあるチュートリアルサイトのソースをコピってみたけれど表示されません document.write( "テスト" ); ではテストと表示されるのに document.write( "<h1 ←この空白と属性を書くと→align="center">テスト</h1>" ); 真っ白になります 何が起きてるんでしょう? OSはWindowsXP Pro sp1 ブラウザはsleipnirの最新版、エンジンはIEに設定 オフラインで練習してます
932 :
836 :2006/03/13(月) 13:08:21 ID:???
遅レスですみません。 マウス追跡のON/OFFの件で質問をした者です。 導入に関してのアドバイスありがとうございます。 そういうギミックが嫌いな方が多いのは重々承知なので、 デフォルトではOFFの設定にするつもりです。 それでボタンを押すと機能がONにできる (jsファイルを呼び出す、とかいう感じですか?)という風にしたいのですが、 どのようにすればよいでしょう?
>>931 つGoogle【エスケープシーケンス javascript】
>>931 劇藁!! そのdocument.writeしているもののどこからどこ
までが文字列なのか考えてみなよ。つかエラー出てるだろ、
エラー出てるのに無視して質問すんじゃねえボケ。
>>1-3 嫁。
>>932 JSファイルを呼び出すとか面倒なんで、ボタンを押すと
onmousemoveハンドラを設定する、それまではマウス移動
してもイベントが取れないので何も動かない、というので
いいのでは。
>>933 ありがとうございます
>>934 エラー出るんですか?
ただ
>>934 氏の話考えてもう一度書いてみました
<html>
<body>
<script type="text/javascript">
document.write( "こんにちは!<BR>" );
document.write( "<h1 align=center>株価速報</h1>" );
document.write( "YAHOO!株価[$]" );
</script>
</body>
</html>
centerを""で囲む必要が無いって事でしょうか?
document.write( "<h1 align=\"center\">株価速報</h1>" ); document.write( '<h1 align="center">株価速報</h1>' ); document.write( "<h1 align='center'>株価速報</h1>" ); 一番いいのは document.write( "<h1>株価速報</h1>" ); スタイルでデザイン
>>922 >自分のサイトにJavaScriptを置いてsrc属性で…というのも考えたのですが、
>このスレの
>>716-717 でそれは出来ないと書かれていました。
src属性に指定したCGIから吐き出したJavaScriptで
変数にデータを設定することはできるよ。
それでは目的が達成できない?
>>935 あのさあ、アンタの最初のは一番左の「"」で文字列が始まる
だろ、それで「align="」のところの「"」でその文字列が終わる
わけ。その後の「center」というのは文字列の外にある何かの
名前で演算子も何もないんだから構文エラーになるだろ。エラー
出てないわけがないじゃん。よく目ン玉見開いて見ろよ。
プログラム書く時に脳内で自分の都合のよいように解釈してたら
永遠に書けるようにならないぞ。
エラーメッセージが読めるようになるまで2度と来るな。
前提条件無しで二度とくるな
ここはひどいインターネットですね
http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/hello-js.html ◆ 出力例
◆ 色々と出力させる。
ブラウザーに数字やHTMLタグを出力させてみます。基本的には上に解説したものと同じです。
<script type="text/javascript">
document.write( "こんにちは!<BR>" );
document.write( "<h1 align="center">株価速報</h1>" );
document.write( "YAHOO! の株価[$] " );
document.write( 12336 );
</script>
数字を出力する際は、とくに " で囲む必要はありません。
>940 有限会社 近代でググると設計会社が出てきた。
それと、専ブラ使えw
>>943 そこではないですが
とにかくありがとうございます
スレ汚してしまった様ですみませんorz
消えます
テンプレにFIreFox追加希望
テンプレに、「仕事に関係することは業者に頼め」追加希望
>>946 具体的にどこに何を追加しろと。ブラウザ個別の話は
もともと入ってない。GeckoとMSというくくりで十分では?
ちなみに新スレは975超えたらね。
>>948 たとえば
>>938 が
>エラーメッセージが読めるようになるまで2度と来るな。
とか言ってるけどこの場合IEではエラーでてないし、
FireFoxの場合エラー箇所をソース中で表示してくれたりするから。
当然IEでのチェックは必須だけど普通最初のチェックはFireFoxでやらね?
ガーン! IEではこれエラーでないのorz スマソかった。 なんで明らかな構文エラーなのにエラーが出ないの??? そりゃもうぜひ「FF使え」をテンプレに入れましょ。
>>941 世の中にここがインターネットだという場所はない
おいおい、
>>931 はIEで明らかにエラーだろ。
ライン3
)がありません
これが出ないブラウザがあるのか?
>>938 が説明しているように、明らかな
文法違反。もちろん
>>942 はエラーはでない。ただし、ひどいHTMLだが。
>>952 <html>
<body>
<script type="text/javascript">
document.write( "こんにちは!<BR>" );
document.write( "<h1 align="center">株価速報</h1>" );
document.write( "YAHOO! の株価[$] " );
document.write( 12336 );
</script>
</body>
</html>
試してみて。
俺はWinXP(SP2)IE6.0で無反応
954 :
953 :2006/03/13(月) 15:35:59 ID:???
と書いたが、スクリプトのエラーごとに通知にしたらでたわ。orz まさかみんなは常にこの状態で使ってんの?
>>954 ん?ページの左下に小さい黄色いアイコン・・
オレもわざわざ試してみたが、出たよ
あれ?おれのが変なんじゃね? IE6なんだけど
960 :
955 :2006/03/13(月) 15:51:38 ID:???
IDでないのか,,
javascriptのデバッガってあるのでしょうか
>>958 名前欄わすれてた。スマソ。
IDってどうやってだすの?
IDはでない
>>953-959 あのさあ、「</h1>」みたいな閉じタグがあるとそこで
<script>が終わってしまう可能性あるって知らないの?
ブラウザはJavaScriptの文字列なんて知らないわけだから。
だから必ず「<\/h1>」のようにエスケープするべきなんだが。
つか常連の書いたコードは皆そうなってるだろうに…
968 :
ケンタコピペ :2006/03/13(月) 17:56:15 ID:BAFYXHrw
こんにちは。今年に入ってPC弄り始めたケンタです(^^) 先週、HTMLという言語(?)の勉強をはじめました! 気づいたらスルスル頭に入っていくというか、どういうものか理解できてしまった! 勢いでWEBサイトを作って公開しました〜>_< それで、僕が借りてるサーバはHTMLのソースに広告タグを付加してページを 出力するようになってるんですが、そこにJavaScriptが使われていたので今日勉強しはじめました。 すると・・・もうJavaScriptがだいたいどういうものか理解できてしまった!というかWEBがだいたい どういうものか分かった!んで、今PHP書いてます!もちろんこれはJavaScriptと違ってサーバ側で 動くのでブラクラにはあまり関係ありませんね(笑) ぶっちゃけプログラミングってかなり簡単。。基礎さえ分かれば関数調べるだけじゃん。。
ネタかも試練が本当に
>>966 を知らないヤシもいそうな希ガス
半年ROMってろ
973 :
953 :2006/03/13(月) 18:11:16 ID:???
>>966 >>967 >>969 えと、マジなんですが、
> あのさあ、「</h1>」みたいな閉じタグがあるとそこで
> <script>が終わってしまう可能性あるって知らないの?
↑どういう場合?
> ブラウザはJavaScriptの文字列なんて知らないわけだから。
↑<script>タグ内の " " or ' ' で囲まれてても?
まあ、それよりも、
>>953 で左下に黄色いアイコンが出ないのが普通なのかが一番知りたいんですが。
"<\/h1>"は規格にないから嫌だな 面倒でも "<"+"/h1>" とすべき 外部スクリプトファイルにすれば関係なくなるけれどね
>>973 これで「\/script」の「\」取ってみ。
>>953 は
洩れもちゃんとエラー出るけどね。ブラウザの設定じゃねの?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
document.write("<p>ABCDE<\/p>");
document.write("<script>x = 12345<\/script>");
document.write("<p>x = " + x + "<\/p>");
</script>
</body></html>
>>975 なるほど、そういう時使えるんですね。
俺、今までこうやってたorz
document.write("<s"+"cript>x = 12345</s"+"cript>");
978 :
Name_Not_Found :2006/03/13(月) 18:44:20 ID:eK7tIeds
>>979 マジですか?そうだとしたら思い込みの発言すまなかった
\/ がエスケープとして存在するとは知らなかった
と言うか全ての文字にエスケープできる
正規表現
>>977 最後にもう一個だけ質問なんですが、
これって<script>タグの時だけって考えでもいいんですよね。
>>983 お前馬鹿か?
今の話の流れを全くつかんでないだろ?
985 :
Name_Not_Found :2006/03/13(月) 19:13:26 ID:sB6VjHw8
javascript:txt=document.selection.createRange();b=txt.text.replace(/\n/g,' ');fso=new ActiveXObject("Scripting.FileSystemObject");newFile=fso.OpenTextFile("c:\\test.txt",8,true);newFile.WriteLine(b);newFile.Close(); という選択範囲をローカルのc:\test.txtに追加書き込みするスクリプトを書いたのですが、 数語以上の英文を選択して実行すると「ページでエラーが発生」が出て、ファイルに書きこまれません。 (日本語の場合は大丈夫) どこをどういじれば意図した通りに動作するでしょうか? 環境はWindows98se IE6.0 セキュリティレベルはActiveX関連の物は有効かダイアログ表示に設定してます。
>>984 いや、こういう書き方(\/)してるとこある?
ココのスレだけかなと思ったんで。
<script>タグ以外に問題なったことないから。
987 :
986 :2006/03/13(月) 19:29:52 ID:???
ちょっと探してみたらmozillaのサイトでやってた。 今度からそうします。スレ汚しスマソ。
989 :
949 :2006/03/13(月) 20:10:11 ID:ufuRhzi5
質問させてもらいたいのですが var domMenuItemDiv = document.createElement("div"); 1) domMenuItemDiv.onclick = _onclick; 2) domMenuItemDiv.attachEvent('onclick', _onmouseover ); 1は問題ないですが、なぜ2はエラーになるのでしょう?
991 :
989 :2006/03/13(月) 20:50:41 ID:ufuRhzi5
挿入した後でも前でもだめでした。 エラーメッセージは「種類が一致しません」でした。
>>963 ,986
「見てはいるが見ず、聞いてはいるが聞かず、また、悟ることもしないからです」
(聖書マタイ)
どうやら懇切な回答も無駄だったようだ
993 :
989 :2006/03/13(月) 20:56:41 ID:ufuRhzi5
どうやら、 _onmouseover がおかしかっただけなのに気づきました。 すいません。お騒がせしました。
どうやら そろそろ新すれ
そんなことより埋めようぜ
ゴバークw (・∀・)ニヤニヤ
よーし。こんどこそパパが1000取っちゃうぞ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。