+ JavaScript の質問用スレッド vol.54 +

1 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/19(金) 08:36:12 ID:???
━━━━━JavaScript質問スレ道場訓━━━━━
 一、礼節を重んじ常に努力精進すること
 一、ブラクラに打ち勝つ精神力を持つこと
 一、心身の優れたJavaScriptを学ぶこと
 一、雑草の如く生涯JavaScriptを貫くこと
 一、感謝と反省を忘れないこと
 以上
━━━━━━━━━━━━━━━━━━━━━━

このスレに書き込むことが許されるものは以下のとおり
・テンプレ/FAQ/過去ログ/関連資料を読める者。とくに>>2-10は必須!!!
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
 (質問/回答時はなるべく環境明記。WinIE5.5/N6未満と希少ブラウザは必須!)

[必読]過去スレ全集 http://user.ftth100.com/mirrorhenkan/javascript/
前スレ http://pc10.2ch.net/test/read.cgi/hp/1165051363/l50
まとめサイト http://web2ch.s31.xrea.com/?JS
FAQ・注意・過去ログ・関連資料・関連スレ>>1-10またはまとめサイト

2 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/19(金) 08:36:55 ID:???
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8)
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄

3 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/19(金) 08:37:36 ID:???
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
A3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切られます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
 <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. IEではtbody要素にtr要素を追加する必要があります。
 tbody要素はtbodyタグを書いていなくても自動的に作成されます。
 またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. Aタグのonclickで動作指定してるのですが時々動きません…
A7. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q8. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A8. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。

4 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/19(金) 08:38:16 ID:???
【FAQその2】
Q9. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A9. 「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;」。
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP")
 を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。
 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
 という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A14. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
 offsetがマッチした位置、sが置き換え前の文字列全体になります。

5 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/19(金) 08:40:06 ID:???
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。

6 名前:Name_Not_Found 投稿日:2007/01/19(金) 09:08:21 ID:???
>>2のテンプレはいらないと思うスレが荒れる理由を住人自らが作るようなもの。
>>5も半分くらいいらない

7 名前:Name_Not_Found 投稿日:2007/01/19(金) 10:09:43 ID:???
【標準規格・リファレンス】
規格を読まずにどうなってるか分からんとか質問しないこと!

まとめサイト
http://web2ch.s31.xrea.com/?JS

ECMA-262
http://www.ecma-international.org/publications/standards/ECMA-262.HTM
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)

W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR

JavaScript 1.5 (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide

E4X (ECMAScript for XML)
http://141.30.92.52/cubetto/download/ECMA-357.pdf
http://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳)

MSDN Library JScript / DHTML (現在日本語版は古杉)
http://www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

Mozilla Gecko DOM, Netscape devedge
http://www.mozilla.org/docs/dom/domref/
http://www.mozilla-japan.org/docs/dom/domref/ (和訳)
http://developer.mozilla.org/en/docs/Gecko_DOM_Reference
http://devedge-temp.mozilla.org/central/javascript/index_en.html

8 名前:Name_Not_Found 投稿日:2007/01/19(金) 10:10:14 ID:???
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(とほほは間違いが多いためこのスレでは批判的意見が多い)

MetaGraphic Cell
http://www2u.biglobe.ne.jp/~oz-07ams/prog/

どら猫本舗のリファレンスカウンター
http://www.doraneko.org/

はぎさんちのページ Mozilla's DOM Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi

Dynamic Scripting
http://www.interq.or.jp/student/exeal/dss/

JavaScript深層
http://www.hawk.34sp.com/

9 名前:Name_Not_Found 投稿日:2007/01/19(金) 10:10:58 ID:???
【検索】
キーワード『…』で検索しろ」「ぐぐれ」と言われた場合はこちらへ
http://www.google.co.jp/

【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!

Webサイト制作初心者用スレ Part 177
http://pc10.2ch.net/test/read.cgi/hp/1167026480/l50

CSS /* CSS・スタイルシート質問スレッド【62nd】 */
http://pc8.2ch.net/test/read.cgi/hp/1164534589/l50

CSS/DHTMLバグ辞典スレッド 【第5版】
http://pc8.2ch.net/test/read.cgi/hp/1144494359/l50

役に立つ書籍は? 3冊目
http://pc8.2ch.net/test/read.cgi/hp/1142829968/l50

10 名前:Name_Not_Found 投稿日:2007/01/19(金) 10:14:34 ID:???
テンプレ論議したければスレの終わり付近(800超えあたり)
で出してね。

11 名前:Name_Not_Found 投稿日:2007/01/19(金) 13:35:16 ID:???
>>1-9
俺は「じすれ」派。

12 名前:Name_Not_Found 投稿日:2007/01/19(金) 16:12:21 ID:???
>>8
JavaScript深層
http://www.hawk.34sp.com/

これ死んでね?

13 名前:Name_Not_Found 投稿日:2007/01/19(金) 16:15:10 ID:???
参考サイト、サンプルサイトの見直しと新規おすすめの収集したいね。

14 名前:質問です 投稿日:2007/01/19(金) 16:55:48 ID:1sA/h28b
ie6.0やff2でブラウザは確認してます

<script language="JavaScript">
<!--
document.write(document.lastModified);
// -->
</script>

このタグを記入すると、最終更新日が取得されますが
なぜかf5や更新を押すたびに更新時間が更新されます。
FTPなどでファイルUPした時などファイルを最終更新日が表示されると思うのですが。。。
どこか間違ってるのでしょうか?

もし違うスクリプトでファイル最終更新日が表示されるのがあれば教えてください

15 名前:Name_Not_Found 投稿日:2007/01/19(金) 17:03:54 ID:???
広告が付加されちまうレンタルページサービスとか使ってたりしないかい

16 名前:Name_Not_Found 投稿日:2007/01/19(金) 17:34:47 ID:9l1/EnVu
htmlでjsの外部リンクを作りたいのですがオブジェクト指定をしてくださいとエラーが出てしまいます。
htmlで使っていた<!-- -->や<script></script>どこかで使わないでくださいと書いてたのでは削除してjsファイルに保存してあります。
htmlでは問題なく動作するのですが外部リンクにしようとするとエラーが出てしまいます。
もしくは外部ファイルにするときのルールみたいなものが乗っているサイトを教えてもらえませんか。

17 名前:Name_Not_Found 投稿日:2007/01/19(金) 17:44:04 ID:???
>>16
一般論としては
<scirpt>...</script>の「内側にあるものからHTMLコメントを除いた」
ものすべてをx.jsに入れてscript要素の方を
<script src="x.js"></script>
に書き換える。なぜエラーが出るか質問したいのならエラーが出る
「最小限のサンプル」を作って貼れば見てみてもいいよ。

18 名前:Name_Not_Found 投稿日:2007/01/19(金) 18:49:19 ID:HWnqHLR5
質問です。(動作確認環境 Win98+IE6.0)

<div style="background:url(1.gif);">
<img src="2.gif">
</div>

マウスオーバーでDIV内の背景画像を1.gifから2.gif変えるにはどうしたらいいのでしょうか?
ページ全体の背景を変える↓のと同じ要領でできないかと頑張ってみたのですが力及びませんでした。
<img src="2.gif" onmouseover="document.body.background='2.gif';" onmouseout="document.body.background='1.gif';">

よろしくお願いします。



19 名前:Name_Not_Found 投稿日:2007/01/19(金) 20:00:47 ID:???
document.body
→ (function (img) {var div = img.parentNode;while (! /*@cc_on @if (1) div.currentStyle.backgroundImage @else@*/ getComputedStyle(div, null).getPropertyValue('background-image') /*@end@*/) div = div.parentNode;return div.style;})(this)

='1.gif', ='2.gif'
→ ='url(1.gif)', 'url(2.gif)'

20 名前:Name_Not_Found 投稿日:2007/01/19(金) 21:00:47 ID:???
>>18
一番簡単なのはdivでもなんでもidを振って
onmouseover="document.getElementById('ID名').style.background='url(1.gif)'"
などとすることだな。

21 名前:18 投稿日:2007/01/19(金) 21:50:17 ID:???
>>19
>>20

両方試したところどちらもきちんと表示されました。スゴイ!
本当にありがとうございました。勉強にもなりました。

22 名前:Name_Not_Found 投稿日:2007/01/19(金) 23:30:35 ID:???
一つのjsファイルの中に複数のプログラムを保存しても問題ありませんか?

23 名前:Name_Not_Found 投稿日:2007/01/20(土) 00:09:41 ID:Z0NIKYKH
>>17
<html><head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>@</title>

<script type="text/javascript" src="jsfile005.js"></script>
<body>
〜〜〜〜省略〜〜〜〜
<input onclick="111(document.getElementById('Table1')〜〜〜

111はjs内function 111()
エラーコードは<input以降を指してました。

24 名前:Name_Not_Found 投稿日:2007/01/20(土) 00:46:47 ID:???
onclickとondblclickで別の動作を呼び出す時に
ダブルクリック側を実行させようとするとクリック側も起動してしまいます
これをダブルクリックだけ呼び出すようにはできますか?

25 名前:Name_Not_Found 投稿日:2007/01/20(土) 00:59:35 ID:???
>>24
dblclickを使わない。clickだけで時間を計って分岐する。

26 名前:Name_Not_Found 投稿日:2007/01/20(土) 01:04:17 ID:???
>>25
1秒以内にもう一度クリックしたらダブルクリックだとして

クリックされたらファンクション起動
起動直後にタイマー作動
再びクリックされたらタイマーをチェック
1秒でifで処理分岐

細かく書くとこんな感じ?

27 名前:Name_Not_Found 投稿日:2007/01/20(土) 01:18:27 ID:???
どこか忘れたけど、
JavaScriptで作ったWebToolで、
4回クリック(なんていうの?クアッドクリック?)使ってるところあった。
どう考えても使いにくかったが。

ところでondbclick発生するときのクリックの間隔って
OSの設定に依存するもの?
ブラウザによっても違うと思うが。

28 名前:Name_Not_Found 投稿日:2007/01/20(土) 01:46:45 ID:???
XとかWindowsとかからのダブルクリックイベント(シグナル?メッセージ?)をブラウザが受け取って、スクリプトエンジンに通知してるだけでしょ。

29 名前:Name_Not_Found 投稿日:2007/01/20(土) 01:56:10 ID:ChHlNKf7
javascript応用できる人が羨ましい
いろんなサイトでサンプル配布してるけど普通のしかない。

30 名前:Name_Not_Found 投稿日:2007/01/20(土) 02:10:54 ID:???
>>28
そっか。
onclickだけでダブルクリック再現すると、
待ち時間どれくらいにするべきか難しいよね。

31 名前:まず >>2-4 読め! 続いて過去スレ全集を検索! 投稿日:2007/01/20(土) 09:19:20 ID:???
>>23
その「111」て数字の1が3つだよね。そんなの構文エラーだが。
関数名は英字で始まらないと。

32 名前:Name_Not_Found 投稿日:2007/01/20(土) 09:44:21 ID:???
げげ、スレ立ての痕跡が… 構文エラーではなく関数として
指定したものが関数オブジェクトじゃないというエラーだね。すまん。

33 名前:Name_Not_Found 投稿日:2007/01/20(土) 10:55:58 ID:???
>>30
そんなもの500ミリ秒以下にしておけば良いだろう。

//FireBugで試行して適当なミリ秒を見つけるだけのスクリプト。
var timeStamps = [];
var diffs = [];
document.addEventListener('click', function (e) {
  timeStamps[timeStamps.length] = e.timeStamp;
}, false);
document.addEventListener('dblclick', function () {
  console.log((diffs[diffs.length] = timeStamps.pop() - timeStamps.pop()),
              Math.max.apply(null, diffs));
}, false);


34 名前:23 投稿日:2007/01/20(土) 17:38:58 ID:Z0NIKYKH
31-32
返答頂きありがとうございます。
たしかに111は仮に記入したもので
何度か試した中では>>31の条件に当てはまるものを入力してあるのでこの部分は大丈夫だと思います。
ちなみに試した中ではsrc="jsfile005.jsと同じ名前にしたりもしましたがだめでした。


35 名前:Name_Not_Found 投稿日:2007/01/20(土) 18:59:45 ID:???
>>34
アホか。エラーが出る最小限のソース作って貼れってるじゃん。
その同じエラーが出るものでなければ診断などできない。もう帰れ。

36 名前:Name_Not_Found 投稿日:2007/01/20(土) 19:09:16 ID:gFooeIhD
クラスを宣言し 同じクラスのインスタンスを2つnewするのですが
プロパティがstatic変数のように異なるインスタンスで共有されてしまいます。
そういうものなのでしょうか?それともクラスの作り方が間違ってるんでしょうか
↓のような例だと、alertには10 , 100 , 100と表示されてしまいます。
3回目のalertが10と表示したいのです。。

function Hoge(value) {
  _value = value;
}
Hoge.prototype = {
setter: function(value){
    _value = value;
},
getter: function(){
    return _value;
  }
}

var x = new Hoge(10);
var y = new Hoge(100);
alert(x.getter());
alert(y.getter());
alert(x.getter());

37 名前:Name_Not_Found 投稿日:2007/01/20(土) 19:12:54 ID:gFooeIhD
訂正です。↑の例だと100,100,100って並びますね。。
正しくは↓のようにすると10,100,100ってなってしまうということです。
var x = new Hoge(10);
alert(x.getter());
var y = new Hoge(100);
alert(y.getter());
alert(x.getter());


38 名前:Name_Not_Found 投稿日:2007/01/20(土) 19:15:33 ID:???
この場合thisを書けばいいんでないの。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
function Hoge(value) {
this.value = value;
}
Hoge.prototype = {
setter: function(value){
this.value = value;
},
getter: function(){
return this.value;
}
}
var x = new Hoge(10);
var y = new Hoge(100);
alert(x.getter());
alert(y.getter());
alert(x.getter());
</script></pre>
</body></html>

39 名前:Name_Not_Found 投稿日:2007/01/20(土) 19:19:39 ID:???
>>38
で、できました。。ありがとうございます。
thisですか。めちゃ悩んでたのが馬鹿みたいです(泣)

40 名前:Name_Not_Found 投稿日:2007/01/21(日) 01:11:11 ID:???
フォームのsubmitボタンをテキストにすることは出来ませんか?
もしくはbdlclickのアクション時にsubmitすることは出来ませんか?

41 名前:Name_Not_Found 投稿日:2007/01/21(日) 02:32:10 ID:???
クロージャに関してなのですが、質問させてください。
こちらのページの例となります。
ttp://0xcc.net/blog/archives/000040.html

下のコード抜粋にて、
td.onmouseover = makeHandler(td);
というイベントが何度も呼ばれるのですが、
var depth = 2という初期化はなぜ、初めの一回しか通らないのでしょうか。

| function makeHandler(element) {
| var depth = 2; // ここの初期化
| var closure = function() {
| ...
| }
| }
| return closure;
| }
|
| function makeTile(size) {
| ...
| td.onmouseover = makeHandler(td);
| ...
| }


42 名前:Name_Not_Found 投稿日:2007/01/21(日) 03:15:24 ID:???
>>41
なぜというより、そういうものだろう。

2005年7月という微妙に古い記事だな。
引数のelementとローカル関数closureが、かんぜんに、メモリーリークサンプルになってる。

43 名前:Name_Not_Found 投稿日:2007/01/21(日) 04:42:46 ID:xkjTPUcX
検索で見つからなかったので、質問させて頂きます。

セル内の背景画像をリロードの度にランダムに表示させることは可能でしょうか?
もしどこかにありましたら、教えて頂けると幸いです。
よろしくお願いします。

44 名前:Name_Not_Found 投稿日:2007/01/21(日) 05:36:23 ID:???
>>43
このスレだけでも似たような処理はあるだろう。

45 名前:Name_Not_Found 投稿日:2007/01/21(日) 07:57:28 ID:???
>>44
あれが似てると言うのか、とりあえず君は日本語の勉強から始めてください。

46 名前:Name_Not_Found 投稿日:2007/01/21(日) 08:28:38 ID:???
>>45
では隔離スレで質問しなおせ。

47 名前:Name_Not_Found 投稿日:2007/01/21(日) 09:21:43 ID:???
下のようなコードでXMLにXSLを適用した結果を保存しようとしています。

var xdoc = new ActiveXObject("MSXML2.DOMDocument");
xdoc.async = false;
xdoc.load(SRC_FILE);

var xsldoc = new ActiveXObject("MSXML2.DOMDocument");
xsldoc.async = false;
xsldoc.load(XSL_FILE);

var xdoc2 = new ActiveXObject("MSXML2.DOMDocument");
xdoc2.async = false;
xdoc.transformNodeToObject(xsldoc, xdoc2);
xdoc2.save(OUTPUT_FILE);

しかし、保存した結果のファイルはカラで中身が入っていませんでした。

alert(xdoc.transformNode(xsldoc));

のようにすると正常に変換結果が表示されたので、変換処理自体は問題なく行われていると思うのですが
他にどういった原因が考えられるでしょうか?

48 名前:Name_Not_Found 投稿日:2007/01/21(日) 09:51:45 ID:???
>>47
保存された。

//関係ない余談だが、MSは 3.0 または 6.0 を明示するよう薦めているね。

49 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:06:12 ID:???
>>48
すいません、どこに保存されたのでしょう
簡単な考え違いをしているのかもしれませんが、どうか指摘していただけませんか

50 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:16:55 ID:???
>>49
どこってw
OUTPUT_FILE = "path\\to\\output-file.xml" に保存されたよ。
transformNode() の結果と同じものが。

51 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:27:19 ID:???
ああ、わざわざ実行してくださったんですね。ありがとうございました!

しかしやはり私のほうでは上手くいっていません
XHTMLに変換しているのですが、それが問題なのでしょうか…
それとも環境の違いかな?IE6でテストしているのですが

52 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:29:09 ID:???
>>43
リロード時の処理: bodyのonload属性中に書く。
要素を指定: IDを振って document.getElementById('ID名')
任意要素の背景画像設定: 要素.style.backgroundImage = 'url(ファイル名)'
配列aからランダム選択: a[Math.floor(a.length*Math.random())]
これらを組み合わせるだけ。たったこれだけでも組み合わせ
られないならこのスレの質問以前の水準だから勉強して出直せ。

53 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:44:51 ID:???
>>51
MAS JScript と、ふつうの cmd.exe で、上手く行っていたんだが、
ブラウザ使ってみたら、確かに、空のファイルになるな。
ブラウザ上からファイル保存が制限されているというオチみたいだね。
ちなみに、HTAにしてやったら、きちんと内容のあるファイル保存された。

54 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:50:17 ID:???
>>52
ID振るなら、CSSセレクタで特定できる。
onload ではなく、document.write('<style ...'); する方がベターだろう。

55 名前:Name_Not_Found 投稿日:2007/01/21(日) 10:58:09 ID:???
>>41
td.onmouseover = makeHandler(td);

var closure = makeHandler(td);
td.mouseover = closure;
と考えればわかりやすいのでは?
それと、多分君は
td.onmouseover = makeHandler;
だとかん違いしてるのでは?

それで、このサンプルでメモリーリークしないためにはどうすればいいの?

56 名前:Name_Not_Found 投稿日:2007/01/21(日) 11:07:26 ID:???
>>54
ああ、td要素全部の背景を一括してということね。
特定の1個かと思ったので。

57 名前:Name_Not_Found 投稿日:2007/01/21(日) 11:15:20 ID:???
>>55
前スレに熱い煽りあいとその末の素晴らしい議論があったのでそれを参照されたし

58 名前:Name_Not_Found 投稿日:2007/01/21(日) 11:18:14 ID:???
>>55
try {
  return closure;
} catch (ex) {// JScript は catch を略せない。
} finally {
  closure = null;
}

しかし、根本的には、要素オブジェクトを参照する変数・引数が存在する関数内で関数を定義しない。
今時、JSがターゲットにするブラウザは、そこそこ高性能のマシンに載っている。
だから、IDなどの値で渡して、クロージャ内で要素オブジェクトを一々参照しても、十分過ぎるほど速い。

>>56
特定の1個とか一括とか関係なく、再描画を避けた方がベターだろう。
まあ、質問者が屑なので、どうでもいいが。

59 名前:Name_Not_Found 投稿日:2007/01/21(日) 11:52:31 ID:???
>>51
とりあえず、HTML の場合、ファイル保存は、#default#userData としてなら出来た。
この場合、%USERPROFILE%\UserData 内のどこかに、
save() の引数として指定した名前でUTF16LEのXMLファイルとして保存される。

var d = new ActiveXObject('Msxml2.DOMDocument.3.0');
var s = new ActiveXObject('Msxml2.DOMDocument.3.0');
d.async = false;
s.async = false;
d.load('test.xml');
s.load('test.xsl');
document.documentElement.addBehavior('#default#userData');
document.documentElement.load('foo');
alert(document.documentElement.XMLDocument.xml);
d.transformNodeToObject(s, document.documentElement.XMLDocument);
document.documentElement.save('foo');

60 名前:Name_Not_Found 投稿日:2007/01/21(日) 12:10:56 ID:???
>>51
>>59への追記だけど、userDataには、ページ当たり64KBの制限があるから、
XHTMLファイル内容保存には向いているとは言えない。

61 名前:Name_Not_Found 投稿日:2007/01/21(日) 12:35:10 ID:???
>>58
その「catchを略せない」って言うのはどういう意味だ?
とりあえず試した限りではIE 5.01(JScript 5.1)でも
try {} finally { alert('Hello world'); }
でアラートが表示されるんだが。

62 名前:Name_Not_Found 投稿日:2007/01/21(日) 13:50:42 ID:CrKEfDYl
document.defaultViewっていつのまにwindowになったんですか?>Firefox
というか仕様的に正しいの?

63 名前:Name_Not_Found 投稿日:2007/01/21(日) 14:21:04 ID:???
windowオブジェクトがAbstractViewインターフェースを
実装しているのならばDOM 2 Views仕様的に正しいし、
Window Object 1.0仕様(まだWDだが)では
WindowインターフェースはAbstractView
インターフェースを継承している。

64 名前:Name_Not_Found 投稿日:2007/01/21(日) 16:30:29 ID:???
自動でページ移動をすることは出来たのですが
移動するときにtarget='_parent'を同時に行うにはどうすればよいでしょうか?

65 名前:Name_Not_Found 投稿日:2007/01/21(日) 16:55:26 ID:???
>>64
paernt.location.href = '行き先'

66 名前:Name_Not_Found 投稿日:2007/01/21(日) 17:09:53 ID:???
window.open("行き先", "_parent", "")

67 名前:Name_Not_Found 投稿日:2007/01/21(日) 17:50:19 ID:???
>>16をお願いします。

68 名前:Name_Not_Found 投稿日:2007/01/21(日) 18:48:38 ID:???
>>67
>>17

69 名前:Name_Not_Found 投稿日:2007/01/21(日) 23:16:18 ID:???
<script src="test.js?q=foo"></script>
             ↑
test.js内でこのqの値(foo)が取れる方法をご存知ではないでしょうか?

70 名前:Name_Not_Found 投稿日:2007/01/21(日) 23:24:15 ID:???
DOMでやれ

71 名前:Name_Not_Found 投稿日:2007/01/21(日) 23:27:22 ID:???
CGIでtext/javascript吐くなら取れる

72 名前:41 投稿日:2007/01/21(日) 23:46:18 ID:???
ありがとうございます。

>>42
そういうものですか。

>>55
そこでもないのです。
C++とは違うという認識で勉強してみます。

>>58
リソースを有効に使うソースを示してください。
あと再描画をすることが目的なのですが。

73 名前:Name_Not_Found 投稿日:2007/01/22(月) 00:25:50 ID:???
>>72
>>58をよく読むこと
要はクロージャ内に要素の参照を保持しなければいい
例えばidだけあれば参照は出来るでしょうに、どうして参照を持つ必要がある?

もうひとつ、ソースを要求する前に自分で書いたものを提示すべし
別にこちらはソースを示さなくても回答になりうるのだから教えて君はよくない
話は自分で出来るところまでやってからだ

74 名前:Name_Not_Found 投稿日:2007/01/22(月) 01:43:08 ID:???
>>72
>再描画をすることが目的
違うだろ。
いったん描画されたのに、わざわざロード直後に再描画したいのか?w

75 名前:Name_Not_Found 投稿日:2007/01/22(月) 01:44:32 ID:???
>>72
>リソースを有効に使うソースを示してください。
示してるだろ。隔離スレ行けよ屑が。

76 名前:41 投稿日:2007/01/22(月) 01:57:24 ID:???
屑だからそれじゃわかんないんですけど。

77 名前:Name_Not_Found 投稿日:2007/01/22(月) 03:54:50 ID:???
>>16をお願いします。

78 名前:Name_Not_Found 投稿日:2007/01/22(月) 08:17:27 ID:???
>>77
だから >>17 を読んで何が分からないか言ってみ。
全部書けというのなら断る。

