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

このエントリーをはてなブックマークに追加
1Name_Not_Found
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、正しい(validな)HTMLとは何か知っており書ける者
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレhttp://hibari.2ch.net/test/read.cgi/hp/1284091954/
[必読]過去スレ全集 http://www2.atpages.jp/mirror/2ch/javascript/
      (閲覧のみ) http://usamimi.info/~mirrorhenkan/2ch/javascript/
      (閲覧のみ) http://wing2.jp/~mirrorhenkan/2ch/javascript/
[必読]ガイド https://developer.mozilla.org/Ja/JavaScript
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-7
2Name_Not_Found:2010/11/07(日) 20:52:34 ID:???
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
3Name_Not_Found:2010/11/07(日) 20:52:41 ID:???
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. 同じタグの中で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. DOMでは(XHTML 1.x除く)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']」は同じ意味です。
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
4Name_Not_Found:2010/11/07(日) 20:52:56 ID:???
【FAQその2】
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
  new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
  を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。
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が置き換え前の文字列全体になります。
5Name_Not_Found:2010/11/07(日) 20:53:07 ID:???
【FAQその3】
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。

【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
6Name_Not_Found:2010/11/07(日) 20:53:16 ID:???
7Name_Not_Found:2010/11/07(日) 20:55:08 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
http://www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ part221
http://hibari.2ch.net/test/read.cgi/hp/1286969289/
CSS初心者スレッド=9th=
http://hibari.2ch.net/test/read.cgi/hp/1287470663/
役に立つ書籍は? 4冊目
http://hibari.2ch.net/test/read.cgi/hp/1172823674/l50
1行javascriptプログラミング
http://hibari.2ch.net/test/read.cgi/hp/1066750037/l50
WSH(・∀・)スレッド! Part 4
http://hibari.2ch.net/test/read.cgi/tech/1243095768/l50
8Name_Not_Found:2010/11/08(月) 08:33:19 ID:???
誘導されましたのでこちらにて質問させて頂きます。

次のコードを記述したのですが文字コードの取得がうまくいきません。
一体なぜでしょうか?


// 入力文字コードの取得
function numOnly(evt)
{
var e = evt || window.event;
m1 = e.keyCode;
m2 = e.which;

}
<input id="id_number" style="" type="text" onkeyDown="return numOnly()" />
9Name_Not_Found:2010/11/08(月) 12:24:05 ID:???
スレ立てお疲れさまでした。
>>8
numOnlyにパラメタ渡してないじゃん。Moz系ではonkeydownには
eventという名前のパラメタが渡って来るから
「return numOnly(event)」でどうかな。しかし取得できてるか
どうかはどうやって確認してるんだろう。
10Name_Not_Found:2010/11/08(月) 13:49:20 ID:???
JavaScriptの勉強をしているのですが、本当にJavaScriptだけなのでHTMLとの連動の仕方がよくわかりません
<form>〜</form>で値をJavaScriptに格納する事もできません
HTMLとJavascriptの連動について初心者でも1からよくわかるような説明が載ってるサイトってありますか?
11Name_Not_Found:2010/11/08(月) 14:04:51 ID:???
>>6のリンク先でもながめてなよ
12Name_Not_Found:2010/11/08(月) 14:38:44 ID:???
>>10
HTMLは勉強し終わっているのかな。それなら簡単だと思うけど。

1. <script>...</script>の中でJavaScriptの関数を定義する
2. <button onclick="関数()">...</button>でボタン押し時に関数を呼ぶ
3. 関数内でdocument.forms.フォーム名.elements.部品名.value を
読みだしたり書き込んだりするとその部品の値が読み書きできる
(<input type="text">とか<textarea>とかの場合)

まあ細かいことは色々あるけど基本はこれくらいでいいんじゃないの。
13Name_Not_Found:2010/11/08(月) 15:09:10 ID:???
質問させてください。
作っているプログラムがうまく動かないので調べていたところ、変数の足し算がうまくいっていないみたいでした。
例えば
hensu1=3;
hensu2=5;
として
hensu3 = hensu1+hensu2
として、アラートでhensu3を表示させたところ
「8」になってほしかったのが「35」になっています。
どうしたら8にするようにできるでしょうか?変数定義の段階で間違っているのでしょうか?
14Name_Not_Found:2010/11/08(月) 15:15:18 ID:???
hensu1="3"って感じでダブルクオテーションかシングルクオテーションで囲ってるんじゃないの?
String型(文字列)として扱われてるから3という文字列と5という文字列がくっついて35になってると予想される。
そのソース通りクオテーションがついてない場合int型(数値)になるので8になる。
そのソース実行したら8になるはずだが試したのかね?
15Name_Not_Found:2010/11/08(月) 16:12:26 ID:???
>>10
そしたら今度はJavaScriptのDOMの操作についてやりゃいいと思う
16Name_Not_Found:2010/11/08(月) 16:45:28 ID:???
>>14
ありがとうございます。"3"ではなかったのですが、やはり新規でそのソースだけ書いて実行してみたら8になりました。
作っているプログラムのほうで、hensu1はある条件の時のカウント用なので大丈夫だと思うのです。
hensu2がダイアログでユーザーに聞いて数値を入力させる変数なので、そこで文字列型になっているのかもしれません。
17Name_Not_Found:2010/11/08(月) 16:49:34 ID:???
ユーザ入力で受け取るのは文字列だからparseIntでもかけときなさい
18Name_Not_Found:2010/11/08(月) 17:11:47 ID:???
>>17
おおおおできたああああ!
どうもありがとうございました。
19Name_Not_Found:2010/11/08(月) 18:02:41 ID:???
初めてのプログラミングがjavascriptなんですが
使っていたメモリの解放?とか何かそういう特別なことをしないといけないんですか?
どういうときにどうするものなんですか?
まだ動くか動かないかといった目で見てわかることに必死な現状なんですが
メモリがどうのこうのってことも意識しておきたくて。
でも目に見えない(見る方法とかあるんですか?)からなんだか漠然としていて
20Name_Not_Found:2010/11/08(月) 18:23:45 ID:???
ガベージコレクションって機能が勝手に解放してくれるから基本的に気にしないでいい。
メモリが一向に解放されないメモリリーク(バグで引き起こされる)に注意。
リークパターンはいくつかあるのでそれは勉強していくしかない。
21Name_Not_Found:2010/11/08(月) 18:31:57 ID:???
どうもありがとうございますm(_ _)m
22Name_Not_Found:2010/11/09(火) 18:53:59 ID:???
お邪魔します、質問です。

<a href="hoge1.html" onclick="hoge(); return false;">リンク1</a><br>
<a href="hoge2.html" onclick="hoge(); return false;">リンク2</a><br>
<a href="hoge3.html" onclick="hoge(); return false;">リンク3</a><br>

こんなリンクがあるとして、クリックされた時に、
関数hogeに、対応するhref属性の値を拾わせたいと考えています。

例えば、「リンク1」がクリックされた場合は「hoge1.html」を、
「リンク2」がクリックされた場合は「hoge2.html」を、
ひとつの関数hogeで拾えるようにしたいという感じです。

が、関数hogeの中をどのように書けばよいのか分からず悩んでいます。

ググったら、thisやら、callee.caller?やらが引っかかったのですが、
少し自分には難しく、検索結果を真似してみてもうまくいきません。
という状況なのですが、どなたかアドバイスいただけると嬉しいです。
23Name_Not_Found:2010/11/09(火) 19:15:14 ID:???
しょーもない質問なんですが

function point(_nioi , _kao )
{
this.nioi = _nioi ;
this.kao = _kao ;
}
でコンストラクタのを生成

var ayaka = new point(kusai , busu );
でnewでpointオブジェクトを生成して、変数のayakaにpointオブジェクトの値を入れて

document.write( ayaka.nioi );
でdocument.writeで書き出して、変数ayakaのnioiプロパティを引き出してkusaiを引き出すのですが
このayakaはオブジェクトなのでしょうか?変数なのでしょうか?

オブジェクト名 . プロパティ名で属性表示という風に習ったのですがソコがどうも納得いかなくて

それとコンストラクタの生成じゃないとかpointはオブジェクトじゃないとかあったらお願いします
24Name_Not_Found:2010/11/09(火) 19:38:57 ID:???
いろいろなサイトを参考にして、外部htmlのソース内を検索するスクリプトを作ってみた(ほぼコピペ)のですが、
対象とするhtmlのソースが動的に変化するため、setintervalで何秒か置きに取得したいと思っています。

概要は、
<html>
<head>
<script type="text/javascript">
 function A(){}
 function B(){}//Aから呼び出し
 function C(){}//Aから呼び出し
</script>
</head>
<body onload="A();setInterval(A,10000);">//10秒置きに対象htmlのソース内を検索したい
</body>
</html>
となっています。
一度は実行されるのですが、2度目以降が実行されていないようです。
どこが間違っているのか教えてください。

実際のfunctionについては次で。
2524:2010/11/09(火) 19:39:38 ID:???
var request;
function requestsorce(){
  var url = "http://www.xxx.html";
  request=createhttprequest();
  request.open("GET",url,true);
  request.onreadystatechange=sorceget;
  request.send(null);
}
function createhttprequest(){
  var request=null;
  if("XMLHttpRequest" in window){
    request= new XMLHttpRequest();
  }else if("ActiveXObject" in window){
    try{
      request=new ActiveXobject("Msxml2.XMLHTTP");
    }catch(e){
      try{
        request=new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
      }
    }
  }
  return request;
}
function sorceget(){
  if (request.readyState == 4 && request.status == 200){
    var str = request.responseText;
    var spl = "abc"
    var n = str.split(spl).length - 1;
    document.write("abcは、" + n + "件です。");
  }
}
2624:2010/11/09(火) 19:43:24 ID:???
引き続き失礼します。
>>25は、
対象のhtml("http://www.xxx.html")のソース内で「"abc"」を検索して件数を表示するものです。
3つめのfunction sorceget()内の「n」を10秒置きに取得したいと思っています。

よろしくお願いします。
27Name_Not_Found:2010/11/09(火) 19:55:14 ID:???
>>22
function hoge (target){
var url = target.href;
...
}

<a href="hoge1.html" onclick="hoge(this); return false;".リンク1</a>

こんな感じでどうだろうか

>>23
ayaka はオブジェクトでもあり変数でもある
point は関数でもあり関数オブジェクトでもありコンストラクタでもある
視点の問題
28Name_Not_Found:2010/11/09(火) 19:56:42 ID:???
>>27
なるほどー!ありがとうございます!
by23
29Name_Not_Found:2010/11/09(火) 19:59:35 ID:???
>>24
多分キャッシュが効いてる

var url = "http://www.xxx.html?" + Math.random();
でいけると思う
30Name_Not_Found:2010/11/09(火) 20:00:34 ID:???
最初って参考書によってオブジェクトって書いてあったりインスタンスって書いてあるからね
ayakaはインスタンスオブジェクト
どっちでもいいんだけど二通りいてあったらオブジェクトでありインスタンスでもあるって覚えりゃいいかも




・・・間違って書いてるサイトもあるけど
31Name_Not_Found:2010/11/09(火) 20:17:46 ID:???
>>27
>>22です。
うまくいきました!ありがとうございます!
たぶん自分thisがよくわかっていないんですね、勉強してきます。
32Name_Not_Found:2010/11/09(火) 22:56:11 ID:???
>>29
レスありがとうございます。
今確認できる環境にないので、明日確認してみます。
ありがとうございました。
33Name_Not_Found:2010/11/09(火) 23:33:15 ID:???
>>32
キャッシュの問題以前に、 sorceget()の中にあるdocument.write(〜)の処理は
>>3 のテンプレのQ4をクリアしてるの?

>Q4. document.write(...)でページ内容を追加したいのですが…
>A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。

ページ構築後に自分自身にdocument.write()で出力するとプログラム自体も
書き換えられるから、2回目以降が実行されないだけでは?
34Name_Not_Found:2010/11/10(水) 00:13:53 ID:???
今どきの初心者ってそもそもdocument#write()とか知らないんじゃないか
35Name_Not_Found:2010/11/10(水) 00:20:27 ID:???
>>34
な、なにそれ??
36Name_Not_Found:2010/11/10(水) 00:23:24 ID:???
なんだその記述方法は!?
37Name_Not_Found:2010/11/10(水) 00:36:43 ID:???
#じゃないなと思って直そうとしたら間違えて投稿した
特に後悔はしていない
38Name_Not_Found:2010/11/10(水) 00:52:38 ID:???
HTMLDocument#write ならわからなくもない
39Name_Not_Found:2010/11/10(水) 01:01:43 ID:Jt7sz81y
#ってどういう意味で使うんだっけ。クラスに対するインスタンスメソッド?
40Name_Not_Found:2010/11/10(水) 01:03:05 ID:???
::dom::html::HTMLDocument::writeだろ
IDL的に
41Name_Not_Found:2010/11/10(水) 07:25:16 ID:???
>>39
意味はその通り。
Ruby界隈でよく見る記法。起源は知らん
42Name_Not_Found:2010/11/10(水) 07:30:57 ID:???
Javaでもよく見る(多分Rubyよりはこっちが先)
43Name_Not_Found:2010/11/10(水) 07:38:18 ID:???
いくつかの言語ではコメントアウトに使うけどNE
44Name_Not_Found:2010/11/10(水) 08:08:10 ID:???
あのースレ立て人ですけど、今のうちにテンプレ論議したいな
と思っています。前スレ末尾のを探して来て貼ろうかと思った
のだけど、あれ書いた人いるならもっかい提案してくれた方が
いいのかなと思って。その他テンプレのここを直そうとかあったら
ぜひ今提案しませう。
45Name_Not_Found:2010/11/10(水) 08:36:39 ID:???
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。

(確認した限り)FirefoxとChromeは[DOM Element].fileで参照できることを書いてあげてもいい気がする
https://developer.mozilla.org/en/DOM/File
http://dev.w3.org/2006/webapi/FileAPI/
46Name_Not_Found:2010/11/10(水) 08:58:57 ID:???
chromeは6.0からfirefoxは3.6からだっけ
IEは今のところ9betaでもNGなんだよね?確か
47Name_Not_Found:2010/11/10(水) 09:17:14 ID:???
>>45-46
文面が長くなるとテンプレ誰も読まなくなるので「ブラウザにより」
のままがいいと思う。本当にこの情報が必要な人は調べるでしょ。
48Name_Not_Found:2010/11/10(水) 09:21:48 ID:???
それなら「ブラウザによりFileAPIで参照可能」って感じではどうだろう
何かしらのキーワードはあったほうが探しやすいし・・・
49Name_Not_Found:2010/11/10(水) 09:54:03 ID:???
File API仕様自体が安定してない
メソッド名すらちょくちょく変わる
やりたい奴はやればいいがテンプレとしては時期尚早

HTML5関連は実装主導と言うと聞こえは良いが
その実は自分で仕様と実装を比較対照できるレベルでないとやってられんぞ
そんな奴ならTRのリストをやれば自分で勝手にやるだろ
50Name_Not_Found:2010/11/10(水) 10:12:25 ID:???
先行実装をやたらに使うのはよくない
独自拡張乱用と変わらん
51Name_Not_Found:2010/11/10(水) 11:56:19 ID:???
一つ質問なんですが
ここに居る皆さんはナゼ無償でこんなに親切に教えてくれるのでしょうか?
ブログとかならアクセス数伸ばす為とか解るんですが
52Name_Not_Found:2010/11/10(水) 12:01:07 ID:???
暇だから
53Name_Not_Found:2010/11/10(水) 12:08:15 ID:???
ブログやったりアクセス数のばしたりとか意味がない行為してどうするんだ
アフィリエイト?小遣い程度にしかならないのに力入れるだけバカバカしい
それよりも議論してたほうが楽しいからここでやる
って感じなんじゃないの
初心者は議論の話題を持ってきてくれる格好のエサなんだよ
54Name_Not_Found:2010/11/10(水) 12:10:35 ID:???
アフィリ馬鹿にしちゃいかんよ
やり方によっては数十万稼げる
55Name_Not_Found:2010/11/10(水) 12:12:11 ID:???
国益の為
56Name_Not_Found:2010/11/10(水) 12:15:44 ID:???
俺は昔から自転車ドミノ倒ししちゃった人とか見ると可哀想で手伝わずにはいられない
勉強で何が違うのか、問題の意味とか解らなくて困ってる人が居たら是非教えてやりたい

そんでソイツが助けを求めてるなら尚更だ、俺は知ってるがコイツは知らない
そしてソイツが知らない事を俺は知ってる
なら教えてやるのが人間ってもんだろ。他人の痛みを理解してるが故の行動だ
57Name_Not_Found:2010/11/10(水) 12:20:40 ID:???
JavaScriptでCPU現在の使用率みたいなものを取得することは
できますか?(無理なような気がしますが)
JavaScript実行時にcpuに高負荷をかけていた場合に
setTimeoutのタイマー値を大きくすることができたらな、と思ったので。
58Name_Not_Found:2010/11/10(水) 13:05:58 ID:???
オブジェクトについて質問です

オブジェクト作るとき
new Date()、new Array()など最初から用途が決まってるオブジェクト
new 適当な名前(xxx,xxx){xxx}など自分で関数とかを作るオブジェクト
documentのように最初から既に使えるオブジェクト

があるのですが、この3つの種類分けというか名前の違いあるのでしょうか?
絵本で学ぶJavaScriptという本を買ったので詳しく乗ってないのですが
5958:2010/11/10(水) 13:11:07 ID:???
二つ目の
new 適当な名前(xxx,xxx){xxx}など自分で関数とかを作るオブジェクト

new 適当な名前(xxx,xxx){xxx}など functionを使って 関数とか で 作るオブジェクト
です
6024:2010/11/10(水) 13:39:27 ID:???
>>33
おっしゃる通り、document.writeが良くなかったようです。
動作確認のためdocument.writeを入れていたため発生していました。
今は<div id="hoge"></div>を作成し、hoge.innerHTML で無事思っていた通りの動作になりました。
>>29,33ありがとうございました。
61Name_Not_Found:2010/11/10(水) 14:01:01 ID:2+VIQxGh
質問です

var list = ["qwer","asdf","zxcv"];

for(var i=0,l=list.length ; i<l ; i++){
    (function(arg){
        console.log(this);
        console.log(arg);
    }).call(list[i] , list[i]);
}

こう書いたときに、
thisがオブジェクトで表示されて、argは文字列で表示されるのは、
Firebugの問題?それとも本当に違うものとして扱われている?
62Name_Not_Found:2010/11/10(水) 14:27:40 ID:???
>>57
直接にCPU負荷を知るのは不可だけど、
処理時間は new Date().getTime() で差を取れば求められるから、
それでどうだろう。
但し、PCによって絶対値は変わるから、相対的な指標として。
63Name_Not_Found:2010/11/10(水) 14:38:45 ID:???
>>62
頭良いなぁって素直に思えた
64Name_Not_Found:2010/11/10(水) 15:21:39 ID:???
>>61
var str = "hoge";
(function(arg){console.log(this === arg)}).call(str, str);

違うっぽいな
65Name_Not_Found:2010/11/10(水) 15:31:58 ID:???
Stringオブジェクトに型変換されてるから
66Name_Not_Found:2010/11/10(水) 15:32:41 ID:2+VIQxGh
>>64
うーん。

var src = "hoge.gif";
(function(arg){

    var img = document.createElement();

    img.setAttribute('src',this); // 画像読まない
    img.setAttribute('src',arg); // 画像読む

    img.src = this; // 画像読む
    img.src = arg; // 画像読む

}).call(src,src);



こんな感じに振舞うんだよなあ。
なんでだろう。
67Name_Not_Found:2010/11/10(水) 15:33:04 ID:???
call及びapplyで文字列(Stringオブジェクト含む)をthisとして渡した場合
function内だとstringオブジェクトにはならないよね
68Name_Not_Found:2010/11/10(水) 15:33:58 ID:2+VIQxGh
>>66
くわしく!
69Name_Not_Found:2010/11/10(水) 15:36:04 ID:2+VIQxGh
ことごとくレスが遅れた…

>>68
> function内だとstringオブジェクトにはならない

やっぱそうなのか。
ありがとうございました。あとは自分で調べてみますん。
70Name_Not_Found:2010/11/10(水) 15:45:05 ID:???
>>66
それIEのsetAttributeじゃね?そこだけオブジェクトのままで型変換されないようだが
71Name_Not_Found:2010/11/10(水) 15:50:21 ID:???
(function(arg){
 console.log(this instanceof String); // true
 console.log(arg instanceof String); // false
}).call("test","test");

でもconsole.logで出力した時に
 console.log(this); objectと出力される
 console.log(arg); 出力される

謎だ・・・てっきりStringじゃないと思ってた・・・
72Name_Not_Found:2010/11/10(水) 15:55:23 ID:???
プリミティブな文字列とStringオブジェクトの違いをきちんと調べてください。型変換も
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/String
73Name_Not_Found:2010/11/10(水) 19:28:31 ID:???
createElementで生成したタグを、appendで挿入するのではなく、変数として受け取ることってできませんか?
74Name_Not_Found:2010/11/10(水) 19:31:50 ID:???
>>73
outerHTML
75Name_Not_Found:2010/11/10(水) 19:32:51 ID:???
オブジェクトを変数として受け取る?
ごめん、日本語がわからない
76Name_Not_Found:2010/11/10(水) 19:44:12 ID:???
>>73
var p = document.createElement('p');
77Name_Not_Found:2010/11/10(水) 20:31:44 ID:???
リンクをクリックすると、リンク先のページに書いてあるjavascriptを
画面遷移なしで実行されるものを作りたいのですが、可能でしょうか?

bookmarkletみたいな動作を、ほかサイトへのリンクをクリックしたときに実行させるものをイメージしています。


例)

1. http://mysite/test.html を開くと Hello World と書かれたメッセージボックスを表示する。
2. http://hogehoge/top.htmlhttp://mysite/test.html へのリンクを作成する。
3. http://hogehoge/top.html から、2のリンクをクリックすると、画面遷移せずに Hello World と表示される。

<制限>
http://hogehoge/top.html にはほかページへのURLのリンクのみ作成できる。
 →直接javascriptを記述することはできない。


78Name_Not_Found:2010/11/10(水) 20:34:33 ID:???
>>77
XMLHttpRequest Level 2 か window.postMessage を使う。。
79Name_Not_Found:2010/11/10(水) 20:34:39 ID:2+VIQxGh
>>72
超勉強になりました!

String プリミティブと String オブジェクトは、Javascript として評価されたとき、異なる結果を与えます。
プリミティブはソースコードとして扱われ、一方、String オブジェクトは、文字がそのまま連続した状態の
オブジェクトとして扱われます。例:

s1 = "2 + 2"; // String プリミティブを生成します
s2 = new String("2 + 2"); // String オブジェクトを生成します
eval(s1); // 数字の 4 を返します
eval(s2); // 文字列の "2 + 2" を返します
eval(s2.valueOf()); // 数字の 4 を返します
8078:2010/11/10(水) 20:36:15 ID:???
ごめん。やっぱり、無理だ。
JavaScriptを 書かずに実現できるはずがない。
81Name_Not_Found:2010/11/10(水) 20:40:45 ID:???
XMLHTTPRequestで取得したhtml、
すなわち、文字列で持っているhtmlに対して、
DOMでアクセスすることはできますか?
82Name_Not_Found:2010/11/10(水) 20:42:33 ID:???
alert程度ならiframeとtarget="_name"
ページ内から検索とか埋め込みは無理。
83Name_Not_Found:2010/11/10(水) 20:53:08 ID:???
>>78
ありがとうございます。
やっぱりそうですよね。。。

これができたら2chとかTwitterに短縮URLとして投稿して、そいつを
クリックするとポップアップで画像やらを表示とかできるかと
思ったのですが・・・残念
84Name_Not_Found:2010/11/10(水) 21:02:02 ID:2+VIQxGh
>>83
JS書けない縛りなのに、JSスレで何を聞きたかったんだw
85Name_Not_Found:2010/11/10(水) 21:49:53 ID:???
>>81

+ JavaScript の質問用スレッド vol.80 +
http://hibari.2ch.net/test/read.cgi/hp/1284091954/645n
86Name_Not_Found:2010/11/10(水) 22:25:39 ID:???
>>83
そんなこと我出来たら、怖くてリンク踏めないよ…。
87Name_Not_Found:2010/11/10(水) 23:15:53 ID:???
今はdocument.getElementByIdなんて使わなくて何か代わりのものを使うみたいな書き込みを
前このスレで見たような気がするのですがどなたか心当たりいる方いませんか?
もしかしたらDOMやinnerHTMLの代わりだったかもしれません
88Name_Not_Found:2010/11/10(水) 23:18:26 ID:???
>>86
それをいったらブラクラも同じじゃない?
89Name_Not_Found:2010/11/10(水) 23:23:36 ID:???
>>87
querySelectorAll とか evaluate とか?
9086:2010/11/10(水) 23:29:01 ID:???
>>88
Twitterは信用してる。リンク先はまだ信用してない。
って時にリンクをクリックしてリンク先で被害に遭うのはまだ許容できる。

でも、リンクをクリックしてTwitterサイトが勝手に改変されてTwitterまで信頼できないサイトになるのは耐えられない。
Twitterでリンクをクリックする度にページを更新してリセットするのも現実的ではない。
他人様のサイトに自由にJavaScript を仕込めるとしたらあらゆるサイトが信用できなくなる。
91Name_Not_Found:2010/11/10(水) 23:30:15 ID:???
そのためにグリモンとかがあるんだからなー…
9287:2010/11/10(水) 23:32:22 ID:???
>>89
それだっ!言葉見て思い出しました
querySelectorのことです
どうもありがとうございました
93Name_Not_Found:2010/11/10(水) 23:46:10 ID:???
>>86
なるほど把握
94Name_Not_Found:2010/11/11(木) 00:51:13 ID:h3beJ//A
<script type="text/javascript">
function compare(a, b) {
return a - b;
}
</script>


<body>
<script type="text/javascript">
var ages = new Array(4, 6, 10, 24, 1, 11, 40);
ages = ages.sort(compare);
document.write(ages);
</script>

で数の小さい順に表示するのですが、このcompare関数のaとbに何が入ってどのように計算が行われるのかよくわかりません、aとbの差を求めると言うのは解るのですが
ages.sort()で昇順に並ぶのはわかるのですが・・・。
95Name_Not_Found:2010/11/11(木) 01:11:26 ID:???
そんな長ったらしく書かないでも
function compare(a, b) {return a - b;}
var ages = new Array(4, 6, 10, 24, 1, 11, 40);
ages.sort(compare);
で伝わる

これはな、まずages.sort()で(1,10,11,24,4,40,6)ってなるやろ?
ここまでは解ると思う
そんでその配列がcompare関数に格納されるんだな

で、その後の説明は誰かに任せる
96Name_Not_Found:2010/11/11(木) 01:21:24 ID:???
sort mdc
でググったほうが何かと早い気がする
97Name_Not_Found:2010/11/11(木) 01:24:54 ID:???
>>94
> このcompare関数のaとbに何が入ってどのように計算が行われるのかよくわかりません
そんな時のためにコンソールがあるんじゃないか。

[4, 6, 10, 24, 1, 11, 40].sort(function (a, b) { console.log(a, b); return a - b; });
98Name_Not_Found:2010/11/11(木) 11:27:53 ID:wBgS4PyJ
すみませんが質問させてください。
FLASHはあるのに、ページの大部分がAjaxってのを見たことがないのですが何故なのでしょうか?
基本的にAjaxが使われているのは小さな部分のみのように思います。
例えばAjaxで表示した部分のブックマークなどが出来ないなどの不都合はありますが、基本的には多くのサイトは古典的なコンテンツのボタンをクリックするとページが飛び切り替わるというものです。
例えば価格.comのこのページ(ttp://kakaku.com/item/K0000124859/)のように、スペック、クチコミなどわざわざページ移動が発生します。

個人的に想像してみたのは、
セッションなどの維持が難しい、ページビューに加算されない、ページ表示に処理が重くなり時間がかかる、コード作成がめんどくさい
等の理由なのかなと思ったのですが、どうなのでしょうか?

サーバ側から、又はクライアント側から見たAjaxのデメリットとは何なのでしょうか?
99Name_Not_Found:2010/11/11(木) 11:30:13 ID:???
>>98
YahooやGoogleの地図はほぼ全面Ajaxだよね。
100Name_Not_Found:2010/11/11(木) 11:38:17 ID:???
知らないだけでそこら中Ajaxだらけ
価格comは別にページ遷移しても正常に使えるわけでなんら問題ないでしょ
なんでもかんでもAjaxにすればいいという問題じゃない
Ajaxにする必要がないからしないだけで理由なんてない
101Name_Not_Found:2010/11/11(木) 11:45:44 ID:wBgS4PyJ
>>99
そうですね。
Yahoo!のトップページには部分部分でAjaxが使われているのは確認致しました。
書き忘れていたのですが、デメリットとしてJavaScriptをOffにしている場合やブラウザ間の差異などもありますが、後者の場合はライブラリで少しは軽減できるように思います。
重いというのも、Yahoo!位であれば今の世の中さほど気にならないように思います。

後良くわからないのが、ソースコードがまる見えになるというデメリットがあるようですが、いったいどういうことなのか分かりません。
JavaScriptであればソース表示で見えてしまうのは仕方がないですが、その事を言っているのでしょうか?
それとも、何かサーバサイドの情報まで露見してしまうような事がありうるのでしょうか?
セッションIDとかデータベースとの連携の為のコードやパスなど。
まぁ無いとは思いますが。
確かにAjaxのソースコード内に何かサーバサイドに影響を及ぼすようなパスなどを書いてしまえばダメなのかもしれませんが。
102Name_Not_Found:2010/11/11(木) 11:48:05 ID:???
Flashと比較してるなら丸見えってソース表示のことなんだろ
Flashはコンパイルするからな
103Name_Not_Found:2010/11/11(木) 13:56:50 ID:beU5WhRu
言いたいことはわかるけど、全部Ajaxって言い方にすごい違和感
製作現場で営業がJSでヌルヌル動くやつ全般をAjaxって呼んでる感じする
104Name_Not_Found:2010/11/11(木) 15:42:51 ID:???
>>94
マルチポスト

JavaScriptのsort()について質問です - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1350192518
105Name_Not_Found:2010/11/11(木) 16:50:27 ID:???
お探しのページは見つかりませんでした。
106Name_Not_Found:2010/11/11(木) 16:55:34 ID:???
>>104
質問を取り消した模様。証拠隠滅か。

sebaschan_senbaさんのMy知恵袋 - Yahoo!知恵袋
http://my.chiebukuro.yahoo.co.jp/my/sebaschan_senba
107Name_Not_Found:2010/11/11(木) 17:06:02 ID:???
108Name_Not_Found:2010/11/11(木) 17:34:34 ID:???
2ch以外をマルチの対象とするのはどうなんだろうな
109Name_Not_Found:2010/11/11(木) 17:44:49 ID:???
別にいいんじぇねーの?
2ch内で荒ししてるわけでもねーし
110Name_Not_Found:2010/11/11(木) 17:50:54 ID:???
じぇねーの
111Name_Not_Found:2010/11/11(木) 17:54:30 ID:???
マルチポストの定義の話?

---
元々は、同じ内容の記事を複数のニューズグループ(カテゴリ)にクロスポスト機能(後述)を使わずに別個の記事として投稿する行為を指した。
マルチポストという言葉はインターネット利用の多様化に伴い、ニューズグループに限らず電子掲示板やメーリングリストといった、知識の集積と共有を目的としたさまざまな形態のコミュニティー(ナレッジサイト)への投稿についても援用されるようになった。
マルチポストはマナー違反であるとして嫌う傾向が強いとされる[1][2]。
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88
---
112Name_Not_Found:2010/11/11(木) 17:55:48 ID:???
別に定義云々を言ってる訳じゃないんだが・・・
113111:2010/11/11(木) 18:01:04 ID:???
>>112
それはすまん。「2ch内でなければマルチポストとは呼ばないだろ」と受け止めてた。
まあ、マルチポストを知らされて困ることは何一つないし、いいんでないかと。
114Name_Not_Found:2010/11/11(木) 18:03:42 ID:???
マルチポスト行為を擁護しているのか、マルチポストを報告する者を擁護しているのか。
115Name_Not_Found:2010/11/11(木) 18:07:00 ID:???
知恵袋との掛け持ちはしょっちゅう居るけど
別にスレチってわけでもないし、いいんじゃないか?

アニメ板のけいおん!スレとかで必死に政治コピペをマルチポストする奴は本当にウザイけど
116Name_Not_Found:2010/11/11(木) 18:11:49 ID:???
マルチポスト報告しても別にいいんじゃないの
以後相手する必要がないってことだ

投稿時間、内容からして、結局MDCなどの仕様を読む気がないのがわかる
117Name_Not_Found:2010/11/11(木) 18:12:12 ID:???
>>101
クライアントサイドで動かすコードにサーバサイドの情報を書くわけがない。
書くとしたらその人間が脆弱性。
クライアント側から見たデメリットはクライアントPCに負荷がかかること。

>>114
後者
118Name_Not_Found:2010/11/11(木) 18:13:22 ID:???
他板や他スレにも同じ質問を投稿するのはどうかとは思うが
他サイトの事をマルチとしてこのスレに報告までするのは
別に要らないんじゃないの?と
今回マルチしてる人の擁護にはなってるけどね

最初にきっと書かずにごめんなさい
119Name_Not_Found:2010/11/11(木) 18:15:05 ID:???
まぁそんな目くじら立てる程でもないだろ
120Name_Not_Found:2010/11/11(木) 18:23:08 ID:???
この前も変な奴が沸いたりして質問スルーされまくってた時にスルーされた奴がマルチポストしたとか言ってたけど
アレばっかりは仕方が無いと思う
121Name_Not_Found:2010/11/11(木) 18:24:44 ID:???
回答がつかなくて別のサイトに質問するのは仕方ないが、今回は違うだろう。
122Name_Not_Found:2010/11/11(木) 18:30:24 ID:???
>>120
それは仕方ないと思うが、記憶にないな。
参考までにレス番を教えてくれると有り難い。
123Name_Not_Found:2010/11/11(木) 18:30:41 ID:???
別に2chに迷惑かけてる訳じゃないし掛け持ちぐらい許してもいいのでは
124Name_Not_Found:2010/11/11(木) 18:38:56 ID:???
>>122
確か今年の何ヶ月ぐらい前、時期ハッキリ覚えてないや
負荷だとか作業効率とかで物凄い長文レスが行き交ってる時そんな事があった気がする
特に俺はレスしたわけじゃないけどモニタの前で「これは許してやれよw」とか思ってた

俺も長文のなんか凄い、最近だと前スレの
http://hibari.2ch.net/test/read.cgi/hp/1284091954/801
とかが沸くとNGに突っ込むのもメンドクサイからスルーしちゃって見落とすから悪いけど
125Name_Not_Found:2010/11/11(木) 18:39:20 ID:???
>>123
ここで議論しても仕方がないんだが…、マルチポストが回答者及び利用者に迷惑をかけてる、という事を認識していないのだろうか。
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88#.E3.83.9E.E3.83.8A.E3.83.BC.E9.81.95.E5.8F.8D.E3.81.AE.E7.90.86.E7.94.B1
俺個人としては質問者がURLを貼ってくれれば目くじら立てないが、嫌われるのは仕方ないだろう。
126Name_Not_Found:2010/11/11(木) 18:55:08 ID:???
>>124
ありがとう。
作業効率の書き込みは見付けられなかったが、長文のヤツが沸くとスルーしてしまう気持ちはわかる気がする。
127Name_Not_Found:2010/11/12(金) 00:53:20 ID:9f8TkMxu
ttp://www.enfanble.jp/osaka/randoseru11/product/index.html#h4_in_01

上記のような商品シュミレーションを作ることになりましたが、
FLASHではなくjavascriptで作れないかと思い、サンプル集や
講座系のサイトを探しましたがなかなか見つけることが出来ません。
よろしければ作成の手がかりになるようなヒント、または解説・サンプル等の
サイトを紹介していただけないでしょうか?
よろしくお願いします。
128Name_Not_Found:2010/11/12(金) 00:54:30 ID:???
>>124
そればっかりは俺もスルースキル発動した
129Name_Not_Found:2010/11/12(金) 01:08:52 ID:???
>>127
簡単にやりたければ全パターンの画像を用意して、画像を切り替えるボタンを付けるだけでいい。
必要な知識は、ボタンクリックによる画像の切り替えだけ。
130Name_Not_Found:2010/11/12(金) 11:14:53 ID:???
setTimeoutの仕様がめちゃくちゃめんどくさいです
他言語のsleepやwaitのように使えるものあったりしませんか?
setTimeoutの仕様をちゃんと理解するしかないですかね?
https://developer.mozilla.org/ja/DOM/window.setTimeout
このthis問題とか特に・・・
131Name_Not_Found:2010/11/12(金) 12:19:48 ID:LRBM1Hnr
助けてください・・
現在、文字サイズと背景色を変更可能な機能を実装しています。
しかし、階層の違うページに遷移した際、cookieが適用されず困っています。
調べてみると、index.htmlで文字サイズを変えた場合、cssurlがcss/〜とcookieされますが、sub/a.htmlでサイズを変更すると、cssurlが../css/〜となるため、
階層の違うページではクッキーが解除されるようなのです。なのでhttpからなる絶対パスで記述すればうまくいくのですが、
相対パスでなんとかすることはできないでしょうか?
js内の記述は、

$(function(){
$("#fontSize").attr({href:$.cookie('style')});
});
function fontSize(cssurl){
$('#fontSize').attr({href:cssurl});
$.cookie('style',cssurl,{expires:30,path:'/'});
}
で、index.htmlのほうは、

<link rel="stylesheet" href="../css/m.css" type="text/css" id="fontSize" />
<省略>
<td onclick="fontSize('css/l.css')">大</td>
<td onclick="fontSize('css/m.css')">中</td>
<td onclick="fontSize('css/s.css')">小</td>
です。
で、sub/a.htmlのほうは、

〜('../css/l.css')">
<省略>
です。宜しくお願いします。
132Name_Not_Found:2010/11/12(金) 13:38:42 ID:???
最初からタグを用意してるのとJavaScriptで作成するのはどちらがいいんですか?

<body>
<canvas id="hoge" width="300" height="300"></canvas>
</body>

or

var canvas = document.createElement('canvas');
canvas.id = 'hoge';
canvas.width = '300';
canvas.height = '300';
document.body.appendChild(canvas);
133Name_Not_Found:2010/11/12(金) 13:48:17 ID:???
>>132
HTMLに最初から書いておいてOKなケースなら、最初から書いておくべき。
その方が効率がいい。

134Name_Not_Found:2010/11/12(金) 13:51:50 ID:???
場合によりけりじゃない?
135132:2010/11/12(金) 14:14:10 ID:???
>>133-134
ありがとうございます
今もう1つ方法を思い出しました
<script>
var a = new Canvas();
a.setAttribute({width:300,height:300,id:hoge});
a.exec();
</script>
みたいなコードを<canvas width="300" height="300" id="hoge"></canvas>に変換して
それを書いたところにdocument.writeで書き出す方法がありましたね
DOM追加で指定場所に出力したい場合は余計なコードが増えそうなので
body直下以外は使用を避けたいと思います
136Name_Not_Found:2010/11/12(金) 15:43:54 ID:???
>>130
JSDeferred
>>131
cookieが問題なのか、相対パスが問題なのかはっきりさせたほうがいいよ。
$("#fontSize").attr({href:"http://host/css/"+$.cookie('style')});
とかでいいんじゃね。
137Name_Not_Found:2010/11/12(金) 16:50:46 ID:???
>>136
ありがとうございます。
どうも相対パスの問題のようです。

パスの指定が、1の場合でも、2の場合でも
同じcookieとして扱われるようにする方法はないでしょうか?

1、<td onclick="fontSize('css/l.css')">大</td>
2、<td onclick="fontSize('../css/l.css')">大</td>

現状ですと、ブラウザに保存されたcookieを見ると、
[css%2Fl.css]と、[..%2Flcss%2Fl.css]となってしまっているのが原因だと思うのです。

違う階層でもうまくやる方法はないですかね。。
絶対パスしかないでしょうか・・・
138Name_Not_Found:2010/11/12(金) 17:29:54 ID:???
>>137
JavaScriptで相対パスを計算させる。
139Name_Not_Found:2010/11/12(金) 18:10:07 ID:???
jsほとんど関係ないな。パスの知識でどうにかなる。
そして/がエスケープされてるからそのままじゃ動かないだろう。

$(function(){
$("#fontSize").attr({href:"/css/"+$.cookie('style')+".css"});
});
function fontSize(size){
$('#fontSize').attr({href:"/css/"+size+".css"});
$.cookie('style',size,{expires:30,path:'/'});
}
で、index.htmlのほうは、

<link rel="stylesheet" href="../css/m.css" type="text/css" id="fontSize" />
<省略>
<td onclick="fontSize('l')">大</td>
<td onclick="fontSize('m')">中</td>
<td onclick="fontSize('s')">小</td>
140Name_Not_Found:2010/11/12(金) 18:24:33 ID:???
>>139
それは絶対パスなんだが…。
そもそも、求めている動作が絶対パスであって相対パスから計算させても同じ事なんだな。
141Name_Not_Found:2010/11/12(金) 18:30:58 ID:???
あー、パスの足し算関数、作った覚えがあるな。
142Name_Not_Found:2010/11/12(金) 18:35:09 ID:???
というか、なんで絶対がダメで相対ならいいんだ?
あと、俺の中ではhttp//〜が絶対で/(hostからの相対)や../やフォルダ名から始まるのが相対だと思っているんだけど、違うの?
143Name_Not_Found:2010/11/12(金) 18:44:56 ID:???
http~もそうだが/から始まるのも絶対パス
144think49 ◆bKk/qcAKuM :2010/11/12(金) 19:21:12 ID:???
>>142
> 俺の中ではhttp//〜が絶対で/(hostからの相対)や../やフォルダ名から始まるのが相対だと思っている
その区分けをするなら、絶対URIと相対参照 (RFC2396では相対URI) が近いかと。
http://www.ietf.org/rfc/rfc3986.txt
http://jbpe.tripod.com/rfcj/rfc2396.ej.sjis.txt

パスについては、スキームの有無で判断しない方がよいです。
「ルートディレクトリ基準 = 絶対パス」「カレントディレクトリ基準 = 相対パス」です。
細かいことをいえば http://example.com/ は絶対パスではなく、絶対URIだと思います。
145Name_Not_Found:2010/11/12(金) 20:46:35 ID:gQA2QT2F
すいません
特殊な電卓を作りたいと思っています

どういうものかというと
任意の数字XとYを入力し
まずXの99までの倍数を99個表示し

その99個の数字それぞれをYで割り、その余りを表示する
というものなんですが可能でしょうか
146Name_Not_Found:2010/11/12(金) 20:49:16 ID:???
>>145
可能。
147Name_Not_Found:2010/11/12(金) 21:16:59 ID:???
>>129
画像全部つくると1000通り以上になるかと思うのでスクリプトで対処したいのです。
FLASHならなんとかなるんですが、ソフトが無いので…。
148Name_Not_Found:2010/11/12(金) 21:17:59 ID:???
>>145
初心者でも簡単に作れる
入門書の発展問題レベルだからJavaScriptがどういうものか解らなくても
すぐ自分で作れるようになるよ
149Name_Not_Found:2010/11/12(金) 21:52:33 ID:???
>>147
そしたら背景が透明な画像を重ねていくのがいいと思う。
塗り絵の下絵みたいな線画の下に、色付きパーツの画像をおいていく感じ。
重なり順はCSSのz-indexで指定、画像の圧縮形式はpngで(gifだと線がぎざぎざになる)。
これだと、画像はパーツのバリエーションだけを用意すればいい。
IE6対応が厳しいけど、もう切り捨てちゃおうか。
150Name_Not_Found:2010/11/12(金) 22:19:49 ID:???
>>147
ハンゲームとか、アバターの変更できるサイト見てみ?
多分参考になる
151Name_Not_Found:2010/11/12(金) 22:36:25 ID:???
>>146>>148
頑張ります
152Name_Not_Found:2010/11/13(土) 10:40:15 ID:???
Firefoxで、JavaScriptを使用して文字列をクリップボードにコピーしたいのですが、どのようにすればよいのでしょうか?
153Name_Not_Found:2010/11/13(土) 11:02:35 ID:???
>>152
調べる気無いだろ?「javascript クリップボード」でググれ
せめて躓いてから質問しろ。
154Name_Not_Found:2010/11/13(土) 11:04:57 ID:???
>>152
ググったらすぐ出たけど?
http://flashcast.jp/blog/2008/10/flashjavascript.html
155152:2010/11/13(土) 11:09:25 ID:???
すいません。書き忘れましたが、質問する前に少し調べて、Flashを使う方法は沢山出てきたのですが、
直接コピーする方法は無いのかなと思いまして。難しいのでしたらもう諦めます。
156Name_Not_Found:2010/11/13(土) 11:17:11 ID:???
難しいのではなくて無理。
JSからクリップボードを上書きできるIEが例外。
なおFx等でもHTML5で使えるようになる可能性がないわけではない。
157152:2010/11/13(土) 11:21:01 ID:???
そうですか…。回答ありがとうございました。
158Name_Not_Found:2010/11/13(土) 12:38:06 ID:???
銀行のログインシステムで使われてるような
ボタン押したらキーボードのキーを押してるのと同じになるようなやつ
あれを応用してctrl+c(shit+insert)を押せないだろうかとか思った
159Name_Not_Found:2010/11/13(土) 12:39:47 ID:???
あれはブラウザ側でボタンとa-zを対応させて入力させてるだけであって、キーボード/OSは経由してない。
160Name_Not_Found:2010/11/13(土) 13:23:01 ID:???
質問です。

function hoge(t) { alert(t); }
<a href="#hoge" onclick="hoge(this); return false;">

こういう主旨のようなことをやりたいとして、
仮に、onclickの部分に「return false」を書かなかったとしたら、
アラートが出て、#hogeに飛んでしまうと思います。

この「return false」の記述を都度a要素のonclickに書かずに、
関数hogeの中に仕込んでしまいたいのですが、
単に関数内に「return false」と書いてもダメだと認識してます。

自分で調べてpreventDefaultというのを使えばいいのかなと思ったのですが、
具体的な書き方(引数のところとか?)が分かっていないのか、
なかなか上手く動かずに悩んでいます。

どなたかアドバイスお願いできないでしょうか。
161Name_Not_Found:2010/11/13(土) 13:40:06 ID:???
function hoge(t,event){alert(t);event.preventDefault();}
onclick="hoge(this,event);"
162Name_Not_Found:2010/11/13(土) 13:49:21 ID:???
onclick内に書くのであれば
onclick="return hoge(this)"
163Name_Not_Found:2010/11/13(土) 14:08:21 ID:???
>>161-162
レスありがとうございます!
どちらの書き方も今から試してみようと思います。
164Name_Not_Found:2010/11/13(土) 14:31:58 ID:???
>>161
IEで event.preventDefault は使えないはず
165160:2010/11/13(土) 14:40:16 ID:???
>>164さんの仰る通り、>>161さんの方はIEだと上手く動いてないようでした。

ただ、「IE preventDefault」とかで検索したら、
自分にもある程度分かりそうな解説とかが見つかったので、
そのあたり参考にして試してみようと思います。
166147:2010/11/13(土) 14:49:59 ID:???
>>149
有難うございます。
IEはもう切り捨ての方向で…やってみます。
167Name_Not_Found:2010/11/13(土) 14:58:44 ID:???
でもIE6ってまだ15、6%のシェアあるんだよね
正直邪魔すぎる
168Name_Not_Found:2010/11/13(土) 15:00:34 ID:???
>>167
ウチが管理してるあるサイトは半数近くだよ・・・orz
169Name_Not_Found:2010/11/13(土) 15:03:31 ID:???
IE6 NEEDS YOUR HELP
http://saveie6.com/index.php
170Name_Not_Found:2010/11/13(土) 15:07:54 ID:???
>>169
じょうだん、だよな?w
でもMultipleIEは手放せないよ・・・
171Name_Not_Found:2010/11/13(土) 16:47:55 ID:???
Multiple IEはすぐクラッシュするからIETester使ってるわ
172Name_Not_Found:2010/11/13(土) 17:00:26 ID:???
質問です。

<script type="text/javascript" src="http://aaa.com/bbb.php"></script>
でphpを呼び出すときに、呼び出し元のURLをパラメータとして
http://aaa.com/bbb.php?url=(呼び出し元のURL)
という感じで付加したいのですが、location.hrefをどのようにsrcに書けばいいかよろしくお願いします。
173Name_Not_Found:2010/11/13(土) 17:04:08 ID:???
document.write('<script type="text/javascript" src="http://aaa.com/bbb.php?url='+location.href+'"></script>');
174Name_Not_Found:2010/11/13(土) 17:10:35 ID:???
<div id="test">aaa</div>

<script type="text/javascript">
document.getElementById("ttt").style.color="red";
</script>

と書いてあるHTMLファイルをブラウザ上で見れば、aaaの部分が赤くなっているわけですが、
このJavaScriptの操作結果を”反映した後”(aaaが黒から赤に変わったあと)
のHTMLファイルを保存する方法はないでしょうか?

175Name_Not_Found:2010/11/13(土) 17:23:23 ID:???
>>174
Firefox で必要な部分(または全部)を選択してソースを表示。
176Name_Not_Found:2010/11/13(土) 17:37:14 ID:???
>>174
window.open("data:text/html;charset=utf-8," + document.documentElement.innerHTML);
177174:2010/11/13(土) 18:35:39 ID:???
>>175
>>176
ありがとうございます。
178Name_Not_Found:2010/11/13(土) 20:37:16 ID:???
外部ファイルにJavaScriptを書いているのですが、
ネットから拾ってきたプラグインにあるaddEventListenerの中で、自分の作った関数を動かしたいのですが、どうしたらよいでしょうか?
179Name_Not_Found:2010/11/13(土) 20:53:42 ID:???
書き換えろ
180Name_Not_Found:2010/11/13(土) 22:17:04 ID:???
createElementでターゲットの最後に要素を追加することはできるんですが、
指定した要素の次に追加する簡易な方法はありませんか?

【HTML】
<ul id="foo">
<li>hoge
<li>huga
       ← ここに javascript で createElement で生成した <li>bar を追加
<li>piyo
</ul>

foo 全体を作り直して再描画したりしないとダメ?
181Name_Not_Found:2010/11/13(土) 22:19:06 ID:???
>>180
insertBefore
182Name_Not_Found:2010/11/13(土) 22:34:11 ID:???
キタコレ!greaseMonkeyはじまった
183Name_Not_Found:2010/11/13(土) 23:25:51 ID:OeKoqhKn
ログ出力を textarea にやりたくて、こんなのを書いてみました。
1行ずつ追記して勝手にスクロールしていきます。

JS部分

function msg(m) {
  var e=elm('log'), p=e.scrollLeft, r;
  e.value+=m+"\n";
  r=e.createTextRange();
  r.move('textedit',1);
  r.select();
  e.scrollLeft=p;
}

HTML部分

<textarea id="log" wrap="off" readonly></textarea>

ところがこれがすごく遅くて、何が遅いか調べてみると textarea に値を追記している e.value+=m+"\n"; らしいんです。
多くても 2000行くらいのログを垂れ流せれば textarea でなくてもいいんですが、もっと速い方法はあるでしょうか。
毎回 textarea に値を追記するんじゃなくて、別バッファに溜め込んでたまに textarea にフラッシュしていくようには
してみたんですが、もっと根本的な解決方法を探しています。

ちなみにですが、1ms のインターバルでログを 2000行出力した場合の時間は 75秒、60行に一回フラッシュする式で 32秒です。
# 本当に 1ms間隔にはないっていないでしょうが、setTimeout には 1 を指定しているということで

環境はブラウザじゃなくて HTA で動かしてます。
184183:2010/11/13(土) 23:30:29 ID:???
すみません、>>183 のコードに elm なんて謎の関数が含まれていました。
elm はこんな感じです。

function elm(id) { return document.getElementById(id); }
185Name_Not_Found:2010/11/13(土) 23:44:26 ID:???
こんなんどうよ。
function msg(m) {
elm("log").appendChild(document.createTextNode(m+"\n"));
// スクロール処理?
}
186Name_Not_Found:2010/11/13(土) 23:50:38 ID:???
必ずしも常時表示する必要が無いなら非表示にしておいてクリック等で見えるようにしたらいいと思う
187Name_Not_Found:2010/11/13(土) 23:55:29 ID:???
>>186
わざわざタイムアウト処理で複数回実行する意味ねーw
188183:2010/11/14(日) 00:01:40 ID:???
>>185
それ速いです!
m+"\n" じゃだめで、

e=elm("log");
e.appendChild(document.createTextNode(m));
e.appendChild(document.createElement('<br>'));

にしたらいい感じです。
>>183 の 75秒かかってたのと同じ条件で 32秒でした。
これを取っ掛かりにいろいろ試せそうです。
ありがとう!
189Name_Not_Found:2010/11/14(日) 00:56:52 ID:???
>>139
ありがとうございます。
返事遅くなってすいません。

それだと文字サイズ変更自体が機能しませんでしたorz
190Name_Not_Found:2010/11/14(日) 01:17:32 ID:???
>>139
すいません。初歩的なミスしてました。
139サンの記述でいけそうです!
ありがとうございます!

マジ感謝です。・゚・(ノ∀`)・゚・。
191Name_Not_Found:2010/11/14(日) 01:36:15 ID:???
>>139
何回もすいません・・
いけたと思ったんですが、
ココの部分、
$("#fontSize").attr({href:"/css/"+$.cookie('style')+".css"});

index.htmlでは、href:"css/"+$.cookie('style')+".css" と記述しないと動かんです。

sub/a.htmlでは、href:"../css/"+$.cookie('style')+".css" と記述しないと動かんです。

なので、それぞれjsファイルを分けてやれば同じcookieと認識(それぞれs、m、l)され、ページ遷移後も変更が継続されました。
できれば一つのjsファイルでできればいいのですが、とりあえずはhttp://〜からなるURLで指定しないといけないよりはいいかな?
と、思います。
192Name_Not_Found:2010/11/14(日) 02:17:24 ID:???
JavaScriptってオブジェクトもプロパティもメソッドも全部関数のひとくくりにされちゃって定義があいまいな気がするのですが
ちゃんとこれはプロパティだ!とか考えながらやったほうがいいですかね?
193Name_Not_Found:2010/11/14(日) 04:48:10 ID:???
失礼します。
テキストにオンマウスで別所のテキストボックスに説明文を出す場合なのですが、オンマウスするテキストがリンク文字の場合は
表示させる場所
<INPUT type="text" name="menu" size="100" value="" style="border-style:solid; border-width:0px; border-color:#ff0000; background:#FFFFFF; font-size:15pt; color:#999999; margin:0;">
リンク文字
<a href="#.html" onMouseOver="document.link.menu.value='表示させる文字'" onMouseOut="document.link.menu.value=''">リンク文字</a>

で上手くいくのですが、これがオンマウスするテキストをリンク文字でないただのテキストにする場合はどこを削ればいいんでしょうか?
初心者の質問で申し訳ありませんが、教えていただけると嬉しいです。
194Name_Not_Found:2010/11/14(日) 09:54:05 ID:???
JavaScriptで要素のスタイルを指定した場合そのスタイルの値を取得できるのですが、
スタイルシートでスタイルを指定している要素に対して、
alert(elem.style.width)といった感じに取得したいのですが無理でしょうか?
空文字が返ってきてしまいます。
195Name_Not_Found:2010/11/14(日) 10:08:13 ID:???
>>193
javascript以前の問題とりあえずAタグをSPANに変えてhref外せばいける
とりあえずhtmlから勉強したら?

>>194
>>4のQAの10かな
196194:2010/11/14(日) 10:14:34 ID:???
>>195
QAに書いてたとは・・・どうもすみません。
とりあえずMDCを見つつ適当に書いてみましたが動作してるようです。

var dv = document.defaultView.getComputedStyle(elem, "");
alert(dv.width);

どうもありがとうございました。
197Name_Not_Found:2010/11/14(日) 13:28:30 ID:???
function buki(min, max, kaikyu)
{
this.min = min;
this.max = max;
this.kaikyu = kaikyu;
}

function yasai_buki()
{
document.keisan.buki_sentaku.length = 2;
var opt = document.keisan.buki_sentaku.options;
opt[0].text = "ニンジン";
opt[0] = new buki(498,763,saikyou,);
opt[1].text = "大根;
opt[1] = new buki(643,710,densetsu,);
}

<form name="keisan">
<INPUT type="radio" name="bukia" onclick="yasai_buki()">野菜シリーズ<br>
<INPUT type="radio" name="bukia" onclick="sakana_buki()">魚シリーズ<br>

<br>

<select name="buki_sentaku">
<option>武器を選択してね</option>
</select>

とラジオボタンで野菜を選択すると、プルダウンメニューでニンジン、大根が出てきて
更にソレを選択するとbukiオブジェクトにニンジンと大根の値が入るように作ったのですが
メニューにニンジンしか表示されません
opt[0] = new buki(498,763,ヘビー,);のところでプロパティ無しでイキナリオブジェクト生成してるのが問題だと思うのですが、何か良い解決方法無いでしょうか?
198Name_Not_Found:2010/11/14(日) 13:31:10 ID:???
野菜戦争
199Name_Not_Found:2010/11/14(日) 13:34:23 ID:???
この前の謎の野菜君か
やはり俺の予想が当たったな
野菜を武器にして戦うゲームのようだ
200Name_Not_Found:2010/11/14(日) 13:41:51 ID:???
はい、以前ここで質問したとき本当にお世話になりました
bukiオブジェクトを生成すれば
buki.min*buki.maxとかで計算しやすいし、計算式見てわかりやすいなと思ってこの方法を選択しました
201Name_Not_Found:2010/11/14(日) 14:11:22 ID:???
opt[0] = new buki(498,763,saikyou);

上のコードは、次と等価。

opt[0] = {
min: 498, max: 763, kaikyu: saikyo
};

NodeList に入っている HTMLOptionElement を、JavaScript オブジェクトで
置き換えようとしてエラーになってる。
202Name_Not_Found:2010/11/14(日) 14:15:09 ID:???
やはり連想配列を使うしかないですか・・・。
もし>>197のようにオブジェクトをニンジンを選択したとき、ニンジンオブジェクトを生成する
というやり方を行いたかったら解決方法とかあります?
203Name_Not_Found:2010/11/14(日) 14:44:30 ID:???
document.keisan.buki_sentaku.length = 2;

この時点で HTMLOptionElement は存在しているから、改めて生成する必要はなくて、
HTMLOptionElement にプロパティを与えることが目的ならば、buki() コンストラクタを
メソッドとして呼び出せば良いだけ。
実際には expando プロパティはあまりお勧めでないけど、もし一行だけ変更するなら、

opt[0] = new buki(498,763,saikyou);

の代わりに、

buki.call(opt[0],498,763,saikyou);

としてみれば動く。
他に影響しないなら、buki() はコンストラクタでなく、初期化用の単なる関数にすれば良い。

ついでに忠告をしておくと、魚シリーズの最強武器は冷凍まぐろ。
204Name_Not_Found:2010/11/14(日) 15:38:21 ID:???
冷凍カジキマグロの方が強くね?
205Name_Not_Found:2010/11/14(日) 15:51:28 ID:???
やっぱ冷凍シロナガスクジラだろ
ロードローラーみたいな感じで
206Name_Not_Found:2010/11/14(日) 16:13:18 ID:???
そういえば>>201
var opt = new Object();って宣言しないとダメですよね?

ちなみに魚の最強はクジラです・・・。すんません
207Name_Not_Found:2010/11/14(日) 16:16:29 ID:???
ちなみにクジラは哺乳類であって魚ではありません。
208Name_Not_Found:2010/11/14(日) 16:17:01 ID:???
まあまあ
209Name_Not_Found:2010/11/14(日) 16:19:31 ID:???
あれ?でも
var opt = document.keisan.buki_sentaku.options;
ってなってるから
opt[0].text = "ニンジン";
opt[0] = {min: 498, max: 763, kaikyu: saikyo};
opt[1].text = "大根;
opt[1] = {min643: , max: 710, kaikyu: densetsu};

ってなってるからどこでoptをObjectオブジェクトを使えばいいんでしょうか?
混乱してきました
210Name_Not_Found:2010/11/14(日) 16:20:34 ID:???
確かにクジラは魚ではなく哺乳類だな
これは大問題
211Name_Not_Found:2010/11/14(日) 16:27:23 ID:???
>>206
var opt = new Object();
var opt = new Array();

var opt = {};
var opt = [];
と等価

212Name_Not_Found:2010/11/14(日) 16:29:37 ID:???
Operaではnew Objectを推奨し
JSLintでは推奨してない

ウーン
213Name_Not_Found:2010/11/14(日) 16:31:40 ID:???
>>211
なるほどー、これがリテラルってヤツですか!ありがとうございます!

んでもそうだとしても>>209の形だとやはりニンジンが表示されるだけでエラーが発生してしまうのですが
一通り勉強したんですが、実際にJavaScriptとかで教本以外のもの作るの初めてで
214Name_Not_Found:2010/11/14(日) 19:12:37 ID:rOciPVx9
特定の文字列を含むclass属性を持ったノード一覧、
特定の文字列を含むid属性を持ったノード一覧、ってどうやって取得すればいいですか?
特定の文字列は正規表現パターンで指定したいです
215Name_Not_Found:2010/11/14(日) 19:20:18 ID:???
>>214
var elements = document.querySelectorAll('.hoge');
から nodeValue を RegExp#test で絞り込む。
216214:2010/11/14(日) 19:25:26 ID:???
>>215
どうもありがとうございます試してみます
217Name_Not_Found:2010/11/14(日) 19:34:22 ID:???
>>195
板違いだったでしょうか。すみません。
それでも親切に答えてくださってありがとうございました。
218Name_Not_Found:2010/11/14(日) 21:28:43 ID:Z0eBe7qZ
すいません電卓を作っていいるんですがわからないことがあります

ひとつのボタンで演算子と数値を動作させるにはどうしたらいいのでしょうか
例えばボタンひとつで+54みたいなことをしたいです

それともうひとつは○○進法を指定できないかということです
例えばストップウォッチなら123分は2時間と3分で02:03というふうにしたいんですが
できますか?
219Name_Not_Found:2010/11/14(日) 21:30:25 ID:???
Strint#toString で基数変換できるが、「123分は2時間と3分で02:03」は全て10進数なのでは…。
220Name_Not_Found:2010/11/14(日) 22:28:51 ID:Z0eBe7qZ
>>219
どうもありがとうございます
どういったらいいかわからないんですが60を100とみなす
みたいなことってできないでしょうか
221Name_Not_Found:2010/11/14(日) 22:32:41 ID:???
60で割ったり余りだしたりすればいいじゃないか
222Name_Not_Found:2010/11/14(日) 22:33:12 ID:???
時間は60進法と10進法が混在しているから、
自前でやるしかない。
tに秒が入っているなら、
h=~~(t/3600)
m=~~(t/60)%60
s=t%60
とか。
223Name_Not_Found:2010/11/14(日) 22:36:07 ID:???
>>218
[+54]ボタンは、押されたら単に保持してる値に54を足せばいいのでは?

もういっこ、60に限るなら123を60で割って余りを出せばいいんだろうけど
そういう単純なことではないのかな
224Name_Not_Found:2010/11/14(日) 22:45:41 ID:???
>>191
baseタグ使っている?使っているならそこら辺考慮しないとだめだよ。
俺の記憶違いでなければ/css/〜でhttp://www.test.com/css/〜にcssもなるはずなんだけどな。
$("#fontSize").attr({href:"http://"+location.host+"/css/"+$.cookie('style')+".css"});
よければ、なんでhttp://から書きたくないのか教えてくれないだろうか

>>213
>>203
225Name_Not_Found:2010/11/14(日) 23:10:26 ID:???
>>220
> 60を100とみなす

var n = 60;
alert(n/60 * 100);

簡単な四則演算で実現できる。
226Name_Not_Found:2010/11/14(日) 23:13:34 ID:???
それはちょっと…
227Name_Not_Found:2010/11/14(日) 23:18:49 ID:???
>>44
http://hibari.2ch.net/test/read.cgi/hp/1286969289/ にあるルールなんだけど、取り入れてみてはどうだろう?

・メール欄に何も入れないことを推奨 (IDを出して騙りを防止するため)
・質問者が返信する際は「最初に質問したレス番号」を名前欄に入れること

現在のところは >>131 の流れを追うのがかなり辛くなってる。
これを守ってもらえれば、2chブラウザで容易にツリー化できる。
228Name_Not_Found:2010/11/14(日) 23:22:58 ID:???
いいとおもうよ。
229Name_Not_Found:2010/11/14(日) 23:23:01 ID:???
皆さんありがとうございます
>>221>>223
はい、現在はそういう作業をやっているんですが
数値と演算子が一緒にできれば作業効率がちょっとだけ上がるんですがなくてもいいです;^^


>>222>>225
すいません意味がよくわからないのでちょっと勉強しなおしてきます;^^
230Name_Not_Found:2010/11/15(月) 09:07:51 ID:mJtM2CwF
>>224
ありがとうございます。
baseタグは使ってないです。
今、$("#fontSize").attr({href:"http://"+location.host+"/css/"+$.cookie('style')+".css"});
で、テストしたらいけました。
それで、もしやと思い、href:"/css/"+$.cookie('style')+".css"
で、もう一度サーバーにうpしてテストしたら動作しました。
ローカルでは動作しないということですね!ローカルでテストしていたので反応しなかったみたいです。

http://から書きたくなかったのは、仕事で経験のないJavascriptを使うことになり、
上からhttp://からの記述だとURLが変わった時に困るからは使うなと言われていたからです・・・
上もJavascriptは分かってないので困っていました。

これか、
href:"http://"+location.host+"/css/"+$.cookie('style')+".css"
これ
href:"/css/"+$.cookie('style')+".css"
であれば、URLの変更は関係ないので、どちらかで行きます!

本当にありがとうございました。
自分でもJavascriptを一から勉強してみたいと思います。

m(_ _)m
231Name_Not_Found:2010/11/15(月) 13:13:42 ID:???
>>44
テンプレ議論はメ欄にテンプレ議論って書こうよ。
名前欄のほうがいいかなあ。
232Name_Not_Found:2010/11/15(月) 17:26:51 ID:???
<script>
function check() {
alert(document.getElementById('test').value);
}
</script>
<input id="test" type="checkbox" onchange="check()">

という感じでチェックしたときとしてないときの動作を確かめたのですが
両方ONになってしまいます
正しくはどのようにしたらいいのでしょうか?
233Name_Not_Found:2010/11/15(月) 17:31:46 ID:???
checked
234Name_Not_Found:2010/11/15(月) 17:32:44 ID:???
235232:2010/11/15(月) 17:33:16 ID:???
>>233
すみません
もう少し詳しくお願いします
236Name_Not_Found:2010/11/15(月) 17:33:48 ID:???
alert(document.getElementById('test').value);

alert(document.getElementById('test').checked);
237232:2010/11/15(月) 17:33:56 ID:???
>>233-234
すみませんリロードしてませんでした
どうもありがとうございます!
238think49 ◆bKk/qcAKuM :2010/11/15(月) 20:11:23 ID:???
このスレッドでは「先行実装を使うべきではない」という意見が見られますが、「先行実装」とは何を指しているのでしょうか?

・HTML5 規定 (Working Draft)
window.open, element.innerHTML, element.outerHTML, document.write, event.returnValue, return false (デフォルトアクションの無効化), element.onclick = null; (イベントハンドラの削除)
http://www.w3.org/TR/html5/
http://www.whatwg.org/html5

・DOM L3 Events (Working Draft)
keydown, event.keyCode
http://www.w3.org/TR/DOM-Level-3-Events/

・DOM L3 XPath (Working Group)
document.evaluate
http://www.w3.org/TR/DOM-Level-3-XPath/

・Selectors API Level 1 (Candidate Recommendation)
document.querySelector, document.querySelectorAll
http://www.w3.org/TR/selectors-api/

・XMLHttpRequest (Candidate Recommendation)
XMLHttpRequest
http://www.w3.org/TR/XMLHttpRequest/

W3C勧告プロセスの概要
http://www.kanzaki.com/w3c/process.html

これらは全て勧告されていませんが、一部は既に使わざるを得ない(一般的に使われている)状況が出来上がっているように思えます。
先行実装を使うべきではない理由を教えてください。
239Name_Not_Found:2010/11/15(月) 21:16:50 ID:???
IE5とかネスケとかMosaicとか使ってる人が思わぬ動作する可能性あるからじゃね?
240think49 ◆bKk/qcAKuM :2010/11/15(月) 21:27:32 ID:???
>>239
それって現時点で対応する意義があまりないような…。(汗)

結局のところ、どういうアプローチを期待しているのかがよくわかりません。
「先行実装はダメ」「独自実装はOK」なスタンスなんでしょうか。
標準化されている仕様がないので、独自実装として各ブラウザベンダーが提供している技術資料を読まざるを得ません。
対応ブラウザが多くなるほど大変になりますし、まともな技術資料は MDC, MSDN のみのように認識しています。
Opera, Google Chrome は開発者情報が公開されているのでしょうか。「Safari Refernce Library」はもう少し詳しい資料を提供してもらえると有り難く。
どうせ読むのなら標準化される予定の仕様を一つだけ確認する方が楽なのですが…。

---
window, documentオブジェクトを明確に規定したのは HTML5 からなので、特に HTML5 は影響範囲が大きいように思えます。

document.forms, document.links, document.body, document.title, document.cookie
window.document, window.location, window[name] (グローバル変数)

これらを使えなければ、まともに JavaScript を書けない状況もあるのではないでしょうか。
241Name_Not_Found:2010/11/15(月) 21:35:42 ID:5yI3Un7Z
>>240
先行実装を使ってもいいよとか、だめですよとかは、
そのシステムを設計するときに自分で決めるものなんだよ。

なんでも一律にこうです、って誰かに決めてもらうものじゃなくて。
242Name_Not_Found:2010/11/15(月) 21:40:27 ID:???
243Name_Not_Found:2010/11/15(月) 21:43:42 ID:???
>>242
古すぎるだろw
244think49 ◆bKk/qcAKuM :2010/11/15(月) 21:48:44 ID:???
>>241
「ポリシーは制作者が決める」というのは理解しています。
私と「先行実装がダメ」と主張している人のポリシーは勿論違うのでしょうが、可能なら参考にしたいと考えています。
そのポリシーを受け入れるかどうかはわかりませんが、少なくともその人の考え方を理解したい。
しかし、考えてみると矛盾点を多々感じたので詳しく聞いてみたいと思い、質問しました。

# >>44 以降のテンプレ議論でも先行実装云々がありましたが、私はこの点でまだ納得が出来ないでいます。
245Name_Not_Found:2010/11/15(月) 21:55:12 ID:???
質問がずれすぎていて訂正すんのもめんどうくさい

>window, documentオブジェクトを明確に規定したのは HTML5 からなので
この時点で間違ってる
246think49 ◆bKk/qcAKuM :2010/11/15(月) 21:58:56 ID:???
>>242
先行実装というより独自拡張プロパティの話ですね。
先行実装 (CSS3) については触れられていないように読めました。
あと、すみませんが JavaScript に限定させてください。
「innerHTML を使う → HTML5 は勧告されていないだろう」みたいな流れを連想してもらえれば。

>>245
HTML5 以前に標準化された規格があったのでしょうか?
他に参考になる資料としては MDC, MSDN ぐらいしか思い当たりませんでした。
247Name_Not_Found:2010/11/15(月) 22:08:34 ID:???
>先行実装というより独自拡張プロパティ
何が違うのか言ってみろ

>>240にあがってんのはwindow以外全部DOM Level 1 HTMLだろ
もっと言えばそれ以前のJavaScript 1.0で今は亡きNetscpae Devedgeに文書化もされていた
唯一windowだけはWindow Object 1.0草案で仮の取りまとめがされていたし以前までHTML5も参照していた

とりあえず何でもかんでもHTML5起源を主張すんのやめろ
248Name_Not_Found:2010/11/15(月) 22:14:11 ID:???
ついでに言えばCSSのベンダ拡張接頭辞つきも
"Authors should avoid vendor-specific extensions"だ
規定規定いうなら内容を出発点にしろ、前提が噛み合ないのでは話にならん
ま、CSS2.1も勧告されてはいないがな
249think49 ◆bKk/qcAKuM :2010/11/15(月) 22:22:12 ID:???
>>247
何でそんなに攻撃的なんでしょうか…。

> 何が違うのか言ってみろ
Mozilla独自拡張はMozillaが開発したソフトウェア(Firefox) でしか動きませんが、先行実装は標準化されていればその仕様に従う全てのブラウザで動作します。

---
そのほとんどはMozillaのGUIのために作られたものです。MozillaはCSSによってGUIの外見を定義しており、 W3Cの仕様にあるCSSのプロパティで足りない部分は独自のプロパティで補っています
http://www.mozilla.gr.jp/standards/webtips0001.html
---

> >>240にあがってんのはwindow以外全部DOM Level 1 HTMLだろ
確認しました。ありがとうございます。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268

> もっと言えばそれ以前のJavaScript 1.0で今は亡きNetscpae Devedgeに文書化もされていた
それは Netscape での動作を保証できても、他のブラウザで期待通りに動作する保証にならないのでは?
MDC を信用するのと変わらない気がするのですが…。

MDC では window.open は「DOM Level 0」と説明されています。

---
DOM Level 0。window.open() は、W3C の仕様、技術勧告の一部ではありません。
https://developer.mozilla.org/ja/DOM/window.open#.e4.bb.95.e6.a7.98
---

標準化されていないので、実装主導になると認識していました。
他にも、return false; event.returnValue, XMLHttpRequest あたりは一般的に使われていると認識しています。

> とりあえず何でもかんでもHTML5起源を主張すんのやめろ
失礼しました。確認が不足していました。
250think49 ◆bKk/qcAKuM :2010/11/15(月) 22:33:55 ID:???
しまった…。DOM L1 HTML はこっちですね。
http://www.y-adagio.com/public/standards/tr_dom1/level-one-html.html#ID-1006298752

>>248
> ま、CSS2.1も勧告されてはいないがな
おお、本当だ…。
http://www.w3.org/TR/CSS2/
CSS2.1 に関しては先行実装云々を問う人はいないような気がしますね。
「先行実装を乱用するな」と主張する人の境界がどこにあるのか、というところが気になっています。
251Name_Not_Found:2010/11/15(月) 22:37:25 ID:???
>>250
CSS2.1には定義されているが、どのブラウザも全く実装してない定義とかは普通にありますがね
252Name_Not_Found:2010/11/15(月) 22:43:08 ID:???
>先行実装は標準化されていればその仕様に従う全てのブラウザで動作します
するかどうか分からないから先行実装なんだろうが

たとえばDOM Level 3 XPathは勧告候補まで行きながら作業を打ち切られたものだ
完成度はともかく安定はしている

DOM Level 3 Eventsはずっと止まってたものをHTML5絡みで引っ張ってきたものだ
そして今やっていることは実装が少ないものの切り捨てと現状に合わせた追加であり
安定しているとは言い難いが現在の実装に近づくという点で「予想」はつく

一方で、Selectors API Level 1はかなり激しい議論があって
埒があかないってんで問題をLevel 2に先送りして勧告を急いだ
IE8は後期草案を用いたのに現在の勧告候補とは少々別の形になっている

XMLHttpRequest Level 1はほぼMSXMLのIXMLHttpRequestの下位互換だ
だがLevel 2には新規要素が多く、Level 1とどう共存させるか今でも議論中だ

ところで今のW3Cの標準化プロセスが、安定期に入った段階で勧告候補
二個以上の実装がそろった段階で正式勧告であるのだから
勧告されるまで待つ、というのが現実的でないのは事実だ
安定期に入った仕様、あるいは部分的に安定が見込める部分なら使えば良い

だがこれまでの発言を見る限り、お前さんにその見極めができるとは思えない
ならば一般論として先行実装を不用意に使うな、と言わざるをえない

>MDC では
知ったこっちゃねえ
MDC/MSDNの記述が間違ってることなんかしょっちゅうだろ
253Name_Not_Found:2010/11/15(月) 22:55:21 ID:???
Cygwin使っている人いますか? その20
http://hibari.2ch.net/test/read.cgi/unix/1268282846/

272 名無しさん@お腹いっぱい。 [sage] 2010/11/15(月) 11:42:30 ID: Be:
マウントオプションとは別に、CRLFをLFに変換するツールはないでしょうか?

美乳セーラー女子高生とSEX顔射フィニッシュ

というコマンドやnkfでも一応可能なのですが
専用のツールはなかったかと思いまして

273 名無しさん@お腹いっぱい。 [sage] 2010/11/15(月) 11:43:21 ID: Be:
>>272
コピペミスった、、、、、
見なかったことにしてください

コマンドは、

cat crlf.txt | tr -d '\r' > lf.txt

です。
254Name_Not_Found:2010/11/15(月) 23:04:32 ID:???
わろた
どんなコマンドだよw
255Name_Not_Found:2010/11/15(月) 23:18:25 ID:???
そこら中にコピペしてやがる
この程度で…
256think49 ◆bKk/qcAKuM :2010/11/15(月) 23:33:20 ID:???
>>252
詳しい解説ありがとうございます。勉強になります。

> 安定期に入った仕様、あるいは部分的に安定が見込める部分なら使えば良い
つまり、「安定期に入っていない仕様 = 先行実装」なのでしょうか?
私は「勧告されていない仕様 = 先行実装」という認識で質問していました。

> だがこれまでの発言を見る限り、お前さんにその見極めができるとは思えない
> ならば一般論として先行実装を不用意に使うな、と言わざるをえない
確かに私は252さんほど綿密な見極めは出来ないと思います。
ならば、見極めが出来ない人が先行実装を使う判断要素はどこにあるのでしょうか?
私に「見極めが出来ない」と指摘しておきながら「不用意に使うな」と主観的な判断を求めていることに矛盾を感じました。
257Name_Not_Found:2010/11/16(火) 00:01:34 ID:???
>「勧告されていない仕様 = 先行実装」という認識で
揚げ足をとるようだが仕様と実装は別物だ

> 先行実装を使う判断要素
「不用意に」と書いたのは優しさのつもりだったが、これにぶつくさ言われるのならこの文言を削る
判断できないなら使うな、いや使わせるな

先行実装とは言わばアルファ、ベータ版だ
ベータ版ならまだしも、アルファ版を一般ユーザーに勧める奴がどこにいる?

たぶんお前さんはWebアプリケーションの開発者の視点でものを言っている
ここがWebProg板なら俺もWebSocketの話に熱中したかもしれん
だがここはWeb制作板であり、Webページの最重要事項は相互運用性であるはずだ

上で「使わせるな」に修正したが、自分で楽しむ分には構わん
だがもとはテンプレ議論であり、質問者に読ませるためのものなのだろう?
だったら先行実装のもとである仕様の安定度と実装状況をリポートしてくれ
仕様が安定しており、実装も十分であるならテンプレ行きになるだろうさ
258Name_Not_Found:2010/11/16(火) 01:20:13 ID:GivJLpnj
ただの煽り合いかと思ったらやたら中身が濃かった
259Name_Not_Found:2010/11/16(火) 01:25:43 ID:???
長文すぎてヌルー
260Name_Not_Found:2010/11/16(火) 02:01:37 ID:???
CSS 2.1も勧告候補から草案に何度も差し戻されたんだよね
261Name_Not_Found:2010/11/16(火) 06:49:38 ID:???
>>257
詳しい事はわからないけど、PHP板と制作板の差って
サーバー側とクライアント側っていう差しかないと思うんだけど
262Name_Not_Found:2010/11/16(火) 07:24:29 ID:???
ラベルのfor属性設定するにはsetAttribute使うしかないの?
element.for=じゃエラーになるし
263Name_Not_Found:2010/11/16(火) 08:25:00 ID:???
>>263
標準を読んでからにしなよ。classがclassNameとかは知ってるでしょ?
http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-13691394
264Name_Not_Found:2010/11/16(火) 09:15:50 ID:???
forはhtmlForなのね、ありがとう
265Name_Not_Found:2010/11/16(火) 13:35:55 ID:???
>>261
大まかに二つの勢力がある

Web Publishingの立場では、Webを行き交う基本的な情報単位をHTMLと考える
HTMLを受け取った端末に適したスタイルシートが与えられるべきであり
HTMLの閲覧を補助・支援するスクリプトが与えられても良い
文書構造と見た目の分離、progressive enhancementを主張するグループはこれ

Web Applicationsの立場では、ブラウザのAPIと、それを叩く言語を用いて
Desktop applicationsと遜色ないサービスをブラウザ内に展開することを目指す
ここでのHTMLは、CSSやイベントコードのホルダーとしてUIを記述するものでしかない
HTML5(Web Application 1.0)やクラウドを主張するグループはこれ

こうした立場の違いでも先行実装の扱いは変わるだろう
ユーザースタイルやユーザースクリプトなら存分にやればいい
266Name_Not_Found:2010/11/16(火) 14:02:22 ID:???
267Name_Not_Found:2010/11/16(火) 17:21:59 ID:XUBkBxs1
>>265
これわかりやすいなあ。
268Name_Not_Found:2010/11/16(火) 17:23:49 ID:???
一々英単語を織り交ぜる意味は
269Name_Not_Found:2010/11/16(火) 17:36:07 ID:???
html5が楽しすぎて俺は最近後者的な考えになりつつある
PHPのみやってるうちはvalid信者だったが
JavaScriptでアプリケーションを作るようになるとあんま意識しなくなった
PHPやってたころにC#でWindowsアプリケーションを作ろうにもさっぱりだったが
JavaScriptのおかげでWindowsアプリケーションのイメージもできるようになったし
クライアント開発はおもしろいね
270Name_Not_Found:2010/11/16(火) 17:56:30 ID:???
俺phpだけだった頃は何もかもサーバーサイドで任せてたからどーしても処理重くなってたけど
JavaScriptを覚えたらクライアントサイドとかもできるようになって効率よくなりました!
271Name_Not_Found:2010/11/16(火) 17:58:29 ID:???
静的ファイルもcgiを通してた馬鹿が通ります
272Name_Not_Found:2010/11/16(火) 18:04:17 ID:???
よくよく考えるとトンデモネー事やってたな

うんこ→unko
ってひらがなをローマ字に変換する機能をわざわざ
サーバーに送って、それをクライアントに返してたんだから

本当にトンデモネー事やって満足してたわ
JavaScriptに出会ってよかった
273Name_Not_Found:2010/11/16(火) 22:07:22 ID:???
think49 は一人で空回りし過ぎ
自覚なさそうなのが始末が悪い
そもそも>>50 の「先行実装をやたらに使うのはよくない」の一言を
「先行実装を使うべきではない」と解釈している時点でおかしい
前提がおかしいし、そこをいい加減にしてるから議論が成立しない
274Name_Not_Found:2010/11/17(水) 01:27:53 ID:???
クリックしたら複数の関数を実行されるのを作ろうと思ってるのですが

<input type="button" value=トリプル"計算" onclick="test()"onclick="finger()" onclick="burst()">
で三つの関数を実行する事は出来るのでしょーか?
275Name_Not_Found:2010/11/17(水) 01:32:05 ID:hQ9BH4bF
テンプレFAQ3
276Name_Not_Found:2010/11/17(水) 01:34:30 ID:???
Oh...すみませんでした・・・。
ごめんなさい、もう二度と来ないです・・・。
277Name_Not_Found:2010/11/17(水) 04:47:47 ID:???
デストラクタが存在しないようなので自分自身を削除するメソッドを定義したいのですが、
どのように実装すればうまくいくでしょうか

function Unko(){}
Unko.prototype = {
destroy: function(){ /*
this = null; みたいな感じで自分自身を削除
*/ },
say: function(){ alert('まだ生きてるよ') }
};

var unko = new Unko();
unko.say();
unko.destroy();
unko.say(); // ここでエラーが出て欲しい
if(unko){
alert('うんこは滅びぬ!何度でも蘇るさ!'); // これは出てほしくない
}
278Name_Not_Found:2010/11/17(水) 07:47:04 ID:???
unko.destroy()をunko=nullにすればいいだけでは
279Name_Not_Found:2010/11/17(水) 10:45:00 ID:???
うんこ塗る
280Name_Not_Found:2010/11/17(水) 10:53:41 ID:???
狙ったなコイツ
絶対unko = nullを最初からわかってたハズだ
unko = nullを言わせたかったんだろ!
281Name_Not_Found:2010/11/17(水) 14:18:26 ID:???
数字を5の倍数にしたいのですが、
どのように計算すれば上手くいくでしょうか

例えば76なら75、71なら70、69なら65となるようにしたいのですが
282Name_Not_Found:2010/11/17(水) 14:24:30 ID:???
1桁目の数字が1-5なら0に変えて6-9なら5に変えればいいだけでは
283Name_Not_Found:2010/11/17(水) 14:28:20 ID:???
ヒント:%
284Name_Not_Found:2010/11/17(水) 14:29:42 ID:???
0-4なら0で5-9なら5の間違い
285Name_Not_Found:2010/11/17(水) 14:34:10 ID:???
なるほど!
73を5で割って、余りを引けば良いんですね!
すごいです!ありがとうございます!
286Name_Not_Found:2010/11/17(水) 14:35:20 ID:???
function hoge(num) {
if (num % 10 < 5) {
return parseInt(num.toString().substr(0, num.toString().length - 1) + '0');
} else {
return parseInt(num.toString().substr(0, num.toString().length - 1) + '5');
}
}
alert(hoge(76));
alert(hoge(71));
alert(hoge(69));
287Name_Not_Found:2010/11/17(水) 14:38:21 ID:???
function hoge(num) {
return num - num % 5;
}
alert(hoge(76));
alert(hoge(71));
alert(hoge(69));
288Name_Not_Found:2010/11/17(水) 14:43:12 ID:???
誰が一番難しいコードで答えを導けるか選手権ですか
289Name_Not_Found:2010/11/17(水) 14:47:32 ID:???
嫌がらせしてるとしか思えん
290Name_Not_Found:2010/11/17(水) 14:49:37 ID:???
コードって数学オリンピックみたいなモノがあるよな
質問する奴に対して「これでいい」「いや、こっちの方が良い」「いやいや、こっちの方が更に良い」
って如何にして美しいコードを書くみたいなのが競われるし
291Name_Not_Found:2010/11/17(水) 15:11:15 ID:br6jw6EV
deleteとnull代入の違いも分からない男のひとって……
292Name_Not_Found:2010/11/17(水) 15:14:40 ID:???
突拍子もなくいきなりdeleteとnullの違いとか話題を持ち出す人ってなんなの?死ぬの?
293Name_Not_Found:2010/11/17(水) 15:18:54 ID:???
違いが分からないからここに聞きに来たんだろ。
294Name_Not_Found:2010/11/17(水) 15:20:01 ID:???
>>291は質問なのか・・・?
295Name_Not_Found:2010/11/17(水) 15:43:16 ID:???
このスレで抽出してもdeleteって単語は出てなかった
一体何の話なんだ
296Name_Not_Found:2010/11/17(水) 15:51:32 ID:???
>>277の話じゃないのか。しっかりしろ。
297Name_Not_Found:2010/11/17(水) 15:55:16 ID:???
delete unko.sayなら分かるが
delete unkoは消せないぞ
298Name_Not_Found:2010/11/17(水) 15:56:34 ID:???
誰もdeleteの話なんてしてないわな
299Name_Not_Found:2010/11/17(水) 15:58:25 ID:tQ+hD8B7
で、やっぱうんこ塗るしかないの?かな?
300Name_Not_Found:2010/11/17(水) 16:04:16 ID:???
function Unko(n){ this.name = n; }
Unko.prototype = {
destroy: function(){
delete window[this.name];
}
};

eval("var unko;");//evalだとDontDelete属性は付かない
unko = new Unko('unko');
alert('unko' in window);
unko.destroy();
alert('unko' in window);

IEはダメみたいだけど

「デストラクタが存在しないようなので」って話だから
null代入じゃなくてdeleteの話だよね。
301Name_Not_Found:2010/11/17(水) 16:06:11 ID:???
全く、うんこ塗るだのなんだの
302Name_Not_Found:2010/11/17(水) 16:09:04 ID:???
おかしいだろデストラクタといいつつ明示的に呼び出す必要があるとか
それデストラクタちゃうで
ていうか明示的に解放する必要があるものならわかるけど
オブジェクトがオブジェクト自身を解放するとかトリッキーなこと普通しないわ
303Name_Not_Found:2010/11/17(水) 16:15:07 ID:???
>「デストラクタが存在しないようなので」って話だから
>null代入じゃなくてdeleteの話だよね。

えっ
デストラクタとnull,deleteになんの関係があるんだ?
JavaScriptにはデストラクタという処理機構がないという話だろ
デストラクタが何かしらなければwikipediaで調べなさい
304Name_Not_Found:2010/11/17(水) 16:17:56 ID:???
deleteはプロパティ「名」を消す
それ以上でも以下でもない
305Name_Not_Found:2010/11/17(水) 16:45:13 ID:???
普通は参照されなければ、裏でこっそり消されるけどね。
306Name_Not_Found:2010/11/17(水) 17:03:26 ID:???
例えばDOMエレメントをオブジェクト生成と同時に生成して、オブジェクト破棄と同時に削除したいとき、
デストラクタがないので困ったなーという話だと思う
307Name_Not_Found:2010/11/17(水) 17:06:47 ID:???
そんなもん工夫すればどうとでもなる
308Name_Not_Found:2010/11/17(水) 17:15:47 ID:???
Range.detach()でもNodeIterator.detach()でも好きなの使えよ
309Name_Not_Found:2010/11/17(水) 17:27:21 ID:???
内部的な処理は全て破棄されてるよ
表示してるから残ってるように見えるけど
310Name_Not_Found:2010/11/17(水) 17:49:45 ID:???
お前らうんこに反応しすぎw
311Name_Not_Found:2010/11/17(水) 17:51:04 ID:???
ニンジンソードやら大根ブレードならとにかく
うんこなんて名前にしやがって
312Name_Not_Found:2010/11/17(水) 18:00:51 ID:???
Bugzillaとかstatus:UNCOばっかだけどな
313Name_Not_Found:2010/11/17(水) 18:01:39 ID:???
略さないで><
314Name_Not_Found:2010/11/17(水) 18:11:45 ID:???
外部jsのコメントを取得する方法ありますか?
315Name_Not_Found:2010/11/17(水) 18:12:37 ID:???
サーバーサイドで外部jsを取得できるなら
316Name_Not_Found:2010/11/17(水) 18:23:18 ID:???
XMLHttpRequest
317Name_Not_Found:2010/11/17(水) 18:25:14 ID:???
ラジオボタンを用意して

のドレかが正解だよ!

A B C D E F
○○○○○○
YES:○
っての作って
普段はYESボタン押せないけど、Dボタンを選択したらYESボタンをクリックできるようにする!
そんでYESボタンでクリックonclick始動!

とか出来ます?
318Name_Not_Found:2010/11/17(水) 18:27:57 ID:???
>>317
onchange
319Name_Not_Found:2010/11/17(水) 18:29:02 ID:???
>>318
Oh!change!
320Name_Not_Found:2010/11/17(水) 18:30:05 ID:???
ohchangeじゃねぇonchangeだっつーの
321Name_Not_Found:2010/11/17(水) 18:30:36 ID:???
>>319
You are welcome.
322Name_Not_Found:2010/11/17(水) 18:30:59 ID:???
Oh...click.....
323Name_Not_Found:2010/11/17(水) 18:32:49 ID:???
oh!click気持ち良い!
324Name_Not_Found:2010/11/17(水) 19:18:22 ID:???
これもう荒らしだろ
325Name_Not_Found:2010/11/17(水) 19:19:47 ID:???
中学校でπって記号を習う時必ず何か言う奴居るがアレも授業妨害の一種だしな
326Name_Not_Found:2010/11/17(水) 19:32:26 ID:???
力抜けよ
327Name_Not_Found:2010/11/17(水) 20:00:51 ID:???
円を書いてピザとかケーキの丸い生地をパイ生地というけどそういうイメージみたいな説明をすればいいんだよ
オッパイオッパイ言い出して学級崩壊するレベルは教師の力不足ってことさ
328Name_Not_Found:2010/11/17(水) 20:19:35 ID:???
頭良いなお前
オッパイよりパイ生地連想させるとか
329Name_Not_Found:2010/11/17(水) 20:25:14 ID:???
お前らここを何板だと思ってやがるんだ。

まな板じゃねーぞ
330Name_Not_Found:2010/11/17(水) 21:48:05 ID:???
楽しんでるところごめんなさい

A name ="ona" onclick = "test()"
B name ="ona"onclick = "te()"

function test(){
a=document.form.select.options;
a[0].text = "1"
a[0].value="1"
a[1].text = "2"
a[1].value ="2"
}

function te(){
b=document.form.select.options;
b[0].text = "13"
b[0].value = "14"
b[1].text = "12"
b[1].value="12"
}

document.write(A*100,B+B)
というのを作ってAをクリックするとメニュに1と2が表示され
Bをクリックするとメニューに11と12が表示されるというものを作ってるのですが
B選択したら値は変わって、その後A選択するとまた値は変わるのですが
1度Aを選択すると元に戻りません、bをaにすれば問題は無いのですが、どーしてもb[0].valueとa[0].valueの差別化を図りたいのですが
331Name_Not_Found:2010/11/17(水) 21:52:40 ID:???
日本語で
332Name_Not_Found:2010/11/17(水) 21:56:23 ID:tQ+hD8B7
AとBとは何なのか。
メニュって何なのか。
その辺を詳しく。
333Name_Not_Found:2010/11/17(水) 22:04:49 ID:???
すみまえsん、簡略化しすぎました
HTML
<form name="form">
A<input type="radio" name="ona" onclick="test()">
B<input type="radio" name="ona" onclick="te()">

<select name="select">
<option>AかBを選択してください</option>
</select>
</form>

スクリプト
function test(){
opt=document.form.select;
a=opt.options;
a[0].text = "1";
a[0].value="1";
a[1].text = "2";
a[1].value ="2";
}

function te(){
opt=document.form.select;
b=opt.options;
b[0].text = "13";
b[0].value = "14";
b[1].text = "12";
b[1].value="12";
}
document.write(a[opt.selectedindex].value*100,b[opt.selectedindex].value*2);
とやりたいのですが、B選択したら値は変わって、その後A選択するとまた値は変わるのですが
1度Aを選択すると元に戻りません
334Name_Not_Found:2010/11/17(水) 22:09:12 ID:???
恐らく原因はBを選択したあとAを選択すると、違う変数に入ってるので
a[0].text = "1";
a[0].value="1";
a[1].text = "2";
a[1].value ="2";

b=opt.options;
b[0].text = "13";
b[0].value = "14";
b[1].text = "12";
b[1].value="12";
が両方発動してしまって辞書式でaが表示されてるんだと思います
ちなみに変数bを全部aに変えたら上手くいきました
335Name_Not_Found:2010/11/17(水) 22:37:39 ID:???
>>333
このやり方ってありなのかな。select.options[1] を初期化したら要素が生成されるという規定がどこかにある?
HTMLSelectElement#add でoption要素を挿入した方がいい気がする。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/HTML/HTMLSelectElement.html#HTMLSelectElement-add
336Name_Not_Found:2010/11/18(木) 02:03:57 ID:???
規定ならそれこそHTML5のHTMLOptionsCollectionの節にある
add()はIE7以下との互換性を考えると使いにくい
それとDOM2 HTMLを持ち出すならHTMLOptionElement#valueがreadonlyなのにもつっこめ

要するに>>333は二十世紀の参考書を見ており、その書き方が今になって正当化された
337Name_Not_Found:2010/11/18(木) 02:04:44 ID:???
ごめんなさい、>>334の値がどーのこーのは自分の勘違いでした
どうも関数名がunko()で unko=opt.optionsってやってたのがマズかったらしくソレでおかしくなってたみたいです・・・。

関数名って()付けるから同じでも別に問題ないだろ、って思ってやってましたが問題アリだったんですね・・・。

上でいうと

function a(){
opt=document.form.select;
a=opt.options;
a[0].text = "1";
a[0].value="1";
a[1].text = "2";
a[1].value ="2";
}
function te(){
opt=document.form.select;
b=opt.options;
b[0].text = "13";
b[0].value = "14";
b[1].text = "12";
b[1].value="12";
}

こんな感じです、変わりの名前使っててすみませんでした
a()とaを同じに使う事とおかしくなることを知らずに・・・。
338Name_Not_Found:2010/11/18(木) 02:06:19 ID:???
すみません、本当に自分が肝心な事書かずに関数名と変数名同じにしても大丈夫と思って皆さんに苦労おかけしました
指摘してくださった皆さん、本当に申し訳ございませんでした・・・。
339Name_Not_Found:2010/11/18(木) 02:09:04 ID:???
大丈夫に決まってんだろ
varの変数宣言すらまともにしてない参考書を見てたのか
340Name_Not_Found:2010/11/18(木) 02:12:59 ID:???
いえ、しかしaを他の名前にしたら直ったんです
341Name_Not_Found:2010/11/18(木) 02:14:53 ID:???
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
<script type="text/javascript">
var opt,a,b;

function a(){
opt=document.form.select;
opt.length = 2;
a=opt.options;
a[0].text = "1";
a[0].value="1";
a[1].text = "2";
a[1].value ="2";
}

function te(){
opt=document.form.select;
opt.length = 2;
b=opt.options;
b[0].text = "13";
b[0].value = "14";
b[1].text = "12";
b[1].value="12";
}
</script>
342Name_Not_Found:2010/11/18(木) 02:15:48 ID:???
</head>
<body>
<form name="form">
A<input type="radio" name="ona" onclick="a()">
B<input type="radio" name="ona" onclick="te()">
<br>
<select name="select">
<option>AかBを選択してください</option>
</select>

</form></body></html>
343Name_Not_Found:2010/11/18(木) 02:17:49 ID:???
ローカル変数を使わずに全部グローバル変数とは恐れ入った
344Name_Not_Found:2010/11/18(木) 02:20:00 ID:???
あれ?
なにこれ?
マジで関数名と変数同じにすると変になるわ
345Name_Not_Found:2010/11/18(木) 02:20:19 ID:???
>>341>>342がそのhtmlです、この二つをコピーして実行して
A→B→Aと選択するとAの値が出なくなります
しかし、onclic="a()"を"test()"に変えてfunction "a()"も"test()"に変えると直るんです
自分も関係ないと思ってました
346Name_Not_Found:2010/11/18(木) 02:24:01 ID:???
グローバル変数をローカル変数に直ったわ
つまりローカルとグローバルの使い分けめんどくさがらずちゃんとやれって事じゃね?
347Name_Not_Found:2010/11/18(木) 02:25:19 ID:???
グローバル変数とローカル変数の違いを理解してるか?

それと整形式ですらないHTMLをXHTMLと名乗るな
348Name_Not_Found:2010/11/18(木) 02:30:15 ID:???
ローカルとグローバルのスコープの違いとかやった方がいいな
慣れれば結構楽だしそーいうエラーも起こらなくなるし
優先順位とかもあるからやっといた方がいいよ、というか必須
349Name_Not_Found:2010/11/18(木) 02:34:26 ID:???
>>336
ありがとう。勉強になった。

---
If the new value is greater, then n new option elements with no attributes and
no child nodes must be appended to the select element on which the HTMLOptionsCollection is rooted,
where n is the difference between the two numbers (new value minus old value).
http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#htmloptionscollection
---

> HTMLOptionElement#valueがreadonly
IDL読むと value は readonly になってないように読めたけど、誤解してるのかな…。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-70901257
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-option-element
350Name_Not_Found:2010/11/18(木) 02:35:39 ID:???
なるほどー、明日からまたJavaScriptの絵本とは別の入門書買って勉強します
351Name_Not_Found:2010/11/18(木) 02:38:35 ID:???
>>349
すまん、#valueではなく#text
352Name_Not_Found:2010/11/18(木) 02:40:38 ID:???
>>344-345
変数も関数も同じ名前空間を利用しているので、後に定義した方で上書きされる。
ローカル変数を使った方が良い。
353Name_Not_Found:2010/11/18(木) 02:40:57 ID:???
>>349のレスで思い出したんだがここ数日thinkってコテハン来てないな
風邪でも引いたのか?
354Name_Not_Found:2010/11/18(木) 02:41:30 ID:???
『JavaScriptの絵本』は買ってはいけない・・とメモメモメモ_φ(._.
355Name_Not_Found:2010/11/18(木) 02:43:28 ID:???
文体と場をわきまえない引用で分かるが言ってやるな
356Name_Not_Found:2010/11/18(木) 02:44:20 ID:???
>>351
ありがとう、確認した。(あまり使わないプロパティを見たら、IDLを読む癖をつけた方がいいかもしれない…)
357Name_Not_Found:2010/11/18(木) 02:44:26 ID:???
おい!絵本シリーズ馬鹿にすんな!
あれは白樺湖ぐらいの浅さだが、データベースってなぁに?って俺は超わかりやすかったんだぞ!



まぁ俺もその後別の本買ったけど
358Name_Not_Found:2010/11/18(木) 02:49:11 ID:???
それって同じ人が描いてんの?
359Name_Not_Found:2010/11/18(木) 02:50:52 ID:???
これか
http://ec3.images-amazon.com/images/I/41xQclG4d-L._SS500_.jpg
http://ec2.images-amazon.com/images/I/41ZWZCP5BGL._SS500_.jpg
1764円ってやけに安いな
そんでもってアマゾンレビューに
「非常に中途半端な内容に終わってしまっている。」
と書いてあるぞ
イメージ的に理解しやすいって書いてあるからオブジェクト指向の説明とかから書いてあんのかな?
>>358
買ってる人は結構多いみたい
360Name_Not_Found:2010/11/18(木) 02:56:30 ID:???
>>358
他にPerlとかあったから同じ人なんじゃない?よくわかんないけど
SQLって何?メモ帳使うの?phpと関係あんの?
ぐらいの俺には丁度良かった
361Name_Not_Found:2010/11/18(木) 03:07:43 ID:???
とりあえず>>339はごめんなさいしないとな
362Name_Not_Found:2010/11/18(木) 11:34:12 ID:???
>>265
Web Publishingに電子書籍も入れてくれ
ブラウザベンダーがWebアプリケーションにこだわりすぎた結果
こっちはKindleの一人勝ち状態
XLinkならコピーコントロールもできたはずなんだがなー
363Name_Not_Found:2010/11/18(木) 15:41:52 ID:???
金玉アイドル
364Name_Not_Found:2010/11/18(木) 17:37:04 ID:???
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0011?page=2
ここのソースに書いてあるような感じで

<script>
(function(){
//
})();
</script>

みたいな感じに全体を括弧で包んで、();で実行させると、どういうメリットがあるの?
単純に1個オブジェクト用意してその中に変数やらメソッド突っ込めば
グローバル汚さずにすむじゃんと思ったんだけど、グローバル変数云々以外のメリットもあるのかな?
365Name_Not_Found:2010/11/18(木) 17:53:54 ID:???
お前がそれで良いと思うならそれでいいさ
やりようによっては他のメリットもあるが説明が面倒だ

確実に言えることは、そこの書き方はまねるな
366Name_Not_Found:2010/11/18(木) 17:56:52 ID:???
ずいぶん上から目線ですね
367Name_Not_Found:2010/11/18(木) 17:57:29 ID:???
ここ知識はあるが小馬鹿にした態度をとる奴が定期的に出るな
368Name_Not_Found:2010/11/18(木) 18:07:11 ID:???
ここだけじゃない
369Name_Not_Found:2010/11/18(木) 18:07:28 ID:???
肝心なことをいわないから参考にならない
370Name_Not_Found:2010/11/18(木) 18:11:07 ID:???
説明することもできないんだから知識もないんだよ
371Name_Not_Found:2010/11/18(木) 18:17:39 ID:???
クロージャとか無名関数とかいまいちわからんよ
372Name_Not_Found:2010/11/18(木) 18:19:38 ID:???
無名関数ではなく匿名関数というべき、と聞いたことがあるんだけどどう違うんだろう?
373Name_Not_Found:2010/11/18(木) 18:23:14 ID:???
言葉なんてどうでもいいわ
374Name_Not_Found:2010/11/18(木) 18:23:50 ID:???
説明ったってお前ら長文よまないじゃん
375Name_Not_Found:2010/11/18(木) 18:24:57 ID:???
お前と一緒にすんな
376Name_Not_Found:2010/11/18(木) 18:26:09 ID:???
長文でも読む人は読む
ROMっている人が大勢いる
377Name_Not_Found:2010/11/18(木) 18:52:32 ID:P7LvCCyA
<div id="kahen">
この文字をdivサイズに合わせて変更する
</div>

サイズが動的に変わるdivに合わせて
innerHTMLの文字サイズも動的になるべくdivのサイズ一杯に表示してあげたいんですが
どうやってやればうまくいきますか?
378Name_Not_Found:2010/11/18(木) 18:56:41 ID:???
>>377
document.getElementById('kahen').offsetHeight を使ってみるとか
379Name_Not_Found:2010/11/18(木) 19:02:56 ID:???
書き逃げははてブなんかと変わらん
380Name_Not_Found:2010/11/18(木) 20:02:22 ID:nE9bz1aE
>>365
> 確実に言えることは、そこの書き方はまねるな
って言ってる理由って何?真似ない方がいいって言うほどのデメリットがパッと思いつかない
381Name_Not_Found:2010/11/18(木) 20:15:25 ID:???
>>364
> 単純に1個オブジェクト用意してその中に変数やらメソッド突っ込めば
これだとグローバル汚しているし、関数や変数の制限に制約が出てくる
オブジェクトを分けた方がベターな時にお勧めできない
382Name_Not_Found:2010/11/18(木) 20:20:37 ID:nE9bz1aE
>>381
(funtion(obj){
 var obj1 = {
  // obj1の定義
 };
 var obj2 = {
  // obj2の定義
 }

 obj.obj1 = obj1;
 obj.obj2 = obj2;
})(com.example.www);
みたいにしたら良くない?>>365の理由がわからない
383Name_Not_Found:2010/11/18(木) 20:22:01 ID:???
>>381
その辺のライブラリが普通にやってることじゃないか
jQueryとかuupaaとか
384Name_Not_Found:2010/11/18(木) 20:33:57 ID:???
>>364 の意図はこういう書き方だと思った (無名関数を使わずに成立させる方法はこれしか思いつかない)

var obj = {
 a:'hoge',
 b:function(){;}
};

>>382-383
その書き方は良いと思う
jQuery も無名関数を利用しているので、名前空間的には悪くないかと
385Name_Not_Found:2010/11/18(木) 20:40:26 ID:???
グローバルを汚すなと言う人が
prototypeを拡張していたりRegExp.$1とか使ったりしていると
何だかなあと思う
386Name_Not_Found:2010/11/18(木) 20:46:21 ID:???
無名関数の中で複数のオブジェクトを作って、最終的に一つのオブジェクトに統合する方法もある

グローバルを汚すな、というのは用途による
再利用しないなら汚すべきではないと思う
387Name_Not_Found:2010/11/18(木) 20:52:13 ID:???
グローバル汚染はvarの付け忘れによるものが多い
名前をちゃんと考えれば問題は少なく、過剰反応しすぎと思う

プロトタイプ汚染の方が問題の根は深い
388Name_Not_Found:2010/11/18(木) 20:59:15 ID:???
Object.prototypeの拡張でなく、特に被らないようなサービス独自の特殊なメソッドだったら
prototype拡張してもらっても構わないな。

Object.prototypeを拡張されると全部に影響すると困るし、
既にあるメソッド名で拡張されると思いもよらぬ副作用があるからそれだけは困る
389Name_Not_Found:2010/11/18(木) 21:01:02 ID:???
不具合を発生させる人の多くはちゃんと考えないから、グローバル汚染と言われるのだと思う
ちゃんと考える人にとっては、グローバル汚染もprototype汚染も大した問題じゃない
390Name_Not_Found:2010/11/18(木) 21:05:45 ID:???
>>389
汚染が問題になるのは、汚染ライブラリが存在する環境でコードを動かさねばならないときだから
ちゃんと考える人ほど回避に苦労するんだぜ
391Name_Not_Found:2010/11/18(木) 21:08:29 ID:???
そもそもDOMツリー自体がグローバルにアクセスできるものだと
気をつけてコーディングしている人間がどれだけいるか
392364:2010/11/18(木) 21:09:39 ID:???
自分は、グローバル汚染はオブジェクト1つくらいならいいよねwwwwww
くらいな意識だったので、改めなきゃいけなさそうですね・・・

>>364みたいに

<script>
(function(){
//
})();
</script>

ってした場合、無名関数(匿名関数)はグローバルのプロパティになると思ってたけど違うのかな?
393Name_Not_Found:2010/11/18(木) 21:47:28 ID:???
>>385
そこらへんもよくわからんのだよなぁ
394Name_Not_Found:2010/11/18(木) 22:09:59 ID:???
>>364のリンク先のどの箇所が真似ちゃいけない部分?リンク先の人の言うことはぜんぶ鵜呑みにしてたんだけど
395Name_Not_Found:2010/11/18(木) 22:27:01 ID:???
> for文の中に無名関数を作っています
美しくないにも程がある。
396Name_Not_Found:2010/11/18(木) 22:30:43 ID:???
良し悪しはともかく、俺ならああいうコードにならずに済むようJSONP APIの方を修正する
APIのせいで、ああならざるをえない面はある
397Name_Not_Found:2010/11/18(木) 22:31:26 ID:???
>>390
それは相性もあるし、そのライブラリをどれだけ熟知しているかという使いこなしの問題な気はする

今問題となっているのは、自分が書くコードでグローバル汚染するか
自分が書くコードで汚染されている事を知らないわけがないのでちゃんと考える人なら問題はないと思う
グループで制作しているなら気をつかうべきではあるけど
398Name_Not_Found:2010/11/18(木) 22:42:31 ID:???
JavaScript のブロックスコープと名前空間 ≪ Mozilla Developer Street (modest)
https://dev.mozilla.jp/2010/05/js-blockscope-and-namespace/

jquery-1.4.4.js は b. 方式
399Name_Not_Found:2010/11/18(木) 23:20:43 ID:qXCeF6V4
俺もb方式だなあ。
広く配布するような大層なもんは作ってないから、
グローバル汚染は、後のコード使い回しwの弊害にならないようにする程度だけど。

逆にちょっとした計算のために変数が増えるのが気になる。
気になるだけなんだけど、

var a = 0,
    b = 1,
    c = (function(){
        // ちょっとした計算
        return hoge;
    })(),
    d = 2;

みたいに、唐突な無名関数をよく書いてる気がする。
400Name_Not_Found:2010/11/18(木) 23:27:52 ID:???
ある範囲をinnerHTMLで書き換えるのもグローバルな汚染と言えるんだぜ
そこにあったイベントリスナーは全部消えるし
要素ノードのラッパーオブジェクトなんかも更新しないといけない
401Name_Not_Found:2010/11/18(木) 23:37:32 ID:???
それは(多くの場合)使う側が想像できるけどね
402Name_Not_Found:2010/11/18(木) 23:53:31 ID:???
グローバル汚染の大半は想像できる
403Name_Not_Found:2010/11/18(木) 23:56:53 ID:???
いや、ライブラリの形でデザイナとかが使う場合のことを言ってる
404Name_Not_Found:2010/11/19(金) 00:00:13 ID:???
何を心配してるのかわからん
汚染汚染と騒ぎ過ぎなんだよ
405Name_Not_Found:2010/11/19(金) 00:05:21 ID:???
デザイナーは想像しているのではなく相性の問題としてあきらめるだけ
406Name_Not_Found:2010/11/19(金) 00:19:12 ID:???
とりあえず>>365の真意が知りたいのだけどこのまま流れちゃいそうな勢いだな
407Name_Not_Found:2010/11/19(金) 00:23:42 ID:???
まあ黙ってられないタイプぽいからそのうちまた出てくるんじゃない
408Name_Not_Found:2010/11/19(金) 00:27:13 ID:???
windowとかdocumentをローカル変数化したい場合
(function(window){
var document=window.document;
})(window);
とか
setTimeout(argument.callee)
やりたい場合とか
409Name_Not_Found:2010/11/19(金) 00:32:31 ID:???
prototype拡張はmdcとかに書いてるのだったらいいよな

Arrayの反復メソッド便利だし
410Name_Not_Found:2010/11/19(金) 00:36:06 ID:???
用語が良くわからんのだが、オライリーの本読めば理解できるようになる?
411Name_Not_Found:2010/11/19(金) 01:19:28 ID:???
>>410
用語によるから何とも言えないけど、テンプレに載ってるサイトにもググってもわからなければ
「この用語わからないけど何で調べればいい?」って聞いたらいいんじゃない?
prototypeみたいにわかりやすい用語なら
prototype site:developer.mozilla.org/ja/javascript
みたいにググればすぐ出てくるけど特殊なのは何とも言えない
412Name_Not_Found:2010/11/19(金) 06:58:30 ID:???
一般的な計算機科学の教科書を一通り読んだ方がいい
他言語から適当に持ち込まれた用語も多いし、それを各自が勝手に解釈している
413Name_Not_Found:2010/11/19(金) 07:51:23 ID:???
>>412
>計算機科学の教科書を一通り

参考までに貴方が読んだこの一通りの教科書を挙げてもらえませんか?
414Name_Not_Found:2010/11/19(金) 23:08:40 ID:???
JavaScript の用語を知るために計算機科学の知識が必要なのかな
415Name_Not_Found:2010/11/19(金) 23:10:53 ID:???
計算機科学w
416Name_Not_Found:2010/11/19(金) 23:16:16 ID:???
>>412
おすすめ教えてください
バカでも理解できるような奴で、通勤中とかに読めるのが好ましい
417Name_Not_Found:2010/11/19(金) 23:17:40 ID:???
エクセルを使うのに、量子力学が必要ですか?w
418Name_Not_Found:2010/11/19(金) 23:28:15 ID:???
必要です<キリツ
419Name_Not_Found:2010/11/20(土) 00:28:55 ID:???
>>415
いや、ホントにそういう学問があるんだよ。
420Name_Not_Found:2010/11/20(土) 00:31:41 ID:???
>>419
うん、知ってる。それぐらい常識。
でもJavaScriptスレで出してくるのはおかしいと思うよ。
馬鹿の一つ覚えか何か知らないけどさ
421Name_Not_Found:2010/11/20(土) 00:34:26 ID:???
計算機科学スレから誘導されて来ました
422Name_Not_Found:2010/11/20(土) 00:35:43 ID:???
小学生が計算機科学について語り合うスレはここですか
423Name_Not_Found:2010/11/20(土) 01:13:44 ID:???
英語でcomputer scienceはよく見るけど、
日本語の訳語は情報科学とかのほうが多くない?
424Name_Not_Found:2010/11/20(土) 01:15:16 ID:???
412のせいで変な流れに
425Name_Not_Found:2010/11/20(土) 02:03:32 ID:???
計算機科学じゃなくてどう考えても言語学だろ
426Name_Not_Found:2010/11/20(土) 19:00:15 ID:???
DOMで要素を作るのに、img要素にはnew Image()があるのはどうして?これを使ったほうがいいんですか?
img要素のほかのDOM要素にもありますか?
427Name_Not_Found:2010/11/20(土) 19:32:09 ID:???
new Audio()とか
428Name_Not_Found:2010/11/20(土) 20:31:34 ID:???
初歩的で申し訳ないんですが、

document.write('<span onclick="alert()">aaa</span>');

のようにdocument.write()内で関数を呼び出すと
chromeやsafariならalert()が実行されるんですが
firefoxやIEでは
uncaught exception: [Exception... "Not enough arguments [nsIDOMWindowInternal.alert]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: file:///〜〜〜l :: onclick :: line 1" data: no]
等のエラーが出て実行されません。
自分で宣言した関数の場合も同じです。

動的に出力される文字にonclickのような動作をさせる方法を教えてください。
また、よろしければエラーになる原因も教えてもらえると勉強になります。
429Name_Not_Found:2010/11/20(土) 20:39:45 ID:???
普通に書いて試した?
alert(0)とか引数指定すればエラー出ないと思うよ。
430Name_Not_Found:2010/11/20(土) 20:47:20 ID:???
> Exception... "Not enough arguments
こんな簡単な英文も読めないの?
431Name_Not_Found:2010/11/20(土) 20:49:19 ID:???
解決しました、有難うございます。
スクリプトをonloadで読んでたのが原因みたいです。
body内で呼んだらできました。
ご迷惑おかけしました。

今日一日悩んでたのは一体なんだったんだろう・・・w
432Name_Not_Found:2010/11/20(土) 20:55:49 ID:???
これはひどいw
433Name_Not_Found:2010/11/20(土) 21:05:02 ID:???
>>428
っつーかそれはdocument.write()内で関数を呼び出してはいないぞ。
434Name_Not_Found:2010/11/21(日) 01:24:34 ID:???
素人の質問にはエスパーが必要だな
435Name_Not_Found:2010/11/21(日) 16:15:50 ID:???
まー初心者ってそんなもんだろ、どっちかっつーと微笑ましい
436Name_Not_Found:2010/11/21(日) 16:42:58 ID:???
自分、こちらのサイトを参考にHTMLの値を受け取ったりしてるのですが
http://homepage2.nifty.com/aggressive_ex/javascript/javascript21-3.html#radio

radioオブジェクト

使用例)radio名.プロパティ

●プロパティ
value オブジェクト内の値

とあるのですが、これってradio名.valueで選択してる値を取り出せるっつー事ですか?
document.form.name,valueでもundefinedになってしまうのですが
437Name_Not_Found:2010/11/21(日) 16:48:19 ID:???
document.forms
438Name_Not_Found:2010/11/21(日) 16:49:06 ID:???
アニメーションでフレームごとに同じオブジェクトを使っているのですが
オブジェクトのスタイルの初期化をしたい場合
obj.style.backgroundColor = null;
obj.style.width = null;
obj.style.height = null;
といった感じにnullを入れてるのですがこれであっていますか?
style.positionはIEだとnullでエラーがでたので
nullでエラーが出るものに対してはデフォルトの値を入れています
(positionの場合は"static")
このやり方で問題ないでしょうか?
439Name_Not_Found:2010/11/21(日) 16:53:24 ID:???
firefoxだとelement.style.〜のデフォルト値は""だよ
440Name_Not_Found:2010/11/21(日) 16:54:05 ID:???
>>437
本当に初心的な質問で申し訳ないのですが
ということは
form名=unko
ラジオ名=nuru
の場合は
document.forms.nuru.valueでよろしいのでしょうか?
441438:2010/11/21(日) 16:55:40 ID:???
>>439
ありがとうございます
参考にさせていただきます
442Name_Not_Found:2010/11/21(日) 19:09:33 ID:???
またか。unko言いたいだけちゃうんかと。
せめてfooとかhogeにしなさいよ。
443Name_Not_Found:2010/11/21(日) 19:11:50 ID:???
444Name_Not_Found:2010/11/21(日) 19:20:06 ID:???
hogehogeって何フザけてんだコイツ?ってここに貼られるたび思ってたけど
こんなのあったんだ
445440:2010/11/21(日) 20:49:19 ID:???
すみませんでした・・・、次からはちゃんとhoge,piyo,fugeにします。
446Name_Not_Found:2010/11/21(日) 21:18:20 ID:???
>>440
うんこはちゃんとトイレに流せよ
447Name_Not_Found:2010/11/21(日) 21:20:04 ID:???
ぶー、ふー、うーってパターンもなかった?
448Name_Not_Found:2010/11/21(日) 21:45:06 ID:???
うんこが先か食べ物が先かというと、鶏と卵の話とは違って、
明らかに食べ物が先だろうと思われそうだけど、実は赤ん坊は
何も食べなくてもうんちが出る訳で、この場合、腸内の古い
粘膜なんかがその実体なのだけど、何が言いたいかというと、
単にアナロジーだけでは物事は一般に語れないというか、
そんな所でうんちとプログラミングは必ずしも無縁ではないかな、
なんて思ったりして、こんなことを皆に分かってもらいたくて、
スカトロ板から飛んできた次第です。
449Name_Not_Found:2010/11/21(日) 22:01:21 ID:???
>>436
これさ
使用例)radio名.プロパティ
form名.elements[インデックス].プロパティ
ってあるがradio名[i].プロパティって抜けてるだけじゃね?
450Name_Not_Found:2010/11/21(日) 22:25:08 ID:???
>>449
その説明もいまいちわかりにくいぞw
451Name_Not_Found:2010/11/22(月) 00:24:23 ID:???
みなさんこんばんはです。
innerHTMLで動的に書き換えた要素内に画像があるのですが、
この画像をLightBox系エフェクトを使って表示させることはできるでしょうか。

下記のサイトを参考に、画像を含む要素を取得する際、jsファイルを実行することはできたのですが、
やはり書き換え後の内容は拾われないようで、エフェクトが適用されません。
http://qri.seesaa.net/article/123926957.html

ここの回答にもある通り、実現は難しいでしょうか。
フレームを避けてずっと製作して来たのですが、心が折れそうです…。
http://oshiete.goo.ne.jp/qa/2281543.html
452Name_Not_Found:2010/11/22(月) 01:00:59 ID:???
a.js, b.jsという2つのファイルをscriptタグで呼び出しています。
a,jsで書いた関数はb.jsからも使えますか?
453Name_Not_Found:2010/11/22(月) 01:03:03 ID:???
> 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
454452:2010/11/22(月) 01:07:20 ID:???
>>453
すいません。
jquery-toolsの関数を別のjsファイルで呼び出しているのですが、関数がundentifiedになってしまいます。
455Name_Not_Found:2010/11/22(月) 01:08:55 ID:???
>>451
はい、できます。
456Name_Not_Found:2010/11/22(月) 01:10:18 ID:???
innerHTMLはイベントリスナーを壊していくから出来るなら使わないほうがいい

ざっと見た限り、LightBoxはページ読み込み時の画像しか面倒見てくれないから
> addLoadEvent(initLightbox); // run initLightbox onLoad

一番最後の行にあるこれを消して
innerHTMLで画像を読み込んだ後にinitLightbox()を実行するように書き換えればいいと思う
457Name_Not_Found:2010/11/22(月) 01:10:19 ID:???
>>452
はい、使えます。
458Name_Not_Found:2010/11/22(月) 01:26:39 ID:???
iQuery使ってんのに、なんでinnerHTML使うん?
459Name_Not_Found:2010/11/22(月) 01:43:17 ID:???
量によってはJSでDOMツリーを順に構築していくより
サーバサイドで作ったHTMLを一気にinnerHTMLに流し込む方が速かったりしなかったっけ。
あとそれとは直接的に関係ないけど
http://blog.8-p.info/2010/42-facebook-bigpipe-tti
innerHTMLをこういう意味合いで使うテクニックもあるみたい。
460Name_Not_Found:2010/11/22(月) 02:04:32 ID:???
>innerHTMLはイベントリスナーを壊していくから出来るなら使わないほうがいい
これはどういうこと?
とっても気にナール
461Name_Not_Found:2010/11/22(月) 02:20:35 ID:???
462Name_Not_Found:2010/11/22(月) 04:33:49 ID:???
みんなイベントリスナー使ってるのかな?
良く使い方がわからなくて未だに
dom.onmouseover = function() {
 //event
};
とか
dom.innerHTML = '<div onmouseover="event()">';
とかやってる始末orz
463Name_Not_Found:2010/11/22(月) 07:46:59 ID:???
selectのoptionをDOMで操作したらIE6だと見た目が酷かった気が
464Name_Not_Found:2010/11/22(月) 09:09:33 ID:???
>>459
リナザウで、サスペンドから復帰すると操作可能になる前にまず画面表示、を思い出した。
465Perl忍者 ◆M5ZWRnXOj6 :2010/11/22(月) 12:57:45 ID:1DZky7o4
2010-11-21
>僕にとっては、立派な会場よりも、John Resigの存在よりも、
>一緒に発表する他のShibuya.jsのメンバーが本当に凄いJavaScript Ninjaばっかりなので、そんな中に混ざっていいのかという不安が実は一番大きかったです。

なにこいつ

javascript Ninjaとか
すぐ人の真似するよなカスグラマどもは 忍者とか俺が最初かんがえたのに
すぐ真似 どうせ2chでPerl忍者ってみたんだろ しかも sibuya.jsとかsibuya.pmのぱくりだし
真似しかできねえごみしね
466Name_Not_Found:2010/11/22(月) 14:41:59 ID:???
イメージをクリックしたら次の画像に移動するような、
Webマンガっぽいものを作っています。
現在のページを見ているときに、次ページのImageオブジェクトを作成して、
クリックしたら画像を差し替えるといった感じなのですが、
画像がだいぶ縦長なので、画面サイズによってはスクロールしないといけません。
スクロールした状態で次の画像をクリックした場合、
スクロールされた状態で表示されるので、
いちいち上までスクロールを戻さないといけません。
これを回避する手段はありますでしょうか?
今は正しい回避方法がわからず、裏技的な手法でonload時に、
location.href = location.href.charAt(location.href.length-1) == "#" ? location.href : location.href + "#";
とし、以降は次ページを表示する処理に、
location.href = location.href;
とすることでなんとか回避していますが、これはなんか間違ってるような気がしてなりません。
もしベターな方法があったら教えて下さい。
467Name_Not_Found:2010/11/22(月) 15:31:44 ID:???
なんか下のような記述を見かけたのですが関数が1文字なのでググってもでてきませんでした
おそらくdocument.writelnを短縮したものだとは思うのですが
スクリプト中にfunctionで定義してる様子もなく
(外部スクリプトかもしれませんが転がってたものなので外部に何を読み込んでるまでかはわかりません)
document.writeも普通に使っているのでいったい何をしてるのかなぁと
もし以下の記述に心当たりがあるかたは正体を教えてください

o('<style type="text/css">');
o('#hoge {');
o('width:'+hoge.width+'px;');
468Name_Not_Found:2010/11/22(月) 15:32:50 ID:???
+JavaScript質問スレって書いてあるのですが
普通のJavaScriptの質問をしてもいいのでしょうか?
469Name_Not_Found:2010/11/22(月) 15:37:15 ID:???
はい
470Name_Not_Found:2010/11/22(月) 15:46:48 ID:???
+JavaScriptって何だC+じゃないんだぞ
471Name_Not_Found:2010/11/22(月) 15:49:36 ID:???
まったくの初心者には紛らわしいかもね。
むかーし、本屋でBASICって縦書きの背表紙見て「BAS-C」って新しいC言語?!と思ったことはある
472Name_Not_Found:2010/11/22(月) 15:52:54 ID:???
C#とかC++とかあるから確かに紛らわしいかもな
473Name_Not_Found:2010/11/22(月) 16:25:01 ID:???
>>466
それでいいんじゃないかな。
アンカー埋め込んでそこに飛ぶのが手っ取り早いと思う。

>>467
どこかで o に関数を代入しているはず。
474Name_Not_Found:2010/11/22(月) 16:34:25 ID:???
>>467
どこかニュースサイトで見た覚えがあるけど思い出せない…
何かのライブラリだったような
475Name_Not_Found:2010/11/22(月) 16:40:35 ID:???
>>466
window.scrollTo(0,0);
476Name_Not_Found:2010/11/22(月) 16:43:45 ID:???
教書では、1 と表示されるみたいなのですが、表示されません。
どこが間違っているのでしょうか。

<script type="text/javascript">

switch(i) {

case 1:

document.write("1");

}


</script>
477Name_Not_Found:2010/11/22(月) 16:46:16 ID:???
>>476
前部分を端折ってるんだろうな。常識的に考えて
478Name_Not_Found:2010/11/22(月) 16:50:26 ID:???
>>476
とりあえずどこが間違ってるのか良く解らなかったら全部書いてくれ
予想だにしないところで間違ってるかもしれないから
479Name_Not_Found:2010/11/22(月) 16:51:41 ID:???
できたよー
<script type="text/javascript">
var i = 1;
switch(i) {
case 1:
document.write("1");
}
</script>
480Name_Not_Found:2010/11/22(月) 16:59:12 ID:???
>>477
>>478
>>479
ありがとうございます。var i = 1; を記入で出来ました。
ずーと、悩みとまってましたので、、
本当にありがとうございます。
481Name_Not_Found:2010/11/22(月) 17:09:31 ID:???
>>465
あなたが最初に忍者を考えたのですか
すごいですね
戦国時代の激動の世の中も見てきたのでしょう
482466:2010/11/22(月) 17:10:39 ID:???
>>473 >>475
おかげさまでうまくいきました。
どうもありがとうございます。
483Name_Not_Found:2010/11/22(月) 17:24:08 ID:???
>>465
該当記事に直接コメントしなさいよ

Firefox Developers Conference 2010でnode.jsについてLTしてきました - 自分の感受性くらい
http://d.hatena.ne.jp/t_43z/20101121/1290335085
484Name_Not_Found:2010/11/22(月) 18:24:01 ID:DHHFhIMd
>>481
忍者って戦国時代に生まれ?意外に歴史浅いでござるなにんにん。


以前、マツコ・デラックス似の上司(女性)がアメリカ出張したときに、
プロジェクト完了のパーティ開かれて、弊社チームの紹介の時、

「Ninja Fighter! Mr.◯◯〜!」
「Kung fu Lady! Mis.△△〜!」

みたいに呼ばれて「カンフーってなによw」って思ってたら
最後、その上司がコールされるとき

「Sumo Master! Mis.□□〜!」

って呼ばれて、本気で殴りかかったことがあったらしい。
まあ司会者は相撲見たことがなかったってオチなんだけど。
485Perl忍者 ◆M5ZWRnXOj6 :2010/11/22(月) 18:42:46 ID:1DZky7o4
ーーー初スレ登場ーーー

1〜2ヶ月盛り上がる

過疎り始める

俺が活気づける、少し活気づきはじめる

クソがPerl忍者はスルーしたほうがいい 相手するのを喜んでいる 無視開始

居心地悪い

他のスレ移動

ーーー初スレ登場ーーー
486Name_Not_Found:2010/11/22(月) 18:43:22 ID:???
俺php使ってるからどーでもいいや
487Perl忍者 ◆M5ZWRnXOj6 :2010/11/22(月) 18:46:00 ID:1DZky7o4
>>481
激戦をみてきました 本部までのりこみました

>484
どうせ相撲しってんだろ 見たことなかったっていうのは嘘








ここそろそろ居心地悪くなりそう
488Name_Not_Found:2010/11/22(月) 18:46:43 ID:???
ここPerlスレなの?
489Name_Not_Found:2010/11/22(月) 18:50:05 ID:???
Perl忍者でも構わんがJavaScriptの話題してくれ。
490Name_Not_Found:2010/11/22(月) 18:53:22 ID:???
コテハン居るけどアイツ質問にも答えてくれるしなー
491Name_Not_Found:2010/11/22(月) 18:56:43 ID:???
あぼんがいっぱい
492Name_Not_Found:2010/11/22(月) 19:12:13 ID:???
パー忍ちゃんかわいいw
493Name_Not_Found:2010/11/22(月) 22:04:27 ID:???
とあるスクリプトで表示されるNaNを全て0や1にする事って出来ます?
とりあえず色々試したのですが上手くいかなくて
494Name_Not_Found:2010/11/22(月) 22:09:08 ID:???
もとからあるprototypeやオブジェクトにプロパティやメソッドを追加する場合

//もとからあるprototype
var Foo = function(){};
Foo.prototype = {
a: 1,
b: function(){ return 2; }
};
//追加分
Foo.prototype.c = 3;
Foo.prototype.d = (function(){ return 4; })();

のような感じで1個ずつ追加しないといけないのでしょうか?

Foo.protoype = {
c: 3,
d: (function(){ return 4; })()
};

にしてcとdを呼び出したところundefinedでした
ちなみにオブジェクトに追加する場合下のような書き方をすると
もとからあるオブジェクトに上書きされるようでaとbがundefinedになりました

var Hoge = {
a: 1,
b: function(){ return 2; }
};
Hoge = {
c: 3,
d: (function(){ return 4; })()
}
まとめて追加する方法はありませんか?
495Name_Not_Found:2010/11/22(月) 22:11:24 ID:???
>>493
if (value == "NaN") {
value = "0"
}
496Name_Not_Found:2010/11/22(月) 22:13:51 ID:???
if (value != value) の方が個人的には好み
497494:2010/11/22(月) 22:19:12 ID:???
少し見直したら何がしたいかよくわからなかったので補足します
継承みたいなことがしたいのですが

var Bar = Foo;
Bar.prototype = {
c: 3,
d: (function(){ return 4; })()
};
のようにできたら最高なのですが・・・
498Name_Not_Found:2010/11/22(月) 22:26:21 ID:???
>>494
とりあえず、
Foo.protoype = {
はここに書きこむ時だけのタイポでいいのか?
前のを残しつつ、まとめて上書きしたいなら、Foo.Extend({c:3,d:function(){}})みたいに追加要関数を作るってのは?
499Name_Not_Found:2010/11/22(月) 22:56:55 ID:???
>>495
これはギャグで言っているのか?
500Name_Not_Found:2010/11/22(月) 23:07:32 ID:???
>>499
一応、
 NaN.toString() = "NaN"
は true になるね。
501Name_Not_Found:2010/11/22(月) 23:08:19 ID:???
おっと、=が足りない。==ね。
502Name_Not_Found:2010/11/22(月) 23:12:21 ID:???
>>500
0や1にするって言っているのに、何故文字列にしようとするんだ?
503think49 ◆bKk/qcAKuM :2010/11/22(月) 23:23:15 ID:???
>>500
'NaN'.toString() === 'NaN' なので、isNaN を使うべきではないかと。

'NaN'.toString() === 'NaN'
isNaN(0/0)
504Name_Not_Found:2010/11/22(月) 23:27:51 ID:???
内部がどうであろうと表示される結果にはかわりないだろ
505Name_Not_Found:2010/11/22(月) 23:31:03 ID:???
>>502
最終的にisNaN()を使うのは判ってるんだから、
その先のパズルの話じゃないの?
途中がどうあれ、if で比較できればいいんだし。
506Name_Not_Found:2010/11/22(月) 23:31:28 ID:???
さすがに知ってるだろうけど、isNaNは
「引数を数値に変換した結果がNaNだった」場合にNaNを返す関数であって、
引数がNaNそのものであるかどうかを返すわけではない。

isNaN( 0/0 ); // true
isNaN( "ABC" ); // true

だからisNaNを使うのであれば、型をチェックするとか文字列NaNと比較するとか、
とにかく別に1回処理が増える。
自分自身との比較でfalseを返すのはNaNだけだということは保証されてるから

value != value // valueがNaNの場合だけtrue

がやっぱ一番スマートだな。
507think49 ◆bKk/qcAKuM :2010/11/22(月) 23:47:05 ID:???
>>506
なるほど。isNaN の機能を勘違いしていました…。

function isNaN (number) { return Number(number) === 'NaN'; }
508Name_Not_Found:2010/11/22(月) 23:50:26 ID:???
間違えてた。
× 「引数を数値に変換した結果がNaNだった」場合にNaNを返す関数であって、
○ 「引数を数値に変換した結果がNaNだった」場合にtrueを返す関数であって、
509498:2010/11/22(月) 23:59:05 ID:???
>>498
レスどうもです
なるほど!継承用の関数ですか!それは思いつかなかったです
とりあえず作ってみました

Object.prototype.extends = function(obj) {
for (var prop in obj) {
this[prop] = obj[prop];
}
};

var Foo = function(){};
Foo.prototype = {
a: 1,
b: function(){ return 2; },
};

var Bar = Foo;

Bar.prototype.extends({
c: 3,
d: function(){ return 4; }
});

var b = new Bar();
alert("a:"+b.a+";b:"+b.b()+";c:"+b.c+";d:"+b.d());

こんなのでいいかわかりませんが・・・とりあえずできました!
どうもありがとうございます
510think49 ◆bKk/qcAKuM :2010/11/23(火) 00:07:19 ID:???
>>507
Number(number).toString() === 'NaN'; の間違いでした。
511Name_Not_Found:2010/11/23(火) 00:24:44 ID:???
継承なんてどうでもいいと思ってきたけれど
せめて今夜だけでも綺麗になりたい
512think49 ◆bKk/qcAKuM :2010/11/23(火) 00:40:16 ID:???
>>509
Bar.prototype.hasOwnProperty('extends') が true なのは期待通りでしょうか?

Object.prototype.extends = function (obj) {
 for (var prop in obj) {
  if (this.hasOwnProperty(prop)) {
   this[prop] = obj[prop];
  }
 }
};

こうやると Bar.prototype.extends を拡張しなくなります。
http://d.hatena.ne.jp/nazoking/20050425/1114374966
513493:2010/11/23(火) 01:14:53 ID:???
すみません・・・、なんか質問したのに皆さんの話のレベルが高すぎて付いて行けず・・・。
結局どうするのが最適なんでしょうか?
514Name_Not_Found:2010/11/23(火) 01:30:09 ID:???
なんだお前まだいたのか
515Name_Not_Found:2010/11/23(火) 01:32:38 ID:???
なんか発展しすぎたな
516Name_Not_Found:2010/11/23(火) 02:31:46 ID:4wdNoo/i
>>513
うーん。
まず、isNaN()を使ってみて、うまくいかないのを実感して、
>>506を読んで、value != valueを使うのが正解。

まあ value != valueにして、なんでそうなるのかを
ちゃんと調べておけば上等ですよん
517Name_Not_Found:2010/11/23(火) 02:38:15 ID:???
いや、こっちの方がよくね?
function isNaN (number) {
return Number(number).toString() === 'NaN';
}
518think49 ◆bKk/qcAKuM :2010/11/23(火) 02:41:46 ID:???
>>513
最終的には好みかも。

function toZero1 (number) { return number != number ? 0 : number; }
function toZero2 (number) { return typeof number === 'number' && isNaN(number) ? 0 : number; }
function toZero3 (number) { return typeof number === 'number' && number.toString() === 'NaN' ? 0 : number; }
519Name_Not_Found:2010/11/23(火) 02:59:11 ID:???
if (value != value) {
value = "0"
}
つまりvalueがvalueじゃないとき(NaN)とかに0って事ですね!

テキストボックスとかだと
if(document.form.text.value != document.form.text.value)
{
document.form.text.value = "0"
}

こんな感じでよろしいのでしょうか?
フォーム全体のNaNを一つで出来るのかな?と思ってたんですがやっぱり無理っぽいですかね?
520Name_Not_Found:2010/11/23(火) 03:01:36 ID:???
ループ使ってください
521think49 ◆bKk/qcAKuM :2010/11/23(火) 03:16:52 ID:???
>>519
フォームの値はDOMString型なので NaN になりえません。
文字列の "NaN" なら、value === 'NaN' で比較出来ますが。
522Name_Not_Found:2010/11/23(火) 05:51:46 ID:???
>value != value
単に!valueじゃだめなのだろうか
523Name_Not_Found:2010/11/23(火) 07:35:54 ID:???
typeofだけだとnew Numberに対応できないよ…
524Name_Not_Found:2010/11/23(火) 10:46:48 ID:4wdNoo/i
>>522
つ 0
525Name_Not_Found:2010/11/23(火) 11:44:41 ID:???
>>522
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/9_Type_Conversion.html#section-9.2
booleanに変換したときにfalse扱いされるもの
・0、+0、-0(整数実数ともに)
・NaN
・null
・空文字
・undefined

value != value というのはあくまで比較。
普通は 1 !=1 とか "A" != "AA" とかになることはあり得ないんだが、
等価演算子が呼び出す比較アルゴリズムでは(厳密等価演算子でも同じ)
「自分自身を含め、NaNはどんなものとも一致しない」と決まっている。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.9.3

時間を持てあましている人はそこの記述を読み通した上で

alert ( ![] == [] ); // true

なんでこうなるのか考えてみると暇がつぶせて良い。
526Name_Not_Found:2010/11/23(火) 11:45:55 ID:???
訂正
× 普通は 1 !=1 とか "A" != "AA" とかになることはあり得ない
○ 普通は 1 !=1 とか "A" != "A" とかになることはあり得ない
527Name_Not_Found:2010/11/23(火) 12:11:05 ID:???
うろ覚えだがこんなのがあったな
(![]+[])[+[]]
528Name_Not_Found:2010/11/23(火) 13:19:07 ID:???
>>525のリンク先に書いてある結合オブジェクトがいまいちよくわからないんですけど、
具体的にどんなものですか?
529Name_Not_Found:2010/11/23(火) 16:03:02 ID:???
>>525
[] != []なのは配列がObjectを継承してるからでしょー
530Name_Not_Found:2010/11/23(火) 16:56:48 ID:???
alert([]==[]); //false
ぉぉぅ・・・
馬鹿にもわかるようにしておいてください・・・
531think49 ◆bKk/qcAKuM :2010/11/23(火) 17:05:38 ID:???
>>523
なるほど。typeof new Number(0/0) === 'object' になりますね。
NaN の判定に厳密不等価演算子を使わない理由がわかりました。

function equalNaN (arg) { return arg !== arg; }
alert(equalNaN(new Number(0/0))); // false
532Name_Not_Found:2010/11/23(火) 17:09:57 ID:4wdNoo/i
>>530
こんなのも
var a = function(){ alert("hello"); };
var b = function(){ alert("hello"); };

alert(a == b); // false


element.addEventListener('click' , a , false);
element.removeEventListener('click' , a);

// elementをクリックするとアラートでない


element.addEventListener('click' , a , false);
element.removeEventListener('click' , b);

// elementをクリックするとアラートでる


element.addEventListener('click',function(){ alert("hello"); },false);
element.removeEventListener('click',function(){ alert("hello"); });

// elementをクリックするとアラートでる


結果的に等価なものであっても、別のオブジェクトだと思っとけば。
めちゃめちゃ大雑把な説明だけど
533think49 ◆bKk/qcAKuM :2010/11/23(火) 17:11:53 ID:???
>>531
いや、違う。不等価演算子 でも false ですね。(厳密不等価演算子と結果は同じ)

function equalNaN (arg) { return arg != arg; }
alert(equalNaN(new Number(0/0))); // false

でも、Object型の NaN まで判定する必要あるかなあ…。
534Name_Not_Found:2010/11/23(火) 17:19:10 ID:4wdNoo/i
こんなのとか

var A = 0, B = 0;
var a = new Number(A), b = new Number(B);

console.log(A , B , A == B); // 0 0 true
console.log(a , b , a == b); // 0{ } 0{ } false

--

var A = "hello", B = "hello";
var a = new String(A), b = new String(B);

console.log(A , B , A == B); // hello hello true
console.log(a , b , a == b); // hello { 0="h", more...} hello { 0="h", more...} false

535think49 ◆bKk/qcAKuM :2010/11/23(火) 17:35:41 ID:???
>>533
instanceof演算子を使うしかないかな。

function equalNaN (arg) { return (typeof arg === 'number' || arg instanceof Number) && arg.toString() === 'NaN'; }
console.log(equalNaN(0/0));
console.log(equalNaN(new Number(0/0)));

instanceof演算子はグローバルオブジェクト(window)が異なるNumberオブジェクトを渡すと上手く機能しないブラウザがありますが。
536Name_Not_Found:2010/11/23(火) 17:39:33 ID:???
alert (![] == []); // true
alert (false == []); // true
alert (0 == []); // true
alert (0 == ''); // true

// ToPrimitive
alert ([] + [] === ''); // true
alert ([''] + [''] === ''); // true
alert (['0'] + ['0'] === '00'); // true
alert ([0] + [0] === '00'); // true

混乱させてるわけじゃねぇぞ
537think49 ◆bKk/qcAKuM :2010/11/23(火) 18:00:11 ID:???
>>530
配列はオブジェクトであり、オブジェクトを比較するときには「参照で比較」します。

var a = [];
var b = [];
console.log(a === a); // true
console.log(a === b); // false

a === a は同一オブジェクトを参照しているので true となりますが、a と b は別のオブジェクトを参照しているので false となります。
一方、数値や文字列などはプリミティブ型と呼ばれ、「値で比較」します。

var a = 1;
var b = 1;
console.log(a === a); // true
console.log(a === b); // true

typeof演算子で "object" と判定されるものは全てObject型と判断してください。
new Number の戻り値 (Object型の値) とNumberリテラルで挙動が変わるのもこのためです。
538Name_Not_Found:2010/11/23(火) 18:06:13 ID:???
>>536の一番下を誰か解説してください
539Name_Not_Found:2010/11/23(火) 18:08:08 ID:???
>>538
[0].toString()
540Name_Not_Found:2010/11/23(火) 18:18:36 ID:???
>>538
混乱させる意図はありません。
541Name_Not_Found:2010/11/23(火) 18:27:55 ID:???
innerHTMLで
変数1 "と、もう一つは" 変数2
って1行に表示させたいんですが、何か良い方法ありませんか?
542Name_Not_Found:2010/11/23(火) 18:43:45 ID:???
何でもかんでも質問しないで、何で出来ないのかを書くべきだと思うんだが
543Name_Not_Found:2010/11/23(火) 18:45:35 ID:4wdNoo/i
>>541
ごめん何がわからないのかがわからない
544Name_Not_Found:2010/11/23(火) 18:46:59 ID:???
横から失礼します
11111111111111113 == 11111111111111111 // true
これは例外ということでよいのでしょうか?
545Name_Not_Found:2010/11/23(火) 18:48:27 ID:???
var a = 1;
var b = 2;

<h1 align="center">
<div id="hyouji">ここに表示されます</div>
</h1>

var hyo = document.getElementById("hyouji");
hyo.innerHTML = a "と、もう一つは"b;

とやってもaしか表示されませんという事ですー
546Name_Not_Found:2010/11/23(火) 19:01:05 ID:???
>>545
a + "と、もう一つは" + b;

質問する前にJavaScriptの基本ぐらい勉強しとけよ。
547Name_Not_Found:2010/11/23(火) 19:03:08 ID:???
ありがとうございます
そしてすんません、一通りやったのですがメソッドとかの(,)とかとごっちゃになってて
548Name_Not_Found:2010/11/23(火) 19:29:24 ID:???
いみふw
549Name_Not_Found:2010/11/23(火) 19:35:27 ID:???
ちょっと待て、お前ら>>544を忘れてないか?
ちょっとコレ俺的にナイトメアな質問なんだが
550Name_Not_Found:2010/11/23(火) 19:38:03 ID:???
9007199254740992==9007199254740992 //true
551546:2010/11/23(火) 19:39:43 ID:???
>>549
JavaScriptの演算精度の問題。
552Name_Not_Found:2010/11/23(火) 19:40:45 ID:???
環境依存
553Name_Not_Found:2010/11/23(火) 19:44:40 ID:???
>>551
演算精度って・・・w
554Name_Not_Found:2010/11/23(火) 19:45:44 ID:???
桁落ちとか丸め誤差とかなんかその辺のやつじゃね
555546:2010/11/23(火) 19:53:27 ID:???
0.1*3==0.3 //false
556Name_Not_Found:2010/11/23(火) 19:56:29 ID:???
var r=0;
for(var i=0;i<10;i++)
r += 0.1;
print(r);//0.9999999999999999
557think49 ◆bKk/qcAKuM :2010/11/23(火) 20:27:42 ID:???
>>538
加法演算子は文字列の連結、または数の加法のいずれかを行います。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.6.1
ToPrimitive 演算子の評価値が String型なら ToString 演算子で型変換して文字列連結を行い、String型でなければ ToNumber 演算子で型変換して加法演算を適用します。

>>544
Number型の値は 2^64 まで浮動小数点演算が可能ですが、整数演算が可能なのは 2^53 までです。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/8_Types.html#section-8.5

console.log(11111111111111113);  // 11111111111111112
console.log(11111111111111111);  // 11111111111111112
console.log(Math.pow(2, 53));   // 9007199254740992
console.log(Math.pow(2, 53) + 1); // 9007199254740992

2^53 を超える整数値に関しては、2の乗数に丸められます。(ES3 の説明に則れば「s × m × 2e」です)
2^53 を超える値を整数演算したい場合は bigint.js でも利用してください。
http://deztec.jp/x/05/faireal/25-index.html
558544:2010/11/23(火) 20:49:48 ID:???
ありがとうございます。
倍精度 64 ビットフォーマット IEEE 754 値の定義あたりも含めて復習してみます。
559Name_Not_Found:2010/11/23(火) 21:07:33 ID:???
あるスレから。

816 名前:nobodyさん[sage] 投稿日:2010/11/14(日) 11:11:09 ID:???
JavaScriptの数値型は、表面的には1つ(64bit倍精度浮動小数)
なんだけど、整数としては2通りある。
1つは論理演算をすると32bitに変換されちゃうのと、
もう1つは浮動小数の仮数部で表現できる53bit。
2^53=9007兆1992億5474万0992まではJavaScriptなら区別できる。
JSON的には整数と実数は区別して、整数は32bitまで?

823 名前:nobodyさん[sage] 投稿日:2010/11/15(月) 09:29:39 ID:???
>>816
そりゃヘリクツだろうと思ったら、parseInt()がそこまで返すのか。
parseInt(9007199254740992) は 9007199254740992 だけど、
parseInt(9007199254740993) は 9007199254740992 に丸められるな。
560Name_Not_Found:2010/11/23(火) 21:24:45 ID:4wdNoo/i
そういやtwitter APIの返すstatus idが近々53bitを超えちゃうからどうたら
って話があったな。
561Name_Not_Found:2010/11/23(火) 21:37:06 ID:???
数字列が必要になってくるなw
562Name_Not_Found:2010/11/24(水) 01:48:34 ID:???
objectのclipについてのrect()の書き方の質問です。
下記のrectの()内の、二番目の引数の、"
+x+"と、"+y+"という書き方の意味が分かりません。
ちゃんと動くのですが、なぜ、x,yと書くと動かなくなるのでしょうか。。。

function clip(event)
{
var obj=document.getElementById("photo");
var x = event.clientX;
var y = event.clientY;
obj.style.clip="rect(0, "+x+", "+y+", 0)";
}
563Name_Not_Found:2010/11/24(水) 01:51:00 ID:???
他人のスクリプト弄る前に基礎から勉強しろよ
564Name_Not_Found:2010/11/24(水) 01:55:57 ID:???
>>562
ヒント:開始クォートと閉じクォート
565Name_Not_Found:2010/11/24(水) 06:16:20 ID:???
566Name_Not_Found:2010/11/24(水) 07:09:05 ID:???
cssとjavascriptの切り分けが出来てないだけじゃないの?
567Name_Not_Found:2010/11/24(水) 09:41:58 ID:???
obj.style.clip=["rect(0", x, y, "0)"].join()

どうだわかりやすくなったろう
568Name_Not_Found:2010/11/24(水) 12:01:09 ID:???
MacでGoogle ChromeのJavaScriptコンソール機能を使っているんですが、
「コンソールを表示」をやっても何も出てこなくなってしまいました。
どなたか解決方法をご存知ありませんか?
569Name_Not_Found:2010/11/24(水) 15:04:28 ID:???
>>568
それはChromeスレで。
570Name_Not_Found:2010/11/24(水) 17:52:11 ID:???
var Test = function() {
};

Test.prototype = {
create: function() {
var p = document.createElement('p');
var text = document.createTextNode('DOM TEST');
p.appendChild(text);
document.body.appendChild(p);
p.onclick = function() {
//this.hello();
new Test().hello();
};
},
hello: function() {
alert('HELLO!');
}
};

window.onload = function() {
var t = new Test();
t.create();
}

コメント部分のthis.hello()で動かしたいのですが、どうしたらよいのでしょう?
よろしくお願いします。
571Name_Not_Found:2010/11/24(水) 17:57:12 ID:???
document.body.appendChild(p);
var self = this;
p.onclick = function() {
self.hello();
};
572Name_Not_Found:2010/11/24(水) 17:58:26 ID:???
単純な関数ならp.onclick = this.hello;
573570:2010/11/24(水) 18:07:28 ID:???
>>571
仕組みはわかりませんがバッチリです。
これから調べてみたいと思います。

>>572
実は試したのですが、
onload時に出てしまいできないのかなと思ってましたが、()は必要ないんですね。
こちらも仕組みはわからないので調べてみたいと思います。

お二方大変参考になりました。
どうもありがとうございました。
574Name_Not_Found:2010/11/24(水) 18:56:02 ID:???
>>562
var x = event.clientX;
var y = event.clientY;
var a = "rect(0, ";
var b = ", ";
var c = ", 0)";
obj.style.clip = a + x + b + y + c;
575Name_Not_Found:2010/11/24(水) 19:49:14 ID:???
テキストボックスにカーソルがある状態でTabキーを押したら、
Tabという文字列をテキストボックスに挿入し、aキーを押したらaという文字列をテキストボックスに挿入したい場合

onKeyPressイベント、onKeyDownイベントを使うのはわかりますが
それだったらどのキーを押しても反応してしまうので困ってます

誰か教えてください
576Name_Not_Found:2010/11/24(水) 19:57:59 ID:qm0HIwho
>>575
イベントがキーコードを持ってるからそれで判別すれ
577Name_Not_Found:2010/11/24(水) 20:05:44 ID:???
578Name_Not_Found:2010/11/24(水) 21:44:33 ID:???
a.htmlからb.htmlの関数に値を渡して処理させることはできますか?
579Name_Not_Found:2010/11/24(水) 21:49:56 ID:???
window['b'].func('hoge');
580Name_Not_Found:2010/11/24(水) 22:40:05 ID:qm0HIwho
シリアライズできるならGETで渡すとか
581Name_Not_Found:2010/11/24(水) 22:55:05 ID:???
>>579,580
ありがとうございます。
582Name_Not_Found:2010/11/24(水) 23:59:40 ID:???
>>576
>>577
ありがとうございます
助かりました

583Name_Not_Found:2010/11/25(木) 13:59:46 ID:???
とあるボタンをクリックしたらonclickでプルダウンメニューの内容が変わるというのを作ってるんですが
document.formのname.selectのname.options[0].text = "その一"
document.formのname.selectのname.options[1].text = "その二"
と表示されれるのですが、これのその一をクリックしたらonclick = sono1()
その二をクリックしたらonclick = sono2()
というのが実行されるようにするには、どのようなオプション配列を使ってどのようなコードを使えばよいのでしょうか?
584Name_Not_Found:2010/11/25(木) 14:19:37 ID:???
onClickじゃなくてonCangeなら
585575:2010/11/25(木) 14:57:29 ID:???
テキストボックスを選択しているときに、キーを押されたらそのキーの名前をいれたいのですが
>>576さんや>>577さんのおかげでどのキーが押されたかは判別できるのですが、
固定されたテキストボックスにしかキーを入力する方法しか知りません
どのようにして選択されているテキストボックスに文字を挿入することができるのですか?
586Name_Not_Found:2010/11/25(木) 16:46:34 ID:???
document.querySelector("input:focus")とか
587Name_Not_Found:2010/11/25(木) 17:37:48 ID:???
おんきゃんげ!
588Name_Not_Found:2010/11/25(木) 17:54:03 ID:???
oncangeって何ですか?ググってもちょっとしかヒットしないんですが
onclickは出来なくてoncangeしか出来ないのでしょうか?
589Name_Not_Found:2010/11/25(木) 17:56:16 ID:???
>>588
ぐぐったらHITしたけど…
http://www.google.co.jp/search?lr=lang_ja&ie=UTF-8&q=oncange

もしかして: onchange
590Name_Not_Found:2010/11/25(木) 17:58:33 ID:/fhqsv8C
DOMを使ってHTMLを書き出しているのですが、
ChromeだけUncaught TypeError: Cannot read property 'childNodes' of nullとエラーが出て表示されません。
IE,Firefoxは正常に動きます。
原因が分かる方教えてくださいm(__)m
591Name_Not_Found:2010/11/25(木) 18:00:11 ID:???
childNodesプロパティの値が null になっているから
592Name_Not_Found:2010/11/25(木) 18:01:16 ID:/fhqsv8C
>>591
IEとFirefoxではnullになっていません。どうしてですか?
593Name_Not_Found:2010/11/25(木) 18:01:52 ID:???
>>592
コードの書き方が間違ってるんじゃない?
594Name_Not_Found:2010/11/25(木) 18:16:09 ID:???
>>589
onchangeの事でしたか
formオブジェクトでonClickを実行させるのは無理なんでしょうか
595Name_Not_Found:2010/11/25(木) 18:43:46 ID:/fhqsv8C
>>593
再確認しましたが間違ってませんでした。
また、Safariでも試したところ正常に観覧できたのでChromeのバグのようです。
Googleに報告しておきます。ありがとう。
596583:2010/11/25(木) 19:29:36 ID:VgADfAUc
>>586
すいません。
document.querySelectorでぐぐってみたけど
どのように使えばいいのかわからないです・・・
""で閉めてあるものはどういった意味があるのでしょうか?
597Name_Not_Found:2010/11/25(木) 19:39:27 ID:???
とりあえず基礎からやろうぜ
598Name_Not_Found:2010/11/25(木) 19:42:58 ID:???
>>595
「動かない = バグ」は早計では?

はっきりいって、>590 だけでは原因がわからない
childNodes 以外の場所で Google Chrome では使えないメソッド、プロパティを使用している可能性が考えられるが…
コードを開示するのが手っ取り早い
599Name_Not_Found:2010/11/25(木) 19:45:36 ID:???
トリアエズ>>583は具体的に何したいんだ
それとonCangeはonChangeの間違いな超スマソ
600think49 ◆bKk/qcAKuM :2010/11/25(木) 20:00:44 ID:???
>>583
<script type="text/javascript">
var sono = [function () { alert('sono0'); }, function () { alert('sono1'); }];
</script>
<form id="HOGE">
<p><select name="foo" onchange="sono[this.value]();"><option value="0">value 0</option><option value="1">value 1</option></select></p>
</form>

>>596
> document.querySelectorでぐぐってみたけど
>>586>>585 宛かと。
601Name_Not_Found:2010/11/25(木) 20:02:22 ID:???
>>599
こんな感じです
http://www.dotup.org/uploda/www.dotup.org1268558.jpg
Cを選択したらonchangeで関数を引き出してC1 C2 C3 C4を横のメニューに表示させて
C3を選択したらまたonchangeで関数を引き出してC3-1 C3-2を左のメニューにさせる感じです

最初のはHTMLの部分にonchangeを書けばいいんですが、C3選んだ時
document.formのname.selectのname.options[0].text = "C1"
document.formのname.selectのname.options[1].text = "C2"
document.formのname.selectのname.options[2].text = "C3"
document.formのname.selectのname.options[3].text = "C4"
となるのですが、このC3を選んだ時にどーやってonchangeを発生させればいいのかどうも解らなくて
602Name_Not_Found:2010/11/25(木) 20:05:52 ID:???
質問が混在して把握しづらい
質問者はレス番を名前に付けて欲しい
603Name_Not_Found:2010/11/25(木) 20:08:22 ID:g6CMZf1d
>>585
何の要素のイベント拾ってるんだ?
てっきり

var textbox = テキストボックスの要素;
textbox.addEventListener('keyup',function(evt){
    if(evt.keycode == タブのキーコード){
        evt.targetにキーの名前を入れる;
        evt.preventDefault();
    }
},false);

ってしてると思ってたんだが。
>>575の質問内容も考えると、小手先の解決方法を教わるより
eventについてしっかり調べたほうが話が早い気がするよ。
604585:2010/11/25(木) 20:15:56 ID:VgADfAUc
申し訳ないです、自分を583と勘違いしていました
本当にすいません
605Name_Not_Found:2010/11/25(木) 20:52:38 ID:???
>>590,595
ChromeはfirstChildやchildNodesの挙動がおかしい。
多分
<div>\n
<p><span></span></p>
</div>
みたいなのでdiv.firstChild.childNodesみたいにやってるんじゃね?
div.firstChildが改行とかにもヒットしちゃうから、div.getElementsByTagNameとかのほうがいいよ。
多分もう見てないだろうけど、こんな感じだと思う。
606Name_Not_Found:2010/11/25(木) 20:56:28 ID:???
>>603
input要素がフォーカスされている時にtabキーを押したらtabという文字列をテキストボックスに挿入するみたいに
対応したキーの名前を挿入するようにしたいんです
ただいくつもテキストボックスを作るので、テキストボックスの数の文だけ関数を作らなければいけないんです
ちょっとeventについて調べてみます
607think49 ◆bKk/qcAKuM :2010/11/25(木) 21:13:44 ID:???
>>605
firstChild がp要素ノードになるのは IE だけなのでは…。

<div id="HOGE">
<p><span>span</span></p>
</div>
<script type="text/javascript">
var hoge = document.getElementById('HOGE');
var firstChild = hoge.firstChild;
console.log(firstChild.nodeName); // #text (Google Chrome 7, Firefox v3.6.12) / P (IE8)
console.log(firstChild.childNodes); // [] (Google Chrome 7, Firefox v3.6.12) / [object NodeList] (IE8)
</script>

IE と同じ挙動を期待するなら、children を使えばよいと思います。
>590 のエラーの原因はコードを読まないと何ともいえないですね。
(Google Chrome で firstChild, childNodes の不具合に遭遇したことはないので、バグではない気はしますが。)
608Name_Not_Found:2010/11/25(木) 21:37:21 ID:???
609575,585,596,604,606:2010/11/25(木) 21:46:32 ID:???
>>608
これで大丈夫でしょうか?
610Name_Not_Found:2010/11/25(木) 21:47:31 ID:???
ふざけんなカス
611Name_Not_Found:2010/11/25(木) 21:57:52 ID:???
>>609
"575" だけでいいと思う。ID も晒してくれれば見分けは付くかと。
612Name_Not_Found:2010/11/25(木) 22:07:19 ID:g6CMZf1d
>>606
var form = フォーム要素;
var input = form.getElementsByTagName("input");

ってすると、inputはformの子孫のinput要素がつまった
コレクションだ、ってのはわかるでしょ?

あとは、このinputをループでぐるぐる回して、
type == "text" な奴だけを選別して、>>603みたいに
イベントリスナを設定すればok


ちなみに、この選別作業が面倒なので最近はquerySelectorを使ったり
XPathを使ったり、でもIEが対応してないからjQueryを使ったりもする
613think49 ◆bKk/qcAKuM :2010/11/25(木) 22:28:08 ID:???
>>606
keydown はバブリングするので、document に一つイベントを定義すればOKです。(IE は attachEvent で)

document.addEventListener('keydown', function (event) {
 var target = event.target;

 if (target.tagName !== 'INPUT' || target.type !== 'text') {
  return;
 }

 switch (event.keyCode) {
  case 9:
   console.log('TAB');
   break;
  case 16:
   console.log('Shift');
   break;
 }

 event.preventDefault();
}, false);
614think49 ◆bKk/qcAKuM :2010/11/25(木) 22:33:24 ID:???
>>613
document じゃなく対応するform要素ノードでもいいですが、そこは適宜修正を。
615601:2010/11/25(木) 23:01:23 ID:???
それではこんな感じで
616Name_Not_Found:2010/11/25(木) 23:05:18 ID:???
617601:2010/11/25(木) 23:20:25 ID:???
他の人のアンカーだったので見逃してました・・・。
スミマセン・・・。
618Name_Not_Found:2010/11/26(金) 02:02:09 ID:???
onmouseoverでマウスが特定の文字の上に来た時、文字の色が変わって
文字の背景がその文字を選択した時のようにその文字の背景を薄い緑色とかにしたいのですが
どのようにすればいいのでしょう?
619Name_Not_Found:2010/11/26(金) 02:11:29 ID:???
cssでいいんじゃね?
:hover
620Name_Not_Found:2010/11/26(金) 04:08:02 ID:???
javascriptの置換について質問させてください

var str = "リンゴ、ミカン、ナシ、バナナ";
var find = ?;
var result = str.replace(find ,"");

strのリンゴとナシを消したい時
findのの「?」には何をいれればいいのでしょうか?

普通なら三行目の
var result = str.replace(/リンゴ|ナシ/g ,"");
とすればいいのですが、
あくまで「?」にどのような値を入れれば思い通りの結果が得られるかが知りたいのです
よろしくおねがいします。

621Name_Not_Found:2010/11/26(金) 04:13:45 ID:???
var find = /(:?リンゴ|ナシ)、?/g;
でいいよ
var find = new RegExp("(:?リンゴ|ナシ)、?","g");
とするのもあり
622Name_Not_Found:2010/11/26(金) 06:02:12 ID:???
ラジオボタンとチェックボタンがあるフォームで
for( i=0; i<6; i++ ){
document.HOGE.elements[i].checked }
でチェックボタンだけを取り出す方法ってありませんか?
チェック
チェック
ラジオ ラジオ
チェック
チェック
と並んでるのでその部分だけと言うのができないのですが
623Name_Not_Found:2010/11/26(金) 06:29:19 ID:???
チェックボックスに名前をつけて
document.HOGE.check名[i].checkedでええんちゃう?
elementsはアバウトだから俺は推奨しないよその槍形
624Name_Not_Found:2010/11/26(金) 06:54:31 ID:???
javascriptって未だに脆弱性というか過去の欠陥そのままだよな、javascriptというよりブラウザだけど、っていうよりネスケのせいだけど
625Name_Not_Found:2010/11/26(金) 06:57:09 ID:???
626Name_Not_Found:2010/11/26(金) 08:22:24 ID:???
>>624
あなたが設計者だったらどのように脆弱性を避ける設計ができていたと
思うのか教えてください。興味あります。
627Name_Not_Found:2010/11/26(金) 11:01:28 ID:pqldDeOU
教えてください。

ボタンを押すとチェックボックスを全て選択するというものを作りました。
で、ボタンの部分を画像にしたいのですが、input type imageで指定してしまうと、
自動的にsubmitになるようなので、
これをaタグで作りたいのですがどうすればよいでしょうか?
よろしくです。


<script type="text/javascript">
function allcheck(obj,flag){
var target=obj.parentNode.getElementsByTagName("input");
for(var i=0;i<target.length;i++){
if(target[i].type=="checkbox") target[i].checked=flag;
if(target[i].type=="text") target[i].value="";
}
}
</script>


<form action="kensaku.php" method="post">

<input class="allSentakuBtn" type="button" value="全て選択" onClick="allcheck(this,true)"/>
<label><input type="checkbox" name="chk0" value="1" />あ</label>
<label><input type="checkbox" name="chk0" value="1" />い</label>
<label><input type="checkbox" name="chk0" value="1" />う</label>
<label><input type="checkbox" name="chk0" value="1" />え</label>
<label><input type="checkbox" name="chk0" value="1" />お</label>
628Name_Not_Found:2010/11/26(金) 12:09:14 ID:???
アンカーにかえりゃいいだけだろ
629Name_Not_Found:2010/11/26(金) 14:37:58 ID:???
yuga.jsでのロールオーバー効果がIE上で効果を発揮しません。
(Win8.0、6.0 Mac5.2)
ちなみにMacでは、firefox、Google Chrome、Opera、Safariの動作確認済みです。
いすれもJava scriptオンの環境なんですが、検証すべきはどの部分でしょう?
630Name_Not_Found:2010/11/26(金) 15:24:15 ID:BIAeLbaF
>>629
読み込みは出来ているか
エラーが出てないか
使い方はあっているか
作者サイトのFAQを読んだか
似た様な症状の報告はないかググッたか


ところでMacIEなんて懐かしいもん持ってんね
Lynxよりユーザ数少なそうな気がする
631Name_Not_Found:2010/11/26(金) 15:48:59 ID:???
IEforMacはサポート終わってるよ
632Name_Not_Found:2010/11/26(金) 17:58:43 ID:???
ループ中でnodes[i]を何度も使うのなら
ループ中でnode = nodes[i]としてからnodeを使うほうがいいんですか?
633Name_Not_Found:2010/11/26(金) 18:01:25 ID:???
速度的な意味で言ってるならそうしたほうがいい
634632:2010/11/26(金) 18:02:19 ID:???
どうもありがとうございます
635Name_Not_Found:2010/11/26(金) 18:17:31 ID:???
ttp://dev.opera.com/articles/view/efficient-javascript-ja/
速度的な事ならこういったところも読めば良い
でもこれが正しいかどうかは俺には判断しかねる
636Name_Not_Found:2010/11/26(金) 19:16:28 ID:???
んな難しい処理じゃないんだからベンチマークとりゃいいじゃない
637Name_Not_Found:2010/11/26(金) 20:26:35 ID:???
jQueryがうまく使えません。
簡単にするために導入してるのに、難しい(本来の)書き方をしてしまいます。
jQueryの機能すべてを把握してないからなのですが、
みなさんは使いこなせていますか?
それとも部分的に使っているだけで余計なコードはまだまだ存在しますか?
jQuery使ってるのにこの書き方はどうなのよみたいに突っ込まれると凹みます。
638Name_Not_Found:2010/11/26(金) 20:39:24 ID:???
>>637
> それとも部分的に使っているだけで余計なコードはまだまだ存在しますか?
どんなコードを書いているかわからないのに余分かどうか判断できるはずがない
長く書いてしまうときに使えそうなAPIを http://api.jquery.com/ から探せば大体上手くいくと思うけど
639Name_Not_Found:2010/11/26(金) 20:54:04 ID:???
>>590 もそうだったけど、コードを書かないで原因を求める人いるんだな…
640Name_Not_Found:2010/11/26(金) 21:06:04 ID:???
$じゃなくてjQueryって書いてたり
jQueryのセレクタ使わずにDOMセレクタ使ったりとかそういうことだろ
言わせるな恥ずかしい
641Name_Not_Found:2010/11/26(金) 21:10:45 ID:???
jQuery通して簡単に書けるが
それを知らずにネイティブコードで書いてたってことはありませんか?
っていう質問だな

まぁ書いてる本人は気づかないだろうし答えようがないが
古いコードを見ててなんでこんな書き方してたのだろう?
jQueryならこんなにも短く書けたのにみたいなことはあるかもしれんが
古いコードを見直すことがまずない
642Name_Not_Found:2010/11/26(金) 22:06:01 ID:???
api嫁
643think49 ◆bKk/qcAKuM :2010/11/26(金) 22:29:17 ID:???
>>637
jQuery に始めて触れた頃は無駄なコードを書いてましたが、慣れの問題だと思ってます。
http://api.jquery.com/ を何度も読めば、自然と習得できます。
逆にjQueryから入門して「DOMではどう書くんですか?」という質問もありますしね。
644Name_Not_Found:2010/11/26(金) 22:37:06 ID:???
jQueryの質問は、jQueryのスレでやってね。
645Name_Not_Found:2010/11/26(金) 22:59:18 ID:???
jQueryのスレ検索しても見つからないんだが
646Name_Not_Found:2010/11/26(金) 23:01:57 ID:???
【誰か】jQueryのここがわからない【助けて】
http://hibari.2ch.net/test/read.cgi/tech/1229881548/
647Name_Not_Found:2010/11/26(金) 23:03:08 ID:???
単発スレじゃねえかw
しかもム板って・・・
648Name_Not_Found:2010/11/26(金) 23:25:45 ID:???
>>395
これどう書くのがいいの?
クロージャ使わなかったらどのイベントリスナにもループの最後の値が入っちゃってつまずいたよ
649Name_Not_Found:2010/11/26(金) 23:27:56 ID:???
for文の中に無名関数を作ったら、ループの回数の数だけ無名関数が出来るんじゃないの
650648:2010/11/26(金) 23:34:15 ID:???
そこで
ではどう書くのがいいの?と
651Name_Not_Found:2010/11/26(金) 23:52:48 ID:???
>>640
そこらへんはプロトタイプjsと同居させたりとかあったようななかったような
652Name_Not_Found:2010/11/26(金) 23:55:50 ID:???
まずは、関数の定義はループに入る直前にしておいた方がいいんじゃないかな
653Name_Not_Found:2010/11/27(土) 00:00:08 ID:???
ちょっとまえにもあったな
var f = function (hoge) {
return function() {
alert(hoge);
}
}

for (var i =0; i < 10;i++) {
addEvent(f(i));
}

こんな感じでaddEventはめんどくさくなったw
654648:2010/11/27(土) 00:09:00 ID:???
>>653
どうもありがとう
655Name_Not_Found:2010/11/27(土) 01:05:02 ID:???
>>621
レスありがとうございます。
レス通りにしたらちゃんと動きました。

しかし、少し表現を変えると動作しなくなりました。


localStorage.replacementlist の中身は /(:?リンゴ|ナシ)、?/g とします
(localStorageはHTML5の機能です)

var str = "リンゴ、ミカン、ナシ、バナナ";
var storage = localStorage.replacementlist;
var result = str.replace(storage ,"");

とすると、resultに置換されてない文字が出てきました。
storage の中身はちゃんと /(:?リンゴ|ナシ)、?/g でした。
何度も申し訳ないのですが、もう一度ご教授お願いします。
656Name_Not_Found:2010/11/27(土) 01:37:36 ID:???
>>655
localStorageから取り出した物は文字列になる
宣言としては
var storage = "/(:?リンゴ|ナシ)、?/g";
と一緒なので明示的に正規表現オブジェクトを生成する必要がある

var storage = new RegExp("(:?リンゴ|ナシ)、?","g");

こんな感じで
657Name_Not_Found:2010/11/27(土) 02:02:26 ID:???
<html>
<head>
<script type="text/javascript">
window.onload = function(){
  alert(document.all.tags("table")(0).border);
  alert(document.all.tags("table")(0).bgcolor);
}
</script>
</head>
<body>
<table border="1" bgcolor="#00ffff"><tr><td>test</td></tr></table>
</body>
</html>

このソースで、borderのアラート文は「1」と出るのに、bgcolorの方は「undefined」となってしまうのはなぜでしょうか?
658Name_Not_Found:2010/11/27(土) 02:07:36 ID:???
659Name_Not_Found:2010/11/27(土) 02:12:14 ID:???
document.all は使わない方が良いよ
最近のブラウザは対応しているけど
660Name_Not_Found:2010/11/27(土) 02:23:19 ID:???
JavaScriptである要素の中だけ、codepadやIdeoneみたいに行数を表示することってできないんでしょうか?

0001 :あ
0002 :い
0003 :う
0004 :え
0005 :お

上記みたいな感じです
どういう物を使えばできるかご教示お願いします
661Name_Not_Found:2010/11/27(土) 02:45:24 ID:???
>>656
なんとか思い通り動くようになりました。
本当にありがとうございました。
662Name_Not_Found:2010/11/27(土) 10:36:34 ID:???
>>660
何をやりたいのか分からんが、
要素の中の文字列を、左側に行の数を追加した文字列と差し替ええればいいだけでは。
663Name_Not_Found:2010/11/27(土) 10:47:24 ID:???
多段階層のオブジェクトで、1つ上位階層の値を、
いちいちトップ階層から辿らないで参照することはできないのでしょうか。

例えば、
a={v1:1, b:{v2:2, c:{v3:3, d:function(){alert(this.v3)} }}}
とした時、dからv2の値を参照する場合
664Name_Not_Found:2010/11/27(土) 11:04:55 ID:???
その関数は参照「されている」だけで、関数からそのルートを知る術はない。

var a1 = {v1:1, b:{v2:2, c:{v3:3, d:function(){alert(this.v3)} }}}
var func = a1.b.c.d;
var a2 = {u1:4, b:{u2:5, c:{u3:6, d:func }}}

としたとき、

func();
a1.b.c.d();
a2.b.c.d();

は全部同等だということからも明らか。
665663:2010/11/27(土) 11:17:01 ID:???
>>664
ありがとうございました。そういうルートは存在しないのですか。
windowのparentみたいなものが使えたらいいなって思ったのですが
666Name_Not_Found:2010/11/27(土) 11:21:43 ID:???
だから親子関係なんてもとからない。
仮にparentという属性があったとして、
>>664の3パターンで同じ関数を呼び出したとき
どういう値を返せばいいのかなんて判別つかないだろ。
667Name_Not_Found:2010/11/27(土) 12:07:31 ID:tj1lVvvR
ピンポイントにクリックした箇所にある文字(一字)を取得することは可能でしょうか?
668Name_Not_Found:2010/11/27(土) 14:19:56 ID:???
テキストエリアの中の文字で任意に選択した部分だけ
取り出す方法はありますか?
669Name_Not_Found:2010/11/27(土) 14:29:53 ID:???
あります
670Name_Not_Found:2010/11/27(土) 15:02:24 ID:???
ありますか、ありがとうございます
var text = windows.getSelection();
これでウィンドウのドラッグして選択した部分を取り出すことができるのですが
テキストエリアの中のいくらかの文字をドラッグしても、何も取り出せないのです、
テキストエリア内の文字を取り出すにはどうすればいいのでしょうか?
671Name_Not_Found:2010/11/27(土) 16:24:07 ID:???
textarea.value.slice(textarea.selectionStart, textarea.selectionEnd)
672Name_Not_Found:2010/11/27(土) 16:32:43 ID:???
>>671
ありがとうございます
これをchromeのjavascriptで以下にようにして
var text =textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);
としても思い通りに動作しませんでした
この textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) はchrome非対応ですかね?
673Name_Not_Found:2010/11/27(土) 16:34:53 ID:???
すいません、今確認したところtextareaを変数名に変えると
うまく動作しました。ありがとうございます
674Name_Not_Found:2010/11/27(土) 17:42:23 ID:EFB3NJpA
<div id="abc"></div>
(中略)
<div id="i1">(内容i1)<input type="button" value="上へ" onclick="sample(this)"></div>
<div id="i2">(内容i2)<input type="button" value="上へ" onclick="sample(this)"></div>
<div id="i3">(内容i3)<input type="button" value="上へ" onclick="sample(this)"></div>
<div id="i4">(内容i4)<input type="button" value="上へ" onclick="sample(this)"></div>
<div id="i5">(内容i5)<input type="button" value="上へ" onclick="sample(this)"></div>
<script>
function sample(O){
var p=document.getElementById('abc');//div id="abc"取得
var target=O.parentNode;//押されたボタンの親
abc.insertBefore(target,abc.firstChild);//先頭に挿入
}
</script>
これで、たとえばi2の横のボタンを押せばi2の内容が上のdiv=id="abc"欄へ移動する文を書いたのですが
abc欄へ移動した後、またi2に設置した(設置する予定)ボタンを押すと元のi2に戻るscriptを書く方法ってありますか?
675Name_Not_Found:2010/11/27(土) 18:17:53 ID:???
>>671
IEは非対応だよね
676Name_Not_Found:2010/11/27(土) 18:19:10 ID:???
>>674
書く方法ならいくらでもありますよ
677Name_Not_Found:2010/11/27(土) 18:27:45 ID:???
>>676
では、教えてくだされ。
678Name_Not_Found:2010/11/27(土) 18:29:26 ID:???
>>677
テキストエディタでもなんでも使えばよかろう
679Name_Not_Found:2010/11/27(土) 18:42:11 ID:???
abcにテキストを移動させたときにその内容を保持しておくとか
内容のstyleをいじってhiddenにして移動させたように見せかけておくとか
単純に移動させたときと逆のことをするとか
680Name_Not_Found:2010/11/27(土) 20:39:32 ID:???
はじめまして,テキストボックスに入力された数を使って自動で計算できるようにしたいのですが、うまくいきません
<HTML lang="ja">
<HEAD>
<META HTTP-EQUIV="content-script-type" CONTENT="text/javascript">
<TITLE></TITLE>
<script>
function Multiplication(form){
num1 = form.num1.value;
num2 = form.num2.value;
num3 = form.num3.value;
form.ansA.value = eval(num3)/100;
num4 = form.ansA.value
form.ansB.value = 4*eval(num1)+eval(num2);
num5 = form.ansB.value
form.ans.value = 1.20*eval(num4)*eval(num5);
return 0;
}
</script>
</HEAD>
<BODY>
<form name="multiplication">
<input type="text" size="5" name="num1" onBlur="Multiplication(this.form)">
<input type="text" size="5" name="num2" onBlur="Multiplication(this.form)">
<input type="text" size="5" name="num3" onBlur="Multiplication(this.form)">=
<input type="text" size="10" name="ans" class="txtbox">
<input type="reset" value="reset">
</FORM>
</BODY>
</HTML>
num1,num2,num3に入力された数値を1.20 * ( 4 * num1 + num2) * (num3 /100)という式に代入して計算結果をansに出力したいです
色々と試してみたのですがうまくいかないのでよろしければ教えてください
681Name_Not_Found:2010/11/27(土) 20:55:23 ID:???
>>680
> form.ansA.value = eval(num3)/100;
> form.ansB.value = 4*eval(num1)+eval(num2);
ansA, ansBってフォーム部品はどこにあるの?
682zardrell:2010/11/27(土) 20:57:40 ID:???
>>680

form.ansA.value = eval(num3)/100;
num4 = form.ansA.value
form.ansB.value = 4*eval(num1)+eval(num2);
num5 = form.ansB.value
---------------------------

num4 = eval(num3)/100;
num5 = 4*eval(num1)+eval(num2);
683Name_Not_Found:2010/11/27(土) 22:26:34 ID:???
>>679
なんとかめどが立ちました。ありがとうございます。
684680:2010/11/27(土) 22:36:58 ID:???
>>681
>>682
解決しました。
ありがとうございます
685660:2010/11/28(日) 00:12:05 ID:???
<!--
var i = 1;

function myfunc() {
while(true)
{
document.getElementById("line-[i]").innerHTML = i;

if(i == 10) {
break;
}
}
}
// -->

〜〜〜省略〜〜〜
<div id="line-1"></div>
<div id="line-2"></div>
<div id="line-3"></div>

>>662さんに言われたことを自分なりやってみたんですけど
こういう感じでやってみたんですけど、<div>〜</div>間に数字が挿入されません
ChromeでJavaScriptコンソールで見たんですけど、エラーも出ず・・・
どのようにして<div>〜</div>間に数字を代入することができますか?
686Name_Not_Found:2010/11/28(日) 00:13:11 ID:???
>document.getElementById("line-[i]").innerHTML = i;
687Name_Not_Found:2010/11/28(日) 00:14:07 ID:???
無茶苦茶やな
688Name_Not_Found:2010/11/28(日) 00:19:21 ID:???
function myFunc() {
for(var i=1;i<=10;i++){var l=document.getElementById("line-"+i);if(l)l.innerHTML=String(i)+l.innerHTML;}
}
689Name_Not_Found:2010/11/28(日) 00:29:59 ID:???
本人にはもう少し自己学習で育ってもらわんと、また皆に迷惑をかけに来るから
チャチを入れるだけよりはマシだが、答えだけ教えるのもどうかと思うな
690Name_Not_Found:2010/11/28(日) 13:19:25 ID:???
要素をソートしたいんですがjavascriptのソートって遅いですよね
Ajaxで鯖に投げるのが主流なんでしょうか?
691Name_Not_Found:2010/11/28(日) 13:38:31 ID:???
鯖へ投げるよりは早いと思うよ?
計測した?
692Name_Not_Found:2010/11/28(日) 14:48:26 ID:???
一般論
・ソート対象要素の数が少なければJSだけでも問題ないことも多い
  ・もちろん要素数が多ければその分時間がかかる
  ・鯖側で予め色々な順序でソートし、その結果をIDやインデックスのリストとして
   hidden要素に埋め込んでおくという手もある

・JavaScriptでループを回している間はブラウザが固まる
  ・Ajaxの強み
  ・何も操作できない2秒間よりも非同期通信の待ち時間3秒間の方がずっとマシ
  ・対応ブラウザを絞って良いのであればWeb Worker使う

・ソートした結果をどのように表示するのか
  ・テーブルの行を入れ替えたりするDOM操作はあんま速くない

■結論
  ・何をどうソートしてどう利用するのかを考えろ
  ・ターゲットとする利用者のマシンスペック、ブラウザも考慮に入れろ
693Name_Not_Found:2010/11/28(日) 19:55:35 ID:???
顔文字だけで書かれたJavaScript
http://utf-8.jp/public/aaencode.html

これ凄いね
実用性ないけど凄いね
まったくもって無意味だけど凄いね
694Name_Not_Found:2010/11/28(日) 20:02:05 ID:???
暗号化か
695Name_Not_Found:2010/11/28(日) 20:03:15 ID:???
プレゼン資料見てみたが面白いな
696Name_Not_Found:2010/11/28(日) 20:06:01 ID:???
forループの内側で何度もwindow.openするのは可能なのに、
setTimeoutを使ったループだとwindow.openさせてくれないのですね。
これは、やはり何らかの制限なのでしょうか?
697Name_Not_Found:2010/11/28(日) 20:18:21 ID:???
何を言ってるの?
698690:2010/11/28(日) 20:27:42 ID:???
>>691-692
要素数は200〜300個です

>   ・鯖側で予め色々な順序でソートし、その結果をIDやインデックスのリストとして
>    hidden要素に埋め込んでおくという手もある

これもよさそうですね。
699Name_Not_Found:2010/11/28(日) 20:34:02 ID:EDY82HOj
>>693
よし、まったくわからん
700Name_Not_Found:2010/11/28(日) 20:56:55 ID:???
>>696
setTimeoutは一回しか実行しないじゃないの?
ループさせたいのならsetIntervalを使うべきでは?
701Name_Not_Found:2010/11/28(日) 21:00:03 ID:???
自信を呼び出すことによって何回も実行は可能だがいいやりかたではないな
702Name_Not_Found:2010/11/28(日) 23:52:38 ID:kX6cc6vU
すみません。safariだと\nで改行できないんですが、
なぜですか?
703Name_Not_Found:2010/11/28(日) 23:58:25 ID:???
macか?
704Name_Not_Found:2010/11/28(日) 23:58:54 ID:???
>>702
Safari以外のブラウザでは改行できるの?どういうコード?
705Name_Not_Found:2010/11/29(月) 01:26:55 ID:???
706Name_Not_Found:2010/11/29(月) 02:25:12 ID:???
>>702
改行コードはブラウザ(またはOS)毎に統一性が無いねえ
707Name_Not_Found:2010/11/29(月) 02:28:13 ID:???
OSXはsjisに\nだったはずだけど。
708Name_Not_Found:2010/11/29(月) 08:41:29 ID:???
なぜ皆>696がわからないんだ?
つまりユーザー操作によって呼ばれた関数繋がり内のopenは認めるが
繋がりが切れたsetTimeoutで呼ばれる関数内だと認めないセキュリティレベルにブラウザが設定されてる良くある例じゃないのか?
特にケータイとかは皆それに近い挙動するよ
709Name_Not_Found:2010/11/29(月) 09:56:47 ID:???
どこにもforループがユーザ操作によって呼ばれたとは書いてないが?
710696:2010/11/29(月) 11:38:43 ID:???
>>708
たとえ、ユーザ操作でsetTimeoutを呼び出したとしても、
その先(setTimeoutきっかけで呼ばれた関数)では
ユーザ操作と見なされないと言う認識でよろしいのですかね。
711Name_Not_Found:2010/11/29(月) 14:01:12 ID:???
そうです
712Name_Not_Found:2010/11/29(月) 18:31:04 ID:PZ60TQdh
たとえばページ内のリンクにカーソルを合わせるとポップアップするようなものも
コンストラクタを作ってポップアップ毎にインスタンスを生成するのがいいんですか?
713Name_Not_Found:2010/11/29(月) 18:34:40 ID:???
>>696
ポップアップブロックの話?
コード書いてブラウザも書いて質問しないと的確な回答は得られないと思うよ
714Name_Not_Found:2010/11/30(火) 01:05:44 ID:???
ポップアップブロックはブラウザによって全然違うし、バージョンによっても違ったりする
すぐ実装が変わるからアレコレ議論しても不毛
715696:2010/11/30(火) 07:58:53 ID:???
皆さん、いろいろありがとうございます。
用語的には「ポップアップブロック」で押さえておけばいいのですね。
そして、実装依存によるところが大きく、
ポリシーが確立されているわけでないのですね。
了解です。
716Name_Not_Found:2010/11/30(火) 12:20:16 ID:???
videoタグのcurrentTimeを取得するのに、
document.getElementById("myVideo").currentTime
でやっているんですが、これをjQueryで書き直すとどうなりますか?
("$myVideo").get(0).attr(currentTime)
かと思ったんですが、うまくいかなくて。

717Name_Not_Found:2010/11/30(火) 15:15:59 ID:???
$("selector").get(0).currentTime;
718Name_Not_Found:2010/11/30(火) 15:30:17 ID:???
ちょっと教えて下さい
下のコードを書いて、動きはするんですが、実行後に
「useless setTimeout cal」というエラーが出てしまいます。
エラーを回避したいのですが、どうすればいいのでしょうか。
IE6/IE8/firefox3.6 などで試しました
***********************************
<html>
<head>
<script type = 'text/javascript'>
function item(){
var i = 0;
write();
function write(n){
document.write(i+"<br>");
i ++;
if(i<10){setTimeout(write(),100);}
}
}
</script>
</head>
<body>
<script type = 'text/javascript'>item();</script>
</body>
<html>
***********************************
setTimeout(write(),100);
の引数をクォートで囲ってもみたんですが
それだと動かなくなります
719Name_Not_Found:2010/11/30(火) 15:33:14 ID:IEcp7BU0
>>718
>if(i<10){setTimeout(write(),100);}

カッコいらないんじゃね
720Name_Not_Found:2010/11/30(火) 15:38:35 ID:???
>>719
setTimeout(write(),100);を
setTimeout(write,100);
にしたら動かなくなりましたが・・・
721Name_Not_Found:2010/11/30(火) 15:44:10 ID:???
””
722718:2010/11/30(火) 15:51:01 ID:???
>>721
どういう意味ですか?
723Name_Not_Found:2010/11/30(火) 15:52:11 ID:???
>>720
関数内にローカル関数作ってもsetTimeoutからは呼び出せない
724718:2010/11/30(火) 15:54:24 ID:???
>>723
いや、一応動きはしますよ。
725Name_Not_Found:2010/11/30(火) 15:57:03 ID:???
() を取って、或いは>>721の通りにして動くのかという話なのだが
726Name_Not_Found:2010/11/30(火) 15:57:23 ID:???
var write = function() {}

とすればsetTimeout(write,100);
でいけると思うよ
若しくはarguments.callee使うとか
727Name_Not_Found:2010/11/30(火) 16:00:37 ID:???
>>719は { } がいらないから
if(i<10)setTimeout(write(),100);
でええやんってことだろう
728Name_Not_Found:2010/11/30(火) 16:02:12 ID:???
>>727
お前はどこかへ逝け
729Name_Not_Found:2010/11/30(火) 16:06:55 ID:???
>>718
引数ある関数をsetTimeoutにセットする時は
シングルorダブルでクオートするか
無名関数内で呼び出す必要がある
730Name_Not_Found:2010/11/30(火) 16:10:52 ID:???
カッコ悪いなぁ
731Name_Not_Found:2010/11/30(火) 16:12:25 ID:???
>>729
どこに引数があるんだよ
732Name_Not_Found:2010/11/30(火) 16:13:57 ID:???
n
733Name_Not_Found:2010/11/30(火) 16:24:58 ID:???
こう書き直したんですが、何も表示されなくなりました

function item(){
var i = 0;
var write = function(){
document.write(i+"<br>");
i ++;
if(i<10){setTimeout(write,100);}
}
}

で、
setTimeout(arguments.callee(),100);
も試してみたんですが、やはり最後にエラーが出てしまいます

>>729
済みません、nは消し忘れで本来必要ないです。
734Name_Not_Found:2010/11/30(火) 16:31:59 ID:???
setTimeout(arguments.callee,100);
735718:2010/11/30(火) 16:36:49 ID:???
>>734
そうすると処理が止まるんですけど
736Name_Not_Found:2010/11/30(火) 17:11:18 ID:???
DOM構築後にdocument.writeってのがね。
document.writeで何か書きたいなら、同期させないと。
>>718が動くのは同期してるからだよ。

function item(){
var i = 0;
write();
function write(){
document.body.appendChild(document.createTextNode(i));
i ++;
if(i<10){setTimeout(write,1000);}
}
}

DOM構築後に構造を変えるにはどうすりゃいいのかを
調べてみるといい。
737Name_Not_Found:2010/11/30(火) 17:26:30 ID:???
そりゃあ読み込み終わった後にdocument.writeしたら全部消えるわw
738Name_Not_Found:2010/11/30(火) 17:31:05 ID:???
function item(){
var i = 0;
setInterval(function(){
document.write(i+"<br>");
i++;
if(i>=10){
return;
}
}
739Name_Not_Found:2010/11/30(火) 17:37:23 ID:???
?
740Name_Not_Found:2010/11/30(火) 17:37:39 ID:???
?
741Name_Not_Found:2010/11/30(火) 17:40:02 ID:???
742Name_Not_Found:2010/11/30(火) 17:40:19 ID:???
JSDeferred使ってwait関数使えば楽勝だろ
743719:2010/11/30(火) 17:45:38 ID:IEcp7BU0
>>718のsetTimeoutだけ見て脊髄反射で書いてしまった
混乱させて申し訳ない

とりあえずdocument.writeをprintみたいな感じで考えてるのが間違いだと思う
あと、setTimeoutを再帰的に使ってレイジーなループをするときは
他のみんなも書いてる通りだけど

t = null;
function(){
    // やりたいこと
    
    t = setTImeout(arguments.callee,時差);
}

こんな感じ。tは止める用。
744Name_Not_Found:2010/11/30(火) 18:42:01 ID:h0cWqh6q
input textについて質問させてください。
以下のファイルでラジオボタンをそれぞれ選択するとテキストの書き込みを制御できるようにしました。
sample.js
function DIS()
{
document.getElementById("EXAMPLE").disabled = true;
}
function ENA()
{
document.getElementById("EXAMPLE").disabled = false;
}
sample.html
<input id="EXAMPLE" type="text" name="hogehoge00">
<input id="EXAMPLE" type="text" name="hogehoge01">
<input id="EXAMPLE" type="text" name="hogehoge02">
<input type="radio" name="hage" onclick="javascript:DIS();">
<input type="radio" name="hage" onclick="javascript:ENA();">

ここでdisabledになる方を選択するとhogehoge00のテキストのみが書き込み不可になるだけで01と02はそのままとなっております。
全てのテキストをdisabledにするにはどのように変更を加えればよいのでしょうか?
745Name_Not_Found:2010/11/30(火) 18:43:30 ID:???
IDが重複してる
746718:2010/11/30(火) 18:52:19 ID:???
>>736
>>743
その通りに書き直したらエラー吐かなくなりました。
()を付けると書き出すので、てっきり()は必要だと思ってましたが、
実は()を取って動かなくなっていたときの方が、望む処理に
近くなっていたとは。
(document.writeで止まっていた)

setTimeoutを使う場合は非同期になるから
DOM構造に後から挿入するやり方を
しないとダメってことですね

有難うございます。
747744:2010/11/30(火) 18:56:10 ID:???
>>745
ありがとうございます。
そうなるとID一括で指定できるのかと思ってました。
text分IDを追加してやることで意図いた動きとなりました。
748Name_Not_Found:2010/11/30(火) 19:15:34 ID:???
>>746
function a(){ alert("Hello"); };
function b(p){ p(); };

b(a());の場合、bの引数にはaを実行した結果が入る。
aは値を返さないのでbの引数pにはundefiendが代入される

b(a); の場合、bの引数にはaへの参照が入る。
引数pにはaへの参照が代入される
749Name_Not_Found:2010/11/30(火) 19:16:12 ID:???
()は関数の実行って覚えときゃいい
750Name_Not_Found:2010/11/30(火) 19:21:48 ID:???
超が付くほど基本的なことだけど
たまにsetTimeout(write(), 100)のようなコードが動くと思う人もいる。
実行した”結果”をsetTimeoutに渡しても動かないよ、と。
751Name_Not_Found:2010/11/30(火) 20:12:04 ID:???
>>750
write()が「結果として関数オブジェクトを返すなら」「その関数
オブジェクトが100ミリ秒後に実行される」という説明もあり得るね。
752Name_Not_Found:2010/11/30(火) 20:16:31 ID:???
>>750
>>428に対する>>433もそのパターンだ。
753718:2010/11/30(火) 20:33:32 ID:???
>>748
おおーなるほど。
今まで()付きと()無しの意味を深く考えてなかったんですが、
おかげでだいぶ分かってきましたよ

>>749
そう意識すると簡単でいいですね

>>750
>>751
setTimeoutの第一引数には、関数オブジェクトを
入れないとダメということが分かっていませんでした。
で、オブジェクトには当然()は付かないと。
754Name_Not_Found:2010/11/30(火) 20:36:15 ID:???
function f() {
return function() { alert('hello'); };
}
setTimeout(f(), 2000);
755Name_Not_Found:2010/11/30(火) 20:55:24 ID:???
屁理屈みたいなコードはいいからw
756718:2010/11/30(火) 20:56:42 ID:???
>>754
この場合は、戻り値がオブジェクトだから
()付きでもいいわけですね。なるほど。
757Name_Not_Found:2010/11/30(火) 21:12:42 ID:???
くだらないことですがたくさんの素数をできるだけ早く計算するプログラムを作ろうと思ってます
そこで↑の方にあった高速化のページやいろんなサイトを回って研究したのですが、【ココ】の範囲で特に高速化できる方法はありますでしょうか?
特に根本的に違う式の組み立て方をして高速化できる方法などあればどうか教えてください
ブラウザは問いませんが、一応想定している環境はdocomoBrowser(フルブラウザ、iモードブラウザ2.x)です

onload=function SOSUU(){
var lm=100000;//ループ回数
var PL=[2,3,5];//素数リスト
var PLl=PL.length;var x1=0;var x2=0;var s1=0;var s2=0;var pi=0;var i=0;var j=0;var co=0;
var tt=(new Date()).getTime();//処理速度計測用
for(co=1;co<=lm;co++){
x1=6*co+1;x2=x1+4;s1=Math.sqrt(x1);s2=Math.sqrt(x2);
//////////【ココから】//////////
for(i=0;i<PLl;i++){pi=PL[i];if(x1%pi===0)break;if(pi>s1){PL[PLl]=x1;PLl++;break;}}
for(i=0;i<PLl;i++){pi=PL[i];if(x2%pi===0)break;if(pi>s2){PL[PLl]=x2;PLl++;break;}}
//////////【ココまで】//////////
}alert("結果:"+((new Date()).getTime()-tt)/1000+"秒");}

できれば1.5〜2.0倍高速にしたいと思っております、どうかよろしくお願いします
758Name_Not_Found:2010/11/30(火) 21:26:37 ID:???
>>757
JavaScriptの問題というより、数学的にアルゴリズムをどうこうする問題だから、
数学板で訊いてみては?
それに、JavaScriptってあまり計算は速くないし。
759Name_Not_Found:2010/11/30(火) 21:38:04 ID:???
var ret = [];
for(var i = 0; i<1000; i++)
  (function(a){
    var b = 0;
    if(a < 2) return 0;
    if(a == 2) return 1;
    if(a % 2 == 0) return 0;
    for(b = 3; b * b <= a; b += 2) if(a % b == 0) return 0;
    return 1;
  })(i) && ret.push(i);
alert(ret);// 結果

アルゴリズム云々よりjsでやるものじゃないよなw
760Name_Not_Found:2010/11/30(火) 21:54:54 ID:???
そんなときこそWorkerだろ……って、携帯だと?!
761Name_Not_Found:2010/11/30(火) 22:03:20 ID:???
速度求めるならサーバ側でやれ
762think49 ◆bKk/qcAKuM :2010/11/30(火) 22:23:29 ID:???
>>757
フェルマーの小定理を利用してみては?
https://gist.github.com/675313
763Name_Not_Found:2010/12/01(水) 11:41:52 ID:???
>759
クロージャでしたっけ、そういえばその辺はまだ全然勉強不足なので研究してみます

>760
携帯しかもっていないので早く携帯でも使える用になって欲しいです
もしかして複数タブに処理を分散させたら早くはならないかもしれませんが似たようなことができますかね

>761
携帯のような環境でJavaScriptだけでどこまでできるかのちょっとした実験でして

>758,762
プログラム的より数学的なアルゴリズムを改良した方がよさそうですね
そういえば「ふるい」をかけれそうなことに気づきました


正直これ以上の大幅な高速化は無理かなと思ってましたが、視野が狭かったようでまだまだたくさんの可能性があることに気づきました
一見シンプルに見えるけど知れば知るほど奥が深い言語、JavaScriptに改めて感心させられました
どうもありがとうございました
764Name_Not_Found:2010/12/01(水) 12:26:30 ID:???
function thumbClick(evt:MouseEvent):void{
//thumbBtnのインスタンス名の5番目の文字をuintに設定してtargetNumに代入する
targetNum=Number(evt.currentTarget.name.charAt(4));
//関数loadImageを実行
loadImage();
}

これを、「インスタンス名の5番目と6番目の文字をuintに設定してtargetNumに代入する」に変えたいのですが、
どうすればいいのでしょうか?

この設定では、00〜09までしか表示されないのです。インスタント名は"btm01〜btm30"です。
765Name_Not_Found:2010/12/01(水) 14:30:16 ID:???
http://pcgamenext.blog34.fc2.com/
このサイトの

* スクリプトの読み込みが完了しました。(0.024秒)

みたいな表示速度を簡単に出したいんですが、どうすればいいでしょうか
766Name_Not_Found:2010/12/01(水) 14:53:53 ID:???
767Name_Not_Found:2010/12/01(水) 15:33:34 ID:???
764 です。
charAt が、どうして一文字しか受け付けないので無理と判断しました。
別の回避方法を考えます。
すみませんでした。
768Name_Not_Found:2010/12/01(水) 15:44:54 ID:tZdc6WXe
>>764
name.substr(4,2)
とか

name.match(/[0-9]+$/)
で取り出すとかとか
769Name_Not_Found:2010/12/01(水) 15:48:46 ID:tZdc6WXe
>>767
charAt(n)は読んで字のごとく、
n番目のキャラクタ(文字)を返すメソッドだから

ただ、>>764の様な使い方をするなら、初めから
var dat = {
    "btm01" : "img01.png",
    "btm02" : "img02.png",
   :
    "btm30" : "img30.png"
}

みたいなのを用意しておくほうが個人的には好み
770Name_Not_Found:2010/12/01(水) 17:09:22 ID:???
現在のページのテーブルからデータを取得するのは
document.getElementByIdからいけるのは分った
しかし、他のページのテーブルからデータを取得するにはどうすればいいか
そのページのURLは分っています
771Name_Not_Found:2010/12/01(水) 17:21:20 ID:tZdc6WXe
ajaxでファイルの内容取得してほじほじすれば
772Name_Not_Found:2010/12/01(水) 17:40:28 ID:???
申し訳ない、ajaxはなしの方向で考えている
具体的に話すと、ローカルにあるa.htmとb.htmなどの複数のhtmlから
テーブルの情報を抜き出し、それを1つのhtmlに表示したいと考えている
ネットワークにつながっていなくてもできることが条件なのだが
可能だろうか
773Name_Not_Found:2010/12/01(水) 17:47:42 ID:???
そこにアクセスしてデータ取ってきたらいいじゃない
Ajaxってのがけっこう曖昧だからどこまでなしなのかまったくわからん
774Name_Not_Found:2010/12/01(水) 17:47:43 ID:tZdc6WXe
じゃあフレームに読み込んでほじほじすればいいよ
775Name_Not_Found:2010/12/01(水) 17:50:33 ID:???
メモ帳で開いてコピペすればいい
776Name_Not_Found:2010/12/01(水) 18:17:47 ID:???
使用するhtmlテンプレートが同じa.htmlとb.htmlがあります。
a.htmlからb.htmlへ移動するとき、今までは通常のページのようにhtmlをそのまま返していましたが、
転送量を減らしたいので、a.htmlからb.htmlの変更箇所のみAjaxでとってきてDOMで書き換えたいと思います。
しかしこうすると、ページの遷移を伴わないのでURLはa.htmlのままになってしまいます。
URLをb.htmlに書き換えたいのですが、可能でしたらやり方を教えてください。
多少URLの形式は違っても識別可能になるならかまいません。(index.html?a)等
777Name_Not_Found:2010/12/01(水) 18:23:11 ID:???
>>773
>>774
>>775
レスありがとう
取りあえず、仕様から見直してみる
778Name_Not_Found:2010/12/01(水) 18:24:25 ID:tZdc6WXe
>>776
> a.htmlからb.htmlの変更箇所のみAjaxでとってきて

こうしたいのなら、サーバ側でa.htmlとb.htmlの差分を抽出するプログラムを
動かさないと無理なんじゃないかな
よくあるやつは、b.htmlをまるっと取ってきて、必要な部分だけ切り取る
779Name_Not_Found:2010/12/01(水) 18:25:14 ID:???
>>776
ユーザビリティ的にもSEO的にもその方法は微妙
780Name_Not_Found:2010/12/01(水) 18:31:16 ID:???
URL書き換えるのはブラウザの仕様的にページ遷移無しでは無理だろ
781776:2010/12/01(水) 18:55:42 ID:???
やっぱ無理ですかー
Google英語版でも1回Enter押さないとURLには反映されませんね
http://www.google.com/ncr
別の方法を考えて見ます
782Name_Not_Found:2010/12/01(水) 18:57:05 ID:???
HEADやBODYの内容を変更せずにURLだけを書き変えるリクエストがあればいいんだけどな
783Name_Not_Found:2010/12/01(水) 19:22:07 ID:???
そんなのあったらURLを信用できねーだろ。
784Name_Not_Found:2010/12/01(水) 19:28:25 ID:???
んなこたぁない
785Name_Not_Found:2010/12/01(水) 21:17:43 ID:???
>>744にあるようなコードでテキストボックスの有効/無効を切り替えてます。
Firefoxだとtextエリアがグレーになりますが、IEだと文字がグレーっぽくなるだけでわかりずらいです。
IEでもFirefoxと同じようにdisableにしたらテキストエリアをグレーにすることは出来ないでしょうか?
786Name_Not_Found:2010/12/01(水) 21:19:21 ID:tZdc6WXe
デフォがお気に召さないなら、
自分でスタイル変えればいいじゃない
filter:alpha(opacity)で半透過にしてみる、とかとか
787Name_Not_Found:2010/12/01(水) 21:21:37 ID:???
CSS
788Name_Not_Found:2010/12/01(水) 21:29:26 ID:???
input[disabled] {~~}
789Name_Not_Found:2010/12/01(水) 21:31:11 ID:???
IEで同じにしたいのにそれはちょっと・・・

てかCSSスレでやれ
790Name_Not_Found:2010/12/01(水) 23:25:14 ID:???
>>788
これの解説頼む
791Name_Not_Found:2010/12/01(水) 23:29:07 ID:???
CSSスレいけつってんだろカス
792Name_Not_Found:2010/12/01(水) 23:38:04 ID:???
つか、質問する前に仕様書読め
793Name_Not_Found:2010/12/01(水) 23:39:19 ID:???
CSSなのか
794Name_Not_Found:2010/12/01(水) 23:40:44 ID:???
>>792
失せろ
なんでも嫁ですめばこんなスレいらねえっての
795Name_Not_Found:2010/12/01(水) 23:47:11 ID:???
>>794
アフォか。>>788 ぐらい、読めば誰でも分かるっつーの
796Name_Not_Found:2010/12/02(木) 00:28:34 ID:???
誰でもわかるらしいよ
797Name_Not_Found:2010/12/02(木) 00:29:43 ID:???
はい
798Name_Not_Found:2010/12/02(木) 00:31:49 ID:???
沸点が低い人
799Name_Not_Found:2010/12/02(木) 09:43:51 ID:???
ラジオボタンでもチェックボックスでもいいんですが、選択したら項目を消すということがしたいと思ってます。
例えば1から10までの項目があってチェックボックスをチェックしたら1から5までを消す(もしくは見えなくする)という事が出来ればと思います。
javascriptでそういった事が可能なのか判りませんが、可能であればどういった関数をしようすればいいかアドバイスいただけないでしょうか。
800Name_Not_Found:2010/12/02(木) 09:50:28 ID:???
このスレに書く質問じゃないねそれ
801799:2010/12/02(木) 10:07:47 ID:???
>>800
ありがとうございます。
javascriptでは出来ないということですね。
他の方法を探ってみます。
802Name_Not_Found:2010/12/02(木) 10:09:16 ID:???
いや、JavaScriptでできるよ
だけど君には無理だ
803Name_Not_Found:2010/12/02(木) 10:10:22 ID:???
このスレのテンプレはよくできているなあと感心する
804Name_Not_Found:2010/12/02(木) 10:15:32 ID:???
javascriptでも出来るし他の方法でも出来る
805Name_Not_Found:2010/12/02(木) 11:25:43 ID:???
>>799
チェックボックスにonclickハンドラを設定して、また見えたり
消えたりする項目をdivで囲んでidをつけておいて、onclick
ハンドラでチェックの現在の状態に応じてidつけた要素の
displayプロパティを変更すればいいんじゃね?
806Name_Not_Found:2010/12/02(木) 11:42:30 ID:vdW0rrjQ
暇なので>>779をJSでやる場合

それを一発で実現できる便利関数はないです

まず、チェックボックスに呼応して消える項目を
チェックボックスに結びつけておきます

チェックボックスの要素にイベントリスナを設定し、
そのcheckedに依存して、件の要素の表示、非表示を
コントロールできるようにします。
イベントハンドラは、changeかclickがいいと思います。

要素の表示・非表示は、
DOMツリーへの追加・削除をするか、
スタイルを変更して出したり消したりします。

使用する関数(メソッド)は
getElementsByTagName / getElementById / querySelectorAll
addEventListener / attachEvent

くらいだと思います。

と、説明してもわからないことがあると思うので、
まずやってみて、つまずいたらまた聞いてください。
やろうとしていることはJSの入門的な内容なので、頑張れ



>>804
まさに>>788ですなあ
807Name_Not_Found:2010/12/02(木) 11:43:37 ID:vdW0rrjQ
すみませんゆっくり書いてたらかぶりましたすみません
808Name_Not_Found:2010/12/02(木) 17:29:14 ID:???
http://mootools.net/slickspeed/
誰かこれにフレームワークなしの処理を追加してくれないカナー
809Name_Not_Found:2010/12/02(木) 18:06:11 ID:???
>>808
ソースを保存してパス書き換えて
Prototypeを最新版に差し替えてやったら
軒並み最高速でワロタ
jQueryの最新版よりむしろスコアいい
Prototype.jsいつのまにこんなに高速になったんだ
810Name_Not_Found:2010/12/02(木) 18:07:39 ID:???
http://journal.mycom.co.jp/news/2010/11/25/015/index.html
なんだjQueryからセレクタエンジン持ってきたのか
811Name_Not_Found:2010/12/02(木) 18:25:08 ID:???
ttp://d.hatena.ne.jp/chimamirepanda/20090519/1242754072

ここのスクリプトを使ってみたんですが、上手く動いてくれません。
そのままだとエラーが出たので、
7行目の$.cookie('style, '', {expires:-1});を
$.cookie('style', '', {expires:-1});に修正したのですが、
一度は切り替わってstyle2.cssになるのですが、再度ボタンを押してもstyle1.cssに戻ってくれません。
何が原因か分かりますか?
812811:2010/12/02(木) 18:34:52 ID:???
間違いました。
「一度は切り替わってstyle2.cssになり、再度ボタンを押してstyle1.cssに戻るのですが、
またボタンを押しても無反応でstyle2.cssにならない」でした。
813Name_Not_Found:2010/12/03(金) 01:02:16 ID:???
>>808
うーぱーが無いなぁ
814Name_Not_Found:2010/12/03(金) 01:07:21 ID:???
>>812
if ($.cookie('font'))がいつまでも真だからじゃね?
815Name_Not_Found:2010/12/03(金) 01:15:13 ID:???
>>808のをFWを最新のにして
フラームワークなしでquerySelectorAllを使った結果を追加してみたが
ブラウザによって結果は異なるが
おおむね querySelectorAll > jQuery1.4.4 > Prototype1.7 >= Dojo1.5 > Mootools1.3 > Mootooles1.2 > YUI2.8.2r1
querySelectorAllはブラウザによっては結果が返ってこないやつもボチボチあるが爆速(特にIEだと)
Dojo1.5は優秀だが取得結果に不安が残る
Selector系はjQueryかPrototypeの2択
単純なSelectorしか使ってないページではquerySelectorAllがいい
YUIはゴミ
816Perl忍者 ◆M5ZWRnXOj6 :2010/12/03(金) 20:27:02 ID:u9xpjPX6
jqueryは重いとか言ってるキチガイいましたよね

ツイッタでわめいてるゴミ

苦笑いの嵐ですよ
817Perl忍者 ◆M5ZWRnXOj6 :2010/12/03(金) 20:28:36 ID:u9xpjPX6
たしか動画プレイヤー開発してる野菜のクズだったきがしますね・・・笑
818Name_Not_Found:2010/12/03(金) 20:30:46 ID:???
s/jquery/jQuery/

s/ツイッタ/twitter/

>苦笑いの嵐ですよ
怒りの有頂天

s/野菜/人間/
819Perl忍者 ◆M5ZWRnXOj6 :2010/12/03(金) 20:33:51 ID:u9xpjPX6
あまちゃんぐとかうんこちゃんぐみたいにおめエラはJavascりptやってろ

カスだから

ウェブ土方にすら慣れねえかわいそうなやつら

早く死んじゃえ
820Perl忍者 ◆M5ZWRnXOj6 :2010/12/03(金) 20:35:20 ID:u9xpjPX6
移動
821Name_Not_Found:2010/12/03(金) 20:38:14 ID:???
ID:u9xpjPX6 は独り言多いな
822Name_Not_Found:2010/12/03(金) 20:39:55 ID:???
寂しいんだよ
823Name_Not_Found:2010/12/03(金) 21:07:13 ID:???
jQueryのセレクタが早いってだけで
jQueryが軽いとは言ってないんだけどな
824Name_Not_Found:2010/12/03(金) 21:17:58 ID:???
今、何か見えましたが気のせいですか?
825Name_Not_Found:2010/12/03(金) 21:27:33 ID:FgkARcsx
なんか珍しくJSスレでレス番が飛んでる…


よく
$("div p a").each(function(){ /* hogehoge */ });
$("div p a").bind("click",function(){ /* fugafuga */ });
$("div p a").css({ /* boingboing */ });

みたいに、おなじセレクタを何度も書いてるのを見かけるんだけど、
これって毎回探しにいってんじゃないかと気になる。
キャッシュされたりするのかな(それはそれで問題起きそうだけど)。
826Name_Not_Found:2010/12/03(金) 21:38:40 ID:???
>>825
当然、毎回探しに行ってる。キャッシュしたいなら、ローカル変数に格納すればいい。
827Name_Not_Found:2010/12/03(金) 23:24:41 ID:???
>>819
嫉妬ww
828Name_Not_Found:2010/12/03(金) 23:26:14 ID:???
"ウェブ土方" の検索結果 約 517 件 (0.07 秒)
829Name_Not_Found:2010/12/03(金) 23:42:41 ID:???
ウェブ新撰組
830Name_Not_Found:2010/12/04(土) 00:11:55 ID:???
テキストボックスでenter押したときに検索を実行したいと思ってます
次のコードでテキストボックスでenterを押した場合
何故かページがロードされてボックスの中身が空になってしまいます
どうしたらいいですか

<html lang="ja"><head>
<script type="text/javascript">
<!--
function search()
{
alert(document.getElementById("a").value);
}

function enter(keyCode)
{
if (keyCode == 13) {
search(); // enter押されたので検索開始
}
}
// -->
</script>
</head>
<body>
<form>
<input id="a" type="text" size="20" onkeydown="enter(event.keyCode)">
<input type="button" value="検索" onClick="search()">
</form></body></html>
831Name_Not_Found:2010/12/04(土) 00:14:02 ID:???
onsubmit="return false;"
832Name_Not_Found:2010/12/04(土) 00:24:02 ID:???
ナイス!
うまくいけました
833Name_Not_Found:2010/12/04(土) 03:01:26 ID:???
すいません、もう一回質問させてください
830のコードの<form>にonsubmitの処理を加えたのですが
一度ボタンを押さないとkeyCodeが13にならないようなのです
つまりページ開いて文字を入力してすぐenterでは上手くいきません
環境はfirefoxですが何がまずいのでしょうか
834Name_Not_Found:2010/12/04(土) 03:08:43 ID:???
すいません、盛大に勘違いしていました
忘れてください
835Name_Not_Found:2010/12/04(土) 08:58:04 ID:???
わーはははは
836Name_Not_Found:2010/12/04(土) 16:20:24 ID:???
既に完成した(今から変更不可の)外部htmlファイルを取得し、
特定のタグの中身を取得したいと思っています。
responseXMLを使用したいのですが中身がhtmlのせいか上手くいきません。
responseTextを通じてタグを自力で解決するしかないでしょうか。
よろしくお願いします。
837Name_Not_Found:2010/12/04(土) 16:27:51 ID:???
iframeとinnerHTML使えば
838Name_Not_Found:2010/12/04(土) 16:52:33 ID:???
正規表現めんどそう
DOM使えないの?
839838:2010/12/04(土) 16:53:15 ID:???
誤爆すみません
840Name_Not_Found:2010/12/04(土) 17:00:48 ID:???
>>837
レスありがとうございます。
iframeとinnerHTMLで調べたところ、次のURLがヒットしました。
http://soudan1.biglobe.ne.jp/qa5740941.html
このサンプルでは読み込みの後に値取得を行っていますが、
この流れは自分が作成しているプログラムとほぼ同一です。
問題は上記のサンプルで、ページの中身が実際にdivタグ内に
表示されていることであり、これを表示しないようにしたいと
考えています。これは可能でしょうか。
841Name_Not_Found:2010/12/04(土) 17:09:45 ID:???
>>836
createHTMLDocument, DOMParser, LSParser, ActiveXObject
あるいは XHTML にする
842Name_Not_Found:2010/12/04(土) 17:33:45 ID:???
>>840
display:none とか
843Name_Not_Found:2010/12/04(土) 21:58:29 ID:???
display:noneでページの中身が表示されないことを確認しました。
841さんの方法も試したいと思います。
844Name_Not_Found:2010/12/05(日) 05:55:41 ID:gy4+/tOx
IE8でHTML要素のtextContentプロパティを実装するにはどうすればいいんでしょうか?
Object.defineProperty( Element.prototype, 'textContent', {
getter: function() {
return this.innerText;
}
} );
alert( document.querySelector( 'a' ).textContent );
これだとundefinedが表示されちゃうんです。
どうか教えてください。お願いします。
845Name_Not_Found:2010/12/05(日) 07:28:28 ID:???
httprequest = new ActiveXObject('Msxml2.XMLHTTP.6.0');
としてXMLHttpRequestを使いたいのですが
XMLHttpRequestでの通信を複数種類使う場合
一度使ったhttprequestのhttpreq.openの値を指定しなおして使おうとしているのですがうまくいかなくて
調べてもそのあたりのことが見つけられなかったのですが
毎回 new ActiveXObject('Msxml2.XMLHTTP.6.0');しないといけないのでしょうか?
846Name_Not_Found:2010/12/05(日) 08:22:44 ID:???
2回目以降のopen()の前にabort()を呼んでいるかね。
847被リンクサービスの決定版:2010/12/05(日) 12:26:45 ID:17IE3k6P
被リンクサービスはこれらの業者を掛け持ちするのがベスト!
http://hibari.2ch.net/test/read.cgi/hp/1291304974/43
848Name_Not_Found:2010/12/05(日) 12:43:25 ID:???
マルチ乙
849Name_Not_Found:2010/12/05(日) 16:23:42 ID:???
あるページに飛んで、そこにあるボタンをクリックするbookmarkletを作ろうとしています。
それぞれのことをやるscriptは一応分かったのですが、これを一つに
まとめることはできるんでしょうか?今の順序だと、HPにはもちろん飛ぶのですが、
そのHPの中のフォームを押すプロセスにはもう一度bookmarkletをクリックする必要が
あるので、ワンクリックで両方が終わるようにしたいのですが、可能でしょうか?

var%20subw=window.open('https://XXX).document;
(function simulateClick() {
var evt =document.createEvent("MouseEvents");evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cb = document.getElementsByClassName("fbutton") [1]; cb.dispatchEvent(evt);})()
850Name_Not_Found:2010/12/05(日) 16:26:43 ID:???
外部のページなら無理
テンプレ読め
851Name_Not_Found:2010/12/05(日) 16:37:44 ID:???
了解です。ありがとうございました。
852Name_Not_Found:2010/12/05(日) 19:33:29 ID:???
XMLHttpRequestって使い回すのがいいの?
853Name_Not_Found:2010/12/05(日) 19:43:10 ID:???
好きにしろ
854Name_Not_Found:2010/12/05(日) 21:10:42 ID:???
>>844
getterじゃなくてget
855844:2010/12/05(日) 21:36:13 ID:???
>>854
うまくいきました!好きです!
856Name_Not_Found:2010/12/05(日) 21:43:21 ID:???
でもぞうさんの方がもっと好きです
857Name_Not_Found:2010/12/06(月) 16:33:34 ID:???
書き込みテスト
858Name_Not_Found:2010/12/06(月) 16:40:18 ID:???
<html>
<head>
<script type="text/javascript">
function changeColor(class,color){
var all=document.getElementsByTagName("div"),t=1;
for(var i in all)
{
alert(t);
t++;
if(all[i].className==class) all[i].style.color=color;
}
}
</script>
<style type="text/css">
.message { color:Red; }
</style>
</head>
<body>
<div class="message">あああああ</div>
<div class="message">いいいいい</div>
<input type="button" onClick="changeColor('message','red')" value="赤">
<input type="button" onClick="changeColor('message','green')" value="緑">
<input type="button" onClick="changeColor('message','blue')" value="青">
</body>
</html>

上記のプログラムの場合、文字の色を買える赤、緑、青のボタンのいずれかを
押した場合、alertが2回表示されると思うのですが、alertが5回
表示されます。divタグが2つなのでall[i]は2回実行ではないのですか?
どうような動作をしているのですか?
859Name_Not_Found:2010/12/06(月) 18:05:06 ID:???
>>858
for in使ってるから
iの値が何になってるか確認するといいよ
Object以外for inは使わない方が良い
860Name_Not_Found:2010/12/06(月) 18:31:44 ID:???
ここでfor inつかう必要はまったくないしな
861Name_Not_Found:2010/12/06(月) 19:36:14 ID:???
Imageオブジェクトの使い方がよくわかりません

//src, alt
var imgs = [
["a.jpg", "公園の噴水"],
["b.jpg", "公園の花壇"],
["c.jpg", "犬の散歩"]
];

window.onload = function() {
var imgObjects = [];

for (var i = 0; i < imgs.length; i++) {
imgObjects[i] = new Image();
imgObjects[i].src = imgs[i][0];
imgObjects[i].alt = imgs[i][1];
}

imgObjects[imgObjects.length-1].onload = function() {
//do something
}
}

こんな感じにして全てのイメージを読み込んだらdo somethingをしたいのですが
>imgObjects[imgObjects.length-1].onload
これって明らかにおかしいですよね?
全てのイメージオブジェクトを作成したら〜って時は普通はどういう記述をするのでしょうか?
862Name_Not_Found:2010/12/06(月) 19:58:35 ID:???
>>861
全部見る。
863861:2010/12/06(月) 20:12:03 ID:???
>>862
申し訳ないですが抽象的すぎてよくわかりません
出来れば詳しくお願いします
864Name_Not_Found:2010/12/06(月) 20:18:20 ID:vI0E/0by
>>861
var imgs = [略];
var count = 0;

for(var i=0,l=imgs.length ; i<l ; i++){
    略
    imgObjects[i].onload = function(){
        count++;
        if(count == imgs.length){
            // do something
        }
    }
}
865Name_Not_Found:2010/12/06(月) 20:21:19 ID:pp3iHreT
866Name_Not_Found:2010/12/06(月) 20:22:29 ID:pp3iHreT
被リンクサービスはこれらの業者を掛け持ちするのがベスト!
867861:2010/12/06(月) 21:25:57 ID:???
>>864
なるほど
そういうふうに書くんですね!
どうもありがとうございます
868Name_Not_Found:2010/12/06(月) 21:55:35 ID:???
>>860
for in なしで書き直した場合、どんな感じですか?
869Name_Not_Found:2010/12/06(月) 22:14:16 ID:???
普通に添え字でアクセスすりゃいいだろ
870Name_Not_Found:2010/12/06(月) 23:11:47 ID:???
Microsoft.XMLHTTPを使用してhtmlのテキストを取得して表示したのだが
文字化けが発生してしまう
firefoxならばoverrideMimeTypeでいけるが、ieにはこれがないからどうすればよいか?
new ActiveXObject("ADODB.Stream")というのは上手くいかなかった
871Name_Not_Found:2010/12/06(月) 23:23:18 ID:???
>>868
for(var i = 0; all.length > i; i++ )
872Name_Not_Found:2010/12/06(月) 23:26:19 ID:???
for(var i=0,l=all.length;i<l;i++)
873Name_Not_Found:2010/12/07(火) 00:23:43 ID:???
>>872
ありがとうございました。うまくいきました。
alert("all.lengthの値は"+all.length)でall.lengthの値が2になりました。
874Name_Not_Found:2010/12/07(火) 17:39:58 ID:???
addEventListenerを使った場合はunload時にremoveEventListenerで登録したイベントを削除しないといけないんですか?
ウィンドウを閉じたら自動で削除されたりあとのことはいろいろとうまくやってくれるんですか?
875Name_Not_Found:2010/12/07(火) 17:40:37 ID:???
はい
876874:2010/12/07(火) 17:48:35 ID:???
レスどうもありがとうございます
「はい」は前段に対してですか?後段に対してですか?
877Name_Not_Found:2010/12/07(火) 18:07:16 ID:79QeMEBc
>>876
IEはいろいろとうまくやってくれますん
878Name_Not_Found:2010/12/07(火) 18:32:52 ID:???
jQueryを使ってるのですが、
イベントハンドラは全部スクリプトで追加した方がよいのでしょうか?
879Name_Not_Found:2010/12/07(火) 18:37:20 ID:???
出来る限りかな・・・
でないと何のためのライブラリなんですかってなります
880878:2010/12/07(火) 18:44:32 ID:???
なるほど。ありがとうございました
881Name_Not_Found:2010/12/07(火) 19:02:47 ID:l1htcyWu
>>874
ブラウザが面倒を見るべきだが、バグによって解放されない事があるので unload 時に削除した方がベター
IE6 はメモリリークパターンの影響で解放した方が良かった
jQuery でイベントを追加すると unload 時に自動的に削除してくれる
882874:2010/12/07(火) 19:28:41 ID:???
>>877,881
どうもありがとうございます
ブラウザによるんですね
883Name_Not_Found:2010/12/07(火) 20:08:45 ID:???
>>881がIE6を過去形で語っているのが非常にうらやましい
884Name_Not_Found:2010/12/07(火) 20:58:39 ID:???
ローカルストレージへ文字列の2次元配列を格納したり1次元配列単位で追加・削除したりするには、
どういう手順でやったら効率がいいですかね。

文字列を1つずつエスケープ処理して、文字区切りを付けて長い長い文字列を作って
...という処理を何か変更がある度に1からする というやり方しか思いつかなかったのですが
もう少しマシな方法は無いでしょうか。
885Name_Not_Found:2010/12/07(火) 21:18:53 ID:???
>>883
2000が終わった今、企業か物好きしか使ってないんじゃなかろうか
886Name_Not_Found:2010/12/07(火) 21:30:09 ID:???
>>885
たぶんデジタルデバイド層だけど、ウチ管理サイトのユーザーで1割くらいいるよ。
887Name_Not_Found:2010/12/07(火) 21:32:09 ID:???
中高年向けWebサイト作ってるもんでIE6が過半数どころか圧倒的
利用者は問題があれば即座に電話をかける人ばかりなので
「IE6に合わせて作る」以外に選択肢はない
888Name_Not_Found:2010/12/07(火) 21:35:38 ID:???
IE6のシェアは減ってはいるけどまだまだ大きいよ・・・
889Name_Not_Found:2010/12/07(火) 22:05:43 ID:79QeMEBc
>>885
XPのデフォがIE6じゃん
・IE7がタコだったからブラウザアップデートしてない
・VistaがいまいちだったからOSアップデートしてない

ってお客さん多いっす。
んで、実際のユーザがどうアレ、お客さんがそれでチェックするから
なんだかんだでIE6のシェアは実務上圧倒的
890Name_Not_Found:2010/12/07(火) 23:34:09 ID:???
>>884
window.JSON.parse
window.JSON.stringify
2重eval
2次元配列で一部だけ書き換えならなら素直に
window.localStorage.setItem('A.B', window.JSON.stringify(A[B]))のがいいと思うが。
891Name_Not_Found:2010/12/07(火) 23:40:59 ID:???
>>889
某銀行サイトですが、今IE8が1位です。
次いでIE7、Firefoxで、safariとIE6は同じくらいです。
892884:2010/12/08(水) 00:15:16 ID:???
>>890
すみませんが、
プログラム部をできるだけ軽量にしたいので jQuery とかの使用は無しの方向でお願いします。
893Name_Not_Found:2010/12/08(水) 00:23:33 ID:???
jQuery使ってないよ
JSONオブジェクトはFxで3.0.xからだっけ?忘れた・・・
それぐらいからブラウザにあるよ
894Name_Not_Found:2010/12/08(水) 00:40:24 ID:???
862+1 :デフォルトの名無しさん [↓] :2010/12/08(水) 00:08:31
開発中のときにちょっとしたメッセージ出力でalert('hello')以外の方法を教えてください?


863 :デフォルトの名無しさん [↓] :2010/12/08(水) 00:32:29
>>862
>>856が言ってるようにテキストエリアタグに名前付けてそこに吐けばいいんじゃね?
それもできないとかだと前途多難だな。
895Name_Not_Found:2010/12/08(水) 00:44:17 ID:???
V2C
896Name_Not_Found:2010/12/08(水) 00:46:38 ID:???
JSON使えば書き出しできるの?
897Name_Not_Found:2010/12/08(水) 01:13:43 ID:???
898884:2010/12/08(水) 01:17:36 ID:???
>>893
そうなんですか。IEでの使用がメインなので、IEには無いみたいなので困りますが。
899Name_Not_Found:2010/12/08(水) 01:18:34 ID:???
>>895
それがなにか?
900Name_Not_Found:2010/12/08(水) 01:20:03 ID:???
>>898
あるだろ
901Name_Not_Found:2010/12/08(水) 01:21:12 ID:???
>>898
IE利用でlocalStorageって事は8以上なのかな?
IE8のbeta2からJSONオブジェクト使えるよ
ttp://msdn.microsoft.com/ja-jp/ie/dd218503.aspx
902884:2010/12/08(水) 01:39:11 ID:???
失礼しました。あるのですね。
IEのeval関数で typeof(window.JSON) を実行させたら undefined を返したのでIEには無いのかと勘違いしてしまいました。

>>890 でまだ理解できていない所もありますが、考えてみます。ありがとうございました。
903Name_Not_Found:2010/12/08(水) 02:49:39 ID:???
互換モードになってそうだな
でもそうするとlocalStorageも使えないような気がするが…
904Name_Not_Found:2010/12/08(水) 02:54:33 ID:???
ゴカーン
905Name_Not_Found:2010/12/08(水) 12:30:50 ID:???
>>900
「原理原則」や「机上の空論」を正論と思って賞賛してよいのは中学二年生まで
906Name_Not_Found:2010/12/08(水) 12:57:55 ID:???
なんで中学二年生までなん?
907Name_Not_Found:2010/12/08(水) 15:35:51 ID:???
誤爆?
908Name_Not_Found:2010/12/08(水) 20:54:24 ID:???
テキストメッセージをtextareaやテキストタイプのinput要素に表示させる例を見かけますが
divやspanなどの要素にテキストノードとして追加するのより何かいいことがあったりしますか?
909Name_Not_Found:2010/12/08(水) 21:07:56 ID:???
あー、もう900じゃん! テンプレ論議どうなったんだっけ??
910Name_Not_Found:2010/12/08(水) 22:24:20 ID:/62DV91z
>>908
そんなに
一応書いたり消したり出来る、ってのがあるけどやらないし
強いて言えば、デフォルトのスタイルでoverflowとborderがあるから
自分で書かなくてもいい、くらいかな?

>>909
>>2を見直そうぜって話が出てからずいぶん経つねえ
911Name_Not_Found:2010/12/08(水) 22:29:51 ID:???
>>910
どうもありがとうございます
たしかに文字の量にかかわらず同じ大きさでいてくれますね
912Name_Not_Found:2010/12/09(木) 00:19:36 ID:???
win7のガジェット作ろうとしてるんですが
ガジェットの設定画面はガジェット右側に表示されるオプションボタン以外で開く方法はないでしょうか?
System.Gadget周りのを見てみたんですが見当たらなくて・・・
913Name_Not_Found:2010/12/09(木) 00:41:50 ID:???
>>908
textarea、inputはどのブラウザでもvalueプロパティによる読み書きに対応してる
一方、divやspanだとtextContent(標準・IE以外)とinnerText(Firefox以外)を使わなきゃいけない
(div.appendChild(document.createTextNode('hoge'))でもいいけど)
あとtextareaなら\nによる改行が反映される
914Name_Not_Found:2010/12/09(木) 00:47:28 ID:???
innerHTMLではテキストノードを追加したとは言えない?
915Name_Not_Found:2010/12/09(木) 01:17:26 ID:???
文字列に「<」とかが含まれないならinnerHTMLでもいいか
916Name_Not_Found:2010/12/09(木) 01:18:24 ID:???
&
917Name_Not_Found:2010/12/09(木) 02:34:46 ID:???
textContentやinnerなんとか とか使わなくても
document.createTextNode使ってappendChildするだけじゃない。
918Name_Not_Found:2010/12/09(木) 02:42:19 ID:???
長いじゃん
919913:2010/12/09(木) 02:54:55 ID:???
ああ、勝手に「ちょっとした変数の文字列の確認」を想定してた
そうでないなら使うべき要素タイプを選べって話だね
920Name_Not_Found:2010/12/09(木) 03:42:53 ID:???
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function move(event)
{
window.status=event.clientX+","+event.clientY;
}
</script>
<style type="text/css">
</style>
</head>

<body onMouseMove="move(event)">
</body>

</html>


IEのステータスバーでx,yの座標を取得する場合、DOCTYPE宣言が
XHTML 1.0 Transitionalの場合、不具合(というかonmouseover全般で不具合)
でHTML 4.01 Transitionalへとダウングレードすると直ったみたいなんですか
なんか検索してもイマイチこの話題が出てきません。
詳しいく教えてください。
921Name_Not_Found:2010/12/09(木) 03:45:09 ID:???
onmouseoverでなくonMouseMove全体的に不具合の間違いでした
922Name_Not_Found:2010/12/09(木) 04:37:45 ID:???
>>920
何が不具合なのかわからん
923Name_Not_Found:2010/12/09(木) 04:46:02 ID:???
>>922
DOCTYPE宣言が
XHTML 1.0 Transitionalの場合
ステータスバーの、x座興とy座標の数値がマウスを動かしたとときに
動かない。
HTML 4.01 Transitionalのときはマウスを動かしたときに数字が動く。
924Name_Not_Found:2010/12/09(木) 11:18:03 ID:NXuV0yXJ
お願いします

こちら↓のページにありますページネーション(ページ送り)を実装しました。
http://f32.aaa.livedoor.jp/~azusa/?t=ajax&p=jquery_plugin_pagenation

ページ送りボタンを押すとそれぞれ設定された内容が中に表示されるやつです。
その中身をフォトギャラリーにしまして、ページ送りするとデータベースから画像を取得し、表示される仕組みです。
その画像をクリックするとlightboxでポップアップ表示をしたいのですが、
うまくいきません。
jQueryを使用して作ったフォトギャラリーに更にlightboxを実装するにはどうすればいいでしょうか?
925Name_Not_Found:2010/12/09(木) 11:22:20 ID:???
PCにUSBで接続されているカードライタを操作したいのですが、
JavaScript で OCXのファンクションを呼出す具体的な方法を
教えて頂けますでしょうか。

まずOCXのclsidがわかりません。
レジストリに格納されている事まではわかっているのですが。

926Name_Not_Found:2010/12/09(木) 12:50:19 ID:???
ページネーションにlightboxも組み込んでやればいいよ
927Name_Not_Found:2010/12/09(木) 13:12:50 ID:wivW3JxE
テーブルの列を取得する方法を教えてください
例えば、8をクリックすると「2 5 8」、
6をクリックすると「3 6 9」を取得したいです

1 2 3
4 5 6
7 8 9
928Name_Not_Found:2010/12/09(木) 13:23:44 ID:???
onMouseMove

onmousemoveの違いは?
929Name_Not_Found:2010/12/09(木) 13:31:26 ID:???
>>925
話になりません。
930Name_Not_Found:2010/12/09(木) 13:59:38 ID:???
>>927
各行の二番目を取得したらいい
931927:2010/12/09(木) 14:45:39 ID:???
>>930
ありがとうできました!
932Name_Not_Found:2010/12/09(木) 15:03:37 ID:NXuV0yXJ
>>926
なんとかやってみます
933Name_Not_Found:2010/12/09(木) 15:48:50 ID:???
>>928
上は2番目と3番目の単語の先頭が大文字になってます。
下は全部小文字です。
934Name_Not_Found:2010/12/09(木) 17:49:18 ID:???
>>933
もっと簡潔に
935Name_Not_Found:2010/12/09(木) 17:52:42 ID:???
>>934
キャメルケース
936Name_Not_Found:2010/12/09(木) 17:56:13 ID:???
砂糖を焦がして作る奴
937Name_Not_Found:2010/12/09(木) 18:11:08 ID:???
それはキャメルクラッチ
938Name_Not_Found:2010/12/09(木) 18:20:05 ID:???
画像を表示し画像クリックで次の画像を表示する様にしたいです。
Javascriptは正直初めてですが、ググりながら以下の様にしたのですが
Firefox ですと最初の画像が表示されたまま次へ移動しません。またIE8
だと最初の画像すら表示しません。どなたか回答をお願い申し上げます。

表示したい画像はhtmlと同じフォルダにあるimg01.gif〜img16.gifです。

<html>
<head>
<script language="JavaScript"><!--
num = 0;
function change()
{
num++;
num %= 16;
document.MyIMG.src = "img" + num + ".gif;
}
// --></script>
</head>
<body>
<a href="javaScript:change()">
<img src="img01.gif" name="img" border="0"><br>
</a>
</body>
</html>
939Name_Not_Found:2010/12/09(木) 18:36:54 ID:???
>document.MyIMG
940Name_Not_Found:2010/12/09(木) 18:47:57 ID:???
>>939
ど素人でごめんなさい。色々弄っててそのまま貼り付けてしまったようです。
その箇所とhtmlのname要素は同じにしなければいけないんですよね??
以下の様に修正しましたが結果は同じです。

document.img.src = "img" + num + ".gif;
<img src="img01.gif" name="img" border="0"><br>

参照元はここから拝借しました。
ttp://www.openspc2.org/reibun/javascript/mouse/010/index.html
941Name_Not_Found:2010/12/09(木) 18:59:31 ID:???
.gifの後ろが閉じられてないんだが
942Name_Not_Found:2010/12/09(木) 19:02:40 ID:???
<html>
<head>
</head>
<body>
<img src="img01.gif" id="img" border="0" onclick="change()" alt="image"><br>
<script language="JavaScript"><!--
var num = 1;
var img = document.getElementById("img");
function change(){
num++;
if(num >16){
return 0;
}else if(num<10){
img.src = "img0" + num + ".gif";
}else{
img.src = "img" + num + ".gif";
}
}
// --></script>
</body>
</html>

やっつけだから不具合あるかも
これからまともにJavaScript使う気あるならコピペせずにちゃんと勉強して自分で書いた方がいい
943Name_Not_Found:2010/12/09(木) 20:27:57 ID:???
arrayではないオブジェクトのプロパティには順番とかないそうですが
オブジェクトリテラルで作ったオブジェクト(foo={c:"cc",b:"bb",a:"aa"}みたいなの)をfor inした場合も
書いた順番どおりに取得されるというわけではないんですか?
もし書いた順番どおりに取得されたとしてもそれはたまたま?
944Name_Not_Found:2010/12/09(木) 20:32:11 ID:???
ブラウザによって挙動が決まってないとかなんとか
順番通りにならない前提で書いとけ、あとで問題起きたら困るだろ
945943:2010/12/09(木) 20:37:40 ID:???
わかりました
どうもありがとうございます
946Name_Not_Found:2010/12/09(木) 21:11:54 ID:???
>>942
誠に有り難うございました。
Windows7のIE8だと画像が何故だか表示しませんでしたが
Firefox で正常に動作しました。
947Name_Not_Found:2010/12/09(木) 22:40:40 ID:+qHvYqyP
XHTML において、スクリプトが有効になっている場合の noscript 要素内の img 要素についてです
Firefox と Chrome では src 属性で指定した URL 宛てにリクエストが発生してしまいますが
Opera では発生しません
これはどちらの挙動が正しいのでしょうか
HTML の場合はどのブラウザでもリクエストが発生しません

XHTML の場合に、スクリプト非対応(無効)の環境でのみ
リクエストを発生させたいのですが、どうすれば良いでしょうか

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>foobar</title>
</head>
<body>
<noscript><div><img src="./foobar.png" alt="" /></div></noscript>
</body>
</html>
948Name_Not_Found:2010/12/09(木) 23:09:55 ID:LKJWRoQG
ちょっと悩んでいます。

継承ってみんな使用しているのでしょうか?

よく本にあるような単純な mammal, cat, dog みたいな継承だとたしかに
便利なのかなと思うんですが、そうそうそんな単純なものは無いですし、

継承のせいで余計に複雑になってしまって・・。
949Name_Not_Found:2010/12/10(金) 01:10:38 ID:???
継承はあんまり使わないなぁ
手段の1つでしかないから、
継承がハマるところでは使うけど、
無理して使うものでもない
950Name_Not_Found:2010/12/10(金) 01:15:38 ID:???
>>947
JS無効にしてるかどうかを知りたいって話なら、
img要素でのリクエストとJavaScriptで発生させるリクエスト両方を取って、
その差が無効にしてる人ってことになるね
リクエスト2倍になるから下策だけど
951947:2010/12/10(金) 01:33:33 ID:GfFhHunv
>>950
やはりそのような方法しかないのでしょうか
有り難う御座いました
952Name_Not_Found:2010/12/10(金) 02:12:28 ID:???
>>948
一子相伝です。
953Name_Not_Found:2010/12/10(金) 03:05:01 ID:???
ページ内クリックしたら目的の場所に移動に移動させるために
飛びたい場所にname="#hoge"とつけてhrefで飛びますが
この飛ぶときに一気に飛ぶのではなく
ビジュアル効果で徐々にそこに向かって縦方向の高速marqueeみたいな感じで移動してるページがあります
あれをやりたいのですが技術的にどうやればいいのでしょうか?
954Name_Not_Found:2010/12/10(金) 03:11:26 ID:???
それ見てる方はえらい迷惑。lightboxみたいなもんだよ

>1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
955Name_Not_Found:2010/12/10(金) 03:23:43 ID:???
>>1に書いてるユーザに迷惑ってのはそういう意味じゃないんだが
ブラクラとかウイルス踏ませたりとかそっち方面ね
ただビジュアル的にウザイとかじゃなくて危害があるもの
956Name_Not_Found:2010/12/10(金) 03:24:29 ID:???
実際にそういうページがあるならそこを参考にしろよw
957Name_Not_Found:2010/12/10(金) 03:26:05 ID:???
>>955
今までそういう意味の迷惑で取られてるよ
過去ログ読もうね
958953:2010/12/10(金) 03:35:18 ID:???
>>954
別に実際に使うわけではありません
技術情報を知りたかっただけです
スクロールバーがでてる状態で下のほうの位置情報をとってると思うので
なんかそういうのをとるプロパティがあるのかなぁと思ったので聞きました

>>956
おっしゃるとおりなのですがwikiのページでして
ソース量が多すぎて苦戦しています
簡素化したようなものを見つけてそこを参考にしようと思います
959Name_Not_Found:2010/12/10(金) 03:46:46 ID:???
フリースペースでは画像だけを表示することを禁止(つまり広告の無いページは違反)
してるところもあるからlightboxは結構便利だぞ

スクロールのアニメーションも1秒以内なら許容範囲
JSで飛ぶ場合には逆にアニメーションが無いと混乱するからな(戻るボタンで戻ろうとする)
960953:2010/12/10(金) 03:51:18 ID:???
一応座標系を調べてるうちに
DOM座標はgetBoundingClientRect()で取得できることがわかりました
var elm = document.getElementById('hoge');
alert(elm.getBoundingClientRect().top);
スクロールしてるページがこのプロパティを使用しているかは不明ですが
DOMの座標を取得できることがわかったので自己解決ということにします
961Name_Not_Found:2010/12/10(金) 03:53:26 ID:???
jqueryでそこらへんのプラグインなかったっけ?
962Name_Not_Found:2010/12/10(金) 03:55:38 ID:???
技術情報が知りたいのにフレームワークを勧めてどうする
まぁソース見れば参考になるだろうが目的のもの探すには時間かかるだろうな
ちなみにprototype.jsだとElement.scrollTo(element)で簡単にできる
963Name_Not_Found:2010/12/10(金) 03:58:40 ID:???
今回はテンプレ議論しなくていいの?
>>1に次スレ立てる人指定して欲しいんだが
964Name_Not_Found:2010/12/10(金) 04:05:59 ID:???
lightboxが迷惑とかそりゃないだろ・・・
ユーザビリティ考えられて作られたものなのに
迷惑かどうかを感じるのは人それぞれだけど
俺に言わせれば新タブやら新ウインドウ開いて画像表示されるほうがむしろ迷惑だわ
そんな画像マジマジとみないだろ?ちょっと拡大してフーンで閉じておしまい
そんならワンクリックのほうが断然いいわ
965Name_Not_Found:2010/12/10(金) 06:02:54 ID:???
エフェクトとかアニメーションとかビジュアル効果とかきくと
脊椎反射的に迷惑と考えるアホウがいるからな
ユーザビリティなんていったって理解できないだろ
966Name_Not_Found:2010/12/10(金) 06:13:47 ID:???
そうだよな
ユーザビリティ考えるならJavaScriptなんてOFFだよな
967Name_Not_Found:2010/12/10(金) 06:32:28 ID:???
あほばっかw
968Name_Not_Found:2010/12/10(金) 07:41:10 ID:???
>>966
ユーザビリティが何か勉強してこい
JavaScript OFFが一番親切じゃない
969Name_Not_Found:2010/12/10(金) 11:01:06 ID:jWxNBfYs
a.x と、 b.x の値を全く同じにするにはどのようにしたらよいのでしょうか?

a.x = 1; とすると b.x もそうなってる、といったシンボリックリンクみたいな感じなのですが、宜しくお願いします。
970Name_Not_Found:2010/12/10(金) 11:06:27 ID:???
Firefoxでalertを無限ループさせてしまいました
他のタブを閉じたくないのですが
ブラウザを強制終了させる以外に何か方法はありませんか?
ブラウザスレで聞くべきだとは思うのですが
こちらのほうがデバッグ中同じ経験にあわれた方もいると思うので
どなたかわかる方お願いします
971Name_Not_Found:2010/12/10(金) 11:16:38 ID:???
ソースコードを書きなおす→リロード なら割り込めた気がする
972Name_Not_Found:2010/12/10(金) 12:37:42 ID:???
>>969
同じオブジェクトを指すようにしたらどうだ

a.x = b.x = { val: 0 };
a.x.val = 1;
973Name_Not_Found:2010/12/10(金) 12:49:59 ID:???
ユーザビリティを考えたlightboxならいいけど、自己満足なだけのページが多いからな
flashにしたって同じ事
974Name_Not_Found:2010/12/10(金) 13:00:29 ID:jWxNBfYs
>>972
そうなんですけど、基本型?Atomic?のリンクみたいな事ができると面白いなと思って。
975Name_Not_Found:2010/12/10(金) 13:27:06 ID:???
>>972みたいな単純なことじゃなかったか。。。

すまん、意味がわからん
976Name_Not_Found:2010/12/10(金) 13:43:25 ID:jWxNBfYs
こういうやり方で一方通行のは出来るんですけど、

function A(){ this.x=null; }
function B(){};

var a = new A();
B.prototype = a;
var b = new B();

a.x=1; alert([ a.x, b.x ].join(','));
a.x=2; alert([ a.x, b.x ].join(','));
a.x=3; alert([ a.x, b.x ].join(','));
977Name_Not_Found:2010/12/10(金) 13:44:20 ID:jWxNBfYs
ただ、今回やりたいのが、b を作った後の処理で a を作る必要があるのでこの方法が取れなくて。

インスタンスの prototype を動的に変えられるといいんですけど・・。
978Name_Not_Found:2010/12/10(金) 14:44:57 ID:8tOixelJ
セッターやらゲッターやらでやれば
979Name_Not_Found:2010/12/10(金) 14:52:47 ID:???
>>976
なんとなくやりたいことはわかったけど、継承を利用したいなら
チェーン(prototype参照)が切れちゃうから、インスタンスにプロパティxを作ってはダメ。
プロパティxは参照のみ。書き換えはメソッドを通すとか工夫が必要。

var Base = new Function;
Base.prototype.x = 0;
Base.prototype.reWriteX = function(n) {
Base.prototype.x = n;
};

var A = new Function;
var B = new Function;
A.prototype = B.prototype = new Base;
A.prototype.constructor = A;
B.prototype.constructor = B;

var a = new A;
var b = new B;
a.reWriteX(1); alert([ a.x, b.x ]);
b.reWriteX(2); alert([ a.x, b.x ]);
980Name_Not_Found:2010/12/10(金) 15:08:18 ID:???
テンプレ論議全然できませんでした。出先で今立てられません。
どなたかテンプレ同じで立ててくださいー。(スレ立て人)
981Name_Not_Found:2010/12/10(金) 15:23:20 ID:???
規制されてなかったら俺が建てる
982Name_Not_Found:2010/12/10(金) 15:27:50 ID:???
建てられなかった…すまん
983Name_Not_Found:2010/12/10(金) 15:44:02 ID:8tOixelJ
よしがんばれ
駄目だったら俺がやるわ
984Name_Not_Found:2010/12/10(金) 15:51:41 ID:8tOixelJ
985Name_Not_Found:2010/12/10(金) 18:02:32 ID:???
>>984 ありがとう!
986Name_Not_Found:2010/12/10(金) 21:07:05 ID:jWxNBfYs
>>979
コードまでありがとう御座います。検討したいと思います。
987Name_Not_Found:2010/12/11(土) 10:54:47 ID:???
>>927です。また質問があります。

rowSpanがあるテーブルの列をクリックしたときに、
その列の数を数える方法を教えてください

1 2 3
  5  
7 8  

空白になっている部分がrowSpanです
7をクリックしたら2、
3をクリックしたら1を取得したいです。
988Name_Not_Found:2010/12/11(土) 10:56:05 ID:???
>その列の数を
その列の行の数じゃねーの
989Name_Not_Found:2010/12/11(土) 11:33:28 ID:???
プロンプトを出して、ユーザに数えてもらうのが一番楽じゃないかな。
990Name_Not_Found:2010/12/11(土) 11:52:53 ID:???
htmlに埋め込んでおけばいいと思うよ。
991Name_Not_Found:2010/12/11(土) 12:05:53 ID:???
とりあえずhtml出してくれ
992Name_Not_Found:2010/12/11(土) 12:11:39 ID:???
そしたら値を埋め込んでやるから。
993Name_Not_Found:2010/12/11(土) 12:13:20 ID:???
<table border="1">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td colspan="3">5</td></tr>
<tr><td>7</td><td colspan="2">8</td></tr>
</table>
<hr>
<table border="1">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td></td><td>5</td><td></td></tr>
<tr><td>7</td><td>8</td><td></td></tr>
</table>

上か下かハッキリしてくれ
994Name_Not_Found:2010/12/11(土) 12:15:40 ID:???
上のほうのhtml間違ってた

<table border="1">
<tr><td rowspan="2">1</td><td>2</td><td>3</td></tr>
<tr><td colspan="2">5</td></tr>
<tr><td>7</td><td colspan="2">8</td></tr>
</table>

こうか?

まぁこんな感じでテーブルのデータ出してくれ
995987:2010/12/11(土) 12:59:33 ID:2b6nLnHO
<table border="1">
<tr><td rowspan="2" bgcolor="red">1</td><td>2</td><td rowspan="3" bgcolor="red">3</td></tr>
<tr><td>5</td></tr>
<tr><td bgcolor="red">7</td><td>8</td></tr>
</table>
<script language="javascript">
var table = document.getElementsByTagName('table')[0];
var td = document.getElementsByTagName('td');
for (i=0; i<td.length; i++) {
td[i].onclick = function() {
for (j=0; j<table.rows.length; j++) {
//alert(table.rows[this.cellIndex].cells.length);
}
}
}
</script>
みなさんありがとうございます
こんな感じで赤い部分の数を縦に数えたいのですがうまくできません。
1と7をクリックすると2、
3をクリックすると1がかえってくるようにしたいです
よろしくおねがいします
996Name_Not_Found:2010/12/11(土) 13:31:56 ID:???
個人的にはデータ配列を用意してHTMLは変更せずになんとかする
997Name_Not_Found:2010/12/11(土) 13:36:03 ID:???
998Name_Not_Found:2010/12/11(土) 13:37:48 ID:???
ゴミクズ埋め
999987:2010/12/11(土) 13:39:01 ID:2b6nLnHO
次スレで同じ質問してもいいですか?
1000Name_Not_Found:2010/12/11(土) 13:41:28 ID:???
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。