79 名前:Name_Not_Found 投稿日:2007/01/22(月) 08:26:18 ID:???
>>76
結局何が質問したいわけ。元の質問がまだ分からないのだったら、
td.onmouseover = makehandler(xxx);
では「makehandlerという関数を読んで、そこから返された関数
オブジェクトをonmouseoverに設定する」わけだから、makehandler
という関数は1回だけ呼ばれる、返された関数(イベントハンドラ
はイベントが起きるたびに何回も呼ばれる、という回答になるが。

80 名前:Name_Not_Found 投稿日:2007/01/22(月) 10:19:33 ID:???
あふぉにかまうなよww

81 名前:Name_Not_Found 投稿日:2007/01/22(月) 13:05:53 ID:???
>>78
全てわかってることなので>>17からでは何も進展ないのです。

82 名前:Name_Not_Found 投稿日:2007/01/22(月) 13:33:20 ID:???
>>81
ではもうこのスレでアンタに回答することはないね。
自分で勉強するか親切に教えてくれるところへ逝けば。さいなら。

83 名前:Name_Not_Found 投稿日:2007/01/22(月) 18:12:18 ID:???
IEのDOM操作が微妙に重い気がする。
createElementが重いのはわかってるからcloneNode使ってるんだけど…
どうももっさりする

84 名前:Name_Not_Found 投稿日:2007/01/22(月) 18:51:54 ID:???
>>83
複雑な構造なら、もしかするとinnerHTMLで要素を作った方が早かったりする

85 名前:Name_Not_Found 投稿日:2007/01/22(月) 19:00:14 ID:???
>>84
やっぱ?うすうすそんな気がしていた…

86 名前:Name_Not_Found 投稿日:2007/01/22(月) 20:30:09 ID:???
>>82みたいなレスがつくと他に解答者いたとしてもつきづらくなるので
やめていただきたい。スレ代表者ですか?
以前から思ってたのだけど初心者に答える気がないのなら上級者用のjsスレを作ったらいかがでしょう?

87 名前:Name_Not_Found 投稿日:2007/01/22(月) 20:40:06 ID:???
>>86
初心者用のスレがあるんだけどねwww

88 名前:Name_Not_Found 投稿日:2007/01/22(月) 20:51:09 ID:???
>>86

>>17は読んだの?

89 名前:Name_Not_Found 投稿日:2007/01/22(月) 20:57:55 ID:???
>>86
このスレは上級者用じゃないが「自分で勉強する気がある人」
向けのスレだ。それで54スレずっとやってるので変える気はない。

90 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:03:18 ID:???
>>88
読むどころか返答もしてますよ
>>89
どのラインを勉強してないといえるのかわかりませんがそれなりにやってますよ
ラインが厳しければ誰も書き込みできませんね
>>87
あそこではこちらのスレに誘導されるはずでしょう

91 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:06:30 ID:???
>>90

> ラインが厳しければ誰も書き込みできませんね

それでいいって

> あそこではこちらのスレに誘導されるはずでしょう

凄まじい思い込みw

92 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:07:56 ID:???
>>90
最小限のサンプルは?

93 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:13:43 ID:???
>>91
なんのためにこのスレがあるんですか?そもそもあなたが管理するわけでもないでしょう?
あなた自身の知識欲を満たすためにスレを利用するようにルールを決めるのなら上級スレを作るべきだと思いますよ
>>92
エラーコードが指し示す部分は出してあります。

94 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:22:51 ID:???
最小限のサンプルを作ること自体に意味があるんだよ

95 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:25:26 ID:???
>>90
理系の論文と同じさ、要は再現性のないものは「YOUの環境が悪いんだろう」としかいえない
回答側にどこに問題があるのか探すための情報を与えなければならない
それが出来ないなら、こちらも回答出来ないのは当たり前


で、上記の内容が、あなたにはレベルが高すぎるだろうから、簡単な例に直すと、
  別にこのスレの求めてるレベルが高いというか、教師に「どこが分からないのか分からない」と聞いているようなものだ
  つまり、分からなければ「分からない問題を解いてみた過程の書いてあるノート」を教師に見せなければならない
ということ

あなたのいってるエラーコードだけど、かなり多くの場合に出るエラーだから、何の参考にもならない
先の例だと、いきなり「問2がわからない」と教師に言っているようなもの
だから、「どの教科書」(=どのソース)についていっているのか伝える必要があるわけ

96 名前:Name_Not_Found 投稿日:2007/01/22(月) 21:46:50 ID:???
>>95
回答者と質問者この場合は立場が逆ですね
最小限といわれても思う最小限を出してるのにも関わらず
同じ言葉の繰り返しで最小限を出せといわれても指し示されていないのでこちらも返答しようがありません

97 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:10:19 ID:???
>>96
よく分からないんだが動いてエラーの出るソースってどっかにあった?
動かない断片だと動かして見られないから原因究明もできないわけで。

98 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:18:14 ID:???
//POST送信
function do(){
document.fForm.param.value= tsetdata;
document.fForm.submit();
}

上記のようにPOST送信してから、自画面にパラメータを
渡そうと考えています。
POST送信して、パラメータを受け取るとき、
どのようなメソッドでパラメータを取得できるのでしょうか?

GET送信のときは、次のように、location.searchを使って
取得していたのですが、POST送信では取得できないようです。。
var parmdata = location.search;

99 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:29:58 ID:???
>>98
formのtargetに渡すデータを自分でつけ加えるとかクッキーで渡すとか。

100 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:49:33 ID:???
クッキーの利用は、考えたことありませんでした。
もしだめだったら、利用させていただきます!!

そもそも、POST送信でパラメータを受け取ることはできないのですかね?

101 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:53:07 ID:???
>>100
サーバ側で何らかのアクションをするようにしないと無理

102 名前:Name_Not_Found 投稿日:2007/01/22(月) 22:55:25 ID:???
>>96
質問が高度過ぎて誰もわからないんだよ。
なんとか言いくるめようとしてるのにそろそろ気がつけ。
上級スレに行くべきなのはお前なんだ。

103 名前:Name_Not_Found 投稿日:2007/01/22(月) 23:00:51 ID:???
>>102
上級スレでは動くサンプルも貼ってね

104 名前:Name_Not_Found 投稿日:2007/01/22(月) 23:24:05 ID:???
>>96
だから、ソースもないのにそんなありふれたエラーじゃ、原因を特定できないから、
あなたの提示した情報は最小限のソースとして不十分なの
おわかり?

105 名前:Name_Not_Found 投稿日:2007/01/22(月) 23:34:28 ID:???
サンプルってのがサンプルソースコードだってわからなかったに一票www

106 名前:Name_Not_Found 投稿日:2007/01/22(月) 23:40:18 ID:???
ああ、それでエラーの出てる「箇所」だけ貼ってるのか。アホや。

107 名前:Name_Not_Found 投稿日:2007/01/22(月) 23:47:56 ID:???
ドメインまたいでるとかいうオチなんでしょ。

108 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:01:06 ID:???
>>107
関係ない。

109 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:12:55 ID:???
きっとbodyの最後の方にscriptを置いていて、それをheadでロードするようにしたから、オブジェクトがないと言われたんだろ
もともとのscript要素のあった位置で外部ファイルを読み込んでみれ

110 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:20:23 ID:???
だからさー、そうやって予想しちゃうとつまらないじゃん。
テッテして「最小限のソースを作って貼れ」にした方が(ry

111 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:25:28 ID:???
いやいや
上級スレに移住してもらった方が(ry

112 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:26:48 ID:???
>>109でもエラーになる場合があるから、ソースないとダメなんだよね
ケアレスミスとか本当にやめてほしい・・・

113 名前:Name_Not_Found 投稿日:2007/01/23(火) 00:29:45 ID:???
>>112
「もともとのscript要素のあった位置で外部ファイルを読み込んで」
もエラーになる場合のか?w

114 名前:Name_Not_Found 投稿日:2007/01/23(火) 02:38:43 ID:H7WMvxy8
質問です。
初歩的な質問で申し訳ないのですが、手持ちの参考資料に何故か無かったので、ここで質問させてください。

<div id="hoge">aaaaaaa</div>
このようにHTMLが書かれていたとして、
これをJavaScriptでaaaaaaaの文字の部分を変更したいのですが、その場合どのようにすればいいのでしょうか?
getElementById("hoge").〜で参照しても、それっぽいプロパティーは無かったのですが…。
色を変えたりはあるんですけどね。。。

115 名前:Name_Not_Found 投稿日:2007/01/23(火) 02:52:09 ID:???
>>114
var hoge = document.getElementById("hoge");
for(var prop in hoge){
alert("hoge." + prop + " = " + hoge[prop]);
};

116 名前:Name_Not_Found 投稿日:2007/01/23(火) 03:03:26 ID:???
>>114
ttp://developer.mozilla.org/en/docs/DOM:element.textContent
ttp://developer.mozilla.org/en/docs/DOM:element.innerHTML

ttp://www.mozilla-japan.org/projects/inspector/
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&DisplayLang=en

117 名前:Name_Not_Found 投稿日:2007/01/23(火) 03:08:23 ID:???
>>101
>サーバ側で何らかのアクションをするようにしないと無理

POST送信のパラメータはJavascriptでは受け取ることができないんですか。
クッキーかGETで対処することにします。ありがとうございます。

118 名前:Name_Not_Found 投稿日:2007/01/23(火) 04:57:11 ID:???
>>117
レスポンスのURIのクエリを読むことを、「受け取れる」
と見なすならば、GETとPOSTに違いはないだろ。
リクエストしてレスポンスを受け取らなくても、
フォームとフォームコントロールを走査すれば取得できるわけだから。

119 名前:Name_Not_Found 投稿日:2007/01/23(火) 13:13:20 ID:???
あぁ、スレ伸びてると思ったらやっぱり>>16が叩かれてたのか
いつも質問する側だけど、>>16みたいなのがあるとスレの雰囲気悪くなって
こっちまで聞けなくなるから困る

>>23書いて>>35を言われてるのに何でもう一回コード貼らないのか理解できない
貼れば教えてくれるって人ばかりなのに

120 名前:Name_Not_Found 投稿日:2007/01/23(火) 14:45:39 ID:???
>>119
>>105

121 名前:Name_Not_Found 投稿日:2007/01/23(火) 19:27:04 ID:???
IEのしつもんです。
history.back() のボタンを作って、
実際に戻れない場合はボタンを無効にしたいのですが
実行する前に確認することはできませんか?
(history.length == 0 の場合は除きます)


122 名前:Name_Not_Found 投稿日:2007/01/23(火) 19:39:03 ID:???
IEのbehaviorでsavesnapshot、saveHistoryを同時に指定することはできないのですか?
↓では、snapshotは効くようになり、savehistoryが効かなくなります。

<META NAME="save" CONTENT="history">
<META NAME="save" CONTENT="snapshot">
<STYLE>
.SSSSSSS
{
behavior:url(#default#savesnapshot) url(#default#saveHistory);
}
</STYLE>
</HEAD>

123 名前:Name_Not_Found 投稿日:2007/01/23(火) 20:09:47 ID:???
>>119
あんなこと言うような奴にわかっていたとしても教えられると思ってないので。
以前のこといちいち穿ってレスつけてるあなたもスレ荒廃の原因ですね

124 名前:Name_Not_Found 投稿日:2007/01/23(火) 22:42:50 ID:/N22kwec
クッキーについて質問です。
入力した文字列の履歴をリストボックスのように
保持するするにはどうしたらいいでしょうか?
かなりググリましたが、サンプルコードがありませんでした。
また、半角スペース入力にも対応したいと考えます。

125 名前:Name_Not_Found 投稿日:2007/01/23(火) 23:35:18 ID:???
まあ、やりたい事がそのまま載ってる事は限られる。
↓エスパーよろ

126 名前:Name_Not_Found 投稿日:2007/01/23(火) 23:56:04 ID:???
>>124
半分以上クッキー関係ないジャマイカ

127 名前:Name_Not_Found 投稿日:2007/01/24(水) 00:16:09 ID:???
スクロールに追従するインターフェースを作ろうとして、ちょっと躓いてるので質問させて下さい。
現在XHTMLで記述しているページで、一定のスクロール量に達したら、スクロールに合わせて追従し、
かつセンター寄せしたページの左側に沿うようにJavaScriptで制御しようと、以下のように外部jsに
記述した所、InternetExplorer(6/7)以外ではどうも上手く動作しません。色々試しては居るのですが
どうも糸口が見えて来ないので、どなたかこの辺の解決法をご存知の方ご享受お願いします。

window.onscroll = Menu;
window.onresize = Menu;
window.onload = Menu;

function Menu(){
if(document.documentElement.scrollTop < 220){
document.getElementById("menu_a").style.top = 220;
}else if(document.documentElement.scrollTop > 220){
document.getElementById("menu_a").style.top = document.documentElement.scrollTop;
}

if(document.body.clientWidth < 840){
document.all("menu_a").style.left = -5;
}else if(document.body.clientWidth > 840){
document.all("menu_a").style.left = document.body.clientWidth / 2 - 420;
}
}

※以下にレイヤー"menu_a"をdocument.writeで吐き出すコードが続きます。

128 名前:Name_Not_Found 投稿日:2007/01/24(水) 00:17:49 ID:???
>>124
主要なブラウザは既に似たような機能を実装してるので
どれほど有用な物になるか疑問なんだが。

クッキーについては document.cookie で
半角スペースについては encodeURIComponent() で検索すれば
情報は得られるかと。
form のテキスト欄で onkeyup あたりで入力を監視すればいい。

スクリプト自体よりも候補のリストを表示させる方がめんどくさそうだ。

129 名前:Name_Not_Found 投稿日:2007/01/24(水) 00:20:12 ID:???
ご享受は頂けない

130 名前:Name_Not_Found 投稿日:2007/01/24(水) 00:43:34 ID:???
>>127
0以外の数値には単位が必要。

あと、document.all は Opera や Fx でも一応使えるが、
例えば、innerHTML ほどには一般化していない。
だから、書き直した方が良いだろう。

131 名前:Name_Not_Found 投稿日:2007/01/24(水) 02:44:32 ID:???
operaはともかく、firefoxってdocument.all使えたっけ?

132 名前:Name_Not_Found 投稿日:2007/01/24(水) 03:46:53 ID:WdvCgY7D
世界の時計の現在の時刻の比較の、JAVAスクリプトはたくさん見つかりますが、

2日後の時刻の9時など、日時をフォームに入力してプッシュすると、そのときの世界時計の比較が出るものってありますか?
これはJAVAスクリプトのソースをください。


133 名前:Name_Not_Found 投稿日:2007/01/24(水) 03:53:39 ID:???
>>131
使える。
しかしdocument.allはnameとかも拾う糞仕様なので使う意味がわからない。

134 名前:Name_Not_Found 投稿日:2007/01/24(水) 07:35:26 ID:???
>>132
上級隔離スレへ。
http://pc10.2ch.net/test/read.cgi/hp/1155954169/l50

135 名前:Name_Not_Found 投稿日:2007/01/24(水) 10:41:15 ID:???
window.onloadで、特定のタグにonclickを付加すると言う関数を呼び出すようにしています。
最初にページが読み込まれたときは当然上手く付加されているのですが、
その状態でajax処理で移動したページには出来ないです。
どういうイベントハンドラを使えばいいのでしょうか?

136 名前:Name_Not_Found 投稿日:2007/01/24(水) 10:46:30 ID:???
>>135
意味わかんね。ページ移動したら、また設定しなきゃ無理だろ。
普通に考えて

137 名前:Name_Not_Found 投稿日:2007/01/24(水) 10:52:56 ID:???
ajax処理で獲得した優勝賞金使え

138 名前:Name_Not_Found 投稿日:2007/01/24(水) 11:20:33 ID:???
>>136
ajaxではなくて普通のリンクの場合は、クリックした時に画面が切り替わってwindow.onloadで
設定した関数が実行されますよね。
そうではなくてページの一部をajaxで切り替えた時にイベントを起こせないかな?と言うことです。
window.onloadじゃ無理みたいなので何か他のハンドラがあればいいのですが・・・。

139 名前:Name_Not_Found 投稿日:2007/01/24(水) 11:31:08 ID:???
childnodes[i].onmouseover = window['function'];
あるタグの子ノードのマウスオーバー時に、functionと言う関数を実行させる為に、
上のような記述が出来るらしいですが、この場合functionにパラメータを持たせる事は可能ですか?

140 名前:Name_Not_Found 投稿日:2007/01/24(水) 11:31:20 ID:???
切り替えたときに実行すればいいだろ。

141 名前:Name_Not_Found 投稿日:2007/01/24(水) 11:32:45 ID:???
>>139
むぎ

142 名前:Name_Not_Found 投稿日:2007/01/24(水) 11:47:14 ID:???
>>138が何もわかっていないことがよくわかった
どうせrailsのprototype.jsとかをよくわからないまま適当に使ってるんだろうな

143 名前:Name_Not_Found 投稿日:2007/01/24(水) 12:04:49 ID:???
>>135
Ajaxの処理が終わった後で
その「onclickを付加する関数」を直接呼べばいいだけ


144 名前:Name_Not_Found 投稿日:2007/01/24(水) 12:23:01 ID:???
jsっていうかECMAの仕組みを理解しようとしない
香具師大杉!!

145 名前:Name_Not_Found 投稿日:2007/01/24(水) 12:55:18 ID:???
>>144
どうせ小学生とか中学生ばっかりだろ。
ECMA読まなくても、そこそこ動くものが作れるくらい、
中途半端な記事で溢れてるし

146 名前:Name_Not_Found 投稿日:2007/01/24(水) 13:07:04 ID:???
>>122
MSに記載がないようだから、憶測になる。

事実: snapShot は、保存しない限り、メモリー上に保持。
事実: history は、常に、メモリー上に保持。
事実: 同一の要素オブジェクト、プロパティ名前も完全一致している。
憶測: 別々の領域に保持されるわけではなく、同一のメモリー領域が使われているっぽい。
事実: snapShot は、ページ遷移 = 保存しない、だから、迅速に消去した方が安全。
憶測: 仮に消去されるのなら、それは history のデータでもあるわけで……。

たぶん、こういうことだろう。

147 名前:Name_Not_Found 投稿日:2007/01/24(水) 13:12:18 ID:???
>>138
>>140>>143がFAなんだが、
ちょっと違う方法になるが、DOM-MutationEvents を使える場合がある。

148 名前:Name_Not_Found 投稿日:2007/01/24(水) 13:16:02 ID:???
>>143
それをすると何故かロード中に関数が実行されてしまうorz
例えばアラートを出す関数の場合でやると、ロード中にアラートが出るんだわ。
ロードが完了したのを判断するイベントハンドラって無いんですかね?

149 名前:Name_Not_Found 投稿日:2007/01/24(水) 13:19:17 ID:???
あるよ

150 名前:Name_Not_Found 投稿日:2007/01/24(水) 14:06:42 ID:???
>>138
むしろどうやってページ書き換えてるのか問い詰めたいのだが
RoR とか prototype.js とか使ってるとそんなんしなくても勝手に
書き換えてくれたりするん?

151 名前:Name_Not_Found 投稿日:2007/01/24(水) 14:18:41 ID:???
>>150
恥ずかしながらSimple JSって言うライブラリを使ってますorz
http://simplejs.bleebot.com/
readyState?ってのがキーだと思ってるんですが上手く動かないです。

152 名前:151 投稿日:2007/01/24(水) 14:41:43 ID:???
お騒がせしてスイマセン。
特別いじってないのにいつの間にか動くようになりました。

153 名前:Name_Not_Found 投稿日:2007/01/24(水) 19:44:56 ID:???
「あるボタンを押すとフラグが立ち、もう一度押すとフラグが終わる」というスクリプトを書きたいのですが
どうするとうまく行くのか解りません。
そのフラグの有無を利用してスクリプトを動作させたいのですが、簡単にフラグを立てるにはどうすればいいのでしょうか?

154 名前:Name_Not_Found 投稿日:2007/01/24(水) 20:06:31 ID:???
>>153

<button onclick='var f=document.getElementById("flag");
f.innerHTML=(f.innerHTML=="フラグ" ? "フ<br>ラ<br>グ":"フラグ")'>ある</button>
<div id="flag">フラグ</div>

155 名前:Name_Not_Found 投稿日:2007/01/24(水) 20:35:19 ID:???
しょうもねぇ

156 名前:Name_Not_Found 投稿日:2007/01/24(水) 23:12:56 ID:???
次のようなサーバプログラムがあるとします
"test message" 表示(フラッシュ)
5秒スリープ
"test message2" 表示(フラッシュ)

このサーバプログラムにIEで直接アクセスするとその通り表示されますが、
xhr = newXMLHttpRequest();
xhr.responseText
で参照すると"test message"と"test message2"が同時に(つまり5秒経過後に)受信されてしまいます。

また
<iframe name="upload_iframe" style="width: 400px; height: 100px;"></iframe>
<form method="POST" action="cgi-bin/test.cgi" enctype="multipart/form-data" name="form1">
<input type="submit">
でsubmitボタンを押しても同様に5秒後受信されます(multipart/form-dataにしているのはファイルを扱うからです)

これらのメッセージを即座に受信し表示するにはどうすればよいのでしょうか?
ご教示お願いします。

157 名前:156 投稿日:2007/01/24(水) 23:14:52 ID:???
すみません
× <form method="POST" action="cgi-bin/test.cgi" enctype="multipart/form-data" name="form1">
○ <form method="POST" action="cgi-bin/test.cgi" target="upload_iframe" enctype="multipart/form-data" name="form1">

158 名前:Name_Not_Found 投稿日:2007/01/24(水) 23:30:34 ID:zNOlNgV8
エラーで、
『'x'はNullまたはオブジェクトではありません。』
と表示されます。

でも、検索をかけても「x」という文字は出てきません。

それに
GEvent.addListener(marker2, "click", function() {
marker2.openInfoWindowHtml("aiueo");
});

とあるのを

GEvent.addListener(marker2, "click", function() {
//marker2.openInfoWindowHtml("aiueo");
});

とコメントアウトすると普通に実行します。

何が原因なのでしょうか?

159 名前:Name_Not_Found 投稿日:2007/01/25(木) 00:50:17 ID:???
>>156
XHRはそういう仕様

>>158
よく探してみろ

160 名前:Name_Not_Found 投稿日:2007/01/25(木) 09:51:55 ID:???
>>158
そのmarker2という変数に'x'が入ってるんじゃないの。

161 名前:Name_Not_Found 投稿日:2007/01/25(木) 14:27:55 ID:???
<script>
var makeRGB = function(r, g, b) { r = Math.floor(r * 255).toString(16); g = Math.floor(g * 255).toString(16); b = Math.floor(b * 255).toString(16);
if(r.length == 1) { r = "0" + r; } if(g.length == 1) { g = "0" + g; } if(b.length == 1) { b = "0" + b; } return "#" + r + g + b;
}; var center = 200; var radius = 120; window.onload = function() { var count = 0; var div = document.createElement("div");
with(div.style) { position = "absolute"; overflow = "hidden"; width = "1px"; height = "1px"; } for(var x = -radius; x < radius; x++) {
for(var y = -radius; y < radius; y++) { var r = Math.sqrt(x * x + y * y); if(r > radius) { continue; } var s = r / radius; var h;
if(s == 0) { color = makeRGB(1, 1, 1); } else { if(y == 0) { if(x < 0) { h = 90; } else { h = 270; } } else { if(y < 0) {
h = Math.atan(x / y) * 180 / Math.PI; } else { h = Math.atan(x / y) * 180 / Math.PI + 180; } } if(h < 0) { h += 360; }
var i = Math.floor(h / 60); var f = h / 60 - i; var v = 1; var m = v * (1 - s); var n = v * (1 - s * f); var k = v * (1 - s * (1 - f));
switch(i) { case 0: color = makeRGB(v, k, m); break; case 1: color = makeRGB(n, v, m); break; case 2: color = makeRGB(m, v, k); break;
case 3: color = makeRGB(m, n, v); break; case 4: color = makeRGB(k, m, v); break; case 5: color = makeRGB(v, m, n); break; } }
var pixel = div.cloneNode(true); pixel.style.left = (center + x) + "px"; pixel.style.top = (center + y) + "px";
pixel.style.backgroundColor = color; document.body.appendChild(pixel); count++; } } alert(count); };
</script>
上のスクリプト(超重いです。IEでの実行をお勧めします。間違ってもFxではしないほうがいいです)、
45223個のDIVを生成するプログラムなのですが、IEだと32764個で止まってしまいます。
DIV 32764個+body + head + script + title でちょうど32768個ですので、IEはそういう仕様なのかな。

162 名前:Name_Not_Found 投稿日:2007/01/25(木) 14:46:43 ID:???
>>161
何がしたいのかは解らないけど
そういうのを描くのはFlashとかにしなさい

163 名前:Name_Not_Found 投稿日:2007/01/25(木) 15:11:00 ID:???
>>162
デザインで使うための、printscreenする画像を作りたかったんです。
mingwインストールするのとJavaScriptで書くのとどっちが速いかな、って。
3行目のradius = 30くらいにすると何やりたいかわかると思います。

ちょっとしたプログラムを書きたいときに、ほぼ確実にどのコンピュータでも動くのは
JavaScriptの大きな特徴ですよね。昔のN88BASICみたいな。

164 名前:Name_Not_Found 投稿日:2007/01/25(木) 17:03:42 ID:???
内部をフレーム分割している親フレームページをブラウザ表示したときに
Javascriptでブラウザウィンドウサイズを制御したいのですが、うまくいきません

ターゲットはIE6です。親フレームページには<body>タグがないので、
document.body.clientWidth、document.body.clientHeightは
使えないみたいです

よろしくお願いします

165 名前:Name_Not_Found 投稿日:2007/01/25(木) 17:29:29 ID:???
>>164
>2
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。

> 親フレームページには<body>タグがないので、
なんでないのかが良くわからないです

> よろしくお願いします
何をお願いしますなのかが良くわからないです。

166 名前:Name_Not_Found 投稿日:2007/01/25(木) 20:26:44 ID:eOOYcexl
セレクトメニューに応じて別のセレクトメニューの内容を変えるというものを
作っています。

function menuSelect(n){
names=document.myForm.hobby.options[n].value;
if(names=="趣味1"){
menuItem=["パソコン","スポーツ","映画"]
for (i=0; i<3; i++){
document.myForm.hobby_list.options[i] = new Option(menuItem[i],menuItem[i]);
else if(names=="趣味2"){
menuItem2=["音楽","ファッション"] //以下のソースは割合します。

<select name="hobby">のoptionにある「趣味1」をクリックしたら
<select name="hobby_list">のメニューに趣味一覧が表示されます。
それは可能なのですが、「趣味2」を押した時に、「趣味1」の内容も表示されます。
menuItem2にmenuItemと同じだけの空データを数だけ用意すれば
見た目上は表示されませんが、選択出来てしまいます。

どうやって毎回の選択毎にhobby_listの内容を新規に表示させることが
出来るのでしょうか?

167 名前:Name_Not_Found 投稿日:2007/01/25(木) 21:30:01 ID:???
options.length = 0;


168 名前:Name_Not_Found 投稿日:2007/01/25(木) 21:33:41 ID:???
>>163
> ちょっとしたプログラムを書きたいときに、ほぼ確実にどのコンピュータでも動くのは
> JavaScriptの大きな特徴ですよね。昔のN88BASICみたいな。

勘違いも甚だしい。

169 名前:166 投稿日:2007/01/25(木) 21:52:52 ID:???
>>167
出来ました!ずっと悩んでいたのですが、本当に助かりました。
どうもありがとうございました。

170 名前:Name_Not_Found 投稿日:2007/01/25(木) 22:08:04 ID:PdkbNc9o
オートコンプリートについて質問です。
<input type="text" autocomplete="on">としている場合に
入力内容が保存されるようにするにはどうしたらいいでしょうか?
画面内で完結し、他の画面に遷移しないページとなっています。


171 名前:Name_Not_Found 投稿日:2007/01/25(木) 22:11:15 ID:???
>>170はマルチ
礼も言わずに質問逃げ。

172 名前:170 投稿日:2007/01/25(木) 22:30:51 ID:???
>>171
すみません。
他スレでこちらに行くよう指示されましたので、マルチではありません。

173 名前:Name_Not_Found 投稿日:2007/01/25(木) 22:45:00 ID:???
マルチ?どうでもいい。
つうか、礼を言って欲しいか?
回答して暇をつぶすための素材を提供してくれれば良いだけだがな。

174 名前:Name_Not_Found 投稿日:2007/01/26(金) 00:05:39 ID:???
フレームを使用していて左右に分かれている右側のページから
ボタンで全体のリロードを行うにはどういうコードにすればよいでしょうか?
フレームの名前は↓のようになっています
フレーム本体:main
左側:left
右側:right

175 名前:Name_Not_Found 投稿日:2007/01/26(金) 00:30:44 ID:???
>>174
<input type="button" onclick="top.location.reload()">

176 名前:Name_Not_Found 投稿日:2007/01/26(金) 00:41:06 ID:???
>>175
ありがとうございました

177 名前:Name_Not_Found 投稿日:2007/01/26(金) 02:37:35 ID:???
>>170
inputに適当なnameでもつければいいさ
少なくてもIEではそれで十分だ
例えばIE6では
<input type="text" name="q">
にカーソルを入れて↓キーで人によってはGoogleの入力履歴が見られると思う

178 名前:170 投稿日:2007/01/26(金) 08:49:08 ID:980PGnws
>>177
ありがとうございました。

179 名前:Name_Not_Found 投稿日:2007/01/26(金) 17:48:14 ID:+dRBnChE
<li onmouseover="test()">適当な文字列

上のイベントを実行させようとマウスを乗せたとたんに、
ページが真っ白になってしまうんですが、原因は何が考えられるでしょうか?
test()は中身を色々替えたのですが変わりありませんでした。

180 名前:Name_Not_Found 投稿日:2007/01/26(金) 18:06:58 ID:???
そんなことないだろうと思って
IE6 と Firefox2 と Opera9 で試したけど
そんなことなかった

test() の中身を書きたまえよ

181 名前:Name_Not_Found 投稿日:2007/01/26(金) 19:06:58 ID:???
document.writeを使っているに100パセリ

182 名前:Name_Not_Found 投稿日:2007/01/26(金) 19:45:59 ID:???
おれは1000ワロス

183 名前:Name_Not_Found 投稿日:2007/01/27(土) 12:20:29 ID:VlG7FqXo
グーグルのパーソナライズドホームみたいな
配置を換えられるフローティングウィンドウを
作りたいんですが、
おすすめなライブラリって有りますか?

184 名前:Name_Not_Found 投稿日:2007/01/27(土) 14:14:16 ID:???
>>183
そのものを参考にすればよかろうに。

185 名前:170 投稿日:2007/01/28(日) 01:35:25 ID:???
>>177
先日、質問させていただいたものですが、
前にどこかのWebページで入力した履歴が表示されました。
しかし、新規に入力した情報が残りません。
他のページに遷移しないと保存されないのでしょうか?

186 名前:Name_Not_Found 投稿日:2007/01/28(日) 01:52:01 ID:???
googleのjsってものによっては参考にするのは絶対に不可能。

187 名前:Name_Not_Found 投稿日:2007/01/28(日) 03:04:54 ID:???
>>186
意味不明。

188 名前:Name_Not_Found 投稿日:2007/01/28(日) 03:10:23 ID:???
ワタシニハワカリマセンってこったろうね
ま、絶対に不可能は絶対にないとして、現実的にやる気にならん物は少なかないな

>>183
そうねhttp://demo.script.aculo.us/shopあたり弄ったらどうにかなんでねーの頑張れはいはい

189 名前:Name_Not_Found 投稿日:2007/01/28(日) 05:07:40 ID:lhj+fjbL
フォーム内のテキストボックスの内容を変更するスクリプトを動かしたいのですが、
お知恵をお貸し下さい。

普通なら、 docment.(formの名前).(inputの名前).value = "hoge" とすれば良いの
ですが、今回inputの名前が person[name] のように記号[]を含んでおり、
これを上の方法でやるとプロパティ名として認識されず、'name'は宣言されていません、
とのエラーが出てしまいます。

これをinputの名前を変更することなくスクリプト側で対応できないでしょうか?
なにとぞお力を。

190 名前:Name_Not_Found 投稿日:2007/01/28(日) 06:05:35 ID:???
>>189
FAQ を読めばいいと思うの

191 名前:Name_Not_Found 投稿日:2007/01/28(日) 15:47:19 ID:???
>>189
document.getElementsByTagName("person[name]")

192 名前:Name_Not_Found 投稿日:2007/01/28(日) 16:25:30 ID:???
>>191
それは違う
formへの参照.elements["person[name]"].value
でelementsの添え字に参照したいinputのidでも入れればいい
もしくはdocument.getElementsByName

193 名前:Name_Not_Found 投稿日:2007/01/28(日) 17:21:29 ID:???
name属性って[]とかの記号含んでもいいの?

194 名前:Name_Not_Found 投稿日:2007/01/28(日) 17:26:41 ID:???
うん

195 名前:Name_Not_Found 投稿日:2007/01/28(日) 17:28:19 ID:???
ここで仕様書マニアが一言

196 名前:Name_Not_Found 投稿日:2007/01/28(日) 17:31:11 ID:???
strictスレにいきなさい。

197 名前:Name_Not_Found 投稿日:2007/01/28(日) 17:43:35 ID:???
>>192
ごめw寝ぼけてて間違えた。

そういや昔そんな関数作ったなぁ。
name でコレクション得られるやつ

198 名前:Name_Not_Found 投稿日:2007/01/28(日) 22:56:48 ID:???
チョー素人です。
onMouseOverさせたいだけなんです。
どうして動かないのかさっぱりわかりません


<a href="index.htm"
onMouseOver="chgImg('INDEX','img2.gif')"
onMouseOut="chgImg('INDEX','img1.gif')">
<img src="img1.gif" border="0" name="INDEX">
</a>

function chgImg(imagesName,gifName){
document.images[imagesName].src=gifName;}

199 名前:Name_Not_Found 投稿日:2007/01/28(日) 23:06:46 ID:???
<a href="index.htm"
onMouseOver="chgImg('INDEX','img2.gif')"
onMouseOut="chgImg('INDEX','img1.gif')">
<img src="img1.gif" border="0" name="INDEX">
</a>

<script>
function chgImg(imagesName,gifName){
document.images[imagesName].src=gifName;}
</script>

200 名前:198 投稿日:2007/01/28(日) 23:21:26 ID:???
>>199
ごめんそこまで書いてなかったな


<script type="text/javascript" src="index.js"></script>


index.js

function chgImg(imagesName,gifName){
document.images[imagesName].src=gifName;}


201 名前:Name_Not_Found 投稿日:2007/01/28(日) 23:27:42 ID:???
>>198
素人かどうかなどこちらの知ったことではない。
アンタが貼った通りのもので動くけどねえ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chgImg(imagesName,gifName){
document.images[imagesName].src=gifName;}
</script>
</head><body>
<p><a href="index.htm"
onMouseOver="chgImg('INDEX','img2.gif')"
onMouseOut="chgImg('INDEX','img1.gif')">
<img src="img1.gif" border="0" name="INDEX">
</a></p></body></html>

202 名前:198 投稿日:2007/01/29(月) 01:14:39 ID:???
ダメだ
>>201そのまんまコピペしても動かない(imgのアドレスなんかはちゃんと確認してる)
俺の環境が悪いのか?でも余所のサイトじゃしっかり機能してるのが見えるんだがなあ…???
もうわけわかんねー


迷惑かけたなλ....

203 名前:Name_Not_Found 投稿日:2007/01/29(月) 01:30:14 ID:???
>>197
自前でつくらなくてもgetElementsByNameを使えばいいじゃない

204 名前:Name_Not_Found 投稿日:2007/01/29(月) 02:22:11 ID:???
>>203
ちょっと前のレスくらいちゃんと読もうな

205 名前:プードル 投稿日:2007/01/29(月) 03:40:11 ID:mItuk9aJ
こんばんは。1から10までの数値をランダムに10個並べて、おなじ数字が2度以上
出現しないようにするのってどうすればいいんですか?
ループとフラグを使うのはわかるんですが・・・
初歩的な質問でごめんなさい。。ぜひ、教えて下さい!!

206 名前:Name_Not_Found 投稿日:2007/01/29(月) 03:56:38 ID:???
これはひどい

207 名前:プードル 投稿日:2007/01/29(月) 04:00:15 ID:mItuk9aJ
ひどいですよね。。
<script type="text/javascript"><!--
for(i = 0 ; i <10 ; i++){
for(j= 0; j <1 ; j++){
var num = Math.floor(10*Math.random())+1;
if(suuji[)
}
}

// --></script>

ここからずーーっと煮詰まってます(泣)

208 名前:プードル 投稿日:2007/01/29(月) 04:01:34 ID:mItuk9aJ
間違えました↑
<script type="text/javascript"><!--
for(i = 0 ; i <10 ; i++){
for(j= 0; j <1 ; j++){
var num = Math.floor(10*Math.random())+1;
}
}

// --></script>



209 名前:Name_Not_Found 投稿日:2007/01/29(月) 04:58:21 ID:???
function randomten(){
var str = "", arr = new Array(10), bNext = true;
while( bNext ) {
if ( !arr[ j = Math.floor( Math.random() * 10 )] ){
arr[j] = true;
str += ( j + 1 ) + ",";
bNext = false;
for ( i = 0; i < 10; i++ ) {
if ( !arr[i] ){
bNext = true;
break;
}
}
}
}
return str;
}
alert( randomten() );

適当なのでどんな場合でもちゃんと動くかは知らん。

210 名前:Name_Not_Found 投稿日:2007/01/29(月) 08:14:41 ID:???
>>205
過去スレで瀕出な質問。過去スレ検索できない奴は来るな!
ループは使うがフラグなんて使わないぞ。1〜10を配列に
入れてシャッフルするのが定石。
>>209
アンタもだ、過去スレも読まずに低品質な回答なんか書くな!

211 名前:Name_Not_Found 投稿日:2007/01/29(月) 11:38:11 ID:???
Ruby1.9がArray#shuffle!(), Array#shuffle() を組み込んだから言うのだが、寧ろ、JSに必要だろうな。
ここ(に限った話でも無いが)で過去に収束した最速コードは、
ttp://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/array.c?revision=10808
のrb_ary_shuffle_bangと完全に同じ。現在の
ttp://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/array.c?revision=11429
に見られるような、Iterate中の破壊禁止は、JSらしくないから不要と思う。

212 名前:Name_Not_Found 投稿日:2007/01/29(月) 11:38:49 ID:???
しかし、JSの場合、割り当てられていないインデックスをどうするか、という問題がある。
Array#sort() のように、undefined値や"unassigned"値を後置するのか、
それとも、割り当てられたインデックス群だけでシャッフルするのか、
の二択になるだろう。後者を選択した場合、
  Array.shuffle = function () {
    return Array.prototype.shuffle.call(arguments[0]);
  }
  Array.prototype.shuffle = function () {
    var compact = [];
    Array.forEach(this, arguments.callee.helpCompact, compact);
    for (let i = compact.length, j; 0 < i; ) {
      j = Math.floor(Math.random() * i--);
      [compact[i], compact[j]] = [compact[j], compact[i]];
    }
    Array.forEach(this, arguments.callee.helpArrange, compact);// (*)
    return this;
  }
  Array.prototype.shuffle.helpCompact = function () {//this:Array == compact
    this[this.length] = arguments[0];
  }
  Array.prototype.shuffle.helpArrange = function () {//this:Array == compact
    arguments[2][arguments[1]] = this.pop();
  }
のようになる。
ところで、Array-Like については、(*) の行で問題が出る場合がある。
それは、HTMLCollection, NodeList の場合だが、
そもそも、Node の入れ替えをArray#shuffle() で行うのは不適切だから、
必要になった時には、それ専用の処理を別途用意するべきだろう。

213 名前:Name_Not_Found 投稿日:2007/01/29(月) 11:51:44 ID:???
「"unassigned"値」の「値」は表現としておかしかったな。値が無いのだから。

214 名前:Name_Not_Found 投稿日:2007/01/29(月) 14:21:52 ID:???
>>212
このコード、どの環境でもこのまま記述するだけで動くの?

215 名前:Name_Not_Found 投稿日:2007/01/29(月) 15:13:15 ID:???
>>214
要JavaScript1.7
書き換えても、JavaScript1.6は必要。
JavaScript1.5以下やJScript5.7以下だと、Array#forEach() を厳密に実装するのがけっこうめんどう。

216 名前:Name_Not_Found 投稿日:2007/01/29(月) 15:20:24 ID:???
>>215
誤 5.7
正 5.6

217 名前:Name_Not_Found 投稿日:2007/01/29(月) 23:14:52 ID:???
JavaScript1.5(笑)

218 名前:Name_Not_Found 投稿日:2007/01/30(火) 14:47:51 ID:???
JavaScript(笑)

219 名前:Name_Not_Found 投稿日:2007/01/30(火) 17:51:14 ID:???
質問するスレがちょっと微妙な感じですが、
JavaScript関連なのでここで質問させていただきます。

IEでabbr要素を有効に表示させるスクリプトや、
スタイルシート切り替えスクリプトなど、
外部のスクリプトファイルを、HTMLのヘッダ部分で

<script type="text/javascript" src="script.js"></script>

このようにして呼び出しますよね。

ですが、外部スクリプトが増えてくると、
このscriptのタグをいくつも記述しないとならないのが、
なんとなく気持ち悪いので、HTMLでの記述は1つで、
複数の外部スクリプトファイルを読み込ませるようにしたいと思っています。

外部スクリプトファイルを1つのファイルにまとめるようなことは出来るのでしょうか?
お願いします。

220 名前:Name_Not_Found 投稿日:2007/01/30(火) 18:08:29 ID:???
>>219
一番簡単なのはその複数のファイルを自分で取り寄せて連結し
1つのファイルにしてそれを読ませることだが。それが嫌なら
ファイル名一覧を配列に用意してファイルの個数だけループで
document.write()を使ってscriptタグを生成するとか?

221 名前:219 投稿日:2007/01/30(火) 18:12:10 ID:???
>>220
1つのファイルにまとめるというのは、
コピペで繋げていけばいいんですか?

222 名前:Name_Not_Found 投稿日:2007/01/30(火) 18:43:22 ID:???
<script>
window.onload = function() {
var test = function() {
var iframe = document.createElement("iframe");
setTimeout(function() {
document.body.appendChild(iframe);
iframe.contentWindow.location.href = "/test.html";
setTimeout(function() { document.body.removeChild(iframe); }, 1000);
setTimeout(test, 1200);
}, 300);
};
test();
};
</script>

こういう風にiframeを作成すると、Firefox1.0でhistoryにゴミが次々と生成されてしまいます。
Backボタンを押したときにユーザの想定外の動作になってしまうので、履歴を残さずにiframeを作りたいのですが
どのようにすればよいでしょうか?

Firefox2.0では解決されていますが、出来れば古いユーザにも対応したいので、よろしくお願いします。

223 名前:Name_Not_Found 投稿日:2007/01/30(火) 20:24:25 ID:???
iframe.contentWindow.location.replace()

224 名前:Name_Not_Found 投稿日:2007/01/30(火) 20:27:49 ID:???
>>221 うん。
>>222 ...location.replace('/test.html');

225 名前:Name_Not_Found 投稿日:2007/01/30(火) 20:53:24 ID:???
>>223-224
確か、Firefox1.0ではそれでもダメ
どうするのかは俺も興味がある

226 名前:Name_Not_Found 投稿日:2007/01/30(火) 20:57:48 ID:???
>>225
うーん。じゃ<iframe src="about:blank" ...></iframe>を
divのinnerHTMLに入れることでiframeを生成し、それから
location.replace()で取り換える、なんていうのはどうかね。

227 名前:Name_Not_Found 投稿日:2007/01/30(火) 23:54:28 ID:???
IE6のVMLについての質問をさせてください。
下記コードでアニメーションGIFを先に表示すると通常GIFに切り替えてもCPUを使い続けます。
逆に通常GIFを先に表示するとアニメーションしなくなります。
どうやればうまく切り替えることが出来るのでしょうか?


<html xmlns:v="urn:schemas-microsoft-com:vml">
<head> <style> v\:* {behavior:url(#default#VML);} </style> </head>
<body>
<v:image id="vImage" style="width:100; height:100;" src="" />
<button onclick="vImage.src='anime.gif'"> アニメGIF </button>
<button onclick="vImage.src='normal.gif'"> 標準GIF </button>
</body>
</html>


228 名前:Name_Not_Found 投稿日:2007/01/31(水) 01:17:36 ID:???
IE独自のelementFromPointに相当するクロスブラウザ版メソッドはありますか?

229 名前:Name_Not_Found 投稿日:2007/01/31(水) 02:47:32 ID:???
>>69は結局不可能なのでしょうか?

230 名前:Name_Not_Found 投稿日:2007/01/31(水) 04:08:55 ID:???
>>229
Script.aculo.usがやっとるよ。
scriptaculous.jsみてみ

231 名前:Name_Not_Found 投稿日:2007/01/31(水) 08:22:34 ID:???
>>228
elementFromPoint getBoxObjectFor initMouseEvent

232 名前:Name_Not_Found 投稿日:2007/01/31(水) 08:34:16 ID:???
>>227
そのままコピペしたが、問題なかった。

233 名前:Name_Not_Found 投稿日:2007/01/31(水) 15:19:49 ID:pvMf4XCK
縦横200pxの四角の中にそれよりも大きい画像を表示し、
ドラッグで画像をスクロールできる仕組みをjavascriptで作りたいです。
GoogleMapsのように複数の画像を繋いでいく必要はありません。

divで四角を作って、そこへ画像を設定し、ゴニョゴニョゴニョ…
なのかなーとは思うのですが、分かりません。
どなたかアドバイスをください。

234 名前:Name_Not_Found 投稿日:2007/01/31(水) 15:22:04 ID:???
>>233
それのどの辺をjavascriptで作りたいのかわかんないんだけど、
その程度ならiframeでよくね?

235 名前:233 投稿日:2007/01/31(水) 15:36:23 ID:pvMf4XCK
スクロールバーじゃなくて、
ドラッグで自由にスクロールできる
という点さえ実現できてれば
iframeでもなんでも構いません。

236 名前:Name_Not_Found 投稿日:2007/01/31(水) 15:49:11 ID:???
>>233
こういう風に別にスクロールコントロールがある方が使いやすくないかな。
http://user.ftth100.com/mirrorhenkan/javascript/read.php?key=1005979370&st=678&to=678

237 名前:Name_Not_Found 投稿日:2007/01/31(水) 16:18:09 ID:???
>>236
俺はそれ、使いにくいと思う

>>233
divのoverflow="auto"は知っているよね?
div (overflow="auto"かつposition="relative")の中にposition="absolute"の画像を放り込み
top left をマイナスなどに設定してやることによって実装は可能。
マウスの移動距離を、onmousedown onmousemove onmouseupで取れば移動距離もわかるでしょう。

238 名前:Name_Not_Found 投稿日:2007/01/31(水) 16:21:31 ID:???
>>237
スタイルシートのclipを使って部分をみせて、あとは絶対位置を
マスウドラッグで動かすほうが簡単のような・・・

239 名前:Name_Not_Found 投稿日:2007/01/31(水) 19:35:29 ID:???
背景画像にして、CSS の background-position プロパティの値を操作するのが最も軽快だろうな。

240 名前:Name_Not_Found 投稿日:2007/01/31(水) 20:25:09 ID:???
SP2入れててIEでJavaScriptを入れてるサイトを見ると、

「セキュリティ保護のため、コンピュータにアクセスできるアクティブ コンテンツは表示されないよう、
Internet Explorer で制限されています。オプションを表示するには、ここをクリックしてください...」

という情報バーが出るサイトと出ないサイトがあるんですが、どうやったら(ユーザーの設定にかかわらず)
この情報バーを出ないように出来るんですか?

241 名前:227 投稿日:2007/01/31(水) 20:30:09 ID:???
>>232 ありがとうございます。
環境によって違うのかな〜と思っていろいろ試してみたんですけど
うちでも小さい画像ならうまく切り替えられるみたいです。

もしよかったら normai.gif の方をサイズの大きい画像にして試してみてもらませんか?
うちの場合CPU使用率が40%ぐらいまで上がってしまうんですが・・・

ちなみにうちは IE6SP2 XPHomeSP2 Pentium3-845MHz です。

242 名前:Name_Not_Found 投稿日:2007/01/31(水) 22:46:14 ID:p+EYThW4
質問です。
document.referrerから検索キーワードを取得しようと思っています。
googleはUTF-8なのでdecodeURIで取得できたのですが、
yahooはEUC-JPのためdecodeURIで取得できません。
javascriptのみでEUC-JPをdecodeする方法ってありますか?

243 名前:Name_Not_Found 投稿日:2007/01/31(水) 23:02:39 ID:???
>>240
不可。ユーザに設定変更を促す表示をする。

244 名前:Name_Not_Found 投稿日:2007/01/31(水) 23:03:13 ID:???
>>242
「JavaScript EUC-JP デコード」でググったら一発で見つかった。

245 名前:Name_Not_Found 投稿日:2007/01/31(水) 23:07:12 ID:???
あ、そのライブラリ好き

246 名前:Name_Not_Found 投稿日:2007/01/31(水) 23:54:10 ID:???
var tag =
'<a href="#"
onClick="window.open(' + "'" + "xxxx.jpg" + "', 'images'); return false;" + '">' +
<img src="xxxx_small.jpg" + '</a>';

opener.Dialog._return(tag);
window.close();

ブログの投稿において、
子ダイアログで画像を選び、
ポップアップリンク付画像のタグを親ウィンドウのテキストエリアに埋め込む
javascriptコードなのですが、
親ウィンドウへの戻りが、
linuxだと、<a href="#" .... であるのに対し、
Windowsだと、<a href="http://yyyy.co.jp/zzzz.cgi#" .... と、
なぜかシャープの前に今見ている投稿画面のパスが埋め込まれてしまいます。

これはjavascriptの仕様なのでしょうか?

247 名前:Name_Not_Found 投稿日:2007/01/31(水) 23:55:44 ID:???
IEの仕様

248 名前:229 投稿日:2007/02/01(木) 00:04:55 ID:???
>>230
まさに期待通りのことが書いてました。
ありがとうございました。

249 名前:Name_Not_Found 投稿日:2007/02/01(木) 00:41:05 ID:???
>>231
サンクス。ググったらそれらしいもんでてきた。

250 名前:Name_Not_Found 投稿日:2007/02/01(木) 01:07:46 ID:ckOXaTgX
情報サイト(ITMediaなど)にいくと、パラグラフ表示をよく見かけます。
このパラグラフ表示は何らかの形で自動再生していると思うのですが、
具体的にはどのような手法を使っているのでしょうか。JavaScriptで
可能ですか?よろしくです。

251 名前:Name_Not_Found 投稿日:2007/02/01(木) 01:20:57 ID:???
パラグラフ表示ってなんだ?[続き]をクリックしたら先が読めるような奴か?

252 名前:Name_Not_Found 投稿日:2007/02/01(木) 01:30:00 ID:???
パラグラフ表示ってなにさ
スレ違いの予感がするけれども

253 名前:Name_Not_Found 投稿日:2007/02/01(木) 01:31:53 ID:???
段落ごとの字下げの事か、はたまた段組のことか、いずれにしてもスレ違い。

254 名前:Name_Not_Found 投稿日:2007/02/01(木) 03:30:01 ID:???
すみません、質問です。

var xx = { aaa: "abc", bbb: "def" };

と定義して、xxの中のbbbの値だけを関数に入れたいのですが、
GMarker(point, icon);
のiconのところにbbbの値”def”を入れるにはどのように表記すればよいのでしょうか?
GMarker(point, xx.bbb );
ではうまく動きませんでした。

ご存知の方がいらっしゃいましたら教えてくださいm(_ _)m


255 名前:Name_Not_Found 投稿日:2007/02/01(木) 03:48:09 ID:???
まずはGMarker(point, "def")で動くのかどうか
次はGMarker()の呼び出しのあとにvar xx = {}を書いていないか
とりあえず試してみるxx['bbb']

ソースもしくはGMarker()とやらの中身がわからんことにはどうとも言えないよ

256 名前:Name_Not_Found 投稿日:2007/02/01(木) 03:58:36 ID:???
質問への回答になってないだろ。

>>254
表記はxx.bbbで正しい。よって動かない理由は他にある。

257 名前:255 投稿日:2007/02/01(木) 04:03:57 ID:???
>>256
すいません

258 名前:Name_Not_Found 投稿日:2007/02/01(木) 08:36:49 ID:???
document.execCommand('SaveAs')
↑↑これって何をするJavaScriptですか?

259 名前:Name_Not_Found 投稿日:2007/02/01(木) 08:57:03 ID:???
>>258
やってみなくちゃ解らない。
<input type="button" onclick="while(1)document.execCommand('SaveAs')">

260 名前:Name_Not_Found 投稿日:2007/02/01(木) 09:02:27 ID:???
>>259
保存するダイアログが出ました。サンクス

261 名前:Name_Not_Found 投稿日:2007/02/01(木) 09:39:05 ID:7TGmmUWu
iframeタグが現在表示しているHTMLファイルのURIを取得するにはどうすればいいですか?
src属性は、最初に読み込むURIなので、リンクがクリックされた場合に対応できません。

262 名前:Name_Not_Found 投稿日:2007/02/01(木) 10:33:38 ID:???
>>261
過去50レスも読まないのか。

263 名前:254 投稿日:2007/02/01(木) 10:52:41 ID:???
>>255,256
レスありがとうございます。
"def"を直接代入した場合は思うとおりの動きをしてくれますので、
この書き方が正しいのであれば、256氏のおっしゃるとおり、
他になにか間違っているところがあるんだと思います。
GMaker()はGoogleMapsAPIの関数のようなんですが、
とあるソフトを使用して吐き出したソースをいじってるので、
いまいち動作がわかっていない部分がありますので、
その辺で何かだめなところがあるのかもしれません。
もうちょっとソースを見て考えてみます。
ご回答ありがとうございました。

264 名前:Name_Not_Found 投稿日:2007/02/01(木) 11:19:32 ID:7TGmmUWu
iframe内が更新されるたびにイベントを受け取るのは
onchangeでよいのでしょうか?

265 名前:Name_Not_Found 投稿日:2007/02/01(木) 12:42:44 ID:7TGmmUWu
iframe の contentDocument.location.href の設定は出来ますが、
取得ができません。仕様でしょうか?

以下はFirebugでのログです。
「Permission denied to get property HTMLDocument.location」

266 名前:Name_Not_Found 投稿日:2007/02/01(木) 13:01:42 ID:???
>>265
同一鯖なら取れるがそうでなければ取れない。

267 名前:265 投稿日:2007/02/01(木) 13:03:47 ID:7TGmmUWu
んー、別サーバなんです。。
別の方法を考えないといけません。
iframeじゃなくてframeでも一緒かな。。

268 名前:Name_Not_Found 投稿日:2007/02/01(木) 13:10:18 ID:???
>>263
グーグルに使用説明ページがあるだろ。
ちょっと読んでみたが、引数に文字列なんか渡してなかったぞ。

269 名前:Name_Not_Found 投稿日:2007/02/01(木) 13:17:37 ID:???
>>267
一緒。別の方法なんて基本的にない。

270 名前:265 投稿日:2007/02/01(木) 14:07:30 ID:7TGmmUWu
proxy的なCGI用意すればできるけど
大人気ないなぁ。。

271 名前:Name_Not_Found 投稿日:2007/02/01(木) 16:35:02 ID:???
PHPで言う所の $_SERVER['REQUEST_METHOD']のように
ページにアクセスする際に使用されたリクエストのメソッドを
取得する方法はあるのでしょうか?

272 名前:Name_Not_Found 投稿日:2007/02/01(木) 19:39:55 ID:yfO4t4mb
プルダウンメニューの選択の可否を ラジオボタンで制御したいと考えています
(「半そで」「長袖」のプルダウンが選べるのは「Tシャツ」のラジオボタンに
チェックを入れたときだけに限る と言った感じで)

色々調べてやってみたのですがうまくいきません ご助言をいただけたら幸いです

HTML部分
<form action="check.php" method="post" name="form_0">
身長<input type="text" name="length" size="8" value="170" />cm(センチでご記入下さい)<br />
<br />
服の種類と、タイプをお選び下さい<br />
<input type="radio" name="form_radio" value="1" checked="checked" />Tシャツ  
<select name="select1" >
<option value="short" selected="selected">半そで</option>
<option value="long">長袖</option>
</select><br />
<input type="radio" name="form_radio" value="2" />ズボン  
<select name="select2">
<option value="jeans" selected="selected">ジーパン</option>
<option value="chino">チノパン</option>
</select>
<br />
<input type="submit" value="調べる" />
</form>

273 名前:272 投稿日:2007/02/01(木) 19:40:33 ID:???
javascript部分
if(window.document.form_0.form_radio[0].checked == "true"){
window.document.form_0.select1.disabled = "";
window.document.form_0.select2.disabled = "true";
}
if(window.document.form_0.form_radio[1].checked == "true"){
window.document.form_0.select1.disabled = "true";
window.document.form_0.select2.disabled = "";
}

宜しくお願いいたします

274 名前:Name_Not_Found 投稿日:2007/02/01(木) 19:53:15 ID:???
function disableSelect(){
if(document.forms["form_0"].elements["form_radio"][0].checked == true){
document.forms["form_0"].elements["select1"].disabled = false;
document.forms["form_0"].elements["select2"].disabled = true;
}
if(document.forms["form_0"].elements["form_radio"][1].checked == true){
document.forms["form_0"].elements["select1"].disabled = true;
document.forms["form_0"].elements["select2"].disabled = false;
}
}

ページを読んだときとラジオボタンをクリックしたときに呼ぶ

275 名前:Name_Not_Found 投稿日:2007/02/01(木) 19:53:26 ID:???
脊髄反射レス
"true"って文字列で囲う意味がわからん

276 名前:Name_Not_Found 投稿日:2007/02/01(木) 20:06:37 ID:???
element.setAttribute("onclick", new Function("clickHandler(event);"));
この式で呼び出す関数に、変数の引数?をつける方法は無いんですか?

element.setAttribute("onclick", new Function("clickHandler(var1,var2);"));
上記のように出来ないかと言う事です。

277 名前:276 投稿日:2007/02/01(木) 20:40:38 ID:???
すいません。
引用符の位置が間違えてただけでしたorz

278 名前:276 投稿日:2007/02/01(木) 20:49:23 ID:???
あ、やっぱ動いて無いわ。
titleのツールチップで見たら変数が代入されているみたいだが、onclickにしても起動しないっぽい。

279 名前:Name_Not_Found 投稿日:2007/02/01(木) 21:03:50 ID:???
>>278
わかってやってるのかと思ったけど
イベント関連は setAttribute ではつけられないブラウザもあるよ

280 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:22:55 ID:???
リンクをクッリクすると、リンク先がすぐ表示されるのでなく、ボワッと
浮かびあがるように表示させることはJavaScriptで可能でしょうか?
 曖昧な表現ですいません



281 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:28:20 ID:???
やろうと思えばできる
でもあまり歓迎されないのではないかと

IE 専でよければトランジション

282 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:41:17 ID:???
>>281 すばやい回答 さんくすです

283 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:41:17 ID:???
>>279
setAttribute以外で出来ないのでしょうか?

obj.onclick = func;
こう言う方法だと引数は取れないですよね?

284 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:43:43 ID:???
訂正
>>281 すばやい返答 さんくすです

285 名前:Name_Not_Found 投稿日:2007/02/01(木) 22:45:41 ID:???
obj.onclick = "func()";

286 名前:Name_Not_Found 投稿日:2007/02/01(木) 23:18:37 ID:???
>>285
それで動きます?
文字列と判断されてるみたいで動かないんですがorz

287 名前:Name_Not_Found 投稿日:2007/02/01(木) 23:27:05 ID:???
obj.onclick = function(){return func();};

288 名前:Name_Not_Found 投稿日:2007/02/01(木) 23:33:58 ID:???
最近非常に低レベルなくせに回答したがるアホがいて困るね。
1回ミスったら100レスは質問に回答するの控えるように。

289 名前:Name_Not_Found 投稿日:2007/02/02(金) 00:03:22 ID:???
//IE
obj.attachEvent("onclick", function(){});

//その他
obj.addEventListener("click", function(){}, false);

290 名前:Name_Not_Found 投稿日:2007/02/02(金) 00:04:43 ID:???
>>289


291 名前:Name_Not_Found 投稿日:2007/02/02(金) 09:16:26 ID:???
文法の質問なんですが、オブジェクト変数からオブジェクトのIDを文字列として
取得したい場合、どうすればよいでしょうか?

参考書やWebを調べたところ、下記のようにすれば取得できるらしいのですが、
やってみたら何も取得できませんでした。

//呼び出し元では引数としてthisなどを渡す。
func(obj) {
var objId = obj.id
}

292 名前:Name_Not_Found 投稿日:2007/02/02(金) 09:23:11 ID:+NIFvoDP
sortの検索条件に二次条件を付け加えるにはどうしたらいいのでしょうか?

既存のsortプログラムにつけ加えるだけで実行可能なものがあればありがたいのですが
既存のものを解読し改良しようとしたのですがうまく行きませんでした


293 名前:Name_Not_Found 投稿日:2007/02/02(金) 10:25:18 ID:???
>>292
比較のための関数本体の中の一次条件の分岐で == のブロックがあるだろう。
そのブロック内で二次条件を付け加えればよいだけ。

歴史的に、Array#sort() は、Perl のそれを模倣して作られた。
だから、Array#sort() の応用的利用なら、
書籍「Effective Perl」を一読するだけで、スキルアップできると思う。

>>291
id という名前のプロパティがあって、かつ、値が入っていれば、取得できるだろう。
というか、取得できなければ、id という名前のプロパティは (?:無い|JSからは見えない) 、
または、値が入っていない、というわけだ。
id という名前のプロパティがあるオブジェクトの一例は、HTMLの要素オブジェクト。
HTMLのID属性として値が明示されていれば、取得できる。
言うまでも無く、JSで、id という名前のプロパティの値を事前に割り当てていれば、取得できる。
ただし、id という名前のプロパティは必ずしも書き込み可であるわけではないから、注意。

IEなら、HTMLの要素オブジェクトに、uniqueID という名前のプロパティもあり、
自動的に値が入っている。

これは余談だが、過去において、NN4のLayerオブジェクトも、
idという名前のプロパティに自動的に値が入っていたし、
これの値をHTMLの属性値として明示した時に限り、
その明示した値がidプロパティ値になった(つまり、後から変更不可だった)。
IEのuniqueIDが書き込み不可であるのと似ている(IEは書き込もうとすると黄色三角が出る)。

294 名前:272 投稿日:2007/02/02(金) 11:09:21 ID:???
返事が遅くなってすいませんでした
>>274
ありがとうございました! できました!
関数にしてbodyタグとラジオボタンのタグの両方に挿入しないといけないんですね
ドキュメントの指定方法も勉強になりました ありがとうございます

>>275
だめもとで""でくくってみてたのを 直してませんでした アホですいません


295 名前:Name_Not_Found 投稿日:2007/02/02(金) 12:17:39 ID:???
>>291 GeckoでもIEでも動くようだが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() { func(document.body.firstChild); }
function func(obj) { var objid = obj.id; alert(objid); }
</script>
</head><body onload="test()"><p id="xx">Test</p></body></html>
>>292 こういうのかね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var a = [{x:1, y:0}, {x:2, y:0}, {x:1, y:2}, {x:3, y:0}, {x:1, y:3}];
a.sort(function(u,v){if(u.x==v.x) return u.y - v.y; else return u.x - v.x;});
for(var i = 0; i < a.length; ++i) document.write(a[i].x+':'+a[i].y+'<br>');
</script>
</body></html>
>>293 回答は簡潔かつ要領を得るように頼むわ。読む時間が無駄すぎ。

296 名前:Name_Not_Found 投稿日:2007/02/02(金) 14:25:53 ID:???
setattributeでのイベントハンドラ付加が上手くいかないので(主要な対処法は上手く行かないです)、
一度title属性を付けて、後からonclickに置換したいんですが上手くいきません。
obj[i].innerHTML.replace("title","onclick");
記述が間違っているのでしょうか?

297 名前:Name_Not_Found 投稿日:2007/02/02(金) 14:46:04 ID:???
>>296
対処方法はいくらでも説明されてると思うがそれを読んでできないのなら
あんたの技量不足だからあきらめた方がいいと思うね。
obj[i].innerHTML = obj[i].innerHTML.replace('title','onclick');
じゃないの。アホか。しかし力技で恐ろしげな設計だねえ。
あとinnerHTMLなんだからobj[i]自体のハンドラには影響しないけど
それでいいわけね?

298 名前:Name_Not_Found 投稿日:2007/02/02(金) 15:02:34 ID:???
>>297
あなた場違いなので出ていったほうがいいわよ

299 名前:Name_Not_Found 投稿日:2007/02/02(金) 15:19:54 ID:???
>>297
ありがとうございます。
一応出来たんだがあまり気持ち良いものでは無いorz

下の式みたいに出来ないのでしょうか?
for (var i=0; i<obj.length; i++) {
var number = i+1;
obj[i].setAttribute('onclick',new Function("alert(number)"));
}
これはIEでの、あるリストに張られたリンクにonclickハンドラを付けて、
順番に1からアラートを出そうとした式の一部なんですが、
どうしてもnumberが認識されません(宣言されて無いと出る)。
解決策は無いでしょうか


300 名前:Name_Not_Found 投稿日:2007/02/02(金) 16:01:02 ID:???
>>299
だからsetAttribute()ではできないってば。過去ログ探せば沢山ある。
http://user.ftth100.com/mirrorhenkan/javascript/read.php/1103844975/
の424〜437とか読んでみれば。まったく同じことやってるだろ。そこで
どういうことが問題になってるかよく読んで理解してくれ。
今回サービスで探してやったけどこれからは自分で探せ。
>>298
ふーん、洩れは罵倒はするがちゃんと教えるようにもしてるよ。
アンタみたいなメタ議論だけのとどっちがスレのためなんだね?

301 名前:Name_Not_Found 投稿日:2007/02/02(金) 16:12:32 ID:???
>>300
ちょっと訂正、setAttribute()でうまくハンドラ設定できないブラウザ
もあるという話だっけ?ともかくそのnew Function()はやめた方が。
または「new Funciton("alert(" + number + ")")」これはあまり
好きじゃない方法だけどねー(読みにくいし拡張性に欠けるから)。

302 名前:Name_Not_Found 投稿日:2007/02/02(金) 16:29:16 ID:???
>>300
ようやく出来ました。
感謝します(^^)

303 名前:Name_Not_Found 投稿日:2007/02/02(金) 17:23:04 ID:???
IEに関しては、2005年夏以前のクロージャ絡みのリークコードは黒歴史として葬った方が良いだろう。
この問題が発生する場合、過去ログ検索は負の遺産を再生産し続けるだけだ。

むしろ、>>301みたいなコーディングが安全だから。

304 名前:Name_Not_Found 投稿日:2007/02/02(金) 17:33:52 ID:???
>>303
おい半可通、だから洩れは>>300のようにリークのない版を
調べて提示してるんだが。

305 名前:Name_Not_Found 投稿日:2007/02/02(金) 17:36:00 ID:???
これからIE7になるんだからリーク問題は減ってくでしょ。
ブラウザのバグのために読みづらいコード書いて別のバグ出す
んじゃ非生産的だと思うな。

306 名前:Name_Not_Found 投稿日:2007/02/02(金) 17:51:35 ID:???
>>304
違うなあ。>>299のエラーメッセージを見てみろ。
関数の中に書いているわな。
つまり、何を提示しようとも、その関数の中にコピペするわけだ。

とにかく、クロージャを質問するような人間に見せるな。使うな。使いたければ、そういう言語を選べ。

つうか、何回指摘してやっても、リークを理解できなかったおまえが能書きたれるなよwww

307 名前:Name_Not_Found 投稿日:2007/02/02(金) 18:03:57 ID:???
>>305
読みづらいか?読みづらいとしたら、その人はJS歴3日とかだろ。

あと、もし、「これからの環境を考慮して」と言うなら、
document.attachEvent('onclick', function (e) {
  var as = document.links;
  var i = 0;
  var c = as.length;
  var t = e.srcElement;
  for (; i < c; i++) {
    if (as[i].contains(t)) {
      e.returnValue = false;
      alert(i + 1);
    }
  }
});
これが一番堅牢だ。そして、リンクが1000や2000あっても、IE7が動くPCなら、一瞬で走査する。
堅牢とは、現在、innerHTMLが完全にスタンダード化していて、
document.body.innerHTML = document.body.innerHTML.replace(....)
みたいなコードが星の数ほどある。こういう書き換えに対して、
...onclick = 関数 は、手も足も出ないというか、消されてしまう。
IE の ...setAttribute('onclick', 関数) は、setAttribute じゃなくて、これと同じ、消される。

308 名前:Name_Not_Found 投稿日:2007/02/02(金) 18:11:42 ID:???
毎回ループして調べるって抵抗あるなあ。alertが1個なら
別にあれでもいいんだけどもっと込み入ったことを、たとえば
10行くらいの内容を、new Function()の文字列で渡すのは御免だな。
いや、アンタが好きならそりゃ別にご自由にだけどさ。

309 名前:Name_Not_Found 投稿日:2007/02/02(金) 18:17:35 ID:???
いまだにSafari1.3にも対応している俺としてはどうでもいい議論だ

310 名前:Name_Not_Found 投稿日:2007/02/02(金) 19:11:27 ID:???
>>307
IEのsetAttributeは『element[name] = value のシンタックスシュガー』
だから別にinnerHTML書き換えても消されたりしないよ
(むしろちゃんとした実装の方が書き換えで消されると思う)

無駄に補足しとくとIEでsetAttributeでイベント属性名とnew Functionつっこんで動くのもそのせい
DOMの仕様ではsetAttributeの第二引数はDOMString型だから、ちゃんとした実装なら
例えばdocument.body.setAttribute("onclick", new Function("alert(1)"))ってした場合
Function#toStringで文字列に変換するのでbody要素のonclick属性値は"function(){alert(1);}"かそれに近いものになる
だから(関数実行するコードじゃないから)動かないんだよ

311 名前:Name_Not_Found 投稿日:2007/02/03(土) 00:20:03 ID:???
>>293>>295
解決しました。
ご指摘どおりで、呼出元でのオブジェクト取得が失敗してました。
わざわざありがとうございました。

312 名前:Name_Not_Found 投稿日:2007/02/03(土) 01:04:37 ID:???
変数名を文字列として取り出せないのでしょうか。
var foo1 = "abc";
var foo2 = 123;

foo1から"foo1"を得たいです。




313 名前:Name_Not_Found 投稿日:2007/02/03(土) 09:26:51 ID:???
>>312
foo1を実行した時点で値が取り出されて「"abc"」
になってしまう。「"abc"」が入っている変数がいくつも
あるかも知れないがそれを承知でやるなら
for(var name in window) { if(window[name] == foo1) alert(name); }

314 名前:Name_Not_Found 投稿日:2007/02/03(土) 11:01:24 ID:???
>>312
var obj = { "foo1": "abc", "foo2": 123 };
という方針の設計にすることをオススメする。

315 名前:Name_Not_Found 投稿日:2007/02/03(土) 13:07:14 ID:???
板違い気味ですみません。

Sleipnir最新版にアップデートしたら、ローカルのHTMLファイル(自作js入り)をダブルクリック時に、
ブラウザ上部に
「セキュリティ保護のため、コンピュータにアクセスできるアクティブコンテンツは〜」
メッセージが出るようになってしまいました。

ただし、yahooのページ(ローカルに保存したもの、js入り)を開いた場合はメッセージがでません。

jsを書くのが面倒になるので何とかしたいのですが、
原因と解決方法ご存知の方いませんか?

316 名前:Name_Not_Found 投稿日:2007/02/03(土) 15:36:47 ID:???
>>315
ActiveX使ってるのでは?
JavaScriptというか、JScriptね
IE(およびIEコンポネートを使っている)
ブラウザ以外で動かなければ間違いなくJScript

もしそうならセキュリティーの設定を変更するしかない

317 名前:Name_Not_Found 投稿日:2007/02/03(土) 15:46:30 ID:???
>>315
Sleipnir は知らんけど IE ならファイルの先頭に
<!-- saved from url=(0014)about:internet -->
って書けばセキュリティゾーンが変わる。

yahooの保存したファイルも見てみ。

318 名前:Name_Not_Found 投稿日:2007/02/03(土) 17:08:26 ID:???
ありがとうございます。

>>316
自作ファイルには、
<script language="javascript"></script>
とだけ入れています。
やはりSleipnirアップデートによってセキュリティ設定が厳しくなったみたいですね。

>>317
コメントを入れるか、Web上に置いてhttpアクセスすると、メッセージは出ませんでした。
ただ筋として、まずセキュリティ設定を下げる方向でやってみます。

319 名前:Name_Not_Found 投稿日:2007/02/03(土) 22:15:01 ID:???
お世話になります。
<a href="#" onClick="">
このようにして javascript の挙動を描いていますが、リンクをクリックした際に
ページの先頭に移動してしまいます。
これを防ぐ手だては無いでしょうか?ぐぐるにも、キーワードが絞り込めずに参っています。



320 名前:Name_Not_Found 投稿日:2007/02/03(土) 22:21:07 ID:???
>>319
まずFAQ嫁
>>3

321 名前:Name_Not_Found 投稿日:2007/02/03(土) 22:33:36 ID:???
>>319
FAQが熟読できない奴は帰れ!

322 名前:Name_Not_Found 投稿日:2007/02/03(土) 22:38:05 ID:???
>>320-321
Q7が該当してました。本当に申し訳ないです。
これからは、ぐぐる前にFAQ熟読します。


323 名前:Name_Not_Found 投稿日:2007/02/03(土) 23:53:57 ID:???
>>313
>>314

言語仕様的には無理って事ですね。
サンクスです。

今は
trace("foo1");
にして中でevalとか苦しいことをやっているので
 trace(foo1);
にできたらいいと思ってたんですが。

324 名前:Name_Not_Found 投稿日:2007/02/04(日) 00:26:12 ID:???
自分が使っているフォントだと、…(三点リーダ)が...こんな風に表示されてしまいます。
そこでJavaScriptで…の部分だけフォントを変えたいのですが、その方法がよく分かりません。
何か良い方法はあるでしょうか。と言うか、これをJavaScriptでやるのは間違っているでしょうか?

325 名前:Name_Not_Found 投稿日:2007/02/04(日) 00:42:43 ID:???
>>324
CSSで「.x { font-family: ... }」とか指定しておき、
bodyのonloadハンドラで次の動作を実行させるとかかな。試してないけど。
document.body.innerHTML = document.body.innerHTML.replace(/…/g, '<span class=x>…<\/span>');

326 名前:Name_Not_Found 投稿日:2007/02/04(日) 00:44:49 ID:e5fg+rg3
3点リーダだけspanでくくってstyleでフォントを指定してやればいいだけなんじゃないの?

327 名前:326 投稿日:2007/02/04(日) 00:45:19 ID:???
上げちまった
失礼

328 名前:Name_Not_Found 投稿日:2007/02/04(日) 01:06:20 ID:???
>>326
うーん、結構多様するから出来ればそれは避けたいんです。

329 名前:Name_Not_Found 投稿日:2007/02/04(日) 11:07:43 ID:???
>>328
一文字なので(正確には、複数のNodeにまたがっていないので)、簡単だろ。
innerHTMLを置換する(つまり必要以上にNodeを破棄して新規に構築する)
のを嫌っているのだろうとも思えるのだが、なんにせよ、
自分なりに何か考えた途中結果を出すべきじゃないかな。

330 名前:Name_Not_Found 投稿日:2007/02/04(日) 14:21:24 ID:???
>>328
いや、単に >>325 が理解できないので無視してるとかじゃないの?

331 名前:Name_Not_Found 投稿日:2007/02/04(日) 16:20:20 ID:???
タイムゾーンを日本時間にしてあるPC上のブラウザでサマータイムのある国の
時刻を表示するには、サマータイムの期間を調べて、サマータイム期間中は
Dateオブジェクトに1時間足すようなコードを自力で書いてやらないとだめですよね?

332 名前:Name_Not_Found 投稿日:2007/02/04(日) 17:26:40 ID:bpHINXiw
連番の画像をロード時に読み込むときに、指定のサイズに縮小したいのですがうまくいきません
仕方なく表示のときにサイズを変えてみたところ画像だけ縮小されて、テーブルが実サイズにリサイズされてしまいました
ロード時にサイズを変更できればうまく行くと思うのですが何か方法はありませんか?

function setting(name, file){
  for(i=1; i<=animeMAX ; i++){
    prImg[i] = new Array();
    for(j=1; j<=fileMAX; j++) prImg[i][j] = document.createElement("IMG");
  }
  for(i=1; i<=animeMAX ; i++){
    for(j=1; j<=fileMAX; j++){
      if(j<10){
        url = file + i + "/" + name + "0" + j + ".jpg";
      }else{
        url = file + i + "/" + name + j + ".jpg";
      }
      prImg[i][j].src = url;
    }
  }
}

333 名前:Name_Not_Found 投稿日:2007/02/04(日) 18:58:43 ID:???
>>331
そうですね。

334 名前:Name_Not_Found 投稿日:2007/02/04(日) 19:02:03 ID:???
>>332
サイズが縦横の pixel のことなら、
その setting で height と width を設定すれば良いだけでは?

335 名前:332 投稿日:2007/02/04(日) 19:47:02 ID:bpHINXiw
%指定も大丈夫ですか?
なら何とかなりそうです

336 名前:Name_Not_Found 投稿日:2007/02/04(日) 20:16:33 ID:???
>>335
大丈夫だけど、DOMプロパティ(HTML属性)の場合、
CSSと比較して、定義がかなり曖昧で、実装バグの回避方法に関心がある人はほとんど居ない。
>>332
//関係ないが、明らかに無駄が多い。
//たとえば、"000" から "999" まで出力するとする。
for (var i = 0; i < 1000; i++) {//0から1000までの1001回のチェック。
  if (i < 10) print('00' + i);//0から999までの1000回がこのチェックをされる。
  else if (i < 100) print('0' + i);//10から999までの990回がこのチェックをされる。
  else print(i);
  //計 1001 + 1000 + 990 = 2991 [回] のチェック。
}
//1桁と2桁の数値より3桁の数値が多いので、逆順でチェックする。
for (var i = 0; i < 1000; i++) {//0から1000までの1001回のチェック。
  if (99 < i) print(i);//0から999までの1000回がこのチェックをされる。
  else if (9 < i) print('0' + i);//0から99までの100回がこのチェックをされる。
  else print('00' + i);
  //計 1001 + 1000 + 100 = 2101 [回] のチェック。
}
//無意味なチェックを排除するために、ループを分ける。
for (var i = 0; i < 10; i++) print('00' + i);//0から10までの11回。
for (; i < 100; i++) print('0' + i);//10から100までの91回。
for (; i < 1000; i++) print(i);//100から1000までの901回。
//計 11 + 91 + 901 = 1003 [回] のチェック。
//時間を計ってみる。
function u() {for (var i = 0; i < 1000; i++) {if (i < 10); else if (i < 100); else;}}
function v() {for (var i = 0; i < 1000; i++) {if (99 < i); else if (9 < i); else;}}
function w() {for (var i = 0; i < 10; i++); for (; i < 100; i++); for (; i < 1000; i++);}
function b(f) {var i = 0; var s = new Date; for (; i < 65536; i++) f(); return new Date - s;}
b(u);// 11563
b(v);//  9438
b(w);//  4390

337 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:12:47 ID:???
その分かりにくいコードより元の素直なのがなんぼもマシ。
65536回やっても1秒違わないわけだろ。

338 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:18:48 ID:???
>>337
ループを分けるのが判り難いとほざくのは、プログラミング歴3ヶ月以下の学生だな。

339 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:39:04 ID:???
変なのがいますね

340 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:50:03 ID:???
私なら…
for(j=1; j<=fileMAX; j++){

var numStr = "000"+j ;
url = file + i + "/" + name + numStr.substr(-3,3) + ".jpg";
prImg[i][j].src = url;

}

とか書くかな。

>>336 正直、そのコードは保守性が低くなるだけで、メリットはほとんど無い。

341 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:55:31 ID:???
全然違うね。コードを組んでいくと次第に混み入って来て
最後は人間の頭に載らなくなって組めなくなるだろ。その
限界に近付いた時にその中にある個々のコードの断片が
分かりやすい程全体として先まで行けるんだよ。性能が
どうとかいうのはちゃんと組めて動かせてから問題に
なるもんだろ。そしてCPU時間の90%はコードの10%の
部分で消費されるからそこだけ分かりやすさを落して
でもチューニングする。最初から個々の断片の分かり
やすさを犠牲にするなんてそれこそ素人だね。1つの
ことをやるのなら1つのループにしといた方が絶対に
読みやすいよ。いやまあ、各自組みたいように組めば
いいんだけど洩れはそう考えてるわけさ。

342 名前:Name_Not_Found 投稿日:2007/02/04(日) 21:58:34 ID:???
そもそも0フィルの定石「String(10000+j).substring(1)」
とかを使うのが一番分かりやすいと思うけどな。

343 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:02:48 ID:???
>>341
だから、ループを分ける程度でうろたえるなよ。誰でも、ごく普通に、やることだから。JS界隈が極端に低レベルなだけなんだよ。

>>340
まず、マジレスしておくと、String#substr() は、8年前に削除されそうになったが、
古いコードを処理するために、かろうじて仕様の付録に残されたメソッドだ。
新規のコードで使う物ではない。

function x() {for (var i = 0; i < 1000; i++) ('00' + i).slice(-3);}
//次は、計測用に、その読みやすい(笑)コードに合わせて処理を追加した。
function u() {
  for (var i = 0; i < 1000; i++) {
    if (i < 10) '00' + i; else if (i < 100) '0' + i; else i;
  }
}
function v() {
  for (var i = 0; i < 1000; i++) {
    if (99 < i) i; else if (9 < i) '0' + i; else '00' + i;
  }
}
function w() {
  for (var i = 0; i < 10; i++) '00' + i;
  for (; i < 100; i++) '0' + i;
  for (; i < 1000; i++) i;
}
//ミリ秒の単純引き算をミスるほど、差1秒以内に拘る>>357の為に、8192回にした。
function b(f) {var i = 0; var s = new Date; for (; i < 8192; i++) f(); return new Date - s;}
//結果。
b(u);// 1453
b(v);// 1187
b(w);//  546
b(x);//26593 ぉぃぉぃ、こんな読みやすい(笑)コード書くなよ、プログラミング初心者の>>340

344 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:08:06 ID:???
昔、Z80とかの非力なCPUで、どうしてもチューニングしなきゃならんときに、そう言う手法は使ったが…
さすがに、今、しかもユーザーサイドのスクリプト言語でやろうとは、思わんな。

345 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:28:52 ID:???
性能のために読みにくくするというのが時代錯誤。
ループ1個を2つに分けたら「読めなくなる」わけはない
けど「読みにくい方向への手直し」だから時代錯誤。

346 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:30:12 ID:???
うはキモさが増した

347 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:39:05 ID:???
>>336,343

それ、1ページに何枚画像表示するつもりの計算なの?

348 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:41:43 ID:???
JS が遅れてるって普段どんな高尚な言語使ってんだよ
今時のコンパイラは固定回数のループは勝手に書き換えるしな

少しでもコーディングを楽にしようって
富豪的プログラミングに移りつつある中で
時代錯誤もいいとこだよ

349 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:44:40 ID:???
>>1
・対象環境や使用技術は質問者の裁量であることを理解する者
ってあるだろ。あとは質問者が選べば。言い合いの煽り合いなんて
意味ないもん。主張があれば言えばいいだけで。

350 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:46:27 ID:???
>>348
JavaScriptの処理系がそれをやってないことくらい分かれよ馬鹿。

351 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:46:52 ID:???
少なくとも今の件では、場合分けをループ内で行う理由が無いのだから
ループを切り分けるのは自然な思考だと思うが。
だから>>336の保守性が低いとは思えん。
削れるところで削っておいて損はない。

俺はループのネストが読みやすいとは思わないな。

352 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:50:32 ID:???
>>350
じゃあどんな言語が高レベルなんですか。
インタープリタ言語で何が高レベルなんですか馬鹿。

353 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:52:26 ID:???
webプログラミングだって事、理解してんのかねぇ…

あきらかに、常識外れの想定して、"遅い"だの"効率が悪い"だの言ってるけど、
常識内の想定なら、コード量減らして、通信容量の心配した方が良いんじゃねーの?としか思えんがな…

354 名前:Name_Not_Found 投稿日:2007/02/04(日) 22:54:50 ID:???
>>353
コード量が増えてるか?
俺はわざわざ条件処理の回数を厳密に書いてやったが、文字数も数えてやった方が良いのか?

355 名前:347 投稿日:2007/02/04(日) 22:59:19 ID:???
>>354
いい加減、発想が時代遅れだって理解しろよ。

数レス前にした質問を繰り返すけどさ、おまえさんの想定している画像の表示枚数は、1ページに何枚だ?

356 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:01:58 ID:???
>>354
比べてみれば?

>>340や、>>342が示したコードと、君の"正しい"コードと。

357 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:06:09 ID:???
>>355
>>336
>//関係ないが、明らかに無駄が多い。
>//たとえば、"000" から "999" まで出力するとする。

画像?計時して分かりやすいように別の状況を想定しただけだが、何を言いたいんだ?

まあ、好きにしろ。あまり叩くと、読みやすい教の洗脳が深まるだけだから、やめといてやるよ。

あと、テキストファイルの転送速度がネックになるのは皆無だ。それこそ、時代錯誤だぞ。
ウェブページで最大のネックは、描画速度だ。
結局、好きに書け、>>340みたいな醜態を晒さない程度に、という結論になっても、それはそれで正しい。
が、ループを分ける、ていどでうろたえるなよ、とだけ繰り返しておこう。頭悪すぎるぞ(あ、また叩いて洗脳深めちゃうなw)

358 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:08:28 ID:???
ウェブで最大のボトルネックは
リッチコンテンツの転送速度でしょ

359 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:08:56 ID:???
自分の主張が通らなかったとかいって未練たっぷりだねえ。
ご愁傷様。いちおう2ちゃんらしい煽りでした(w

360 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:09:41 ID:???
ああこういう老害いるいる
こういうひとは「勉強になります大将」とか言ってお茶濁しとけばいいんだよ

361 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:11:45 ID:???
ID出ない板は無駄に疲れる

362 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:12:08 ID:???
>>357
実用上全く問題にならない"無駄"を"正しいスクリプトで改善"する為に、直接、金の絡む、通信容量の心配なんて、大した問題では無い。

こう言う結論ですね。

363 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:12:16 ID:???
>>358
話拡げるなよ負け犬の詭弁野郎が。

364 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:14:05 ID:???
はい煽り合いのレス無駄づかいおしまいね。どうせまた
再発するだろうけど。過去にも何回もやってる論争だしね。
過去にどういう風に終わったか見とくといいんじゃないですかね。

365 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:15:08 ID:???
>>362
さすがに>>340みたいなのは問題になる。同じテストを非力なマシンでやれば数分かかるか、フリーズする。

366 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:18:26 ID:???
fileMaxの値によるんでしょ。それで終わりでいいじゃん。

367 名前:347 投稿日:2007/02/04(日) 23:20:18 ID:???
>>365

だからさぁ…、どういう想定してるわけ?

よーーーく、考えてみなよ。

たとえば、1ページで1000枚のサムネイルを表示するとしよう。
私なら、こう言う、"お前馬鹿だろ?"と。

368 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:21:16 ID:???
だからfileMaxの値によるんでしょ。レスの無駄使いやめようよ。

369 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:21:32 ID:???
>>363
Opera とか使ってみるといいよ。

html を解析して DOM を構成して
DOMContentLoaded でごそごそやった後に
後から画像が差し込まれる。

ミリ秒をちまちま削ったところで
画像一個で相殺される。

370 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:24:43 ID:???
つうか、洗脳が深いな。客観的に見てみろ。
高性能なマシンが普及した。これは事実だ。
しかし、JavaScript も JScript も、後方互換のしがらみで、大きな進化はしてないよ。
JScript はいつまでたってもキャシュすべきところをそうしない。
JavaScriptで変数やプロパティの宣言順序を気にしなくてよくなったのはつい最近だ。
つまり、コード書く人間の助力が大いに必要なんだよ。

あと、読みやすいコードを書いているんじゃなくて、暗記できた短い構文をスラスラ反芻してるだけだろ。
勿論、そういう気楽さを否定するつもりもないし、可能な限り楽をすれば良いと思うが、
それを処理するエンジンがレガシーを引きずっているのだから、机上の空論でしかないんだぞ。

371 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:25:19 ID:???
さあ>>363が顔を真っ赤にして言い返す文句を考えていまつ。
しばらくお待ちくださいなのでつ。

372 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:26:11 ID:???
もうやめようってば…

373 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:26:47 ID:???
>>369
>>357
>ウェブページで最大のネックは、描画速度だ。

374 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:26:50 ID:???
自分の主張だけが客観的だと主張する主観。

375 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:28:42 ID:???
ソフト書きで最大のコスト要因は人間の作業時間だという「常識」が
分かってないだけでしょ。

376 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:29:34 ID:???
自演って気づいてないのが自分だけってのもすごいな

377 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:32:28 ID:???
さてここで質問しよう。2つのプログラムAとBは客の注文を
同じように満たす。Bの方が20%ほど速い。Aの方が通読して
理解するのに20%ほど短い時間で済む。あなたならAとBの
どっちを選びますか。20%の速さか20%の読みやすさか。

378 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:33:49 ID:???
>>377
そういう話じゃないだろ。

379 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:34:05 ID:???
>>377
話そらすな。ループを分けることのどこが読みにくいんだ。関数 w と関数 u, v とに可読性の差は無いだろう。

380 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:35:39 ID:???
1つの作業に1つのループの方が「洩れは」読みやすいと考えているね。

381 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:36:00 ID:???
俺も

382 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:37:38 ID:???
>>380
しかし、上位桁に "0" を詰める時、ループを分けるのはかなり普遍的なパターンだ。
逆に、この問題で、ループを分けてなかったら、今回のように指摘したくなる。

383 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:37:55 ID:???
分かったよ、読みやすさの感覚が他人と違うせいでこういう
論争になってるわけなのね。それでおしまいでいいじゃん。

384 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:40:08 ID:???
いっそループ使わなきゃいいんじゃね

385 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:41:09 ID:???
>>382
そうなの?どの言語で?JSだったらこのスレでは
「String(10000+j).substring(1)」とかが一番多いし短くて
読みやすいとされてるでしょ。ループ周回数がひどく多い
(今回の場合はそれはない)場合以外は無問題。他の言語だったら
sprintf()とか使うよな普通。で、どの言語の話?

386 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:42:37 ID:???
>>382
だから、それが時代錯誤なんだってw

387 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:45:19 ID:???
他人の主張も受け入れて折り合いをつけられるようにならないと
2ちゃんやっててつらいよ…

388 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:46:58 ID:???
>「String(10000+j).substring(1)」とかが一番多いし短くて
>読みやすいとされてるでしょ。

多い、短い、読みやすい、全て事実だが、実行速度があまりに遅すぎる。

389 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:48:22 ID:???
>>388
だからそれを何回実行するかで取捨選択すればいいんでしょ。
10回とか100回でも絶対不可だと主張しやすか?本当に?

390 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:48:42 ID:???
>>388
おまえのコンピューターは、4004でも積んでるのか?

391 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:49:14 ID:???
早くAdobeのJIT技術がSpiderMonkeyに入ればいいと思う。
ttp://internet.watch.impress.co.jp/cda/news/2006/11/08/13860.html
ttp://www.mozilla-japan.org/projects/tamarin/faq.html


392 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:51:05 ID:???
つまりたとえ10回しか実行しなくても遅いと思うだけで
激しく嫌悪感がつのって受け入れられないと。それなら
そういう人間なんだから自分で他の方法を使うのはしかた
ないけど、それを他人に押しつけないでくれ。迷惑だから。

393 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:55:26 ID:???
老害

394 名前:Name_Not_Found 投稿日:2007/02/04(日) 23:59:34 ID:???
計ってみたが 1552:521 でたった3倍しか違わなかった。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var a = new Array(100000);
var t1 = new Date().getTime();
for(var i = 0; i < 100000; ++i) a[i] = String(1000000+i).substring(1);
var t2 = new Date().getTime();
var i = 0;
for( ; i < 10; ++i) a[i] = "0000" + i;
for( ; i < 100; ++i) a[i] = "000" + i;
for( ; i < 1000; ++i) a[i] = "00" + i;
for( ; i < 10000; ++i) a[i] = "0" + i;
for( ; i < 100000; ++i) a[i] = String(i);
var t3 = new Date().getTime();
document.write((t2-t1) + ':' + (t3-t2) + '<br>');
</script>
</body></html>

395 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:00:15 ID:???
まあいいじゃないか、どんな方法でも
そのときそのときによって使い分けるのが
賢いプログラミングというものだ

396 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:03:55 ID:???
>>395 がいいことを言った!

397 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:08:09 ID:???
こんな論争で60レスも浪費しちゃったよ…

398 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:17:45 ID:???
>>394
環境は?

399 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:24:52 ID:???
どんな環境でも比率として3倍

400 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:26:20 ID:???
Mac mini G4-1.42GHz mem1GB
-Firefox2
 2170:1154
-Safari
 26518:9526

Firefoxはたいしたものだ 2倍しか違わん
Safariは糞だな
まあこんだけ回せれば十分だろうが

401 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:30:04 ID:???
>>399
Fx2 1047:547 (やる度に結果が違うが、だいたいこのくらい)
IE6 4219:4813 (IE、遅いっす。と言うか、IE、subStrの方が速いっす。)

402 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:34:45 ID:???
Operaもやってみたっす。
Opera9.02 1360:4156 (やっぱり、subStrの方が速いっす。)

Fx2ループ分割、爆速っす。

403 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:40:07 ID:???
【 結論 】
開発で重要なのは老害の思い込みではなく、
想定環境に応じたテストケースの結果と、高速化の必要性を天秤にかける事

404 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:42:58 ID:???
正直、スクリプト言語で、こんな方法の高速化をしなきゃならない状況になったら、
それは、根本的に設計がおかしいか、言語の選択を間違っているか、どちらかだと思う。

405 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:45:42 ID:???
substr() に対して配列の処理のウェイトが大きいんじゃないか?

>>343 見たらゼロ埋めしたあと何もしてないんだな。
差を大きく見せるためだけの無意味なコードか。

406 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:51:02 ID:???
>>404
根本的に進化してないって言ってるだろ。だから人力が重要だって……。

>>405
アホがおかしなこと言うなよ。いわば定数項を削除して、できるだけ純粋な差を知るためだろ。

407 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:58:52 ID:???
>>405
substr() は仕様本文には無いと少し前にも言ったんだが。
つうか、>>394 にsubstr() は無いだろ。常連どもが使うわけがないから。

408 名前:Name_Not_Found 投稿日:2007/02/05(月) 00:59:26 ID:???
また来たか

409 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:01:24 ID:???
すんまそん、substringですね、何となく打ち間違えて
そのまま動いてしまうので間違いに気がつかないという。

410 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:02:03 ID:???
以後、放置で。

411 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:03:19 ID:???
放置了解一人目
ノシ

412 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:03:44 ID:???
それでループ回数が10回とかでもsubstring()拒否な訳?

413 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:03:54 ID:???
そのうち「>>395を8192回読め」という書き込みが繰り返されそうで怖いな

414 名前:Name_Not_Found 投稿日:2007/02/05(月) 01:07:47 ID:???
>>407
いろいろ試してみたんだが、おまえOperaで計っただろ。

Operaは、sliceが異様に重いぞ。Fx2で計ってみろ。ついでにIEでも。

415 名前:Name_Not_Found 投稿日:2007/02/05(月) 02:05:49 ID:???
onload = function()
{
document.body.innerHTML = document.body.innerHTML.replace(/文字/gi, '<a href="hogehoge.html">文字<\/a>');
}

これが上手く機能しないんですが、どこが駄目なんでしょうか?

416 名前:Name_Not_Found 投稿日:2007/02/05(月) 02:22:04 ID:???
問題なし

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS">
<title>テスト</title>
<script type="text/javascript">
<!--
onload = function()
{
document.body.innerHTML = document.body.innerHTML.replace(/文字/gi, '<a href="hogehoge.html">文字<\/a>');
}
//-->
</script>
</head>
<body>
<p>文字文字君</p>
</body>
</html>

417 名前:Name_Not_Found 投稿日:2007/02/05(月) 03:22:53 ID:???
>>416
htmlとjavascriptのcharsetが合ってないともしかして駄目ですか?
ちなみに文字の部分は記号なんですけど。

418 名前:Name_Not_Found 投稿日:2007/02/05(月) 03:44:07 ID:???
>>417
>htmlとjavascriptのcharsetが合ってないともしかして駄目ですか?
なんだ?
htmlと外部jsファイルで文字コードが違うって事?
ならscriptタグにcharset指定追加しませり

419 名前:Name_Not_Found 投稿日:2007/02/05(月) 05:48:02 ID:???
最近は、Jsonを使いまくってAJAXなんですが…
もうAJAJ(アジャジャ)って呼んでいいですか?

420 名前:Name_Not_Found 投稿日:2007/02/05(月) 10:00:55 ID:???
>>417
まず日本語なしでやって確認すれ。それで動作すればコード問題。
コード問題を回避するには日本語文字を直接入れる代わりに
\uHHHH形式で入れればいい。終了。

421 名前:rinka 投稿日:2007/02/05(月) 11:36:50 ID:b/GFT7m+
初めて、カキコミさせていただきます。

どうしても、javascriptエラーが消えず、途方にくれています。

ロールオーバーをしたいのですが、誰かがつくったソースのイメージを
いれかえただけなのですが、動かなくなってしまいました。

初歩的なミスだと思うのですか、基本的なjavascriptがわからず、
クライアントにせめられ困っています。

どなたか、エラーを直していただけませんでしょうか?

よろしくお願いいたします。

422 名前:rinka 投稿日:2007/02/05(月) 11:38:09 ID:b/GFT7m+
リンクを忘れてました。すいません。。。。
こちらです。

http://www.townhoppers.com/th_test/home_en2.html?cl=2

423 名前:Name_Not_Found 投稿日:2007/02/05(月) 11:38:44 ID:???
おかねはらえばやってくれるひとがいるとおもいます。

424 名前:Name_Not_Found 投稿日:2007/02/05(月) 12:00:44 ID:???
>>421
誰かが作ったソース…

作者に聞けば良いだろう。当然、ライセンス受けているんだろう?

425 名前:Name_Not_Found 投稿日:2007/02/05(月) 12:08:32 ID:???
動いてるじゃん

426 名前:Name_Not_Found 投稿日:2007/02/05(月) 12:24:06 ID:???
普通じゃん

427 名前:Name_Not_Found 投稿日:2007/02/05(月) 13:06:31 ID:???
>>421 allaboutのパクリ?なんにせよこれで金取っているとはw
    PRサイトでAjaxをメインに使うのは御法度だぜw

428 名前:Name_Not_Found 投稿日:2007/02/05(月) 17:02:31 ID:???
こんにちは。
画像をクリックしたらそのクリックした座標をゲットする方法を教えてください。
画像の左上頂点を0,0とした座標です。

event.xでブラウザ全体での座標はゲットでき、
またimgをpositionアブソリュートで指定すれば、その位置との逆算から画像上の位置をゲットすることはできるんですが、
ページの構成上、positionアブソリュートは使いたくありません。

具体的にどんなことがやりたいのかというと、画像上に書かれているグラフの座標を取得してそれにより様々な結果を textarea に表示しようというわけです。

429 名前:Name_Not_Found 投稿日:2007/02/05(月) 17:17:30 ID:???
>>428
img要素のoffsetTopとかoffsetLeftを取得して差し引けば
いいんでないの。

430 名前:Name_Not_Found 投稿日:2007/02/05(月) 18:04:47 ID:???
>>428
<input type="image">

431 名前:Name_Not_Found 投稿日:2007/02/05(月) 18:47:40 ID:???
>>430
送信とかせずに、一つのページ上(JavaScriptおんりー)でもそれが使えるでしょうか?
鯖でないローカルにおいても動作しないとダメなので。

onClickからフォームをsubmit リターンフォールすにして
GET文字列取得できるのかな?

432 名前:Name_Not_Found 投稿日:2007/02/05(月) 18:57:03 ID:???
>>431
429の方法で。scrollXXXXもつかってくれ

433 名前:Name_Not_Found 投稿日:2007/02/05(月) 19:04:03 ID:???
>>429 >>432
なんなんだよこれは!!!!
あのさ、




ほぼ思い通りの動作です。
大変ありがとうございました。
とほほをみていたのでoffsetTopとかが載ってませんでした。

434 名前:Name_Not_Found 投稿日:2007/02/05(月) 19:18:59 ID:???
だからとほほなんか見るなとあれほど(ry

435 名前:Name_Not_Found 投稿日:2007/02/05(月) 19:22:09 ID:???
ごめんなさい。てへっ

436 名前:Name_Not_Found 投稿日:2007/02/06(火) 00:39:20 ID:+Hh0ICTQ
知識をお借りしたいのですが…

--------------------
<script language="JavaScript">document.write("<!--");</script>
あいうえお<br/>
<script language="JavaScript">document.write("-->");</script>
--------------------
とした時に、1行目で文法エラーとなってしまいます。

FireFoxのエラー情報によると、1行目の</script> の / の所を矢印がさしていますが、
例えば、
<script language="JavaScript">document.write("AAA!--");</script>
などとするとエラー自体は起こらなくなるので原因は <!-- だと思うのですが、
ここはどのように記述すればエラーは起こらなくなるでしょうか?

ちなみに、<!-- や < などとした場合、<!-- と表示されてしまい
HTMLがコメントとならないので、駄目なようです。

すみませんがよろしくお願いします。

437 名前:Name_Not_Found 投稿日:2007/02/06(火) 00:50:25 ID:???
すみません、

<!-- や &lt; などとした場合、<!-- と表示されてしまい…

です。


438 名前:Name_Not_Found 投稿日:2007/02/06(火) 00:56:07 ID:???
>>436
普通に考えて無理だろ。

439 名前:Name_Not_Found 投稿日:2007/02/06(火) 01:28:54 ID:???
JavaScript上で<!--は//と等価扱いじゃないかな。
JavaScriptでHTMLコメントを出力してどうしたいのか意味判らんけど、文字分解してinnerHTML追加したら成功したモヨリ

<div id="outputDiv"></div>
<script type="text/javascript">
outputHTML="" ;
<!-- document.getElementById("outputDiv").innerHTML = "<!-- てすと -->" ;//無視される

document.getElementById("outputDiv").innerHTML =
"test<"
+"!"
+"-"
+"- てすと -"
+"->test"
;

出力結果はsafariとfirefoxで共に「testtest」。ちゃんと「てすと」がコメントアウトされてるようだ

440 名前:Name_Not_Found 投稿日:2007/02/06(火) 03:46:35 ID:TIPxpEPB
環境は、WinMe、128M、IE5.5です。

フリーのJavaScriptの使えるエディタはないでしょうか。
Aptanaというのは使ってみたのですが、
起動まで30秒ぐらいかかったり、終了するとエラーが出たり、
自分の環境には合いませんでした。


441 名前:Name_Not_Found 投稿日:2007/02/06(火) 03:49:30 ID:TIPxpEPB
使えるというのは、ソースの色分けができる、
文法チェックができるなどです。

442 名前:Name_Not_Found 投稿日:2007/02/06(火) 04:04:20 ID:???
>>436
\

443 名前:Name_Not_Found 投稿日:2007/02/06(火) 06:14:01 ID:???
×:"<!--"
○:'<!--'

444 名前:Name_Not_Found 投稿日:2007/02/06(火) 12:14:06 ID:/4F8iVui
うまくボタンにイベントを割り振ることができません。
※allBtn.setAttributes = ("onClick", "myFunc()");としても
※allBtn.onClick =  "myFunc()";としてもうまくいきませんでした。

Objectの把握の仕方が甘いためと思いますが,よろしくお願いします。

var allBtn = document.createElement("input");
allBtn.type = "button";
allBtn.id = "myBtn";
※allBtn.setAttributes = ("onClick", "myFunc()");
allBtn.value = "my button"
document.body.appendChild(myBtn);


445 名前:Name_Not_Found 投稿日:2007/02/06(火) 12:18:43 ID:/4F8iVui
(本質的な部分ではないですが)
document.body.appendChild(myBtn)は
document.body.appendChild(allBtn)の書き間違えです

446 名前:Name_Not_Found 投稿日:2007/02/06(火) 12:53:00 ID:???
>>444
過去レス見てみるといくらでも解決策が

それにしても、なんでFunction使ったり文字列使ったりすんのかなぁ

447 名前:Name_Not_Found 投稿日:2007/02/06(火) 13:25:53 ID:???
>>444
過去レスもそうだがまずFAQ読んどけよな。

448 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:09:59 ID:WlZWDyXE
formItem=["あああ","いいい","ううう"]
nameItem=["aaa","bbb","ccc"]
document.myForm.aaa.value=formItem[0];

こうすると<input name="aaa" type="text" value="">に値が入るのですが、

document.myForm.nameItem[0].value=formItem[0];

こうすると入りません。配列にフォームにあるname名を指定して
documentの対象としたいのですが、上のような書き方では無理なのでしょうか?

449 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:12:58 ID:???
>>448
日本語がおかしくて理解できないね。HTML側も提示してみ。

450 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:15:26 ID:???
>>448
> document.myForm.nameItem[0].value=formItem[0];

document.myForm[nameItem[0]].value=formItem[0];

451 名前:448 投稿日:2007/02/06(火) 17:20:33 ID:???
>>450
まさにこれです!うまく行きました。ありがとうございました。

452 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:20:44 ID:???
んー?
あー、nameItem配列1番目の名前に一致したフォーム名を取得したいって事じゃね
だとしたら答えは簡単だ

FAQ9番嫁

453 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:21:42 ID:???
あらぼーっとしてたら答え出てやんの
まあいいや

454 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:23:07 ID:???
ニヤニヤ

455 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:29:26 ID:???
ひとり、恐ろしく読解力の無いのがいるなw

456 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:31:33 ID:???
firefox2で
obj.rows[n].cells[m].style.borderBottom = "1px solid #333333";
としても下線が引けないのですがどなたか助言いただけないでしょうか。

MSIE6は無論、Netscape7.1でも問題ないのですが...orz
# style.color = "#333333" などであればfirefoxでもおkです。

457 名前:Name_Not_Found 投稿日:2007/02/06(火) 17:55:32 ID:???
>>456
Firebug 入ってる?

458 名前:Name_Not_Found 投稿日:2007/02/06(火) 18:07:22 ID:7qxdZ6UF
キャレット位置を取得する方法を教えてください。
以下のサイトを参考にしてみたのですが出来ませんでした。
http://blog.vishalon.net/Post/57.aspx
ソースはこんな具合です。

459 名前:Name_Not_Found 投稿日:2007/02/06(火) 18:09:48 ID:7qxdZ6UF
<HTML><HEAD>
<script type="text/javascript"><!--
function setStyle() {
var divObj = document.getElementById("test2");
divObj.style.backgroundColor = "red";
divObj.style.width = 100;
divObj.style.height = 100;
}
function get(){
//var ctrl = document.getElementById("test");
document.getElementById("test2").innerHTML = doGetCaretPosition(ctrl);
}
function set(pos){
var ctrl = document.getElementById('test');
setCaretPosition(ctrl, pos);
}
function doGetCaretPosition(ctrl){
var CaretPos = 0;
if (document.selection) {// IE Support
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
} else if {// Firefox support
(ctrl.selectionStart || ctrl.selectionStart == '0');
CaretPos = ctrl.selectionStart;
}
return (CaretPos);
}

460 名前:つづき 投稿日:2007/02/06(火) 18:13:38 ID:7qxdZ6UF

function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange){
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
// --></script>
</HEAD><body>
<textarea id="test"></textarea>
<a href="javascript:setStyle()">11111</a>
<div id="test2"></div>
</body></HTML>

461 名前:436 投稿日:2007/02/07(水) 01:26:41 ID:???
遅くなってすみません。

>>439さん
ありがとうございます、参考にしてinnerHTMLを編集する方法で解決しました。
助かりました!

>>442さん、443さん
元のソースでは、そのどちらの方法でも解決しなかったです…。
が、レスありがとうございました。




462 名前:456 投稿日:2007/02/07(水) 09:12:15 ID:???
すいません、どうもCSSとのバッティングみたいです(お恥ずかしいことにノーマークでした)。

>>457
入れてはいるんですがアイコンが怖くてw

463 名前:456 投稿日:2007/02/07(水) 09:35:33 ID:???
どうも border-collapse: collapse; が原因ぽいです。
一応報告。

464 名前:Name_Not_Found 投稿日:2007/02/07(水) 11:11:08 ID:???
>>463
スレ違いだがborderをcollapseしたら確かに危うそう。
tdなりの内側に別のdivを入れてそのdivのborderを設定すれば。

465 名前:Name_Not_Found 投稿日:2007/02/07(水) 12:02:38 ID:???
ニュースサイトに時々ある、
「続きを読む」をクリックすると、
別ページに移行せずに、下に続きの文章が現れるようにしたいです。

折りたたみメニューのスクリプトで表示は無事にされるのですが、
クリックしてすべての文章が表示されたときに、
「続きを読む」が「文章を閉じる」に変わるようにしたいのです。

ブログ用では、以下のスクリプトがあるようですが、
ttp://blog.livedoor.jp/jigokuhen00/archives/4465481.html

これを普通のHTMLサイト用に直すことがどうしてもできません。
どなたかアドバイスいただけないでしょうか。
やりたいのは、以下のようなことです。

最初
--------------
・最初に表示される文章<BR>
続きを読む /  日付・引用元など(最初も最後も同じ文)


「続きを読む」クリックで以下
-----------
・最初に表示される文章
・クリックで表示された文章
文章を閉じる /  日付・引用元など(最初も最後も同じ文)

466 名前:Name_Not_Found 投稿日:2007/02/07(水) 12:21:08 ID:???
>>465
続きのページがどっか違う所にあってそこからひっぱってくるのか、
すでにHTMLソースに書いてあるのかで話が変わってくると思う

と言うか、まずどこまで自分で作ったのかを書いた方が良いよ
やり方一つじゃないと思うし

467 名前:Name_Not_Found 投稿日:2007/02/07(水) 12:34:30 ID:???
div.style.display = (element.style.display != "none")?"none":"block"
とかかな

468 名前:Name_Not_Found 投稿日:2007/02/07(水) 13:15:55 ID:???
>>465
ああ、俺よくやる
みっつの要素の表示/非表示を切り替えていくだけでできるっしょ

A・「続きを読む」
B・表示/非表示を切り替えられる文章(最初非表示)
C・「閉じる」(最初非表示)

それぞれDIVタグに格納されてるとして、
・Aが押されたらAを隠してB,Cを表示
・Cが押されたらCを隠してA,Bを表示

要素.style.display="none"←→"block"あたりで切り替える
サンプルコードは>>467氏が部分例出してるし不要かな

もっといいやりかたあんのかな

469 名前:456 投稿日:2007/02/07(水) 13:59:15 ID:???
>>464
Geckoに対して

border-collapse: separate;
border-spacing: 0px;

としました。
すっかりスレ違いだけどいつか誰かの役に立てれば幸い。

# ってか、これfxのバグだよね...?

470 名前:Name_Not_Found 投稿日:2007/02/07(水) 14:03:32 ID:???
CSSな話だが、border-collapseが「何をcollapse」するのか調べてみ。

471 名前:456 投稿日:2007/02/07(水) 14:34:40 ID:???
>>470
助言ありがトン。

> 「何をcollapse」するのか

隣接するセルのボーダーですよね?
下線を引きたかったのはobj.rows[obj.rows.length - 1]のcellsなんで、
問題ないかと思っていたのですが...。

472 名前:Name_Not_Found 投稿日:2007/02/07(水) 14:58:03 ID:???
>>471
ソースを見んことにははっきりとわからんが
十中八九Fxのバグではないと思う。
重なったボーダーの優先度とか調べてみ。
それでも疑問があったらCSSスレへどうぞ。

473 名前:Name_Not_Found 投稿日:2007/02/07(水) 15:38:25 ID:???
グーグルマップがやってるようなマウスホイールの取得を実装したいのですが、検討つきませぬ。
なんぞ「ここ嫁」「これでぐぐれ」みたいなポインタあったら教えてください

474 名前:Name_Not_Found 投稿日:2007/02/07(水) 15:44:02 ID:???
>>473
onmousewheel

475 名前:Name_Not_Found 投稿日:2007/02/07(水) 15:44:30 ID:???
thx

ヘボシツモンスマソ

476 名前:474 投稿日:2007/02/07(水) 15:45:55 ID:???
はえーよバカ。何十回リロードしてるんだ。

477 名前:Name_Not_Found 投稿日:2007/02/07(水) 16:03:06 ID:???
え、いやたまたまですよ
7回くらいですけん

478 名前:Name_Not_Found 投稿日:2007/02/07(水) 22:04:17 ID:???
applyを使った継承で質問があります。

var x = function() {
/* なんらかのxの実装 */
};

var y = function() {
x.apply(this);
/* なんらかのyの実装 */
};

var z = new y();

このような形の継承関係があった場合に、
「xの実装のなかでyからは見ることが出来るけれど、zからみることが出来ない」
というメンバを定義することって不可能でしょうか?

479 名前:Name_Not_Found 投稿日:2007/02/07(水) 23:04:24 ID:4IIoDn4g
IEでキャレット位置を取得するのはやっぱり無理ですか?


480 名前:Name_Not_Found 投稿日:2007/02/07(水) 23:36:47 ID:NajzvM24
いろいろ調べてみたのですが行き詰ったので、解決の糸口となる
キーワードだけでもご教示頂けたらと思います。

現在は
function foo(id){
    window.open("http://xxx.jps?user_id=" + id, "new_win");
}

という関数があり、これをbuttonのonclickで呼び出しているのですが
仕様変更でpostで送信しなければならなくなりました。

HTMLの部分にformを追加してsubmitする方法ならpostで送信できますが
この関数はjsp内にincludeして広範囲で利用しているため、HTML部分の
修正を含めると工数が掛かるので、なんとか現状の引数を渡す仕様で
javascriptの修正だけでpost送信できないかと試行錯誤しています。

利用するクライアントはIE6限定になっています。何卒ご教示のほど
お願い致します。

481 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:02:20 ID:???
>>478
それは昔俺も悩んだが、完璧な方法は思い当たらなかった。
ちなみにprototypeをつかった継承にしても同じ問題がある。

482 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:06:32 ID:???
>>480
べつにHTML側を直さなくてもJSでdocumentの最後にでも見えない
iframeを挿入してその中にformを作ってpostすればいいんでは。

483 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:10:03 ID:???
googleのキャッシュを表示したときのように
特定のキーワードの色を変えて表示させたいんですが
ぐぐるためのヒント教えてください

484 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:36:24 ID:???
>>483
「キーワード」 「ハイライト」
あと、DOMと正規表現つかえないときついだろうね

485 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:39:57 ID:???
>>484
ありがとうございます
ずっと「キーワード」「マークアップ」で検索して難儀していました
重ね重ねありがとうございます >>484様の事は決して忘れません

486 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:43:26 ID:???
>>482
そういうようなやり方しかないですかね。もっとスマートにできないかと
思ったのですが。しかし参考になりました。ありがとうございます。

487 名前:Name_Not_Found 投稿日:2007/02/08(木) 00:56:45 ID:???
>>486
ん? いったいどうスマートにやりたいんだ?
丁度いま、DOMでformとinput要素applendChildしてsubmit()呼んでる処理書いてるけど、普通にPOSTで飛ばせてるよ。
innerHTMLでもいけると思うけど。

488 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:03:26 ID:???
>>478
var x = function() {
this.a = "A";
};
x.b = "B";

var y = function() {
x.apply(this);
this.bDash = x.b;
};

var z = new y();

z.a : "A"
z.b : undefined
z.bDash : "B"

こんなんで良いの?

489 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:07:11 ID:???
>>486
XMLHttpRequest 使えば?

490 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:15:17 ID:???
>>488
それだと仮にx.bがfunctionだった場合、x.bからxのスコープが見えないから一般的には駄目

491 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:22:14 ID:???
>>488
レスありがとうございます。

しかしその場合、たとえば
var x = function() { var str = "test"; };
x.setStr = function(v) { str = v; }; // error
という問題があったり、

var x = function() { this.a = "A"; };
x.setA = function(v) { this.a = v; }; // 想定外
という問題があり、関数が絡んで同じクラスのメンバを使おうとすると困ってしまいます。

492 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:28:52 ID:???
>>491
えーと、良くわかんないんだけど、xの一部分だけ継承したい?と言う要求?

493 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:48:34 ID:kaj/iayM
IEでキャレット位置を取得する方法を聞いても、みんなが見事にスルーする理由はなんですか?

494 名前:Name_Not_Found 投稿日:2007/02/08(木) 01:53:44 ID:???
>>493
タイミングの問題。
テキスト入力欄での話ならcreateTextRangeでググれ。

495 名前:Name_Not_Found 投稿日:2007/02/08(木) 10:45:17 ID:???
javaソースとか探して張りつけてるだけのエセjava使いなんですけど

1からちゃんと勉強したいと思い参考サイトを見ようと思ってるのですが
どこかわかりやすくてお勧めのところはないでしょうか?
テンプレにあるもの意外をお願いします。

ちなみに貧乏なのであまりお金の掛かるものはなしでお願いします

496 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:02:23 ID:???
>>495
>>7,8

497 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:18:14 ID:???
とほほ


498 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:28:10 ID:???
オライリーのサイ本。
図書館で借りれ。

499 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:35:26 ID:???
>>495
ここではサイ本とMy UNIX(入門JavaScript)が肯定されてるね。
サイ本は高くMy UNIXのが安い。errataはここ。
ftp://ftp.ascii.co.jp/pub/my-unix/javascript/
>>497
とほほで勉強するのは勧めないね。半可通になってここで
叩かれたいなら別だが。

500 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:42:40 ID:???
>>499
なにマジレスしてんの馬鹿じゃないの

501 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:54:12 ID:???
>>493
とりあえず作ってみたけどー。IE専なんであんまりやる気出ず。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var r0 = document.selection.createRange(), l0 = r0.text.length;
while(true) {
r0.moveStart('character', -1); var l1 = r0.text.length;
if(l0 == l1) break; else l0 = l1;
}
alert(l0);
}
</script>
</head><body>
<div><textarea id="a0" rows="10" cols="20" onmouseup="test()"></textarea></div>
</body></html>

502 名前:Name_Not_Found 投稿日:2007/02/08(木) 11:59:36 ID:???
>>500
参考書を求めたいという話題だったら元質問がネタだろうと
それと関係なくここを見てるヤシもいるんだからマジレス
するよ。過去何十スレもずっとそうしてるしね。アンタのが
このスレを分かってないだけだろ、よそ逝ってくれ。

もしかしてとほほの信奉者だったりして(だったら劇藁だな)。
おお、2ちゃんらしくなってきたねー。

503 名前:Name_Not_Found 投稿日:2007/02/08(木) 12:28:04 ID:???
(;^ω^)

504 名前:Name_Not_Found 投稿日:2007/02/08(木) 12:30:00 ID:???
>>502
何マジレスしてんの馬鹿じゃないの

505 名前:Name_Not_Found 投稿日:2007/02/08(木) 12:30:44 ID:???
おお、2ちゃんらしくなってきたねー。(笑)

506 名前:Name_Not_Found 投稿日:2007/02/08(木) 12:36:47 ID:???
>>487
目からウロコが落ちました。
本当にありがとうございました。

507 名前:Name_Not_Found 投稿日:2007/02/08(木) 13:02:37 ID:???
>> >>478とそれにレスしてる全員
過去にも言ったが、それを継承とは言わないから。
例えば、>>478 で、z instanceof x は false だわな。継承してない。
継承の中で使われることが多いが、それ自体は継承ではない。
つまり、「apply を使った継承」 という言葉自体が意味不明だ。
いちいち、this.a = a; this.b = b; this.c = c; ... と書くのが面倒かつ変更時に弱いから、
(利用したい関数).apply(this, arrayLike) と書くだけだ。

508 名前:Name_Not_Found 投稿日:2007/02/08(木) 13:17:55 ID:???
>>507
継承ってのは、単にオブジェクト指向の概念の一つで、 instanceof の結果とは関係ないから。

509 名前:Name_Not_Found 投稿日:2007/02/08(木) 13:40:47 ID:???
>>507
> 過去にも言ったが、それを継承とは言わないから
(笑)

510 名前:Name_Not_Found 投稿日:2007/02/08(木) 13:42:43 ID:???
俺様口調でトンチキな事言う程恥ずかしい事は(ry

511 名前:Name_Not_Found 投稿日:2007/02/08(木) 13:57:40 ID:???
instanceofって、何の話をしているのやら
ECMA262-3rd以外の話をしたいならオナニースレ行けよ

512 名前:Name_Not_Found 投稿日:2007/02/08(木) 14:44:18 ID:???
話逸れるけどECMA-262thirdのLanguage Specification pdfに
しっかりinstanceof入ってますよこの半可通

513 名前:Name_Not_Found 投稿日:2007/02/08(木) 14:54:56 ID:???
>>512
すまんしらんかった

514 名前:Name_Not_Found 投稿日:2007/02/08(木) 15:49:26 ID:???
半可通

515 名前:Name_Not_Found 投稿日:2007/02/08(木) 16:21:36 ID:???
半可通のお笑い種発言に半可通が突っ込むという体たらく

まあ典型的な2chの日常風景
殺気立つ必要はあるまいて
マターリ殺伐しようぜ

516 名前:Name_Not_Found 投稿日:2007/02/08(木) 16:29:26 ID:???
この流れなら宣伝できる。
言語の話ならム板もあるよ。
ECMAScript デス 2
http://pc10.2ch.net/test/read.cgi/tech/1088298991/

517 名前:Name_Not_Found 投稿日:2007/02/08(木) 16:39:23 ID:???
>>516
さてはこの流れお前の自演か

518 名前:Name_Not_Found 投稿日:2007/02/08(木) 16:52:50 ID:X2VYdmsf
極希なんですが、子windowから親windowにsubmitしようとすると
新しいwindowが立ち上がってしまいます。本当にたまにしか起こらないので
再現もできないし原因も分かりません。環境はWIN2KにIE6です。

考えられる原因があれば些細な事でも構わないのでヒントをください。

519 名前:Name_Not_Found 投稿日:2007/02/08(木) 17:49:17 ID:h5cgyBZ9
ページが読み込まれたら下のフレーム(bottomFrame)に
URLを表示させたいと思います。
<script type="text/javascript">
var url="http://2ch.net";
function bottom_url(){
location=url;
}
</script>

これだと開いているページ内が移動されますが、
フレームのページに移動されません。
ターゲット指定するにはどのように変えればいいのでしょうか?

520 名前:Name_Not_Found 投稿日:2007/02/08(木) 18:55:49 ID:???
JavaScriptのみで完全にユニークなIDって作成できるんでしょうか。
今まではnew Date().getTime()を利用していたのですが、
コンフリクトを起こしてしまいました…
サーバサイドに手を入れることなく、ユニークなIDをつくりたいのですが、
ちょっとやり方が思い浮かびません。どなたかアイデアあれば是非ください

521 名前:Name_Not_Found 投稿日:2007/02/08(木) 18:57:14 ID:???
parent
top
あたりをググれ

522 名前:Name_Not_Found 投稿日:2007/02/08(木) 19:05:29 ID:???
>>520
何と何を一意に区別するIDなのかわからんが、
鯖側からなんらかの情報をもらわなければ本当にユニークな方法はない。
cookieにsessionidでも入ってればそれとDate方式の複合でなんとか。
コンフリクトを減らすだけならランダムな文字なりつける。

523 名前:Name_Not_Found 投稿日:2007/02/08(木) 19:07:18 ID:Y8HJ/jgW
とりあえずcreateRangeでグぐってみたけど、わんないよ。
これで出来る、とかいって、全然出来てないのばかり。
キャレットの所得のしかた教えてください。

とりあえず参考http://d.hatena.ne.jp/brazil/20061021/1161377936をにして作ってみたけど、これじゃ選択範囲だよ。

524 名前:Name_Not_Found 投稿日:2007/02/08(木) 19:08:18 ID:???
>>520
Uniq_Id_1 とかで、カウントアップすれば?まぁ、オーバーフローすれば、被るけど。

525 名前:Name_Not_Found 投稿日:2007/02/08(木) 19:09:19 ID:???
>>520
無理だろ、常識的に考えて
まあ、getTime+それ以外の情報(UA、ページロードタイム、ウィンドウサイズ、ウィンドウ座標、マウス座標、ランダムな大きい数値とか)を元にIDを生成すればコンフリクトは確率的には少なくなるだろうね
要はIDを長くするor変化させるという一時しのぎ。やっぱり、CGIが使えないときつい

526 名前:523 投稿日:2007/02/08(木) 19:12:35 ID:Y8HJ/jgW
<script type="text/javascript"><!--
function replace_css(textObj){
var sValue = textObj.value;
var iNewSelectionStart = textObj.selectionStart;
var iNewSelectionEnd = textObj.selectionEnd;
if(typeof iNewSelectionStart != "number"){
var rngObj_S = document.selection.createRange();//選択範囲Object(textRange)
var rngObj_A = textObj.createTextRange();//textarea内Object(textRange)
var rngObj_B = textObj.createTextRange();//同上
var iMaxIndex = rngObj_A.text.length;//textarea内文字数
var Left = rngObj_S.offsetLeft;//選択領域の左側の位置
var Top = rngObj_S.offsetTop;//選択領域の上側の位置
rngObj_B.moveToPoint(Left,Top);//座標移動(x:横座標,y:縦座標)
rngObj_A.setEndPoint("StartToStart", rngObj_B);//
var iIndex = iMaxIndex - rngObj_A.text.length;
//最後尾の改行計算バグ補正
if(iIndex == iMaxIndex){
var rngObj_T = textObj.createTextRange();
rngObj_T.collapse(true);
rngObj_T.setEndPoint("EndToStart", rngObj_A);
var iCount = 0;
while(rngObj_T.expand("character"))
iCount++;
iIndex += ((sValue.length - iIndex) - iCount*2);
}
iNewSelectionStart = iIndex;
iNewSelectionEnd = iNewSelectionStart + rngObj_S.text.length;
}
document.getElementById('a').innerHTML = iNewSelectionStart;
document.getElementById('b').innerHTML = iNewSelectionEnd;
}
// --></script>

527 名前:Name_Not_Found 投稿日:2007/02/08(木) 20:04:11 ID:???
>>523
あんたの言う「キャレットの位置」って何なの?
先頭から何文字目にキャレットがあるかわかればいいの?
それとも何行目の何桁目という形で取得したいの?
はたまた上端から何ピクセル、左端から何ピクセルかが知りたいの?

528 名前:Name_Not_Found 投稿日:2007/02/08(木) 22:45:48 ID:kaj/iayM
>>527
「先頭から何文字目にキャレットがあるか」でお願いします。

レスくれてありがとう。

529 名前:Name_Not_Found 投稿日:2007/02/08(木) 23:02:36 ID:???
結局 >>501 は無視ですかそうですか。まあいいんだけど。

530 名前:Name_Not_Found 投稿日:2007/02/09(金) 00:05:48 ID:???
質問させてください。
RegExpで「直前にaが無いb」にマッチさせるにはどうすればいいんでしょうか?
例えば"abcbb"の最初のbはスルーして2番目と3番目のbにだけマッチさせたいんですが。
否定後読みってのを使えばよさそうってとこまでわかったんですがうまくいきません。

531 名前:Name_Not_Found 投稿日:2007/02/09(金) 00:22:48 ID:???
>>529
まあいいなら書くなよ
うぜーな、この構ってチャンが

532 名前:Name_Not_Found 投稿日:2007/02/09(金) 00:23:47 ID:???
>>530
スレ違い。だから答えはずばり教えてあげないけど、[^a]をうまく使って書け

533 名前:Name_Not_Found 投稿日:2007/02/09(金) 00:56:13 ID:???
>>532
それは駄目じゃないの。"abcbb".replace(/[^a]b/g, "B") → abcBb

534 名前:Name_Not_Found 投稿日:2007/02/09(金) 00:58:12 ID:???
しまった間違えた、でも駄目なのに変わりはないような。
"abcbb".replace(/([^a])b/g, "$1B")

535 名前:Name_Not_Found 投稿日:2007/02/09(金) 01:28:32 ID:???
JavaScriptでもJScriptでも戻り読み「(?<=...)」はサポートされてないからな。
工夫して切り抜けるしかないんじゃね?
"abcbb".replace(/b/g, function(match, index, input){ return input.charAt(index-1) == 'a' ? match : 'B'; });

536 名前:Name_Not_Found 投稿日:2007/02/09(金) 01:30:54 ID:???
おっと、この場合は「否定戻り読み『(?<!...)』はサポートされてないからな」というべきだったか。

537 名前:Name_Not_Found 投稿日:2007/02/09(金) 10:35:01 ID:9PFIRdfj
>>4のQ9に似ているのですが…
document.forms["myform"]elements[hogeghoge]

の「hogehoge」の部分に 配列を格納した変数「hoge[x]」を入れたいのですが
うまくいきません
[`hoge[x]`]とクウォートで囲んだり [hoge][x]としてみましたが どうしても
エラーになります
何か良い方法はありますでしょうか? ご教授いただけるとうれしいです

538 名前:Name_Not_Found 投稿日:2007/02/09(金) 10:40:59 ID:???
["hoge[0]"]
["hoge[1]"]
var x = 0; ["hoge[" + x + "]"]

539 名前:Name_Not_Found 投稿日:2007/02/09(金) 10:41:59 ID:???
>>537
document.forms['myform'].elements[hoge[x]].value
とかだよね。elementsの前の「.」が抜けてるぞボケ!!!!
(このスレでは「ご教示」でないと煽られるので注意)

540 名前:Name_Not_Found 投稿日:2007/02/09(金) 10:43:08 ID:???
>>537
近道しようと思わないで、リファレンスを読みましょう。
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide

初心者が近道だと思っている道は、ほぼ間違いなく、迷路です。遠回りに見えても、本道を歩きましょう。それが、一番の近道です。

541 名前:537 投稿日:2007/02/09(金) 10:51:17 ID:???
>>538
ありがとうございます 僕の理解力が悪いのか
document.forms["myform"].elements["hoge"+x+"]"]
ではエラーが出ました

>>539
二つもボケをかましてしまいすいませんでした
「ご教示」ですね 気をつけます!

>>540
おっしゃるとおりですね…
リファレンスをじっくり読んできます!

皆さんありがとうございました!

542 名前:Name_Not_Found 投稿日:2007/02/09(金) 11:08:11 ID:???
> elements["hoge"+x+"]"]
すごい頻度でミスるな。コピペもできなきゃ手の施しようがない。

つうか、["hoge[x]"] なんだろうな、たぶん。HTML見せれば即決するが、アホらしゅうて誰も回答しないかw

543 名前:543 投稿日:2007/02/09(金) 14:33:13 ID:S700YF3q
フレームを使って左にメニュー(menu)、右に本文(view)を表示させてます
メニューのフレームで
<span onClick='top.view.window.location.replace("http://www.yahoo.co.jp/");return false;'>別サイト</span><br>
<span onClick='top.view.window.location.replace("test.html");return false;'>同じサイト</span><br>
と記述して「別サイト」をクリックしたら本文の方にヤフーを表示
「同じサイト」をクリックしたら本文の方に自サイトのhtmlを表示させたいです

「同じサイト」クリック後「別サイト」クリックはきちんとヤフーが出ます
「別サイト」クリック後「同じサイト」クリックだとtest.htmlに遷移しません
<a>タグ等では普通にヤフーに遷移することが出来ます
なお、IEでは上記の様になりましたがネスケでは正常に動作します

過去ログは「location.replace 別サイト」で検索しましたが特に良さそうな例は見つかりませんでした
ご教授お願いします

544 名前:Name_Not_Found 投稿日:2007/02/09(金) 15:45:09 ID:???
top.frames['view'].location.reprace〜
若しくは
top.view.location.replace〜

「window」は最上位オブジェクトですよ。

545 名前:Name_Not_Found 投稿日:2007/02/09(金) 16:02:08 ID:???
>>543
へーIEってそうなんだ。「.window」だけ削除したら動くとか?

546 名前:543 投稿日:2007/02/09(金) 17:09:30 ID:O8ViFILf
あ、なるほど。了解しました。助かりました〜

>>545
とりあえずスッキリしたソースが好きなので下でキチンと動きました

547 名前:530 投稿日:2007/02/09(金) 18:35:29 ID:???
ありがとうございました。
否定戻り読みはサポートしてなかったんですね。

548 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:24:29 ID:x0BV8VZb
質問です。
HTMLにタグを貼るとき
<script src="AAAA.js" type="text/javascript"></script>
<script src="BBBB.js" type="text/javascript"></script>
<script src="CCCC.js" type="text/javascript"></script>

↑を↓みたいにできませんか?

<script src="AAAA.js" type="text/javascript"></script>

(BBBB.js と CCCC.js は AAAA.jsから読み込む)


javascriptからjsファイルを読み込む方法が分かりません

549 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:25:57 ID:d1B/kzU0
質問です。
Select要素の中の要素をすべて削除して、
新しい要素を追加したいのですが、

for(i = 0; i < selO.length; i++){
child = selO.child(i);
selO.removeChild(child);
}

だと、全部消えてくれません。

知りたいのは、
すべての子を一気に消す方法はないか。
ないなら、どういう方法が一般的か。
なぜ、上のコードで、すべて消すことができないのか。
の3点です。

宜しくお願いします。

550 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:25:58 ID:???
>>548
document.write('<script src="BBBB.js" type="text/javascript"></script>')
document.write('<script src="CCCC.js" type="text/javascript"></script>')


551 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:29:13 ID:???
>>549
後ろから消しなよ

あと個人的にあまり好きじゃないんだが
piyo.length = 0 で全部消える

552 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:31:25 ID:???
>>550
天才ですね
目から鱗です


553 名前:548=552 投稿日:2007/02/09(金) 23:31:51 ID:???
です

554 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:33:55 ID:d1B/kzU0
>>551
あぁ、0から消すと、1にあったのが0にズレるんだ?
先入れ後出しでつね。
ありがとうございます。

555 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:36:22 ID:???
>>549
<script type="text/javascript">
function kaeru(){
var selO = document.getElementById("selO");
var cloneSelO = selO.cloneNode(false);

cloneSelO.appendChild(document.createElement("OPTION"));
cloneSelO.lastChild.text = "変更した";
cloneSelO.appendChild(document.createElement("OPTION"));
cloneSelO.lastChild.text = "変更した";

selO.parentNode.replaceChild(cloneSelO, selO);
}
</script>
<select id="selO"><option>変更前</option><option>変更前</option><option>変更前</option></select>
<input type="button" value="替える" onclick="kaeru()">

556 名前:Name_Not_Found 投稿日:2007/02/09(金) 23:42:32 ID:d1B/kzU0
>>555
selectコピって、新しく中身作って
select置き換えるのか。

これはいいですね。

さらによく見てみると、selectの属性とか変更される可能性ないんで
置き換えだけでよさそうです。
ありがとうございます。

557 名前:Name_Not_Found 投稿日:2007/02/10(土) 02:53:28 ID:???
blogの「続きを読む」の折りたたみをメニューに使用して何階層にもしてるんですが
http://www2f.biglobe.ne.jp/~takan/javac/dhtml/ie/dh_display_contents1.htm

全部クリックすると出っ放しでズルズル長くなるので、
一つクリックして表示したら他の階層を閉じられるようにしたいのですが、
JavaScriptで何とかならないでしょうか。
よろしくお願いします。

558 名前:Name_Not_Found 投稿日:2007/02/10(土) 04:27:46 ID:???
>>557
<SCRIPT Language="JavaScript">
<!--
idlist = new Array('dh1','dh2');

function show_hide(id) {
for(n=0; n<idlist.length; n++) {
if(id==idlist[n]) {
disp = document.all(id).style.display;
if(disp == "block")
document.all(id).style.display = "none";
else
document.all(id).style.display = "block";
} else {
disp = document.all(idlist[n]).style.display;
if(disp == "block")
document.all(id).style.display = "none";
}
}
//-->
</SCRIPT>

これくらいしか思い付かない。


559 名前:Name_Not_Found 投稿日:2007/02/10(土) 04:29:31 ID:???
>>558

disp = document.all(idlist[n]).style.display;
if(disp == "block")
document.all(idlist[n]).style.display = "none";
}
}
//-->

少し訂正。


560 名前:Name_Not_Found 投稿日:2007/02/10(土) 05:54:48 ID:Idxi/UCG
キャレット位置は取得できないでFAですか?

561 名前:Name_Not_Found 投稿日:2007/02/10(土) 06:18:20 ID:???
いつも中入れ中出しでつ。

562 名前:Name_Not_Found 投稿日:2007/02/10(土) 06:43:41 ID:???
>>560
あんたとこでは >>501 は動作しないのね?

563 名前:Name_Not_Found 投稿日:2007/02/10(土) 08:33:09 ID:6HBejGjf
>>560
アホ?それとも釣り?

564 名前:Name_Not_Found 投稿日:2007/02/10(土) 09:22:50 ID:???
>>563
いや… IE6しか持ってないんで、手元のIE6では動いている
んだけど何か動かないとこがあるのなら知りたいなと。

565 名前:Name_Not_Found 投稿日:2007/02/10(土) 10:42:32 ID:???
テキストボックスじゃなくて、「普通の文章を選択状態にする」方法あります?
一応調べて無理っぽいとは思ったんですが、もし知っている方がいれば。

566 名前:Name_Not_Found 投稿日:2007/02/10(土) 11:17:53 ID:???
画面全体をreadonlyのtextareaにするとか

567 名前:Name_Not_Found 投稿日:2007/02/10(土) 12:03:32 ID:???
>>565
これもIE6でしかテストしてないけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var r0 = document.body.createTextRange();
r0.findText('鉛筆'); r0.select();
}
</script>
</head><body onload="test()">
<p>これは鉛筆です。</p>
</body></html>

568 名前:Name_Not_Found 投稿日:2007/02/10(土) 12:15:00 ID:???
>>567 Geckoのコードも追加した。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
if(document.body.createTextRange) { // IE
var r0 = document.body.createTextRange();
r0.findText('鉛筆'); r0.select();
} else if(document.createRange) { // Gecko
var r0 = document.createRange();
var t0 = document.getElementById('p0').childNodes[0];
r0.setStart(t0, 3); r0.setEnd(t0, 5);
window.getSelection().addRange(r0);
}
}
</script>
</head><body onload="test()">
<p id="p0">これは鉛筆です。</p>
</body></html>

569 名前:566 投稿日:2007/02/10(土) 12:18:31 ID:???
>>568
おお、すげえ

570 名前:Name_Not_Found 投稿日:2007/02/10(土) 14:28:21 ID:0I7GbTgF
「/」がエスケープされた「%2F」がさらに「%252F」とエスケープされている場合、
これを「/」に戻すにはどうすればいいんでしょうか・・・

replace((\/|%2F|%252F), unescape("$1"))

とすると「%2F」は「/」になるんですが
「%252F」は「%2F」になるだけで「/」にはなってくれません・・・

プログラミングに関しては何も知らないんですが
やりたいことがあって(ほかの人が作った物を自分好みにしたい)
正規表現だとかunescapeだとかを知ったばかりなんですが・・・
よろしくおねがいします

571 名前:Name_Not_Found 投稿日:2007/02/10(土) 14:35:59 ID:???
え?こう?
unescape(unescape("%252F"))


572 名前:570 投稿日:2007/02/10(土) 14:44:24 ID:0I7GbTgF
>>571
それで普通はいけるものなんでしょうか?
やってみたんですが「%252F」から「%2F」になったままです・・・

もしかしたらほかの部分に問題があるのかもしれません
調べてきます
ありがとうございました

573 名前:Name_Not_Found 投稿日:2007/02/10(土) 15:19:34 ID:???
>>572
いや、その正規表現と合わせて使っても駄目だよ?
  alert( unescape(unescape("%252F")) );
これ自体はちゃんと / が表示されるでしょ?
変換させたい文字列をそのまま突っ込んで下さい。


  var url = "http:%252F%252Fwww.2ch.net%252F";
  var url2 = unescape(unescape(url));
  alert(url2);


574 名前:570 投稿日:2007/02/10(土) 16:19:58 ID:???
ああ、レスが。どうもです
このままじゃダメで別のかたちに書き換えないといけないんですね
勉強してきます・・・


575 名前:Name_Not_Found 投稿日:2007/02/10(土) 16:29:16 ID:qildVD6B
>>574
【参考】
ttp://tmitei.exblog.jp/

576 名前:Name_Not_Found 投稿日:2007/02/10(土) 17:16:42 ID:???
>>568
"鉛筆".length == 2 のように2文字以上の場合は Text ノードオブジェクトが複数になっている場合が普通にあるから、W3C-DOM の方は、そう単純にはならないだろう。

577 名前:Name_Not_Found 投稿日:2007/02/10(土) 17:28:44 ID:???
normalizeすればいいと思うけど

578 名前:Name_Not_Found 投稿日:2007/02/10(土) 17:44:07 ID:???
>>577
複数の Text に分割されている場合、最も多い(というか100%と言ってよい)のは、
「<span>あいう</span>えお」 から、「うえ」を探すような場合。

579 名前:565 投稿日:2007/02/10(土) 18:33:24 ID:???
>>567でFAでした。どうもありがとうございます。

580 名前:Name_Not_Found 投稿日:2007/02/10(土) 21:09:58 ID:???
>>570
var nanika = '%252F';
while(nanika.match(/%[\d\w]{2}/){
nanika = unescape(nanika);
}

でどーかと思ったんだが、escape の仕様をよくわかってないんで
まずいやも
つーか元の文字列に '%' が入ってたらどうするんだろうね?
わかる人の突っ込みキボンヌ

581 名前:Name_Not_Found 投稿日:2007/02/10(土) 21:17:50 ID:???
ごめん、ちょぉまずかった

582 名前:Name_Not_Found 投稿日:2007/02/10(土) 22:10:29 ID:7Popa41S
だれか〜、ここ↓に答えるか、ここで、問題点を指摘してくれんか?
Yahooは、初めて使ったが、どうも人の回りが悪いようだ。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1310754628

583 名前:Name_Not_Found 投稿日:2007/02/10(土) 22:29:14 ID:???
>>582
標準がXHTMLだと考えるのは構わないけど、拡張子なんて無難にしておけば良いともう。

584 名前:Name_Not_Found 投稿日:2007/02/10(土) 22:34:56 ID:???
どうせIE + application/xhtml+xmlがらみでしょ。
サーバが返すMIMEタイプを変えられない環境なら.htmlでいいじゃん。
間違いじゃないし。

585 名前:Name_Not_Found 投稿日:2007/02/10(土) 22:36:55 ID:???
どっかで単にXHTMLに反することやってる気ガス
firebugあたり使ったら挙動がおかしくなってる点でエラー読めたりしないかい。

586 名前:Name_Not_Found 投稿日:2007/02/10(土) 22:38:58 ID:7Popa41S
>>584

いちおう、Mac OS X Tiger+Safari&Firfoxで、開発してるんです。
拡張子は、やっぱりHTMLの方が良いですかね?

587 名前:Name_Not_Found 投稿日:2007/02/10(土) 23:11:00 ID:???
>>586
現象が再現する最低限のソースを出せや

588 名前:Name_Not_Found 投稿日:2007/02/10(土) 23:15:29 ID:7Popa41S
>>587 へいっ!
<script src="scripts/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function loadDataFile(fName)
{
new Ajax.Request(fName, { method: 'get', onComplete: displayData });
}
function displayData(httpObj)
{
$("outputarea").innerHTML = httpObj.responseText;
}
//]]>
</script>

こんな感じっす。<div id="outputarea"></div>の間に出力するということです。

589 名前:Name_Not_Found 投稿日:2007/02/10(土) 23:17:42 ID:???
あんたはアメリカ人か

590 名前:Name_Not_Found 投稿日:2007/02/10(土) 23:19:27 ID:7Popa41S
>>589
どういうこと?

591 名前:565 投稿日:2007/02/10(土) 23:23:07 ID:???
>>565>>567>>579の続きなんですが、
「鉛筆」が文章中に複数ある場合、必ず1個目のほうが
選択状態になりますよね?

2個目以降は選択できないんでしょうか。

調べたら、findTextのオプションの引数で指定できるようなのですが、
findText('鉛筆',1)でも
findText('鉛筆',2)でも両方1個目が選択されます。
環境はXPのIE6です。

592 名前:Name_Not_Found 投稿日:2007/02/11(日) 01:45:00 ID:???
>>591
findTextの第2引数の意味が分かってんのかね。referenceを読め。
とりあえず込み入った方法で選択したいのならtextareaの内容を
まず調べてどの位置を選択するか決め、moveで位置決めして
moveEndで範囲の後ろを調整し最後にselectするとかかな。
まあがんばって。referenceのありかはテンプレにあるだろ。

593 名前:Name_Not_Found 投稿日:2007/02/11(日) 02:02:15 ID:V978gkxf
prototype.jsを始めてみようと思い、
http://www.prototypejs.org/よりダウンロードしたものを
使っているのですが、
簡単なソースファイルを書き、FireFox + FireBugsを使って様子を見てみると、
次のようなエラーがでて、うまく動きません。
>>illegal character (prototype.js line 1)

一方、IE6で試してみたところ、とくに問題なく動きました。

私は、prototype.js自体に問題があると考えているのですが、
ソースファイルを見てみたところ、特に問題があるとは思えません。
どなたか原因・解決法をご存知の方がいらっしゃれば、教えてください。

594 名前:565 投稿日:2007/02/11(日) 03:00:50 ID:???
>>592
第二引数は検索の方向ですか・・orz
英語のリファレンス見てたので早とちりしてしまいました。
何とかやってみます。

595 名前:Name_Not_Found 投稿日:2007/02/11(日) 03:54:35 ID:???
>>593
もし文字エンコードの相違が原因であれば、HTMLのSCRIPT要素のCHARSET属性を明記すれば解決する。

596 名前:Name_Not_Found 投稿日:2007/02/11(日) 05:09:10 ID:HwFCKy8g
>>560

createRangeを使えば簡単だと思ってるやバカが多いみたいだけどIEじゃ結構面倒。
面倒だから教えないけど。

597 名前:Name_Not_Found 投稿日:2007/02/11(日) 09:54:14 ID:5jaI0ZdV
質問【オンマウスでリンク画像(文字)が跳ねるようにしたい】
↓これでは駄目だった
<HEAD>
<link rel="stylesheet" href="style.css" type="text/css">
<SCRIPT LANGUAGE="JScript" type="text/jscript" charset="shift_jis" src="jmplink.js">
</SCRIPT>
</HEAD>
<BODY onLoad="jmplink();">
<a href="" target=_blank onfocus="this.blur()"></a>

598 名前:Name_Not_Found 投稿日:2007/02/11(日) 10:25:10 ID:???
>>596
それで >>501 は自分とこでは動作するんだけど他の人のとこ
ではだめなのでしょうか…
>>597
そのJSの中身を公開せずに質問に答えられるESPなんかいない。
帰れ。

599 名前:Name_Not_Found 投稿日:2007/02/11(日) 11:34:18 ID:???
>>595さん
解決しました。ありがとうございました。

600 名前:Name_Not_Found 投稿日:2007/02/11(日) 12:11:52 ID:???
ツリー形式のメニューを作りたいのでツリー型のオブジェクトを作り、
再帰呼び出しで表示しようとしたのですが、全部の項目が表示されません。
データはキチンと格納されているようなので、再帰呼び出し処理にバグが
あると思いますが、余計な処理を削ぎ落として極力シンプルにしてエラーを
見つけやすくしても、どこにもおかしな所が見付けられませんでした。

<html><head><script language="javascript">
function MenuData(text,href) {
this.text = text;
this.href = href;
this.children = new Array();
this.addChild = function(text,href) {
length = this.children.length;
this.children[length] = new MenuData(text,href);
return this.children[length];
};
}

Cmd = new Array();
Cmd[0] = new MenuData('項目0','menu0.htm');
Cmd[1] = new MenuData('項目1','menu1.htm');
Cmd[2] = Cmd[0].addChild('項目00','menu00.htm');
Cmd[3] = Cmd[0].addChild('項目01','menu01.htm');
Cmd[4] = Cmd[1].addChild('項目10','menu10.htm');
Cmd[5] = Cmd[1].addChild('項目11','menu11.htm');
Cmd[6] = Cmd[2].addChild('項目000','menu000.htm');
Cmd[7] = Cmd[2].addChild('項目001','menu001.htm');
Cmd[8] = Cmd[3].addChild('項目010','menu010.htm');
Cmd[9] = Cmd[3].addChild('項目011','menu011.htm');


601 名前:Name_Not_Found 投稿日:2007/02/11(日) 12:12:54 ID:???
Cmd[10] = Cmd[4].addChild('項目100','menu100.htm');
Cmd[11] = Cmd[4].addChild('項目101','menu101.htm');
Cmd[12] = Cmd[5].addChild('項目110','menu110.htm');
Cmd[13] = Cmd[5].addChild('項目111','menu111.htm');
Menu = new Array(Cmd[0],Cmd[1]);

function List(Nodes, depth) {
for(i=0;i<Nodes.length;i++) {
buff = "";
for(j=0;j<depth;j++)buff = buff + '■';
buff = buff + Nodes[i].text + '<br>';
document.write(buff);
if(Nodes[i].children.length > 0)List(Nodes[i].children, depth+1);
}
}
</script>
</head>
<body>
<span>
(関数による再帰呼び出し表示)<br>
<script language="javascript">
List(Menu, 0);
</script>
</span>
<hr>


602 名前:600-601 投稿日:2007/02/11(日) 12:15:16 ID:???
<span>
(非再帰呼び出し表示)<br>
<script language="javascript">
buff = "";
for(i=0;i<Menu.length;i++) {
buff = buff + Menu[i].text + '<br>';
for(j=0;j<Menu[i].children.length;j++) {
buff = buff + '□' + Menu[i].children[j].text + '<br>';
for(k=0;k<Menu[i].children[j].children.length;k++) {
buff = buff + '□□' + Menu[i].children[j].children[k].text + '<br>';
}
}
}
document.write(buff);
</script>
</span>
</body>
</html>

どこかおかしな点が見付けられる人がいたら、知恵を借りたいと思います。
自分の頭ではこれが限界です。お願いします。

603 名前:Name_Not_Found 投稿日:2007/02/11(日) 12:45:06 ID:???
内容みてないけど
変数全部グローバルだね

604 名前:Name_Not_Found 投稿日:2007/02/11(日) 13:34:32 ID:???
グローバル化社会ですから。

605 名前:Name_Not_Found 投稿日:2007/02/11(日) 13:48:18 ID:???
>>603
関数の外で宣言しなくてもグローバル変数扱いになるんですね。
関数の中で宣言したら、ローカル変数になりました。
メニューもキチンと表示されます。

ありがとうございました。


606 名前:Name_Not_Found 投稿日:2007/02/11(日) 14:15:54 ID:7MPwvs99
質問です。
Div要素に、アルファチャンネル付きPNG画像を表示させているんですが
フィルタを使用したくなって、適用してみると、アルファチャンネルが透けなくなってしまいました。。。

どちらも使うのは無理なのでしょうか?


607 名前:Name_Not_Found 投稿日:2007/02/11(日) 17:39:24 ID:hU8PO4pZ
恥ずかしい質問ですがご容赦を。
いつもDWで作業してますが、手打ちはソースを確認するくらいです。
そして今DWがなくて違う場所にいます。
そしてどうしても解決したい機能がありまして質問させていただきます。
1)ブログの過去記事が増えてきて、ジャンプメニューでさっとアクセスできるようにしたい。
2)「バックナンバー」というリンクを押したら別窓で小さなリスト一覧が出る。
3)そこで特定の記事を選ぶと、メインの窓でその記事が表示される。
その小さな窓の中でなら表示はすぐ出来るのですがメイン画面に表示させる術を知らないのです。
ターゲットとかbody IDなどは分かってきたのですが実際に組むとなると頓挫してしまいました。
head内に書くjavascript内になにか指定をしたりするのでしょうか?
手取り足取りお願いすることになっていますがどうかよろしくお願いいたします。


608 名前:Name_Not_Found 投稿日:2007/02/11(日) 18:07:35 ID:???
window.opener

609 名前:Name_Not_Found 投稿日:2007/02/11(日) 18:09:02 ID:???
>>607
window.opener.location.href = 行き先URL;

610 名前:607 投稿日:2007/02/11(日) 20:59:06 ID:???
>>608-609
感謝です。
こういうのがあったとは…勉強不足でした。
そして勉強になりました。
ありがとうございました。


611 名前:Name_Not_Found 投稿日:2007/02/12(月) 02:43:27 ID:???
HPをアップロードした再に
検索中のページは、アクセス時に無効なメソッド (HTTP 動詞) が使われたため、表示できません。

と表示される箇所があったのですが
具体的にどのような不具合な箇所があるのでしょうか?

612 名前:Name_Not_Found 投稿日:2007/02/12(月) 03:04:58 ID:???
>>611
初心者スレへ。

613 名前:Name_Not_Found 投稿日:2007/02/12(月) 06:39:12 ID:???
>>611
どこがJavaScriptと関係あると判断したんだね?

614 名前:611 投稿日:2007/02/12(月) 10:45:56 ID:???
javascriptで作ったページだったのでこちらで
聞いてみました。
初心者スレで聞いてみます。

615 名前:Name_Not_Found 投稿日:2007/02/12(月) 11:27:59 ID:???
>>614
次に来る時は「エラーが出る最小限のソース」を作って貼るようにね。
それができないならここで質問しないでくれ。

616 名前:Name_Not_Found 投稿日:2007/02/12(月) 16:02:42 ID:???
var textareas = document.getElementsByTagName('textarea');

みたいにinput type の text だけ取得できる?


・・・、 の が()にみえて変な感じ。

617 名前:Name_Not_Found 投稿日:2007/02/12(月) 16:23:29 ID:???
もうちょっとわかりやすく質問してくれ

618 名前:Name_Not_Found 投稿日:2007/02/12(月) 16:32:45 ID:???
目的は

<input type="text" value="" name="" />

っていうのだけを取得することなんだけど、
var hoge = document.getElementsByTagName('input');

しかできないのかな、

<input type="button" value="" name="" />
まで取得しちゃうのが悩ましくて。

if ( this.getAttribute("type") == "text")
で試したけれども、数が多いと表示に時間がかかってしまう。うーん
なんかもっとシンプルにしたい!というところで挫折中。

619 名前:Name_Not_Found 投稿日:2007/02/12(月) 16:39:14 ID:???
>>616
できません。どっちかというとtype="button"を使うかわりに
<button>...</button>を使えばいいんでないの?

620 名前:Name_Not_Found 投稿日:2007/02/12(月) 16:46:10 ID:???
>>619
ありがとう〜 無理だったか。

<button>、そのとおりなのだけど、
既存サイトなもので書き換えができないのよ〜。

getAttributeより早そうな他の手段を考えてみるわー

621 名前:Name_Not_Found 投稿日:2007/02/12(月) 18:18:56 ID:???
誰の目にもDOM-XPathの使い所じゃないか。
しかし、DOM-HTMLでtypeプロパティを条件にグレップしても全然遅くないけどな。

622 名前:Name_Not_Found 投稿日:2007/02/12(月) 19:21:35 ID:???
遅くないなら結構なことだな。

623 名前:Name_Not_Found 投稿日:2007/02/12(月) 23:14:27 ID:???
>>621 なるほど、Geckoで動くね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var r, x, a = [];
if(document.evaluate) {
r = document.evaluate('//input[@type="text"]', document, null, 0, null);
while(x = r.iterateNext()) { a.push(x); }
for(var i = 0; i < a.length; ++i) { a[i].value = 'X'; }
}
}
</script>
</head><body>
<form action="#" onsubmit="return false"><div>
<input name="b0" type="button" value="Test" onclick="test()">
<input name="t0" type="text">
<input name="b1" type="button" value="Test"><input name="t1" type="text">
<input name="b2" type="button" value="Test"><input name="t2" type="text">
</div></form></body></html>

624 名前:Name_Not_Found 投稿日:2007/02/12(月) 23:39:12 ID:???
>>623
そういう風に使うならXPathResultをスナップショット系にするようにすれば
whileで配列に入れなくてもよくなるよ
あとXPath式を相対パスにしてコンテキストノードをdocument.bodyに絞ってevaluateした方が速い

625 名前:Name_Not_Found 投稿日:2007/02/13(火) 00:35:24 ID:cdRia9UT
javascript:if("AB".match(/(.*?)*?B/)){alert(RegExp.lastMatch);}
これページに埋め込むとFirefoxではクラッシュ。IEではメモリ使いまくりで大変なことになりますね。

(Firefoxでは1.5.0.3で修正されてますhttps://bugzilla.mozilla.org/show_bug.cgi?id=330352 )


626 名前:Name_Not_Found 投稿日:2007/02/13(火) 01:12:11 ID:???
(相対パス) && (コンテキストノード) // >>624が指摘済み
&&
( <input> も <input type="text"> も、DOM-HTML の type プロパティが "text" )

==> 'descendant::*[(local-name()="INPUT" or local-name()="input") and (not(@type) or @type="text")]'

627 名前:Name_Not_Found 投稿日:2007/02/13(火) 01:31:03 ID:???
擬似的に画面内にウィンドウを表示するようなフレームワークが
あったと思うんですが名前をど忘れしてしました

英語のサイトだったと思うんですが・・優しい人だれか教えてくだちい

628 名前:620 投稿日:2007/02/13(火) 01:55:11 ID:???
>>627
LightBox系かな?
http://fortysomething.ca/mt/etc/archives/005400.php
とかにまとまってたよ

>>626
それだとtype=text取得できる?・・・げっ、難しくて読めないけどぐぐって調べてみる

629 名前:627 投稿日:2007/02/13(火) 02:23:06 ID:???
>>628
ビンゴです!ありがとう!

今見たんですがlightboxは画像だけなんですね
LITBoxでエロいことしてみよう・・・

630 名前:Name_Not_Found 投稿日:2007/02/13(火) 03:05:08 ID:???
>>626
要素名が大文字かそうじゃないか(text/htmlかapplication/xhtml+xmlか)はXPath式の外で判定した方が
無駄がなくなるんじゃないかな
判定方法はルート要素が大文字かどうか調べるのでもdocument.xmlVersionの有無でも
Gecko拡張のdocument.contentTypeでも何でもいいけど

var n = document.documentElement.localName;
var input = (n != n.toUpperCase()) ? "input" : "INPUT";
var expr = 'descendant::*[local-name()="'+input+'"][not(@type) or @type="text"]';


631 名前:Name_Not_Found 投稿日:2007/02/13(火) 04:37:05 ID:???
>>630
// [... and ...] を JS に訳す。
Array.filter(document.body.getElementsByTagName('*'),
             function (e) {return e.localName == input && e.type == 'text';});// (!e.getAttribute('type') || e.getAttribute('type') == 'text')
// [...][...] を JS に訳す。
Array.filter(document.body.getElementsByTagName('*'),
             function (e) {return e.localName == input;})
     .filter(function (e) {return e.type == 'text';});// (!e.getAttribute('type') || e.getAttribute('type') == 'text')

* HTMLInputElement のリスト作成と保持、
* HTMLInputElement の個数分のループ増分、
のせいで、変数 input を作って省いた無駄が帳消しされる。

結局、微小な無駄を省くための無駄な努力を本気でやるなら、
IF (text/html) {
  IF (HTML) descendant::INPUT[...];
  ELSE IF (html) descendant::input[...];
} ELSE {
  descendant::*[... and ...];
}
のような分岐を JS で書くことになるかな。

632 名前:630 投稿日:2007/02/13(火) 08:04:41 ID:???
>>631
すごい勉強になった。ありがとう
これだけちゃんと知ってる人が居るんなら自分ももっと質問しようかな


633 名前:Name_Not_Found 投稿日:2007/02/13(火) 17:40:09 ID:PNob3ppY
JSで、rubyのString#scan()に相当するものはありますか。
input = ".....";
while (m = input.scan(/(¥w+)=(¥d+|¥w+.¥w+)/)) {
...
}
のようなかんじで、つづけてマッチングさせたいんです。


634 名前:Name_Not_Found 投稿日:2007/02/13(火) 21:03:59 ID:???
>>624
var loopCount = 20, doc = document, body = doc.body;
var t1 = new Date();
for (var i = loopCount; i--;) {
var r1 = doc.evaluate("//input[@type='text']", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
} // 180ms
var t2 = new Date();
for (var i = loopCount; i--;) {
var r2 = doc.evaluate("descendant::input[@type='text']", body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
} // 70ms
var t3 = new Date();
for (var i = loopCount; i--;) {
var r3 = doc.evaluate("/descendant::input[@type='text']", doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
} // 70ms
var t4 = new Date();

Firefox 2.0.0.1、<input type="text">が1024個含まれる文書で測定。
"//"は"/descendant-or-self::node()/"の省略形だから、
絶対パスか相対パスかなんてことよりも、ロケーションステップが
増えることのほうが問題になるんじゃないか。

あとtext/htmlな文書に対して、Firefoxだとlocal-name()で
大文字の要素名を返すが、Operaだと小文字の要素名を返すみたい。

635 名前:Name_Not_Found 投稿日:2007/02/13(火) 21:14:44 ID:???
function A(){
   this.property=0;
   this.method=function(){
      document.title=0;
      if(this.property<10){
         ++this.property;
         setTimeout('this.method()',1000);
      }
   }
}
var a=new A();
a.method();

動きません。
setTimeoutにthisを使う(使わない)方法はどうすりゃいいですか?

636 名前:Name_Not_Found 投稿日:2007/02/13(火) 21:26:11 ID:???
>>633
var input = "a=1 b=2 c=3";
var m;
while (m = /(\w+)=(\d+)/g.exec(input)) {
alert("lhs: " + m[1] + ", rhs: " + m[2]);
}

lhs: a, rhs: 1
lhs: b, rhs: 2
lhs: c, rhs: 3

>>635
散々既出。過去スレをsetTimeoutで検索しろ。その中からさらにthisでページ内検索しろ。

637 名前:635 投稿日:2007/02/13(火) 21:30:10 ID:???
分かりました。

638 名前:633 投稿日:2007/02/13(火) 21:35:36 ID:???
>>636
Thank you very much.
The point is 'g' option. Oh, I haven't known it.
I appreciate you very much and hope your HAPPY VALENTINE!

639 名前:Name_Not_Found 投稿日:2007/02/13(火) 21:40:46 ID:???
>>634
検索範囲を狭めるためには相対の方がいいと思うよ
あとその例で一番問題なのはロケーションステップの数もそうかもしれないけど
/descendant-or-self::node()/の「node()」じゃないかな

>あとtext/htmlな文書に対して〜
あ、そうなのか。ちゃんと確認しないとだめだな…

640 名前:636 投稿日:2007/02/13(火) 22:01:57 ID:???
>>638
ごめん、そのままだとIEで無限ループに陥る。
var re = /.../g;
while (m = re.exec(input))
というふうにいったん正規表現を変数に収めれば大丈夫。
(いったい何なんだ、この謎の挙動は。)

641 名前:636 投稿日:2007/02/13(火) 22:17:13 ID:???
>>638
あと言い忘れたがな、こちらとら明日も男ばかりの学校で独りだ。
もらえる相手はおろか、ともに慰めあう野郎すらいやしない。
ちくしょうちくしょうちくしょう、俺なんか馬に蹴られて死んじまえ。

642 名前:Name_Not_Found 投稿日:2007/02/13(火) 22:22:21 ID:???
キモイ...

643 名前:Name_Not_Found 投稿日:2007/02/14(水) 03:49:37 ID:???
>>641
友達を増やすんだ。
SE・PGじゃないほうな。

644 名前:Name_Not_Found 投稿日:2007/02/14(水) 09:02:54 ID:???
もらうだけだったら、どこか適当なサークルにでも入ればいいのに

645 名前:Name_Not_Found 投稿日:2007/02/14(水) 11:56:27 ID:???
義理は面倒なだけだぞ。
まぁ、出来れば避けたい人から本命貰うのは、更に面倒だが…。


俺なんか、高校の時キモイ男に貰ったからな('A`)

646 名前:Name_Not_Found 投稿日:2007/02/14(水) 13:28:48 ID:+oNAxdmd
if(choko!=true)alert('throw them away to the moon');

647 名前:Name_Not_Found 投稿日:2007/02/14(水) 14:13:14 ID:???
なんかソートプログラムが色々置いてるサイトとかないでしょうか?

648 名前:Name_Not_Found 投稿日:2007/02/14(水) 14:29:51 ID:???
>>647
課題なら自分でやれ。JavaScriptならsortメソッドあるから
自分でイチから書く必要なんて(課題以外には)ない。

649 名前:Name_Not_Found 投稿日:2007/02/14(水) 15:32:59 ID:???
>>648
http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-notes/sort_rows.html

650 名前:Name_Not_Found 投稿日:2007/02/14(水) 16:18:12 ID:???
>>649
それもイマイチで、洩れならまずデータをコピーで裏側に取って
整列した後replace1発にするけどね。まあともかく、遅くなきゃ
何でも(というか読みやすく書きやすいものが)いいんじゃないの。
それにそのサイトでも整列自体はArray#sortだよね。

651 名前:Name_Not_Found 投稿日:2007/02/14(水) 17:11:24 ID:???
<input type=text

の形のテキストボックスで、数字のみ入力可能にするにはどうしたいいのでしょうか?

652 名前:Name_Not_Found 投稿日:2007/02/14(水) 17:33:57 ID:???
(その INPUT 要素).onChange = function(){
if((その INPUT 要素).value.match(/[^\d]/)){
alert('ブルァァァァァァァァアアアアアアアア!!!!!');
(その INPUT 要素.value = '';
}
}

653 名前:Name_Not_Found 投稿日:2007/02/14(水) 17:35:08 ID:???
ミスった
4行目の括弧てきとーに閉じて

654 名前:Name_Not_Found 投稿日:2007/02/14(水) 17:39:05 ID:???
ごめん
1行目.replace('onChange', 'onchange')

655 名前:651 投稿日:2007/02/14(水) 18:27:30 ID:???
>>652
ありがとうございます。
style="format: number;"
見たいな感じでプロパティを与えることができれば便利かなとおもってました

656 名前:Name_Not_Found 投稿日:2007/02/14(水) 18:29:17 ID:???
なにそのCSSw

657 名前:Name_Not_Found 投稿日:2007/02/14(水) 21:08:15 ID:???
thisThread.attendant = "aho: inhibit";
とかしたい気分だな。

658 名前:Name_Not_Found 投稿日:2007/02/14(水) 22:44:56 ID:???
すいません、教えて頂きたいのですが、

selectメニューを選んだら、その項目名(option)の中身が、
テキストエリアにリアルタイムで出力するスクリプトを作成したいのですが、わかりません。

教えて頂けませんか。。

659 名前:Name_Not_Found 投稿日:2007/02/14(水) 22:51:15 ID:???
>>658
<select onchange="document.getElementById('hoge').value=this.options[this.selectedIndex].text">
<option>あああ</option><option>いいい</option><option>ううう</option></select>
<input type="text" id="hoge" value="">

660 名前:Name_Not_Found 投稿日:2007/02/14(水) 22:53:08 ID:???
>>659
ありがとうございます;


661 名前:Name_Not_Found 投稿日:2007/02/15(木) 04:55:18 ID:???
Seamonky (JavaScript-C 1.5 pre-release 6a 2004-06-09) をコマンドラインから使っています。
あるスクリプトから別のスクリプトを読み込むにはどうしたらいいですか。
PHPのinclude()みたいなことがしたいです。

あと、Seamonkeyでファイルの読み書きはできますか。
print()があるのはわかったんですけど、ファイルの読み書きがわかりませんでした。


662 名前:Name_Not_Found 投稿日:2007/02/15(木) 06:46:04 ID:???
SeaMonkeyって言うのはブラウザやらメーラーやらを統合したアプリケーションスイートだ。
おそらくあんたが使ってるのはSpiderMonkeyを使用したJavaScript Shell。
http://developer.mozilla.org/ja/docs/Introduction_to_the_JavaScript_shell

663 名前:Name_Not_Found 投稿日:2007/02/15(木) 13:54:18 ID:KvvUPIrG
http://pol.s263.xrea.com/lotr/

PukiWikiで作ってるサイトの左のメニューの項目が将来的に多くなりそうだから、javascriptを使ったプラグインを組み込んで、
一部折りたたんでマウスを上に持ってくると開いて、マウスを外すと閉じるようにしたい。

が、閉じる動作が上手くいかない。(なぜか一行目にしか反応してくれない)
何を言ってるのかわからないと思うから、左側のメニューの、詳細データ>戦闘>skillにマウスを重ねてみてくれ。

http://pol.s263.xrea.com/region.zip 改造前後のプラグインのソース
原型のプラグインの情報は"region.inc.php"でググれば出てくるけど多分たいしたもんはない。

えろいひと助けてください。お願いします。

664 名前:Name_Not_Found 投稿日:2007/02/15(木) 15:04:25 ID:???
>>663
丸痴乙。向こうでももう回答なしだな。

665 名前:Name_Not_Found 投稿日:2007/02/15(木) 15:37:23 ID:???
それはおもしろいりくつだ

666 名前:Name_Not_Found 投稿日:2007/02/15(木) 15:48:47 ID:???
>>663
あのね、折り畳んであって出て来るものを1行目のdivの中に入れる。
でないと折り畳んであって出て来たものにマウスを動かしたとたんに
1行目からは出てしまうでしょ。まあよくある間違いなんだけど。

667 名前:Name_Not_Found 投稿日:2007/02/15(木) 16:25:54 ID:KvvUPIrG
>>666
ありがとう!

668 名前:Name_Not_Found 投稿日:2007/02/15(木) 20:57:38 ID:???
質問です。
document.getElementById('x').innerHTML='A';
とやると、未知の実行時エラーになります。どんな障碍が考えられますか。
WindowsXPです。

669 名前:Name_Not_Found 投稿日:2007/02/15(木) 21:01:28 ID:???
>未知の実行時エラー
tableとかIEで操作できないタグのinnerHTML弄ろうとしてない?

あと俺のヘボった例だと、元のHTMLにタグの閉じ忘れが
あったりして、DOMツリー解釈がおかしくなってる時に
そのエラー出て悩まされた事あるお
……そんときはaタグの閉じ忘れだったよ。情けなくて泣きたくなったな

670 名前:Name_Not_Found 投稿日:2007/02/15(木) 23:11:58 ID:???
documentロード前に実行してるからじゃないの?

671 名前:Name_Not_Found 投稿日:2007/02/16(金) 08:25:54 ID:???
>>668
その現象が起きる最小限のサンプルを作って貼れ。それが嫌なら帰れ。
ここでありとあらゆる可能性を全部書かそうだって?ごう慢すぎ。

672 名前:Name_Not_Found 投稿日:2007/02/16(金) 09:50:13 ID:???
('x')
↑これに吹いたw

673 名前:Name_Not_Found 投稿日:2007/02/16(金) 14:39:52 ID:ojvKbQFW
document.writeを使ってjavascriptを書き出すとIEのみ意図したところから外れて表示されるのですが、
div内に収める方法はありますか?
ソースの上のdivがやりたい動作で、下のdivがIEで外れてしまう動作です。
(FirefoxとOperaでは外れないです)

<html>
<head>
</head>
<body>
<!-- 行いたい動作 -->
<div id="no_script" style="border:1px solid #000">
<h4 style="background-color: #eee;">アプラグ表示_scriptなし</h3>
<script type="text/javascript" src="http://aplug.nifty.com/panel/P002c" charset="utf-8"></script>
</div>

<!-- 意図しない動作 -->
<script type="text/javascript" charset="utf-8">
var str='';
str += '<div id="script" style="border:1px solid #000">';
str += '<h4 style="background-color: #eee;">アプラグ表示_scriptあり</h3>';
str += '<script type="text/javascript" src="http://aplug.nifty.com/panel/P002c" charset="utf-8"></';
str += 'script>';
str += '</div>';
document.write(str);
document.close();
</script>
</body>

674 名前:661 投稿日:2007/02/16(金) 18:37:45 ID:???
>>662
まったくおっしゃるとおりでした。ありがとう。
でもファイルを読み込む関数がないんですけど。
readline()はstdinを読むだけみたいだし。

675 名前:Name_Not_Found 投稿日:2007/02/16(金) 18:52:45 ID:???
js> help()
してみろ

676 名前:Name_Not_Found 投稿日:2007/02/16(金) 22:00:32 ID:???
>>673
わけわからん。超能力を駆使して答えてみた。

str += 'script>'; 
// str += '</div>';
document.write(str); 
document.close(); 
</script> 
<script>
document.write('</div>');
</script>

貼り付けたスクリプトが実行されるタイミングは
IEと他で微妙に違うみたいですね。


677 名前:Name_Not_Found 投稿日:2007/02/16(金) 22:54:55 ID:lJz2XHkD
フォームのチェックボックスが
<input name="check[]" type="checkbox" value="1">
<input name="check[]" type="checkbox" value="2">

こういう複数選択(配列代入)式の場合、どうやってそのnameを取得
すればいいのでしょうか?入力チェックなどで↓のようにしましたが、
上手くできませんでした。(アラートが出ない)

if(check[0].checked == false){
alert('選択して下さい');
return false;
}

678 名前:Name_Not_Found 投稿日:2007/02/16(金) 23:02:22 ID:???
特定のクラス名を持つp要素に囲まれたa要素を取得したいのですが、
idと違って上手く取得できません。
どうすればいいのでしょうか?

679 名前:Name_Not_Found 投稿日:2007/02/16(金) 23:03:25 ID:???
>>677
FAQ

680 名前:673 投稿日:2007/02/16(金) 23:30:38 ID:???
>>676
あれ?ごめんなさい。

> 貼り付けたスクリプトが実行されるタイミングは
> IEと他で微妙に違うみたいですね
そうです。このことが言いたかったのです。

一度script部分だけブラウザの中に読み込んでおいて、
他のHTMLタグを書き、全部書き終わった後でscriptを実行してしまうから
divの囲いから外れてしまうのかな?と。

IEだけなのでそれをどうにかする方法があれば教えてもらいたいのです。

681 名前:Name_Not_Found 投稿日:2007/02/17(土) 00:43:25 ID:???
nnerHTMLにすれば?

682 名前:Name_Not_Found 投稿日:2007/02/17(土) 00:50:14 ID:???
>>680
あれ?>>676じゃだめだった?

683 名前:Name_Not_Found 投稿日:2007/02/17(土) 04:55:34 ID:???
落ち着いて読んでないだけだろう。

684 名前:Name_Not_Found 投稿日:2007/02/17(土) 10:16:07 ID:s2RFsBvT
<script language="JavaScript">
<!--
vType = ["hidden","visible"];
function pdMenu(mName) { Menu = document.all[mName].style;
Menu.visibility = vType[Menu.visibility.indexOf("hidden") + 1]; }
// --></script>

変な挙動をします。。。以下htmlです

685 名前:Name_Not_Found 投稿日:2007/02/17(土) 10:26:45 ID:s2RFsBvT
<img src="img/gnav_01.jpg" onMouseover="pdMenu('Menu1')"><br>
<div id="Menu1" style="visibility:hidden" onMouseout="pdMenu('Menu1')">
<a href="#"><img src="img/menu_1_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_1_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_1_3.jpg" border="0"></a><br>
</div>
どなたかお助けください><
<img src="img/gnav_02.jpg" onMouseover="pdMenu('Menu2')"><br>
<div id="Menu2" style="visibility:hidden" onMouseout="pdMenu('Menu2')">
<a href="#"><img src="img/menu_2_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_3.jpg" border="0"></a><br>
</div>
<img src="img/gnav_03.jpg" onMouseover="pdMenu('Menu3')"><br>
<div id="Menu3" style="visibility:hidden" onMouseout="pdMenu('Menu3')">
<a href="#"><img src="img/menu_2_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_3.jpg" border="0"></a><br>
</div>
どなたかお助けください><

686 名前:Name_Not_Found 投稿日:2007/02/17(土) 10:27:51 ID:s2RFsBvT
間違えました。すいません。
<img src="img/gnav_01.jpg" onMouseover="pdMenu('Menu1')"><br>
<div id="Menu1" style="visibility:hidden" onMouseout="pdMenu('Menu1')">
<a href="#"><img src="img/menu_1_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_1_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_1_3.jpg" border="0"></a><br>
</div>
<img src="img/gnav_02.jpg" onMouseover="pdMenu('Menu2')"><br>
<div id="Menu2" style="visibility:hidden" onMouseout="pdMenu('Menu2')">
<a href="#"><img src="img/menu_2_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_3.jpg" border="0"></a><br>
</div>
<img src="img/gnav_03.jpg" onMouseover="pdMenu('Menu3')"><br>
<div id="Menu3" style="visibility:hidden" onMouseout="pdMenu('Menu3')">
<a href="#"><img src="img/menu_2_1.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_2.jpg" border="0"></a><br>
<a href="#"><img src="img/menu_2_3.jpg" border="0"></a><br>
</div>


687 名前:Name_Not_Found 投稿日:2007/02/17(土) 11:13:53 ID:???
質問はきちんと日本語で。「どういう意図のプログラムで」
「どのように動作しない/予定外の動作をするのか」書く。

688 名前:Name_Not_Found 投稿日:2007/02/17(土) 11:21:50 ID:???
Mr.673、プログラマに説明するならきちんとプログラマ語で
話さないと通じないぞ

689 名前:Name_Not_Found 投稿日:2007/02/17(土) 11:32:02 ID:???
ちょっと質問。
ttp://alpha.sourceforge.jp/diary/#d0216
で言われてる
> 自由関数が利用可能で、自由関数で済むならオブジェクトに結び付けない方がウマい。
って具体的にどういうこと?


690 名前:Name_Not_Found 投稿日:2007/02/17(土) 11:32:07 ID:???
IE専なコード貼られても手元のFxで試せないからなー。

691 名前:Name_Not_Found 投稿日:2007/02/17(土) 11:42:37 ID:???
>>689
自由関数という言い方は始めてだな。意味としてはメンバ関数
(メソッド)でない関数という意味で使ってるようだね。
'abcd'.substring(1, 3);
よりも
string_substring('abcd', 1, 3);
の方がいいってわけかね?洩れはメソッド記法の方が読みやすい
と思うけどね。読みやすさって大切だよー(また論争になるかな)。
ライブラリによるプロトタイプ汚染とかの問題はあるけどね。

692 名前:Name_Not_Found 投稿日:2007/02/17(土) 12:14:58 ID:???
>>691
dクス
言語によってこの辺変わってくるのかな?
二つの値を比較するとかだと、メソッドじゃない方がいいとも思うけど。

693 名前:Name_Not_Found 投稿日:2007/02/17(土) 12:43:43 ID:???
>>690
IEで試せばええやん

694 名前:Name_Not_Found 投稿日:2007/02/17(土) 12:47:26 ID:???
Windows使ってないもーん。まあ試したい人が試せばいいんでしょ。

695 名前:Name_Not_Found 投稿日:2007/02/17(土) 13:08:17 ID:???
>>694
まーそうだな。IE使いの俺は試す気ないし

696 名前:Name_Not_Found 投稿日:2007/02/17(土) 13:23:14 ID:???
document.body.currentStyle.borderTopWidth
の値をピクセル単位で取得したいのですが、どうすればよいでしょうか?
IE専でお願いします。

697 名前:Name_Not_Found 投稿日:2007/02/17(土) 13:32:07 ID:???
>>696
IE専だから試してないけど(手元にIEない)、その値を
適当な絶対位置指定の見えないdivのheightとかにでも
設定してそのdivのoffsetHeightを読み出すとかどう?

698 名前:696 投稿日:2007/02/17(土) 14:07:48 ID:???
>>697
なるほど!それでいってみます。

699 名前:Name_Not_Found 投稿日:2007/02/17(土) 16:20:06 ID:???
>>691
>可読性
string_method(...)
"...".method(...)
両者の何処に可読性の差があるんだ?

700 名前:Name_Not_Found 投稿日:2007/02/17(土) 17:07:15 ID:???
キタ…!

701 名前:Name_Not_Found 投稿日:2007/02/17(土) 17:08:19 ID:???
"自由関数" の検索結果 約 18 件中 1 - 10 件目 (0.20 秒)

702 名前:Name_Not_Found 投稿日:2007/02/17(土) 18:32:35 ID:???
17.toString(16);
とかやって泣きを見るわけだ

703 名前:Name_Not_Found 投稿日:2007/02/18(日) 16:26:01 ID:ab4sx2r3
formで送信する文字のエンコードを変更したいのですが、方法はありませんか。
IE6以上で対応できれば、大丈夫です。

704 名前:Name_Not_Found 投稿日:2007/02/18(日) 16:46:25 ID:???
>>703
ググったら色々出てきたぞ。
http://www.google.com/search?num=50&hl=ja&q=javascript+%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89&lr=lang_ja

705 名前:Name_Not_Found 投稿日:2007/02/18(日) 16:58:27 ID:ab4sx2r3
>>704
一番上のやつ?
やっぱ、document.charsetでやるしかないのか…

706 名前:Name_Not_Found 投稿日:2007/02/18(日) 17:19:08 ID:???
XMLHttpRequestのsetRequestHeaderで指定できなかった?

707 名前:Name_Not_Found 投稿日:2007/02/18(日) 17:53:58 ID:???
XMLHttpRequestでやると全部自前で用意になるからなー。

708 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:22:09 ID:Ae2jF3Gk
Javascriptでボタンを置き換えた際にFirefox環境においてSubmitされません。
TABLEタグの外にFORMタグを置くと正常動作しますが、プログラム側で
繰り返し処理をしてFORMがTRごとに生成されるようにしたいので
TABLEタグの外にできれば置きたくないです。
FORMが一つだとプログラムが複雑になってしまうので。
これに関する簡単な回避方法など知ってる人いたら教えて下さい。

ソースは下記です。


709 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:23:30 ID:Ae2jF3Gk
<html><head><SCRIPT language="JavaScript">
<!--
function pop(){
elem = document.getElementById('666');
elem.innerHTML = '<input type="submit" value="このボタンがsubmitされない" />';
}
function sub(){
alert("サブミット確認ダイアログ");
}
// -->
</SCRIPT></head><body><table>
<form method="POST" onSubmit="sub();">
<tr>
<td align="center" id="666">
<input type="button" onclick="pop()" value="クリックするとボタン置き換え" />
</td>
<td align="center">
<input type="submit" value="クリックするとSubmit" />
</td>
</tr>
</form>
</table></body></html>

710 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:26:19 ID:???
数字から始まるidはイリーガルでは…

711 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:27:12 ID:???
>>708
そんな間違った html で動くわけなかろう

712 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:30:56 ID:???
>>709
これじゃ駄目なの?

<html><head><SCRIPT language="JavaScript">
<!--
function pop(elem){
elem.type = "submit";
elem.value = "このボタンがsubmitされない";
}
function sub(){
alert("サブミット確認ダイアログ");
}
// -->
</SCRIPT></head><body><table>
<form method="POST" onSubmit="sub();">
<tr>
<td align="center" id="666">
<input type="button" onclick="pop(this)" value="クリックするとボタン置き換え" />
</td>
<td align="center">
<input type="submit" value="クリックするとSubmit" />
</td>
</tr>
</form>
</table></body></html>


713 名前:Name_Not_Found 投稿日:2007/02/19(月) 01:56:05 ID:Ae2jF3Gk
>>710
そうでしたね。
これは簡略化したHTMLで、本当はテキスト+IDなので大丈夫です。

>>711
ええっと、どこらへんが間違ってるんでしょうか。
<td align="center">がまずかったかな・・・。
それともやっぱTABLEタグとFORMタグの構造の位置関係かな。
TRと同じ数だけFORMを作りたいんですよねー。
その時点でHTML的にアウトなのかな。だからFirefoxでパスしないのかな。
とはなんとなく思ってるんですけどねえ。でも不便じゃないですか、それ。

>>712
それだと挙動が変わってしまいますね。クリックした途端Submitされちゃう。
あとこれはシンプル化したHTMLなので、本番はinnerHTMLにもっと他の内容も
突っ込まないといけないんですよね・・・・。
なので単純にボタン要素を書き換えるというわけではないのです。
分かりにくくて申し訳ない。

714 名前:Name_Not_Found 投稿日:2007/02/19(月) 02:09:23 ID:Ae2jF3Gk
ぶっちゃけこれインライン編集なんですよ。もうちょっと論点明確にするため書き換えてみました。
<html><head><SCRIPT language="JavaScript">
<!--
function pop(){
elem = document.getElementById('abc');
elem.innerHTML = '<input type=text /><input type=submit value=このボタンが無効になる />';
}
function sub(){
alert("サブミット確認ダイアログ");
}
// -->
</SCRIPT></head><body>
<table>
<form onSubmit="sub();">
<tr>
<td id="abc">
<a href="#" onclick="pop()">クリックするとボタン置き換え</a>
</td>
<td>
<input type="submit" value="クリックするとSubmit" />
</td>
</tr>
</form>
</table></body></html>

715 名前:Name_Not_Found 投稿日:2007/02/19(月) 03:22:41 ID:???
なるほど、後から動的に追加したsubmitではFxで送信できないな。
そういう仕様だっけ?

716 名前:Name_Not_Found 投稿日:2007/02/19(月) 03:36:53 ID:Ae2jF3Gk
>>715
それもTable内にFormがある場合だけなんですよね。
レンダリングの際にTableタグが壁になってるのかな・・・

717 名前:Name_Not_Found 投稿日:2007/02/19(月) 03:49:34 ID:???
>>716
うん間違った。仕様じゃなかった。tableタグがいかんようやね。
xmlhttprequestでやったら送れたけど。

718 名前:Name_Not_Found 投稿日:2007/02/19(月) 05:08:01 ID:???
tableじゃなくて、table直下のformが駄目ってのは基本だろ。

719 名前:Name_Not_Found 投稿日:2007/02/19(月) 05:30:45 ID:???
>>717
submitをXMLHTTPREQUESTでやるってことですか?
AJAXって使ったことないんでよかったら教えて下さい。

>>718
直下じゃなくてもダメなんですよねぇ。いろいろ試したんですが。


720 名前:Name_Not_Found 投稿日:2007/02/19(月) 05:54:13 ID:???
あっそういえばnameが無いのは無効ってのもあったかな?

721 名前:Name_Not_Found 投稿日:2007/02/19(月) 08:14:54 ID:???
>>718-719
table要素の直下にform入れたらinvalidだ。trの直下にも駄目。
validなHTMLが書けるようになってから来い。色々試したのが
全部デタラメなんだろ。validなHTMLでなおかつ動かない最小の
例を作って来たら見てもいいけど、アンタにはvalidが分からない
から作れないと見たね。

722 名前:Name_Not_Found 投稿日:2007/02/19(月) 08:39:22 ID:???
>>721
TDの中に入れたら動きましたけどねぇ。
でもそれだと改行問題のハックにならないのはまだいいとしても、
構造的におかしいんですよね。だってその場合全ての
TD内部にFORMを書かないといけなくなり、hiddenの変数なんかも
全て2重に書かないといけなくなりますからねえ。

何がValidで何がInvalidかは一応分かってるつもりです。
でもプログラマとしてはそんな事実際どうでもいいんですよ。
できればHTML壊したくないですけど効率的に書く方が重要な場合もあります。

> validなHTMLでなおかつ動かない最小の例

この場合そんな例作れるんですか?TABLEの外にFORM置くかTDの中に置くか
どっちかしかないんじゃないですか。どっちでもスクリプト自体は動きますよ。
動いちゃ論点が明確にならない。そのためにはJSPもつけて説明しないと
いけなくなるし、そうなると板違いになります。

まぁそういったわけであのようなHTMLで質問したわけなんですが。

ValidなHTMLじゃないとJavascriptの質問はしちゃいけないんですか。
厳しいですねえ。なんかハックはないもんですかねえ。
プログラム的に重複するのが嫌なんですよ。それに比べればValidityぐらい・・


723 名前:Name_Not_Found 投稿日:2007/02/19(月) 08:58:19 ID:???
>>722
だからTABLEやTRの直下にFORMがinvalidでありブラウザはそれを無視してもよい、
もしくは無視すべきであるのが「仕様」ってことだよ。
プログラマなら仕様ぐらい見れ。仕様外でも動くことがあるのはたまたまかバグ。

<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT TR - O (TH|TD)+ -- table row -->


724 名前:Name_Not_Found 投稿日:2007/02/19(月) 09:15:25 ID:???
>>723
んーっとじゃぁこういう場合普通はどういう解決法をとるんですか?
HTMLの仕様って元々なんか無意味な制限だらけじゃないですか。
しかもブラウザがそれ無視するんなら厳格に仕様守る意味は何かと。
要は動けばいいんですよ。できれば重複無しで。HTMLの仕様なんてどうでもいい。
やっぱ俺プログラマ向いてない?

725 名前:Name_Not_Found 投稿日:2007/02/19(月) 09:30:39 ID:???
>>724
正直向いてない。
そのどうでもいい仕様に従って作られてるブラウザ上でのプログラムだろうが。
動きゃいいが、なぜ動くのか動かないのか理解しないなんてデバグもままならん。

<tr><form><table>...</table></form></tr>とでもしとけ。
どうせ各カラムの幅をpxで固定とかしてんだろ?
それが嫌なら値取ってxmlhttprequestなり
別んとこにform生成してhiddenつっこむなり。

726 名前:Name_Not_Found 投稿日:2007/02/19(月) 09:43:34 ID:???
うーん。
なぜ動かないかは勿論理解したいけど、仕様の問題と分かったならそれを超えたいと思う。
業務に従事するプログラマなら普通の発想では。。。と思いますが。知りたいのはハック。

> どうせ各カラムの幅をpxで固定とかしてんだろ?

デザインは俺の仕事じゃないんで他の人がそこらへんはやります。

> それが嫌なら値取ってxmlhttprequestなり
> 別んとこにform生成してhiddenつっこむなり

はじめからこういった打開策について尋ねていたんですがねえ。
これもうちょい詳しく教えてもらえませぬか → 別んとこにform生成してhiddenつっこむなり


727 名前:Name_Not_Found 投稿日:2007/02/19(月) 09:50:33 ID:???
nameの付いてないinputは送信されないってのが原因じゃないの?

728 名前:Name_Not_Found 投稿日:2007/02/19(月) 10:05:03 ID:???
次だ次。

729 名前:Name_Not_Found 投稿日:2007/02/19(月) 10:10:07 ID:???
簡単にいえば、THやTDの中にform入れるのはvalidだからそう
すればいいのではと。誰かそう言ってやればいいのにね。でも
いちいちバグるたびにここでvadidかどうか教えてもらうんじゃ駄目ぽ。
自分で勉強する気のない奴に教える回答者などない。というのがこのスレ。

730 名前:Name_Not_Found 投稿日:2007/02/19(月) 10:18:38 ID:???
>>729
> 簡単にいえば、THやTDの中にform入れるのはvalidだからそうすればいいのではと。誰かそう言ってやればいいのにね。

それだと問題あるからハックがないのかなぁと聞いてるわけなんですが。

> でもいちいちバグるたびにここでvadidかどうか教えてもらうんじゃ駄目ぽ。

そんなことはした覚えがないんですが。


731 名前:Name_Not_Found 投稿日:2007/02/19(月) 10:21:46 ID:???
マージンも消せない問題って何?

732 名前:Name_Not_Found 投稿日:2007/02/19(月) 11:15:14 ID:???
>>726
<tr><td><input name="a"></td><td><input name="b"></td><td><input onclick="hoge(this)"></td></tr>
function hoge(elem) {
 elem.parentNode.parentNode(=<tr>) 以下からinput選んで値を取得
 documentのどっかにformを生成し、取得した値で<input hidden>を作りsubmit
}
あとはべんきょしれ。
ハックなんぞ「正しい」のがなにかわかってからだ。

733 名前:Name_Not_Found 投稿日:2007/02/19(月) 13:30:27 ID:???
テンプレのまとめサイトとか死んでるものが多いので
本を購入して勉強しようと思うど素人です。

いんちき表記などない、王道の書き方にのっとった
超初心者用の勉強本でお勧めありませんか?

734 名前:Name_Not_Found 投稿日:2007/02/19(月) 13:38:20 ID:???
ないよ

735 名前:Name_Not_Found 投稿日:2007/02/19(月) 13:57:18 ID:???
以下の外部ファイルを読み込んで、さらに外部のjavascriptを表示しようと思っているのですが、
実行するとページの読み込みが完了しません。(/* */部分のコメントを外すと再現できます。)
script.srcに問題点があるのでしょうか?

// 全体を囲むdivの作成
var str = '<div id="content"></div>'
document.write(str);
document.close();

var div = document.createElement('div');
var h4 = document.createElement('h4');
var text = document.createTextNode('テスト');
// h4 に テキストを追加
h4.appendChild(text);
var span = document.createElement('span');
span.id = 'span';
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
/* // ここのコメントを外すと読み込みが完了しない
script.src = '外部のjsファイルのURL';
*/

// span に script をつける
span.appendChild(script);
// div に h4 をつける
div.appendChild(h4);
// div に span をつける
div.appendChild(span);

// 全体を囲む contentのdiv に作ったdivをつける
document.getElementById('content').appendChild(div);

736 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:27:15 ID:???
>>722
俺もJSPやC#やPHPなどの担当で
どっちかというと、間違いなく期待の動作をすればvalidなHTMLとかドウデモイイほうだったが

ブラウザとかを作る側になると、間違ったコーディングしてる多数のサイトの為に
W3Cとかの標準準拠だけじゃなくIEのようなファジーっぽいことする必要が出るので
そういう考えはIT業界の悪循環になるとは気づいたよ。

だからと言ってHTMLを厳格な言語にすると、今のような発展はなかったかもしれんし
かなり難しい問題だとは思うが

737 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:31:03 ID:EUWOo7JN
インプットに入力した数字をJavaScriptで出力したいのですが、
どこを修正したらよろしいでしょうか?

<form>
<input type="text" name="num" onChange="document.Change.ChangeNum">

<script LANGUAGE="JavaScript">
<!--
function document.Change.ChangeNum(){
document.write("num");
}
-->
</form>

738 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:35:13 ID:???
tdのinnerHTMLを書き換えるのは一般に危うい。
tdの中にdivを入れて、そのdivのinnerHTMLを書き換えたらどうかな。

739 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:45:37 ID:???
>>738
試してみたけどだめだ…やっぱtr直下のformでsubmitボタン
を取り替えるのってだめなんだね。どっちかというと、ボタンを
取り替えるんじゃなくてonclickハンドラの中身をsubmit()に取り替える
のがいいと思うんだけど、ボタンごと取り替えないと駄目なのかねえ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(id) {
document.getElementById(id).innerHTML = '<input type="submit" value="X">';
}
</script>
</head><body>
<table border="2" summary="test"><tbody>
<tr><form action="#"><th><input type="text" name="a"></th>
<th><div id="d0"><input type="button" onclick="test('d0')" value="Y"></div>
</th></form></tr>
<tr><th colspan="2"><form action="#"><input type="text" name="b">
<div id="d1"><input type="button" onclick="test('d1')" value="Y"></div>
</form></th></tr>
</tbody></table></body></html>

740 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:46:28 ID:???
>>719
うぃ。とりあえずFx専用。
function posts(){
var o;
o=new XMLHttpRequest();
o.onreadystatechange=function(){
if(o.readyState==4){
alert('送信完了');
}
}
o.open('post','test.php');
o.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
o.send('key='+document.getElementById('abc').value);
}
function replace(){
document.getElementsByTagName('td')[0].innerHTML='<input id="abc" type="text"><input type="submit" value="このボタンが無効になる" onclick="posts();return false;">';
}

<table>
<form>
<tr>
<td><a href="#" onclick="replace();return false;">書き換え</a></td>
</tr>
</form>
</table>

741 名前:Name_Not_Found 投稿日:2007/02/19(月) 14:46:58 ID:???
>>737
テンプレを熟読してからまたおいで。

742 名前:737 投稿日:2007/02/19(月) 16:48:48 ID:EUWOo7JN
ありがとうございます。
おかげで解決しました。

743 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:25:11 ID:???
つうか、CSS書きがIE5.xは切捨てだとか言ってのけるほどCSSが普及した時代なのに、<form>を不正な位置に書いてはっく(笑)などとほざいている外基地など放って置けば?どうせ計算機関連全ての面でスーパー初心者だろうからw

744 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:26:53 ID:???
>>740
初心者のおまえが何をはしゃいで回答してんだ?FORM要素の出現位置がおかしいだろ外基地。

745 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:33:37 ID:???
ううむNN4.xとかの時代を思い出すな

必ずtable直下にformタグ置いてたNさん、今どこでどうしてるんだろ

746 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:34:53 ID:???
>>733
>いんちき表記などない
これを望むと、>>734の言うとおり、ない。
逆にこれだけはやめておけというものならいくらでも挙がるだろう。
最近立ち読みした中で酷かったのは某ムック本だな。JS歴数年のやつらが偉そうに執筆してて失笑したw

747 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:41:54 ID:EUWOo7JN
たびたびすみません。
以下の書き方だと、ボタンを押すとJavaScriptで処理した内容しか表示されません。
<html>から</html>上から下まで表示するにはどうしたらよろしいのでしょうか?

<html>
<head><title>テスト</title></head>
<body>
<p>JavaScriptの実行テスト</p>

<script language="javascript"><!--
function setItem() {
int = num.value
for (i = 0; i < int; i++) {
document.writeln("テスト<br>");
}
}
// --></script>

<br>表示する回数<input type="text" name="num"><br>
<input type="button" name="button" value="OK" onClick="setItem()">

</body>
</html>

748 名前:Name_Not_Found 投稿日:2007/02/19(月) 19:46:45 ID:???
>>747
>>3のQ4


749 名前:733 投稿日:2007/02/19(月) 19:59:23 ID:???
>>734
>>746
やはり、いんちき表記引っかかるんですねorz

まあまあ許容できる範囲で、基礎固め用っていうのはありませんか?

750 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:15:50 ID:???
とりあえずプログラミング初心者ならJavascriptはお勧めしない
PythonかLisp超お勧め

751 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:20:54 ID:???
過去スレ読んでたら、doctypeの人って凄い時期から居るんだな。
なんか可哀想になってきた。
病気でも患ったのかな。

752 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:31:16 ID:???
PHPしかやったことないけど、Javascriptってどうよ?

753 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:35:29 ID:???
どうとも言えんな。
PHP使いにとって知っておいて損はないと思うけど。
javascriptだけじゃ所詮オモチャだし。

754 名前:651 投稿日:2007/02/19(月) 20:40:01 ID:???
webProg作るときに、フォームの内容をJSでチェックする手法はなかなかいいぞ。
もちろん鯖側でも同じチェックをしなければならないがな。
またテキストボックスなどでエンターを押しただけでフォームが投稿されてしまうデフォルトの不親切仕様も避けることができるし、
いちいち必須項目未記入などで何度も送信するのもユーザー側にはしんどいので、JSでさくっとチェックされると楽しい

755 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:40:01 ID:???
>>751
<!DOCTYPE ご心配頂きどうも。でも単なる趣味ですからご心配なく。>

756 名前:Name_Not_Found 投稿日:2007/02/19(月) 20:55:11 ID:???
>>749
このスレでよく挙げられているのはオライリーのサイ本とMyUNIXだね。
役に立つ書籍スレあたりでも紹介されることがある。

757 名前:Name_Not_Found 投稿日:2007/02/19(月) 21:15:25 ID:???
>>732
>ハックなんぞ「正しい」のがなにかわかってからだ。
もっともですが、もう正しいのが何か分かったからいいじゃない。
あと、そのやり方だとプログラム的に無駄が多くなりすぎるのでダメでした。

>>736
確かに。正論ですな。

>>738
最初はそうやってたんだけど、ここに晒す時に簡略化しました。

>>739
わざわざ試してくれてありがd

>>740
サンクス。これを同期で送れば普通と同じ動作になるんですかね。

>>743
HTMLは本業じゃないんでねえ。ここはJavascriptのスレッドだし、それじゃダメかなあ。
FORMを不正な位置に書くとかCSS書きがどうのこうのは分かるんだけど
単にプログラムが効率的じゃなくなるっていうだけですよ。
そんな欠陥仕様のHTMLとはあんまりお近づきになりたくないですねえ。

>>744
740が初心者かどうかは置いといて、この場合にFORM要素の位置がおかしいのは
俺の要求がそうだったからであって740の責任じゃねーだろーが。アホか。
ここで740を外基地呼ばわりすんのはおかしいだろ。俺は外基地だけど740は
ただの親切なおっさんだろーが。親切なおっさんも俺みたいな外基地に協力しただけで
外基地扱いか?そんなんナチスドイツのやり方だろーが。アホか、氏ね。氏ね、独裁者。


758 名前:Name_Not_Found 投稿日:2007/02/19(月) 21:27:25 ID:???
phpとの連携のためにじゃ場スクリプトおぼえてみます。ありがとうございました。

759 名前:Name_Not_Found 投稿日:2007/02/19(月) 21:39:42 ID:???
>>757
効率も無駄も糞もあるかよ。コピペできなくて匙投げてんだろ。
一番無駄がなくわかりやすいのは全体送って鯖側で対象行のみ処理だ。
>>740 だって相当簡略化されてるのは理解してるか?
同じようなことをしないと効率的な処理はできんぞ。

760 名前:Name_Not_Found 投稿日:2007/02/19(月) 22:01:02 ID:???
>>759
もう諦めてTDの中に書こうかなあ。
コピペできなくて匙投げる?何の話でしょう?いつ投げました?
740に関してはIE対応してないとかそういうことを言ってるのかな?
あとはScriptタグがないとかHTMLタグがないとかw

あとプログラムの効率も大事ですけど、コード量減らしたいってのもあるし。
むしろそっちの方が大事かも

761 名前:Name_Not_Found 投稿日:2007/02/19(月) 22:01:25 ID:???
と思ったらtbody直下にformか。
form.innerHTML -> "", form.firstChild -> null なのにsubmitされるとは気持ち悪ぅ…

762 名前:Name_Not_Found 投稿日:2007/02/19(月) 22:28:01 ID:???
なるほどなっと。
<table><tbody><form><tr></tr></form></tbody></table>はDOMとしては
<table><tbody><form></form><tr></tr></tbody></table>と組み換えられる。
あとから<tr>に<input submit>を加えてもDOMtree上では親フォームがないので無効っと。

<tr>内の<input>の.formはたまたま組み替え前に参照設定されてるだけで、
いつ動作が変わることやらってな危ない橋。FxでもIEでも。

763 名前:Name_Not_Found 投稿日:2007/02/19(月) 22:57:50 ID:???
それで、なんでボタン全体を差し替える必要があるのか聞かせてホスイ。
最初からボタン2つ入れておいて見える見えないだけ切替えればうまく
動くものと予想されるけどそれはどうよ。

764 名前:749 投稿日:2007/02/19(月) 23:08:17 ID:???
>>756
サイ本って何て思ったら本当にサイw
とりあえずその2冊覘いて来ます。
ありがとうございました。

765 名前:Name_Not_Found 投稿日:2007/02/19(月) 23:25:08 ID:???
>>762
おお!!なるほど。参考になります。

>>763
714見てもらえると分かると思うんですが、ボタンの置き換えじゃなくていいんです。
インライン編集なのです。ユーザーがボタンを押すかリンクをクリックするかなんらかのアクションを
起こすとそこに編集用ボックスとボタンが現れて該当文字列を編集できるようにするということです。


766 名前:Name_Not_Found 投稿日:2007/02/19(月) 23:33:00 ID:???
>>765
だったらその現れるものを最初からHTMLに書いておいて、ただし
非表示にしておけばいいんではないの?

767 名前:651 投稿日:2007/02/20(火) 08:19:55 ID:???
>>766
DQ4の気球と同じ手法だな

768 名前:Name_Not_Found 投稿日:2007/02/20(火) 08:43:20 ID:???
>>766
頭よすぎ!

769 名前:Name_Not_Found 投稿日:2007/02/20(火) 08:44:24 ID:???
>>768
窓アプリでは基本的手法なんだけどな

770 名前:Name_Not_Found 投稿日:2007/02/20(火) 08:53:27 ID:???
インライン編集 -> 淫乱編集 -> ツンデレメガネキャリアウーマン=漏れの大好物

771 名前:Name_Not_Found 投稿日:2007/02/20(火) 08:56:22 ID:???
>>770
お前とは趣味が違うようだ。

772 名前:Name_Not_Found 投稿日:2007/02/20(火) 12:11:21 ID:rDXK+qHy
radioボタンのチェックをJavaScriptで外したいんですが
inputのname指定で外す方法はありますか?

773 名前:Name_Not_Found 投稿日:2007/02/20(火) 12:29:12 ID:???
ラジオボタンって、どの選択肢も選択しない選択肢を用意しておくもんじゃね?

774 名前:Name_Not_Found 投稿日:2007/02/20(火) 13:15:34 ID:???
>>772 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.forms.f0.elements.r0;
for(var i = 0; i < a.length; ++i) a[i].checked = false;
}
</script>
</head><body>
<form name="f0" action="#"><p>
<input type="radio" name="r0" value="1" checked>1
<input type="radio" name="r0" value="2">2
<input type="radio" name="r0" value="3">3</p></form>
<p><button onclick="test()">Test</button></p>
</tbody></table></body></html>

775 名前:735 投稿日:2007/02/20(火) 13:21:31 ID:???
>>735はどなたかわかりませんか?
script.srcをコメントアウトすると問題なくて、script.srcを入れると読み込みが完了しないので、
動的にjavascriptを組み込む時に何か方法があるのかな?と思ったのですが。
質問の仕方がまずい?

776 名前:772 投稿日:2007/02/20(火) 13:30:31 ID:rDXK+qHy
>>773
見た目の問題なんです><

>>774
ありがとうございます。
私の質問の仕方が悪かったのですが
その場合のf0とr0を引数にして動作させたかったのです。

で、色々やってたら解決しました(つづく

777 名前:Name_Not_Found 投稿日:2007/02/20(火) 13:35:53 ID:???
>>776 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(form, name) {
var a = document.forms[form].elements[name];
for(var i = 0; i < a.length; ++i) a[i].checked = false;
}
</script>
</head><body>
<form name="f0" action="#"><p>
<input type="radio" name="r0" value="1" checked>1
<input type="radio" name="r0" value="2">2
<input type="radio" name="r0" value="3">3</p></form>
<p><button onclick="test('f0','r0')">Test</button></p>
</tbody></table></body></html>

778 名前:772 投稿日:2007/02/20(火) 13:37:18 ID:rDXK+qHy
とりあえず2種類の方法で解決しました。

function reset_radio1(elemName){
var r = document.getElementsByName(elemName);
for(i=0;r.length>i;i++){
r[i].checked = false;
}
}

function reset_radio2(formName,elemName) {
var r = document.forms.item(formName).elements.all.item(elemName);
for(i=0;r.length>i;i++){
r[i].checked = false;
}
}

ブラウザ対応を考えると、どちらがいいんでしょうか?

779 名前:772 投稿日:2007/02/20(火) 13:42:31 ID:rDXK+qHy
>>777
それだとインデックス番号じゃないと動作しなくて、それで悩んでたんです
即レスありがとうございます

780 名前:Name_Not_Found 投稿日:2007/02/20(火) 13:45:32 ID:???
>>775
一回ローカルで試してみたけど何も問題なかった

781 名前:Name_Not_Found 投稿日:2007/02/20(火) 13:50:39 ID:thU9xlSu
getElementById('idName')って考えた奴、とゆーか、決めた連中。
センスぜろ。

782 名前:Name_Not_Found 投稿日:2007/02/20(火) 14:16:49 ID:???
>>775
漏れも再現できん
url 間違ってたとかいうオチだったら漏れ泣く

783 名前:Name_Not_Found 投稿日:2007/02/20(火) 14:50:36 ID:???
>>779
ん?まさに >>777 で名前指定して動かしているじゃん。

784 名前:Name_Not_Found 投稿日:2007/02/20(火) 14:58:26 ID:???
>>775
つーか、>>673 == >>735
だよな?>>676で回答したんだが、アレはどうなったんだよw
できなかったんなら「できなかった」くらい書けと

785 名前:Name_Not_Found 投稿日:2007/02/20(火) 15:41:49 ID:???
>>780,>>782,
こっちだとやはり読み込み完了しない。。
周りの人にも一旦試してもらいます。
jsは実行できてるからurl間違ってるとかではないと思うのだけど、そうだったごめんなさい。
試していただいてありがとうございます。

>>784
ごめんなさい!>>682にレスした気でいた。できました。ありがとうございます
htmlファイルに<script>でいけたので、
外部ファイルで同じことを実現できるかやっていて>>735になりました。
>>676のパターンみたく、
document.write('<scirpt....1>');
document.write('<scirpt....2>');
って順番に書くと実行できることまで確認できました。
それで、「DOMだとできないのか?」と思い、>>735と。

786 名前:Name_Not_Found 投稿日:2007/02/20(火) 16:30:28 ID:???
>>785
「JavaScript 動的ロード」でググればいくらでもサンプルあるだろうに

787 名前:735 投稿日:2007/02/20(火) 16:42:23 ID:???
たびたびすみません。
試してみたところ、IEとOperaに関しては表示されていました。
ただ、Firefoxの読み込みが完了しません。
windowsXPとFirefox2.0の組み合わせです。
そのままのコードを以下に貼ります。
まず、htmlファイルです。
(test.jsは次のレスで貼ります。)
>>786
その辺のサイトでもDOMでやってるサイトがあるのですけど、なぜか上手くいかずなのです。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script id='inlinetest' type="text/javascript" src="test.js" charset="utf-8"></script>
</body>
</html>


788 名前:735 投稿日:2007/02/20(火) 16:43:06 ID:???
test.js

// 全体を囲むdivの作成
var str = '<div id="content"></div>'
document.write(str);
document.close();

var div = document.createElement('div');
div.id = 'div';
var h4 = document.createElement('h4');
h4.id = 'h4';
var text = document.createTextNode('テスト');
h4.appendChild(text);
// span
var span = document.createElement('span');
span.id = 'span';
//
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'Shift_JIS';
script.src = 'http://www.blog-parts.net/chofu/trash/?key=1';

// span に script をつける
span.appendChild(script);
// div に h4 をつける
div.appendChild(h4);
// div に span をつける
div.appendChild(span);

// 全体を囲む contentのdiv に作ったdivをつける
document.getElementById('content').appendChild(div);


789 名前:Name_Not_Found 投稿日:2007/02/20(火) 17:19:27 ID:???
参照先のjsがdocument.writeを使用してるんだから
無理やりDOM使ったって意味ないだろ。

790 名前:Name_Not_Found 投稿日:2007/02/20(火) 17:53:40 ID:???
>>787
どうでもいいけど、script要素を追加するのはhead内でいいんじゃないの?
>>789が指摘してるように、呼び出し先がdocument.writeするから特定の要素内に置きたいってことなら
document.write("<script src='〜'><\/script>");
で終わりでしょ

791 名前:Name_Not_Found 投稿日:2007/02/20(火) 18:51:16 ID:???
>>790
>>676を外部scriptファイルにすることになるので、もっとすっきりやる方法もあるのかな?と
思ってDOMを試してみたんです。

>>789
ごめんなさい。
> 参照先のjsがdocument.writeを使用してるんだから
この内容がわからないのですが、「無理やりDOMで挿入はできるけど、やってはいけない」ということですか?
document.writeして作った要素だからDOMは使えないと言うことですかね?

792 名前:Name_Not_Found 投稿日:2007/02/20(火) 18:59:08 ID:???
ところでdocument.close()が気になるのは俺だけか?

793 名前:Name_Not_Found 投稿日:2007/02/20(火) 20:05:12 ID:???
>>791
IEでonloadしたあとのbody.innerHTMLを表示してみ。
吐き出されたソースがdivの中に収まってないから。
documet.writeが出力する位置はDOMと関係ないんだよ。

794 名前:Name_Not_Found 投稿日:2007/02/20(火) 20:19:45 ID:???
>>792
document.close()って必要ない?
>>793
<body onload="alert(document.getElementsByTagName('body')[0].innerHTML);">
を追加して実行してみました。
確かにscriptの実行結果が<div id="content"></div>から抜けてしまってる。
結局scriptが後から実行されてしまうのですね。
説明ありがとうございます。

795 名前:Name_Not_Found 投稿日:2007/02/20(火) 20:48:54 ID:???
>>794
>>3のQ4

796 名前:735 投稿日:2007/02/20(火) 20:52:29 ID:???
>>795
申し訳ない。。。
(3)DOMでノード挿入
をやっているつもりでした。
初めにdocument.writeやってる段階で意味がなかったのですね。。

797 名前:Name_Not_Found 投稿日:2007/02/21(水) 00:53:44 ID:EMLAFgrP
desinModeでテーブルを挿入する方法ってありますか?

798 名前:Name_Not_Found 投稿日:2007/02/21(水) 02:20:45 ID:???
desgin

799 名前:Name_Not_Found 投稿日:2007/02/21(水) 02:44:21 ID:???
desing

800 名前:Name_Not_Found 投稿日:2007/02/21(水) 03:21:31 ID:???
デブ

801 名前:Name_Not_Found 投稿日:2007/02/21(水) 06:02:52 ID:???
>>797
command identifier として存在しなければ無いだろう。
colSpan と rowSpan がちょっとやっかいだけど実装するしかないんじゃないかな。

802 名前:Name_Not_Found 投稿日:2007/02/21(水) 08:58:54 ID:???
design アフォ

803 名前:Name_Not_Found 投稿日:2007/02/21(水) 12:12:49 ID:???
DOMって何の略?
Document Object Model?

804 名前:Name_Not_Found 投稿日:2007/02/21(水) 12:13:48 ID:???
Download Only Member
http://e-words.jp/w/DOM-1.html

805 名前:Name_Not_Found 投稿日:2007/02/21(水) 12:26:03 ID:xOnmUO9R
>>803
DQN Omae Mona

806 名前:Name_Not_Found 投稿日:2007/02/21(水) 12:54:50 ID:???
>>803
ググッてから人に聞け。ヴォケ

807 名前:797 投稿日:2007/02/21(水) 13:04:55 ID:sQUSFNso
説明不足ですんません。
テーブルを加えるだけなら、簡単でした。
↓見たいに、選択した範囲にテーブルを挿入するにはどうしたらいいですか?
http://www.kevinroth.com/rte/demo.htm

ってか、選択した文字列が取得できませんね。

808 名前:Name_Not_Found 投稿日:2007/02/21(水) 13:16:43 ID:???
>>803
MS-09

809 名前:Name_Not_Found 投稿日:2007/02/21(水) 13:23:12 ID:???
>>803
漫画の効果音

810 名前:Name_Not_Found 投稿日:2007/02/21(水) 15:58:15 ID:jzywzE2w
どなたか数年前にすごい思いカラフルな
小窓のスクリプトが流行ったのご存知ないですか?

海外のサイトのもので、日本でも配布してたサイトがあったのですが、
著作権の問題で日本のサイトからは消えてしまったみたいです..
何か情報があれば教えていただきたいです。

811 名前:Name_Not_Found 投稿日:2007/02/21(水) 21:18:19 ID:I/Izg3F/
初歩的なことかと思いますが質問させてください。

左側のフレーム(lframe)から、
右側のフレーム(rframe)のパス(http://〜/*.html)を取得できるでしょうか?

812 名前:Name_Not_Found 投稿日:2007/02/21(水) 21:27:39 ID:???
>>811
フレームの参照.location.href

813 名前:Name_Not_Found 投稿日:2007/02/21(水) 21:45:20 ID:???
>>811
いっとくけど鯖が違ったら不可能だからね。

814 名前:811 投稿日:2007/02/21(水) 21:53:16 ID:???
>>812
問題解決しました。
ありがとうございました。


815 名前:Name_Not_Found 投稿日:2007/02/22(木) 00:32:41 ID:ekX8j+cZ
質問させてください。
javascript:window.close()でウインドウを閉じようとすると、
「ウインドウは、表示中のwebページにより閉じられようとしています。
このウインドウを閉じますか?」のダイアログが出てしまいます。
このダイアログを出さずに、ワンクリックでウインドウを閉じられるようにする
方法はありますでしょうか?

816 名前:Name_Not_Found 投稿日:2007/02/22(木) 00:50:32 ID:???
>>815
あるけど環境依存が激しいし、ある方法が今では使えなかったりして役に立たない

817 名前:Name_Not_Found 投稿日:2007/02/22(木) 04:54:11 ID:???
テキストエリアでボタンを押すと1行ごとに文章が追加されていくプログラム
を作ったのですが、IEでは、ボタンを押して行を追加する毎に、フォーカスの
位置まで自動的にスクロールしてくれるのですが、Firefoxでは行が追加され
てもスクロールしてくれません。
いろいろ試行錯誤はしたのですが、手詰まりです。
なにか方法はありますでしょうか?

function textScroll(){
document.getElementById("ans").focus();
rng=document.getElementById("ans").createTextRange();
rng.collapse();
rng.move("character",document.getElementById("result").value.length);
rng.select();
}

IEではこれで問題なくスクロールしてくれるのですが・・・。

818 名前:Name_Not_Found 投稿日:2007/02/22(木) 08:52:10 ID:???
>>817
フォーカスしたいオブジェクトが見える位置にa リンクの#を作りそこにとばす。

819 名前:Name_Not_Found 投稿日:2007/02/22(木) 08:53:12 ID:???
IEのTextRangeはIE固有だからねー。W3CのRangeだとそういうのは
できないかも。textareaをやめてdivの中に追加していくとかに
すればできると思うけどね。

820 名前:Name_Not_Found 投稿日:2007/02/22(木) 08:54:45 ID:???
>>818
おいおい! 質問を読まずに回答するなよ。textareaの「中に」リンクが
作れるか?

821 名前:Name_Not_Found 投稿日:2007/02/22(木) 09:03:25 ID:???
>>820
俺が言ってることがわかってないようだなドアホが。
画面内にそのtextareaが収まるような位置にaリンクを貼れと言ってるんだよ。
だれも
textareaの中にリンクを作れとはいっとらん。
固定観念にとらわれるなよ。

822 名前:Name_Not_Found 投稿日:2007/02/22(木) 09:04:36 ID:???
すまん俺のまちがいだ

823 名前:Name_Not_Found 投稿日:2007/02/22(木) 09:04:48 ID:???
>>821
ふーん、そのリンクでtextareaの中身がスクロールさせられるの?

824 名前:Name_Not_Found 投稿日:2007/02/22(木) 09:37:08 ID:???
>textareaの中にリンクを作れとはいっとらん。
小学生にでも言ってるつもりか。ワロタ

825 名前:Name_Not_Found 投稿日:2007/02/22(木) 09:43:42 ID:???
ちょっと早めだけど次回テンプレ議論。
○FAQの中身はこれでいいか? (わりと完成されてると思う)
>>2は不要、>>5は半分不要という意見があったがどうする?
○参考サイトが取れなくなったのが多くてしょぼいがどうする?
○関連スレも書籍スレが無くなってるし減ってしまったがどうする?

826 名前:Name_Not_Found 投稿日:2007/02/22(木) 10:34:59 ID:???
<textarea>ではないと仮定しても>>818はブラウザ履歴が追加されて迷惑だ。
現在対象としているようなブラウザのどれもがIEのscrollIntoView()を取り込んでいるのだから。
逆にそれを出来ないブラウザに対してはすっぱり諦めて何もしないでおくのが好ましいだろう。

827 名前:Name_Not_Found 投稿日:2007/02/22(木) 10:59:29 ID:???
>>817
textArea.scrollTop = textArea.scrollHeight;

これ過去ログでも出てたはずなんだがな。
過去ログ検索でレスごとのAND検索ができないのは痛いな。

828 名前:Name_Not_Found 投稿日:2007/02/22(木) 11:46:04 ID:btkh+soL
原因がjavascriptでない場合は誘導していただけたらとおもいます。

<EMBED
pluginspage=http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/
src=media/test.asx width=150 height=45 type=application/x-mplayer2
showpositioncontrols="0" showaudiocontrols="1" showtracker="1" showcontrols="1"
loop="1" autostart="0"></EMBED>
上記コードでtest.asx内で指定しているmp3ファイルを再生させています。

そして、同一html上に設置している下記ののリンクから
<a href="javascript:void(0)" onClick="profOpen('test.html','540','190','no')">test</a>

下記のjavascriptを呼び出し別ウインドを開いているのですが
function profOpen(url,w,h,scr) {
window.open(url, "_blank", "width="+w+",height="+h+",scrollbars="+scr)


上記スクリプトを実行すると、mp3を再生している場合再生が停止してします。
※コードのせいで書き込みがエラーになったので一部全角で記載しています。

1曲全ての再生が終わるまで停止させたくないのですが
function profOpen
を使用しつつ対処できるよい方法あれば教えて頂けたらと思います。

動作環境はWinXPSP2、IE6、MediaPlayer10です。

以上宜しくお願いいたします。

829 名前:Name_Not_Found 投稿日:2007/02/22(木) 12:21:23 ID:???
>>828
onclickの最後に「;return false」を追加したらどうかな。

830 名前:817 投稿日:2007/02/22(木) 13:12:32 ID:???
>>827さん
過去ログにあったのですか・・・。
この方法で無事解決しました。
ありがとうございました。

831 名前:Name_Not_Found 投稿日:2007/02/22(木) 13:30:37 ID:???
>>825
イベントリスナ/タイマーに渡した関数内でthisを使いたいというのが
結構出るからFAQに入れてもいいと思うんだけどいい文面が思いつかない。
http://user.ftth100.com/mirrorhenkan/javascript/read.php?key=1156128409&st=943&to=971
http://user.ftth100.com/mirrorhenkan/javascript/read.php?key=1158468856&st=920&to=959

それから標準規格・リファレンスのE4XのPDFのダウンロード先が
なぜかミラー、しかも古い版。普通に本家にリンク張ればいいと思う。
それとwww.mozilla.org/docs以下(当然www.mozilla-japan.org/docs以下も)は
developer.mozilla.orgに移行することが決まってるし実際ほとんどが移行済み。
devedge-temp.mozilla.orgも同様に移行するはずなんだがこっちの
進行状況はよくわからん。とりあえず次レスに修正案を載せとく。
って今気づいたがWeb制作板Wikiが落ちてるな。こりゃ困った。

消えた参考サイトについてはInternet Archiveへのリンクを
載せとけばいいと思う。デフォルトで文字化けするのが難点だが。
あと内容が言語機能に偏っててブラウザオブジェクトの解説が少ないから、
そこらへんを補うためにこの二つを追加してはどうだろう。

JavaScriptでDOMを使う――オブジェクト指向入門の入門 - outsider reflex
http://piro.sakura.ne.jp/latest/flakes/033oo_javascript.html

オブジェクトなJSの基礎講座
http://chaichan.web.infoseek.co.jp/src/2ndthema.htm


832 名前:Name_Not_Found 投稿日:2007/02/22(木) 13:32:26 ID:???
【標準規格・リファレンス】
規格を読まずにどうなってるか分からんとか質問しないこと!

まとめサイト
http://web2ch.s31.xrea.com/?JS

ECMA-262
http://www.ecma-international.org/publications/standards/Ecma-262.htm
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)

W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR

JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳)
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳)

E4X (ECMAScript for XML)
http://www.ecma-international.org/publications/standards/Ecma-357.htm
http://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳)

MSDN Library JScript / DHTML (現在日本語版は古杉)
http://www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp (和訳)
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

Mozilla Gecko DOM Reference, Netscape devedge
http://developer.mozilla.org/en/docs/Gecko_DOM_Reference
http://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳)
http://devedge-temp.mozilla.org/central/javascript/index_en.html

833 名前:Name_Not_Found 投稿日:2007/02/22(木) 14:16:40 ID:RBHcIOtk
エンマークを検索するにはどうしたらいいですか?

document.myFORM.inputdata.valueには
"12345\"が代入されており、
\が含まれてるかどうか判定したいのです。

var mystr=document.myFORM.inputdata.value;
if (mystr.indexOf("\")!=-1){
alert("あったよ");
}else{
alert("ないよ");
}

エスケープシーケンスとみなされて?
うまくいきません。

よろしくお願いします。

834 名前:Name_Not_Found 投稿日:2007/02/22(木) 14:19:02 ID:???
シングルくぉーてーしょんはどうだ?


835 名前:Name_Not_Found 投稿日:2007/02/22(木) 15:12:02 ID:???
>>833
そういうときは「\\」で1つの「\」を表すことになるので。
>>831
Qx. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
Ax. それらが実行されるときはthisは別のもの(window)を指してしまってる。
「function(x){return function(){...x...};}(this)」のようにthisを別の
変数に束縛させてその変数を使う。

しかしクロージャだから循環参照問題が起きることがあるよねえ。それは
いずれ是正されていくはずだからほっとくとか?あとInternet Archive
経由で古い参考サイトをたどるのってどういうURLになるの?やった事無い…

836 名前:Name_Not_Found 投稿日:2007/02/22(木) 15:12:49 ID:???
\\

837 名前:828 投稿日:2007/02/22(木) 15:16:32 ID:???
>>829
「;return false」追加で無事対応できました。
ありがとうございます。

838 名前:Name_Not_Found 投稿日:2007/02/22(木) 15:35:00 ID:RBHcIOtk
返答ありがとうございます。
シングルクォートに変えても変わりませんでした。

実は、先の例文のままだと即エラーがでます(笑)
私もはじめは、
mystr.indexOf("\\")!=-1として
エラーを回避してたのですが、
文字列に\が含まれていても
ないよって言われるので困っていたのです。
ちなみに文字列に\\が含まれるとあったよになります。


839 名前:Name_Not_Found 投稿日:2007/02/22(木) 15:57:34 ID:???
>>835
http://web.archive.org/web/example.com/
でてきとーに変換してくれるみたい
これが正しい使い方なのかは知らんが
つーわけでテスト


Dynamic Scripting
http://web.archive.org/web/www.interq.or.jp/student/exeal/dss/

JavaScript深層
http://web.archive.org/web/www.hawk.34sp.com/


まとめサイトなんかあったのか、と思ったら消えてんのね

840 名前:Name_Not_Found 投稿日:2007/02/22(木) 15:58:48 ID:???
>>838
うーんそうだっけ?だったら
if(mystr.match(/\\/)) ...
ではどうかな。ちょっとまてよ、そのJavaScriptコード、どういう
環境から書いてるんだ?まさか '\\\\' が正解だったりしないよな?

841 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:00:17 ID:???
>>835
クロージャも含めてすっきりまとめられるといいんだがねぇ。

842 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:20:00 ID:???
>>838
>>>
文字列に\が含まれていても
ないよって言われるので困っていたのです。
<<<

mystr = '12345\6789';

みたいに javascript で「'\' を含む文字列を代入」するとその '\' は
エスケープに使われてると見なして '123456' になるが、htmlの
<input> とかに '12345\6789' とか入れといて .value は'12345\6789'
になる
それで .indexOf('\\') する mystr に '\' が含まれてないって話では
ないかという気がしたんだが、'12345\' だとエラーなるから違うんじゃ
ねーかという気もする


ところで過去スレ全集の管理人が Wiki も設置してくれてるようなんだが
1年前に設置しただけで使われてる様子が無い。
使っていいんかね?てかまとめサイトいらんか?
まとめるってもタイヘンだしなぁ

843 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:21:53 ID:???
10行目.replace('123456', '123456789');

844 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:37:32 ID:RBHcIOtk
>>840
はい。
matchもsearchもやったんですが。。

>>842
おっしゃるとおりでして。。
<input>のvalueで代入した文字列に
\が含まれてるかどうかを調べたいのです。
さらに\は末尾につくことが多く悩ましいのです(笑)

input.value文字列の\を全角に置換?どうやって?
ユニコード??
あー、解決したらぜひ
wikiまとめにでも載せてほしい。。



845 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:53:03 ID:???
>>844
javascript のソースに '\' を含む文字列を書いた場合にどう
なるのかがわかってない?

var spam = '12345\6789';
var blah = '12345\\6789';

がそれぞれどうなるか理解できるなら、あとはお望みのもの
を <input>.value に代入するなり .replace() するなりでおkって
話だと思うが。

846 名前:Name_Not_Found 投稿日:2007/02/22(木) 16:59:59 ID:???
何が問題なんだかよく分からん。これでどっちでも動作するし。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var s = document.forms.f0.elements.t0.value;
alert(s.indexOf('\\'));
// alert(s.match(/\\/));
}
</script>
</head><body>
<form name="f0" action="#" onsubmti="return false"><p>
<input name="t0" type="text" value="12345\"></p></form>
<p><button onclick="test()">Test</button></p>
</tbody></table></body></html>

847 名前:Name_Not_Found 投稿日:2007/02/22(木) 17:15:26 ID:PfAbSjng
結局エスケープシーケンスのことわかっちょらんつーこと?

848 名前:Name_Not_Found 投稿日:2007/02/22(木) 17:17:47 ID:???
基本ぐらいは理解してないとこれ以上の進展は望めないな

849 名前:Name_Not_Found 投稿日:2007/02/22(木) 17:27:26 ID:???
>>846
たぶんその test 関数のテストをしようとして

document.forms['f0'].input['t0'].value = '12345\';

みたいなことをしたんではないかとエスパーごっこしてみた


>>848
基本的なことくらい理解してないと困るよな
と文字列リテラルと String オブジェクトの違いを今知った
奴が言ってみる

850 名前:Name_Not_Found 投稿日:2007/02/22(木) 17:29:48 ID:???
あー、forms['f0'] とかはそんなんないと思うが、そんな感じで

851 名前:Name_Not_Found 投稿日:2007/02/22(木) 17:41:40 ID:bjvEsRiR
ソース中のコメントを取得したいのですが,うまくいきません。
getElementsByTagName('comment');としてもだめでした。
DOMインスペクタでは"#comment"となっていたのでそれも試しましたが,だめでした。

環境はFirefox 2です。Greasemonkeyを使ってコメントを取得しようと思ってますが、
スクリプト内容自体は通常のjavascriptだと思うので,こちらで質問しました。

<!--   -->
の部分はDOMを使って取得することはできないのでしょうか?

comments = document.getElementsByTagName("#comment");
alert(comments.length);       #--> 0
for (var i = 0; i < comments.length; i = i++) {
        alert(comments[i]);
}


852 名前:Name_Not_Found 投稿日:2007/02/22(木) 18:06:05 ID:???
>>851
getElementsByTagNameで取得できるのはElementノード(の集合のNodeList)だけだよ

var comments = document.evaluate("descendant::comment()", document, null, 6, null);
alert(comments.snapshotLength);
for (var i = 0; i < comments.snapshotLength; i++) {
alert(comments.snapshotItem(i).nodeValue);
}

とか

853 名前:Name_Not_Found 投稿日:2007/02/22(木) 18:13:40 ID:???
>>851
って言うか i = i++ って……

854 名前:848 投稿日:2007/02/22(木) 18:17:39 ID:RBHcIOtk
すみませんでした。
>>846
さんのをローカルHTMLに記述して正常に動きました。

でもなんで私のCGIではエラー?と思ったら
perlのヒアドキュメント内の記述でして(汗)
s.indexOf('\\'));では×
s.indexOf('\\\\'));では○
という申し訳ないミスでした。
お騒がせしました。
でも解決できてうれしいです(^_^;)

855 名前:Name_Not_Found 投稿日:2007/02/22(木) 18:38:24 ID:PfAbSjng
おいおい、詰まったら最小の構成で原因つきとめるのが基本だろ

856 名前:Name_Not_Found 投稿日:2007/02/22(木) 18:39:26 ID:???
>>852
thanks

http://gentzen.math.hc.keio.ac.jp/JavaScript/day18/index4.html
ref1.innerText = books.item(1).getElementsByTagName("comment").item(0).text;

というのがあったので使えるのかと思ってました。

857 名前:Name_Not_Found 投稿日:2007/02/22(木) 20:21:02 ID:???
>>856
もちろんcomment要素(HTMLでは定義されてないけど)があればgetElementsByTagNameで取得できる。
<!---->はコメント宣言であって要素ではないからな。

858 名前:Name_Not_Found 投稿日:2007/02/22(木) 20:34:06 ID:???
>>856
innerHTMLから正規表現で引っこ抜けないかな
今テスト環境がないから未検証だけど

859 名前:Name_Not_Found 投稿日:2007/02/22(木) 20:43:23 ID:???
MacIEで配列から要素を削除する方法って無い?

860 名前:Name_Not_Found 投稿日:2007/02/22(木) 21:05:02 ID:???
>>859
deleteできないなら再構築すればいいでないの

861 名前:Name_Not_Found 投稿日:2007/02/22(木) 21:43:35 ID:???
>>859
pop, shift, splice らは IE5.5 から。その反対操作の push, unshift も。
破壊的メソッドで IE4-5 でも使えるのは sort, reverse だけ。

862 名前:Name_Not_Found 投稿日:2007/02/22(木) 22:22:29 ID:???
XMLDOMでXMLを扱ってるんですが
インデックスでなくタグ名をもとに子要素にアクセスすることってできますか?


863 名前:Name_Not_Found 投稿日:2007/02/22(木) 22:53:22 ID:AzOL4J1Z
>>807

みんながスルーするので教えてあげよう。
画像なら好きなとこに入れられるだろ?
その後でreplaceすればいい。

864 名前:Name_Not_Found 投稿日:2007/02/22(木) 22:57:48 ID:???
>>862
孫も含めていいなら好きな要素からgetElementsByTagName使えばいいけど
子だけなら、IEならselectNodesでやればいいんじゃないか

865 名前:Name_Not_Found 投稿日:2007/02/22(木) 23:16:22 ID:???
>>864
どうもありがとうございます。
孫要素は含めたくないですね。
クロスブラウザでやってるのでIEだけに限定するのも避けたいところです。


866 名前:Name_Not_Found 投稿日:2007/02/22(木) 23:18:55 ID:???
>>865
子要素を要素名をもとにforで検索

867 名前:Name_Not_Found 投稿日:2007/02/22(木) 23:30:14 ID:???
>>865
引数のXPathはくろすぶらうざどころかメジャーな言語全てに通用するだろ。自分で書いて試せよクレクレ君。

868 名前:Name_Not_Found 投稿日:2007/02/22(木) 23:40:23 ID:PfAbSjng
          ___
       //⌒___ \
      //_/    \\ \
               \\ \
                ((   |
                |  ∩
                |  | |
                |  | |
                |  / | <クレクレ君が現れたと聞いて飛んできました。
 __________/__/_____

869 名前:Name_Not_Found 投稿日:2007/02/22(木) 23:45:18 ID:???
>>865
FirefoxとOpera9はDOM XPathが使える
IEとOpera9はselectNodes/selectSingleNodeが使える
Safariとかはわからん
(ttp://blog.8-p.info/articles/2006/11/30/safari-xpathではDOM XPathが実装されていたと言ってる)

DOM XPathはレベル3で、レベル1のCoreよりは実装数が少ないのは自明だから
>>866が言うように普通にchildNodes回してnodeNameとかで検索する関数つくった方が
よりクロスブラウザではある

870 名前:Name_Not_Found 投稿日:2007/02/23(金) 00:28:28 ID:???
>>869
なるほど、どうもです。
確実な方法として自分で実装することにします。


871 名前:Name_Not_Found 投稿日:2007/02/23(金) 00:43:31 ID:???
>>869
ブラウザで実験するとしても、
XMLのDOMを構築して、そのDOMをJSで操作できる、
という前提がある。
そんなブラウザでは XPath が当然のように使えるから、XPath を使うのが最善だ。
むしろ、リッチに XSLT を使ってもいいくらいで、その変換ファイルはどの言語でも再利用できる。

どうしても DOM-Core でプアにやりたければ、プアを極めるべく、
function proc(section, callBack) {for (var c = section.firstChild; c; c = nextSibling) if (c.nodeType == 1) callBack(c);}
と書くだろう。つまり少しでも重い childNodes プロパティを使わない方が良い(笑)

872 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:10:54 ID:???
>>871
手厳しいなあもう
つか871はもっと先に出てくると思ってたんだけど

873 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:32:26 ID:oOtepRxq
以下の記述でカウントダウンを表示させようと思ったのですが、
更新しないと数値が動きません… どこをいじればいいのでしょうか?

<!--
next = new Date(2007,6,26)
today = new Date()
days = Math.floor((next-today)/(24*60*60*1000))
time1 = Math.floor(((next-today)%(24*60*60*1000))/(60*60*1000))
time2 = Math.floor(((next-today)%(24*60*60*1000))/(60*1000))%60
time3 = Math.floor(((next-today)%(24*60*60*1000))/1000)%60%60
if((next - today)>0)document.write("あの日まであと",days,"日",time1,"時間",time2,"分",time3,"秒")
else if ((next - today)<0)document.write("あの日から",-days,"日過ぎました。")
// -->

874 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:38:48 ID:???
>>873
基本的には >>3 の A4 と一緒

あと
setInterval() かなんか使って
定期的にチェック→必要があれば書き換え
が必要

875 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:39:15 ID:???
>>873
setInterval使え

876 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:39:35 ID:???
>>872
>手厳しい
すみません。

まとめるとこうだな。callBack関数内でnodeName判定などフィルターかます。
function proc(section, callBack) {
  //MSXML
  //必要なら section.ownerDocument.setProperty('SelectionLanguage', 'XPath');
  var children = section.selectNodes('*');
  var c = children.nextNode();
  for (; c; c = children.nextNode()) callBack(c);

  //DOM-XPath
  var xr = section.ownerDocument.evaluate(
    '*', section, section.ownerDocument.createNSResolver(section), 5, null);
  try {for (; true; callBack(xr.iterateNext()));} catch (ex) {;}

  //DOM-Traversal
  var tw = section.ownerDocument.createTreeWalker(section, 1, null, false);
  if (tw.nextNode()) do callBack(tw.currentNode); while (tw.nextSibling());

  //DOM-Core
  >>871
}

877 名前:873 投稿日:2007/02/23(金) 01:43:17 ID:???
>>874
>>875
わかりました、やってみます。
深夜なのにありがとうございました。

878 名前:Name_Not_Found 投稿日:2007/02/23(金) 01:57:49 ID:???
>>876自己レス
XPath以外を使おうとすると、
> callBack関数内でnodeName判定などフィルターかます。
に類する処理が必要になるわけで、結局、無駄なんだよね。
"*" ではなく、"element-name" と XPath を書いた方が良いのは言うまでもないから。

879 名前:Name_Not_Found 投稿日:2007/02/23(金) 04:42:48 ID:???
Safari2はDOM XPath使えないよ。
>>869はnightlyビルドの話ね。

880 名前:Name_Not_Found 投稿日:2007/02/23(金) 14:33:38 ID:???
未来から帰ってきたんだけどSafariは絶滅するからドウデモイイよ

881 名前:Name_Not_Found 投稿日:2007/02/23(金) 14:41:03 ID:???
>Safariは絶滅するからドウデモイイよ
アポ製品からwebkitに頼った所が一掃されるのか、firefoxベースに置き換わるのか、アポ自体がなくなるのかが気になるなw

しかし、webCore/JSCoreが携帯にまで幅広げやがってる昨今、まだ無視切り捨て体制入るには早いんじゃないかな。
iPhoneの実評価とS60の進展が心配。国内で問題になるのはまだ先だろけど

882 名前:Name_Not_Found 投稿日:2007/02/23(金) 14:46:17 ID:???
なんかAppleはコンピューター業界から撤退してリンゴ生産業になってたお

883 名前:Name_Not_Found 投稿日:2007/02/23(金) 15:03:04 ID:Ti2l9PRs
どなたか助言をお願いします。

とあるサイトがあり、資料請求のフォームも付いています。
単ページ構成なので縦長なのですが、告知したURLがhttp://
鍵マークがもちろん出ません。
ジオトラストの契約は済んでいてhttps://なら問題なく鍵マークが出ます。

さてここで問題は公表したアドレスからいかにしてhttpsに移動させるか
なのですが良い方法はありませんでしょうか?
とりあえず行った作業はページ上で「申し込みはこちら」というリンクに
https指定をしたことです。
これでフォームまで降りたときには鍵マークが出ます。
でもスクロールで下まで降りながら見る人には表示はされません。

リフレッシュなども考えたのですが、それだと鍵が出た後も
続きますよね?
こういった動作を一回こっきりに抑えるというのは出来るのでしょうか?
もしくは全く別の良い方法がないでしょうか?

どなたか知恵を貸してください。
お願いします。


884 名前:Name_Not_Found 投稿日:2007/02/23(金) 15:18:59 ID:???
JSでやるならlocation.protocol読んで処理分ければOK

でもJSで処理していいのかね、それ
確実にやるなら素直にURL分けて転送するべきかと。

885 名前:Name_Not_Found 投稿日:2007/02/23(金) 15:26:26 ID:???
>>833
.htaccessで、該当ページにアクセスきたらhttpsに転送すればいいんじゃね

886 名前:Name_Not_Found 投稿日:2007/02/23(金) 17:05:49 ID:???
>>833
>>885に同意
JavaScriptで対処するのは仕事としてどうよ?

887 名前:Name_Not_Found 投稿日:2007/02/23(金) 18:04:29 ID:???
環境変数のHTTPSを見ればいいんじゃね

888 名前:885 投稿日:2007/02/23(金) 19:26:06 ID:???
やばアンカー間違えたわ、亀だが>>883

889 名前:Name_Not_Found 投稿日:2007/02/23(金) 20:49:27 ID:???
こんにちは。ネット初心者でが、よろしくお願いします。

<INPUT type="submit" value="キャンセルボタン" onClick="hoge()">
cgiのフォームでボタンを押すと、確認ダイアログを表示したいと思ってます。
確認ダイアログで、「いいえ」を押したら、何も起きないようにしたいです。

function hoge(){
if(window.confirm("キャンセルしますか?")){
}
else{
//ここの処理わからないです。「いいえ」押してもcgi実行されてしまいます。
//location.reload(); すると一応cgi実行されないようにはできますが、ページを更新したくありません。
}

890 名前:Name_Not_Found 投稿日:2007/02/23(金) 21:01:28 ID:???
onClick="return hoge();"
hoge() { if (window.confirm()) { return true; } else { return false; } }

891 名前:Name_Not_Found 投稿日:2007/02/23(金) 21:02:17 ID:???
>>889
onclick="return hoge()"

function hoge(){
if(window.confirm("キャンセルしますか?")){
return false;
}
return true;
}

onclick が呼ばれたときには click が保留されてる状態
ここで false を返すと click がなかったことに

892 名前:Name_Not_Found 投稿日:2007/02/23(金) 21:43:33 ID:???
>>890
>>891
お返事ありがとうございます。
return true;など関数の方に書いたり試しましたが、
フォームのほうでonclick="return hoge()"
と書かないといけなかったんですね。

丁寧に解説していただき、ありがとうごいました。
javascript書き方、少しわかってきました。

893 名前:Name_Not_Found 投稿日:2007/02/23(金) 21:52:01 ID:???
リンクに移動する前にアラートでメッセージを表示させたいと思いました。
<a href="http:*******"target="_blank" onclick=alert('ここにメッセージ')>テキスト</a>
これではポップアップ禁止にしているとリンク先が表示されません。
しかし表示されるサイトもあるのですが何か方法があるのでしょうか。
よろしくお願いします。

894 名前:Name_Not_Found 投稿日:2007/02/23(金) 21:53:30 ID:???
>>892
confirmの事後処理がなけりゃ、onclick="return window.confirm()" だけでも。

895 名前:Name_Not_Found 投稿日:2007/02/23(金) 22:10:53 ID:???
<form onsubmit="return confirm()"><input type="submit"></form>
こっちの方が好き

896 名前:Name_Not_Found 投稿日:2007/02/24(土) 11:12:28 ID:u9Pf79Ec
もうプログラミングしなくてもAjaxつくれるよ。
http://www.hows-ajax.jp/ab/
体験版もダウンロードできるよ。

897 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:29:59 ID:aDrclGqz
<SCRIPT language=javascript>
<!--

var dispFlag = 0; // 1:display, 0:hide

var glUa = navigator.userAgent.toUpperCase();
var glBrw = navigator.appName.toUpperCase();
var glVer = navigator.appVersion;
var temp = '';

var glWin = (glUa.indexOf("WIN") != -1);
var glIE = (glBrw.indexOf("MICROSOFT INTERNET EXPLORER") != -1);
var glIE4 = (glVer.indexOf("MSIE 4") != -1);
var glIE5 = (glVer.indexOf("MSIE 5") != -1);
var glIE6 = (glVer.indexOf("MSIE 6") != -1);

とあるサイトを取り込んで勉強している者ですがこのscriptの意味を教えていただければ幸いです。

898 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:34:57 ID:???
>>897
l1 要素の非表示切り替え状態を表すと思われるフラグ
l2-4 ブラウザ判別用のUA取得
l5 テンポラリ文字変数
l6- UA判別した結果

とエスパーしてみたが、これだけ晒してもあんまり意味はない希ガス
あとは自分でやれ

899 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:43:57 ID:aDrclGqz
>>897ですが
var dispFlag = 0; // 1:display, 0:hide

の意味が全く分かりません。
教えていただけると本当に助かります!


900 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:49:58 ID:???
>>899
同じ動作のスクリプトをネットで明後日見れば、何を意味するものか
瞬時にわかる。仕掛けはみんな同じだから。

901 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:50:09 ID:???
そういうのは「勉強してる」って言わない
金払って誰かに作ってもらえ

902 名前:898 投稿日:2007/02/24(土) 13:50:37 ID:???
>>899
だから、それだけの情報じゃ
何かを表示/非表示するときに状態を示すために使うという予測しかできない
もしかしたら使われてないかもしれないし
ソースコードを検索すればいいじゃない

903 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:51:14 ID:???
javaに関しては全くの素人なのですが質問させていただきます。

自作HPを作っていたところ、リンク先のウィンドウサイズを固定する方法がわからず友人に聞いたところ
javascriptを使えば出来ると聞いたのですがやり方さっぱりわかりません。
手持ちのテキストを見てみたのですがそれでもいまいちわかりません。
使用ソフトはHPビルダー6です
よろしくお願いします。

904 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:51:35 ID:N23sfSTu
>>899
とりあえず、基礎勉強してから出直せ。てか、本買え。
while(true)
{
window.alert("本買え。");
}

905 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:53:42 ID:???
>>903
ちみも、勉強してこい。てか、その友達からやってもらえばいいじゃん^^

906 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:55:25 ID:aDrclGqz
<FORM name=news onSubmit="return subm()"
action=URL method=post><INPUT
type=hidden value=1 name=news0>
フォームについて勉強中ですがこの場合のvalue=1はどういう意味なのでしょうか?
駄文失礼します





907 名前:Name_Not_Found 投稿日:2007/02/24(土) 13:55:38 ID:???
>>903
java野郎。
while(true)
{
window.alert("二度と来るな。");
}


908 名前:Name_Not_Found 投稿日:2007/02/24(土) 14:01:17 ID:???
>>903
スレタイをよめ!
そしてググレ!

>>906
JavaScriptは関係ない
他所で聞け

909 名前:Name_Not_Found 投稿日:2007/02/24(土) 14:25:18 ID:???
今日は土曜…
学校は午前で終わり…
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< だから厨が沸いてるんだ!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

910 名前:906 投稿日:2007/02/24(土) 17:57:46 ID:???
自己解決しますた

911 名前:Name_Not_Found 投稿日:2007/02/25(日) 00:57:05 ID:0X7PqPfZ
<SCRIPT language=JavaScript>
<!--
var D, C, R, U;
D = new Date();
C = D.getTime().toString(16);
R = document.referrer;
U = document.URL;
if (R.indexOf('"') > -1) R = '';
if (U.indexOf('"') > -1) U = '';
document.write('<img src="http://rt.****.co.jp/ichiba/?service_id=2&page_type=10001&dt=',C,'&rturl=',U,'&referer=',R,'" width=1 height=1 alt="">');
// -->
</SCRIPT>
このタグについてですが
document.write('<img src="http://rt.****.co.jp/ichiba/?service_id=2&page_type=10001&dt=',C,'&rturl=',U,'&referer=',R,'" width=1 height=1 alt="">');
// -->
の意味を教えていただければ幸いです。
あるサイトの1文ですが意味が全く分からず質問した次第です。

912 名前:Name_Not_Found 投稿日:2007/02/25(日) 00:59:30 ID:???
>>911
テンプレにリファレンスがあるので、そちらをお読み下さい。

913 名前:Name_Not_Found 投稿日:2007/02/25(日) 01:17:18 ID:???
>>911
document.writeをalertにして確認汁

914 名前:Name_Not_Found 投稿日:2007/02/25(日) 11:58:43 ID:???
>>911
この一文だけわかんないって

915 名前:Name_Not_Found 投稿日:2007/02/25(日) 23:32:38 ID:???
var dispFlag = 0; // 1:display, 0:hide
これって訳するとどういうことでしょうか?

916 名前:Name_Not_Found 投稿日:2007/02/25(日) 23:39:10 ID:???
このスコープで宣言した dispFlag に 0 を代入する

917 名前:Name_Not_Found 投稿日:2007/02/25(日) 23:56:00 ID:???
連投すいません!
var dispFlag = 0; // 1:display, 0:hide

でvar dispFlag = 0;はdispFlagに0を代入するというのは分かるのですが
その後の// 1:display, 0:hide はどういうことを意味するのですか?
お手数おかけします。


918 名前:Name_Not_Found 投稿日:2007/02/26(月) 00:18:20 ID:???
hide にしたいときは 0 を
display にしたいときは 1 を代入してください

919 名前:Name_Not_Found 投稿日:2007/02/26(月) 01:35:34 ID:???
>>917
>>898を10万回読んでろ
それから人に聞いてばっかりじゃなくて
男だろう?
なんでも試してみるものさ

920 名前:Name_Not_Found 投稿日:2007/02/26(月) 03:43:16 ID:H/73xagz
>>917
コメント

921 名前:Name_Not_Found 投稿日:2007/02/26(月) 04:21:57 ID:mwkML6C9
質問があります。
リンク先のサイトのような、ボタンをクリックすると画面全体に透明レイヤーがかかって
イメージやビデオが表示されるようなモノを最近良く見ますが、これってどうやるのですか。
なんか、シンプルなのでどこかにテンプレートありそうですけど。


http://www.duckfarm.net/desktops.html


922 名前:Name_Not_Found 投稿日:2007/02/26(月) 04:24:29 ID:???
>>921
ライブラリあるからググれ
lightbox、GreyBox、modalboxあたりか?
使ったことないからよく知らん

923 名前:Name_Not_Found 投稿日:2007/02/26(月) 04:51:16 ID:mwkML6C9
>>922
AWSOME!!
2chで聞いた質問でひさびさに即ヒット。
大体時間かけて自己解決することなるんだが。
感謝。

924 名前:Name_Not_Found 投稿日:2007/02/26(月) 06:20:15 ID:???
それを言うならawesome。

925 名前:Name_Not_Found 投稿日:2007/02/26(月) 14:43:07 ID:tylfh3zR
class 経由で指定された overflow:hidden を javascript で検出するにはどうやればいいんでしょう?
当然のごとく、e.style.overflow では引っかからないです…。

926 名前:Name_Not_Found 投稿日:2007/02/26(月) 15:06:36 ID:???
Hint:cssStyle compoutedStyle

927 名前:Name_Not_Found 投稿日:2007/02/26(月) 17:28:15 ID:???
ありがとー。computedStyle ね。しかもやっぱりクロスブラウザではトリック必要なようで…。

var computedStyle;
if (document.defaultView && document.defaultView.getComputedStyle) computedStyle = document.defaultView.getComputedStyle(e, "");
else if (e.currentStyle) computedStyle = e.currentStyle;
else computedStyle = e.style;

928 名前:Name_Not_Found 投稿日:2007/02/26(月) 17:29:27 ID:???
てか、prototype.js の getStyle でよかったのか…orz

929 名前:Name_Not_Found 投稿日:2007/02/27(火) 17:32:59 ID:???
mootools(ver1.00)を使っていて、特定部分をAjax.jsを使って書き換えたいんだけど
javascript
function rewrite(filename)
{
myAjax = new Ajax(filename, {
method: 'get',
update: 'test'
}).request();
}

html
(略)
<a onclick="rewrite('sample.html');">test</a>
(略)
<div id="test"><div>

IEだとアクセスが拒否されましたって出るし、Geckoだとエラーは出ないけど書き換わらなくてうまく動かない。
誰か助けてくれorz

930 名前:Name_Not_Found 投稿日:2007/02/27(火) 17:50:15 ID:???
frame.htmlの長さによってiframeのheightを変えるスクリプト
function LoadFrame(frid) {
var Ifr = document.getElementById(frid);
Ifr.style.height = (Ifr.contentWindow)?
Ifr.contentWindow.document.body.scrollHeight:
document.frames[frid].document.body.scrollHeight;
}

<iframe src="frame.html" onload="LoadFrame(this.id)" id="Ifr" frameborder=0></iframe>

IEで思った通りになるのですが、
Firefox、macIE、ネスケでは反映してくれませんでした。
クロスブラウザについても調べてみたのですが…お手上げでした。
大変恐縮ですが、どなたかヒント下さい。

931 名前:Name_Not_Found 投稿日:2007/02/27(火) 18:15:44 ID:???
>>929
このスレをonclickで検索してみたらどうかな。
>>930
まずそのscrollHeightが正しく取れているかどうかalert()で
表示させてみて。

932 名前:929 投稿日:2007/02/27(火) 18:57:56 ID:???
>>931
すまん。気付かなかったわ。orz
けど、inputタグでもwindow.onloadでも同じだったので、原因は別にあるみたいだ。
ちなみにsample.htmlは確かにこのhtmlと同じフォルダに入ってる。

933 名前:Name_Not_Found 投稿日:2007/02/28(水) 02:31:17 ID:???
画像Aをクリック→画像Bに切り替わる→画像Bをクリック→画像Aに切り替わる→えんどれす

というのをやってみたいんですがどうしたらいいんでしょうか

934 名前:Name_Not_Found 投稿日:2007/02/28(水) 05:42:19 ID:???
>>933
「javascript トグルスイッチ」

935 名前:Name_Not_Found 投稿日:2007/02/28(水) 08:30:02 ID:???
>>933
<img src="a.png" onclick="this.src=(this.src=='a.png')?'b.png':'a.png'">
とかかな。試してないけど。

936 名前:Name_Not_Found 投稿日:2007/02/28(水) 09:48:28 ID:???
js> var a = {next:function () {try {return 'b.png';} finally {this.__proto__ = b;}}};
js> var b = {next:function () {try {return 'a.png';} finally {this.__proto__ = a;}}};
js> var s = {__proto__:a};
js> for (let i = 0; i < 4; i++) print(s.next());
b.png
a.png
b.png
a.png

937 名前:Name_Not_Found 投稿日:2007/02/28(水) 10:00:49 ID:???
>>930
iframe のサイズ取得?

 多分互換モードだと動く
 http://d.hatena.ne.jp/onozaty/20060729/p1

 標準モードで動かす方法は知らない。きっとできないんじゃない?
 http://wiki.bit-hive.com/tomizoo/pg/JavaScript%20%A5%A4%A5%F3%A5%E9%A5%A4%A5%F3%A5%D5%A5%EC%A1%BC%A5%E0(iframe)%B4%D8%CF%A2


938 名前:Name_Not_Found 投稿日:2007/02/28(水) 14:27:45 ID:???
>>930 >>937 IE6とGeckoで動くようだけどー。
---t1.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var d = window.frames.f0.document;
var b = d.documentElement || d.body;
var h = b.scrollHeight;
document.getElementById('f0').height = h + 'px';
}
</script>
</head><body onload="test()">
<iframe id="f0" name="f0" src="t2.html"></iframe>
</body></html>
---t2.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p>
<p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p>
</body></html>

939 名前:Name_Not_Found 投稿日:2007/02/28(水) 14:45:56 ID:???
>>929
そのライブラリは知らんが
動かないのはローカルで実行してるせいなんじゃないの。
アップロードして試した?

940 名前:Name_Not_Found 投稿日:2007/02/28(水) 16:55:44 ID:???
>>938
t2.html が<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">になってるぜ

941 名前:Name_Not_Found 投稿日:2007/02/28(水) 16:58:26 ID:???
>>940
あららー。指摘どうも。

942 名前:Name_Not_Found 投稿日:2007/02/28(水) 22:01:22 ID:???
次スレは975越えたら。テンプレ論議あればお早めに。

943 名前:Name_Not_Found 投稿日:2007/02/28(水) 22:30:28 ID:???
まとめサイトが404

944 名前:Name_Not_Found 投稿日:2007/02/28(水) 23:26:32 ID:6b6xemGI
スクリプト部分だけ削除する方法ってありますか?
indexOf("<script")とindexOf"</script>")で場所を調べて、substring()で前後の文字列だけを
くっつける方法っを使ってるんですけど、正規表現を使った方が確実かなーと思っています。

でも、例えばsearch(/<\/script[ ]*>/)だと</html>まで拾っちゃうし、どうしたらいいですか?

<>
<>

945 名前:Name_Not_Found 投稿日:2007/03/01(木) 05:37:04 ID:???
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
A3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切られます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
 <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. IEではtbody要素にtr要素を追加する必要があります。
 tbody要素はtbodyタグを書いていなくても自動的に作成されます。
 またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A8. 「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;」。

946 名前:Name_Not_Found 投稿日:2007/03/01(木) 05:37:56 ID:???
【FAQその2】
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP")
 を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。
 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
 という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
 「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
 束縛させてその変数を使う。ただし循環参照によるメモリリークに注意。
Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
 offsetがマッチした位置、sが置き換え前の文字列全体になります。

947 名前:Name_Not_Found 投稿日:2007/03/01(木) 05:38:26 ID:???
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(とほほは間違いが多いためこのスレでは批判的意見が多い)

MetaGraphic Cell
http://www2u.biglobe.ne.jp/~oz-07ams/prog/

どら猫本舗のリファレンスカウンター
http://www.doraneko.org/

はぎさんちのページ Mozilla's DOM Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi

JavaScriptでDOMを使う――オブジェクト指向入門の入門 - outsider reflex
http://piro.sakura.ne.jp/latest/flakes/033oo_javascript.html

オブジェクトなJSの基礎講座
http://chaichan.web.infoseek.co.jp/src/2ndthema.htm

Dynamic Scripting (Internet Archive)
http://web.archive.org/web/www.interq.or.jp/student/exeal/dss/

JavaScript深層 (Internet Archive)
http://web.archive.org/web/www.hawk.34sp.com/

948 名前:Name_Not_Found 投稿日:2007/03/01(木) 05:39:16 ID:???
標準規格・リファレンスは>>832
まとめサイトってもう復活しないのかな?
「現在つながりません」って注釈つけてとりあえず残しとく?

>>944
「最短一致」でググれ。

949 名前:Name_Not_Found 投稿日:2007/03/01(木) 09:46:01 ID:QcE8zYkG
>>948
アリガトン


950 名前:Name_Not_Found 投稿日:2007/03/01(木) 11:32:35 ID:???
>>947
増やすなよ。これ以上要らないよ。しかも、変なの追加するなよ。
二次情報以下は全部削除しても良いくらいだって何回も言ってるだろ。

951 名前:Name_Not_Found 投稿日:2007/03/01(木) 12:21:28 ID:???
ぶっちゃけECMAScript和訳だけあればあとは検索で十分

952 名前:Name_Not_Found 投稿日:2007/03/01(木) 12:32:36 ID:???
(function() {
document.forms.action('hoge').elements.namedItem('name').value = "value";
document.forms.action('hoge').submit();
})();

formのaction属性の属性値がhogeの場合
自動で値を選んで送信したいんですが
「action('hoge')」なんて書き方はできないですよね・・・?
なんて書けばいいんでしょうか。
formにはmethod属性とaction属性だけが指定されていて
同じページ内には別のformもあります。

953 名前:Name_Not_Found 投稿日:2007/03/01(木) 12:39:40 ID:???
>>952
日本語がおかしい結局何がしたいのかわからん
とりあえずformsをforループでぐるっと検索
if(form.action=="hoge")でsubmitすりゃいい。

954 名前:952 投稿日:2007/03/01(木) 13:26:16 ID:???
レスどうもです、わかりにくくてすみません、
Greasemonkeyでオートログインのようなことをさせたくて、
オートログイン系のユーザスクリプトでもっとも簡単そうな作りの
ttp://userscripts.org/scripts/show/6423
を参考に、自動処理したいサイト用に書き直そうと思ったんですが
そのサイトにはform要素の属性にmethodとactionしかなかったので・・・

勉強してきます

955 名前:Name_Not_Found 投稿日:2007/03/01(木) 14:49:19 ID:???
>>954
気兼ねなくXPathを使える状況じゃん。XPath使えよ。

956 名前:Name_Not_Found 投稿日:2007/03/01(木) 15:38:13 ID:???
>>946

> A12 "Microsoft.XMLHTTP"
中の人が、メンテやめたから使うな、と言ってただろ。
もう "Msxml2.XMLHTTP.6.0" または "Msxml2.XMLHTTP.3.0" 限定でいいから。

> A14 ただし循環参照によるメモリリークに注意。
典型的な役所仕事と言わせてもらおう。
* JavaScript の場合、set(?:Timeout|Interval) の最初の引数になる関数にはいくらでも引数を渡せる。
* 現在の EventTarget#addEventListener() 実装は EventListener である引数に Object を渡せる。
つまり、そんな小細工は 今時相手にしている JavaScript 実行ブラウザには必要ない。
* そういう小細工が必要なのは、IE。
* メモリーリークするのは、IE6以前、これは現在の最大シェア。
結局、関数スコープ内の関数を例示しておいて、メモリーリークに注意せよ、とは、現実的に見て明らかな矛盾だな。
そのIEに対しても、普通にグローバルスコープで名前を秘匿しない普通の関数を定義して、
その関数オブジェクトに this を参照するプロパティを作るという解決策もある。
つまり、わざわざ危険な例示をする必要が無い。
今では画面遷移が多くてかつ大金が動くようなウェブアプリでもIEとJScriptはかなり積極的に使われているわけだが、
俺なら恐くてメモリーリークパターンを絶対に書かない。つうか、関数スコープ内の関数を絶対に書かない。
他人の意識は分からないが、少なくともテンプレとしては、関数スコープ内の関数は不適切だろう。

957 名前:Name_Not_Found 投稿日:2007/03/01(木) 17:42:57 ID:???
3行でよろ。

958 名前:Name_Not_Found 投稿日:2007/03/01(木) 17:54:04 ID:759SkWmE
>>957
A12 "Microsoft.XMLHTTP"→"Msxml2.XMLHTTP.6.0"||"Msxml2.XMLHTTP.3.0"
A14 var func=function(str,p1,p2,...,offset,s){...};string.replace(/.../,func)

959 名前:Name_Not_Found 投稿日:2007/03/01(木) 18:50:28 ID:???
>>950
「変なの追加するな」はわかるが、へたに検索してとほほとかに
当たられるよりは、こちらでそれなりのチュートリアルを紹介しといたほうが、
最終的に回答者の手間も省けるんではないか。

・・・などと思ったが、あんまり読まれてる感じもしないし、やっぱり
「チュートリアル・サンプルサイト」の項目自体削除してもいいかもね。

>>956
それを2〜3行でどうまとめる?

A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
 new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
 を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。

といったあたり?

960 名前:Name_Not_Found 投稿日:2007/03/01(木) 20:48:37 ID:???
テンプレ論議は975に間に合わないと見たが。

961 名前:Name_Not_Found 投稿日:2007/03/01(木) 22:02:08 ID:???
まーにあーわないさーっっ!!

962 名前:Name_Not_Found 投稿日:2007/03/01(木) 23:33:47 ID:???
ウィンドウの移動を検出したいのですが
window.onmove ってIE6じゃ使えないんですか?
他にどういう方法があるのでしょうか?

963 名前:Name_Not_Found 投稿日:2007/03/01(木) 23:38:05 ID:???
迷惑なことに使うのなら教えません

964 名前:962 投稿日:2007/03/01(木) 23:46:02 ID:???
>>963
個人的にデスクトップで使いたいだけです。他人様には使わせないので教えてください。
私には window.screenTop をタイマーで監視するぐらいしか思いつきません。

965 名前:Name_Not_Found 投稿日:2007/03/02(金) 01:03:42 ID:???
XMLHttpRequestのコールバックで、どのXMLHttpRequestが成功したのか知りたいのですが
どのような方法があるかご教授ください。
responseXML(responseText)の内容では判断できないという前提でお願いします。
コールバックをインスタンスメソッドにすればいいのかな・・・と思ったのですが、
FireFoxではうまくいったのにIEでやるとインスタンスメソッド内でのthisがdocumentになってて
うまくいかず・・・。
よろしくお願いします。

966 名前:Name_Not_Found 投稿日:2007/03/02(金) 01:14:05 ID:???
なんかクロージャを駆使して

967 名前:965 投稿日:2007/03/02(金) 07:32:23 ID:???
>966
サンクス。調べてみる。

968 名前:Name_Not_Found 投稿日:2007/03/02(金) 14:50:39 ID:D9fWBWxd
MSNのWindows Liveメールを新規作成する時に
編集してるかしてないかの情報を持ってるみたいなんだけど
あれってどうすればいいのでしょう?

onreadstatechangeとかで変化あったら情報もたせてって感じ?

969 名前:Name_Not_Found 投稿日:2007/03/02(金) 18:26:11 ID:sYWJ9Quu
CGIの使えない無料ホームページで
装飾目的以外でJavaScriptを使って、文章と計算以外になんかできることないですか。

970 名前:Name_Not_Found 投稿日:2007/03/02(金) 18:30:34 ID:???
>文章と計算以外になんかできることないですか。
文章って何だよw

できることはいくらでもある
何のネタ探しかは知らないが自力で探せよ

971 名前:Name_Not_Found 投稿日:2007/03/02(金) 19:13:38 ID:???
現在AJAXを使って、画像の一言コメントをその場で更新出来るスクリプトを作っています。
AJAXでDBに書き込むところは出来たのですが、アイコンをクリックしてテキストをinnerHTMLでフォームに変化させ、
そのフォームにフォーカスを移すところで躓いています。
■ コメント

アイコン。クリックすると
┌─────────┐
│コメント     │フォームに変化。フォーカスを移したい。
└─────────┘
idを使って、document.getElementById("id").focus() で移そうとしているのですが、移りません。
実際のソースです。

function editcom(upid,text)
{
id = "com"+upid;
$(id).innerHTML = "<input type=\"hidden\" id=\"upid\" name=\"upid\" value=\""+upid+"\">
<input name=\"comtext\" id=\"comment\" type=\"text\" size=\"20\" value=\""+text+"\" onBlur=\"update()\" style=\"font-size:smaller\">";
myFocus = document.getElementById("comment").focus();
}

upidというのが、画像のIDで(DBで使用)、textがコメントの内容です。
onBlurで他のところをクリックしたときに、DBに反映しています。

972 名前:Name_Not_Found 投稿日:2007/03/02(金) 20:31:19 ID:???
innnerHTML書き換えじゃなくてDOM生成にして、
そのままエレメントに.focus()でどうか。

973 名前:Name_Not_Found 投稿日:2007/03/02(金) 20:31:33 ID:???
>>971
クリック -> editcom 実行 -> クリック完了(クリックしたとこにフォーカス)
ってなってそーな気がする

setTimeout(function(){ document.getElementById('comment').focus(); }, 100);

でどーだろ

>>956
>>>
All I can say is "stupid IE" :o)
<<<


ところで過去ログ全集がアカウントなんちゃらなってて見れない

974 名前:Name_Not_Found 投稿日:2007/03/02(金) 21:08:58 ID:???
>>973
return false; でよかろ

975 名前:Name_Not_Found 投稿日:2007/03/02(金) 23:48:57 ID:???
うお、まとめサイトに続いて過去スレ全集もか。
どーしよ。「過去ログ嫁」が使えなくなっちゃう?

976 名前:Name_Not_Found 投稿日:2007/03/03(土) 00:09:00 ID:???
仕様書嫁

977 名前:Name_Not_Found 投稿日:2007/03/03(土) 02:14:46 ID:???
IE 7 を入れてみたのですが、これまでと挙動が違うことがあって困ってます。
回避方法があればご教示お願い致します。

画像をポップアップするアンカーで
<a href="hoge.jpg" onClick="画像ポップアップ関数;return false;">...
としているのですが、IE 7 ではポップアップしつつ、元のページでも hoge.jpg が
開いてしまいます。IE 6, Firefox, Opera では元のページは変わりません。
href に何も指定しなければ良いと言われそうですが
JavaScript を扱えない、JavaScript が off の環境でも
画像を表示するという本来の目的は達成したいのです。

どなたかご存じないでしょうか?

978 名前:Name_Not_Found 投稿日:2007/03/03(土) 02:20:55 ID:???
>>977
エラーでも起きてんじゃねーの?

979 名前:Name_Not_Found 投稿日:2007/03/03(土) 02:29:45 ID:???
>>978
<a href="test.jpg" onClick="return false;">リンク</a>
レベルで再現しますけど?

980 名前:Name_Not_Found 投稿日:2007/03/03(土) 02:42:00 ID:???
あそう
うちの IE7 ではならんかったけどね

981 名前:Name_Not_Found 投稿日:2007/03/03(土) 04:47:30 ID:LmThfjpv
質問です。
ttp://jsgt.org/mt/archives/01/000955.html
ここで述べている「【Win】ActiveX コントロールのアクティブ化」
についてなんですが、
document.writeのケースでhtmlより.swfを呼び出しているのですが
一向に表示されません。
JAVAの根本的な問題なのでしょうか?
.jsファイルに
document.write('<embed src="test.swf">')
htmlで下記のように書いています。
<script src="embed.js"></script>
現在まったく.swfファイルが表示されていません、
パス等確認しました、何か考えられる原因等分かる方
いらっしゃいましたら助言を頂けると嬉しいです。

982 名前:Name_Not_Found 投稿日:2007/03/03(土) 05:45:47 ID:???
質問です。
>Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
>A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
と有りますが、JavaScriptで書かれているbbs2chreaderでは、
スレの取得などどうやって行っているのでしょうか?
2chのcgiから取得したスレをローカルファイルに保存していますよね?

983 名前:Name_Not_Found 投稿日:2007/03/03(土) 06:12:24 ID:???
普通にhttpで取ってきてるんだろ。
ローカルに保存したファイルをローカルでいじったり整形したりするのは何ら問題無い。

984 名前:Name_Not_Found 投稿日:2007/03/03(土) 06:35:05 ID:???
>ローカルに保存したファイルをローカルでいじったり整形したりするのは何ら問題無い。
これはJavaScriptで実装しているの?

985 名前:Name_Not_Found 投稿日:2007/03/03(土) 06:36:55 ID:???
すまん、「ファイルをいじる」ってのが語弊があるな。
「ファイルそのものの操作」はjavascriptで無理。

986 名前:Name_Not_Found 投稿日:2007/03/03(土) 07:45:59 ID:???
そうなんですか。
どうやって実現してるんだろ。
今拡張機能ファイルxpiをダウンロードしてきてつらつらソースを読んでるんですけれど、
殆どjsファイルですよね。
/components/idlのnsIBbs2chService.idlとnsIBbs2chChannel.idlが怪しいのかな?
lessしてみましたけれど、
#include "nsISupports.idl"
interface nsIURL;
interface nsIPrefBranch;
interface nsILocalFile;
と有るけれど、nsISupports.idlってどこからインクルードしてきてるんだろう。
そもそも
interface nsIURLが関数定義として、
nsIURL getBoardURL(in AUTF8String aURLSpec);
が関数の正体?
たぶんc++言語使っているんだろうけど、FireFoxの機能拡張に詳しい人教えてください。

987 名前:Name_Not_Found 投稿日:2007/03/03(土) 08:17:47 ID:???
ブラウザ実装とAPIとしてのJavascriptを近藤してまいか?


988 名前:Name_Not_Found 投稿日:2007/03/03(土) 09:29:37 ID:???
XPCOM

989 名前:Name_Not_Found 投稿日:2007/03/03(土) 09:35:03 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1172881944/l50

990 名前:Name_Not_Found 投稿日:2007/03/03(土) 10:38:25 ID:???
>>989

乙彼

991 名前:Name_Not_Found 投稿日:2007/03/03(土) 11:12:35 ID:???
>>977
の件、>>980 で再現しないとコメントを頂きましたが、更に調べてみましたところ
http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_22409247.html
に同様の現象について書いている人を見つけました。
この人も書いてますが、ちゃんと期待通り動く環境とそうでない環境があるようです。
同じような現象にあっている人はちらほらいるようです。

992 名前:Name_Not_Found 投稿日:2007/03/03(土) 11:43:22 ID:???
>>982
Mozillaでプログラミング(XUL) その3
http://pc11.2ch.net/test/read.cgi/tech/1164625238/

993 名前:Name_Not_Found 投稿日:2007/03/03(土) 11:54:25 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1172881944/l50

994 名前:971 投稿日:2007/03/03(土) 13:03:57 ID:???
生成したフォームにフォーカスしないという件で質問したモノです。
973さんのコードにしたらうまく動作しました。
フォーカスする前にクリック動作が完了しちゃってたんですね。
以前はこれと同じコードでうまくいってたのに、なんでだろーと思ってました。
どうも有り難うございました。

995 名前:Name_Not_Found 投稿日:2007/03/03(土) 13:26:00 ID:???
>>991
そういう感じだともはや「IE7のバグ」と言うしかない気がする。
避ける方法としてはJS ON用とOFF用のリンクを分けるとかかな。

996 名前:Name_Not_Found 投稿日:2007/03/03(土) 14:10:02 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1172881944/l50

997 名前:Name_Not_Found 投稿日:2007/03/03(土) 16:01:00 ID:???
>>977
元の html は

<a href='hoge.jpg'>...

にしといて

/* ぶさいくな IE7 対策 */
window.onload = function(){
(そのリンク).href = null;
(そのリンク).onclick = function(){
(画像ポップアップ);
return false;
}
}

とかキモチワルイことしてはいかがか

998 名前:Name_Not_Found 投稿日:2007/03/03(土) 16:53:57 ID:???
属性ってnull入れるだけで消えるの?

999 名前:Name_Not_Found 投稿日:2007/03/03(土) 17:00:28 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1172881944/l50

1000 名前:Name_Not_Found 投稿日:2007/03/03(土) 17:03:32 ID:???
1000埋めておくよ
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1172881944/l50

1001 名前:1001 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


戻る

偽Dat2HTML LO v1.0b13 Converted.
ナスカ無料ホームページ無料オンラインストレージ