+ JavaScript の質問用スレッド vol.77 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【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"」としないとページ移動しちゃうから。
【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が置き換え前の文字列全体になります。 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()。
8 :
989 :2010/03/10(水) 22:31:22 ID:GtQ05zJW
>>1 乙です
前スレ
>>991 ディレクトリをUIで指定して貰い、パスを取得
そのパスにサーバーサイド(別言語)で生成したファイルをセットする予定です
JavaScriptではやはり無理そうなので
ディレクトリパスはPrompt等で手入力させるしかなさそうです
お騒がせしました
9 :
Name_Not_Found :2010/03/10(水) 22:46:15 ID:BEINowEd
すいません。超初心者で何がなんだかわからなくて質問します。 この下のetc2を無効にしたいのですが、そうすると 出力されるJSはどうなりますか? function inf(f) { mes = f.message.value; if (mes != '') { mes = mes.substr(0,400); if (mes.match(/(.+?)\1{4,}|\w{50,}/)) {mes = "あああ";f.etc2.value="white";} //mesIndex = 0;fixedMes = ""; //while (mesIndex < mes.length) { // fixedMes += mes.substr(mesIndex,65) + " "; // mesIndex += 65; //} f.message.value = mes; if (f.etc2.value == '') f.etc2.value="white"; if (f.handle.value == '') f.handle.value="名無しさん"; set_cookies(); f.submit(); } else { set_cookies(); location.reload();
10 :
9 :2010/03/10(水) 22:50:17 ID:???
OTD BBSの上級者モードで作成しているのですが、掲示板に書き込もうとすると 'etc2.value'is null or not an objectと出ます。
> すいません。超初心者で何がなんだかわからなくて質問します。 のっけからえらく挑戦的ですね。
12 :
9 :2010/03/10(水) 23:12:25 ID:???
釣りじゃありません。手元にJSの本があるんですが、matchは検索というのが わかっただけで、後は何がなんだかさっぱりです。 etc2が邪魔なんでなくしてください。 よくわかってませんが、よろしくお願いします。
そこだけコメントアウトすればいいんじゃないの
14 :
9 :2010/03/10(水) 23:21:26 ID:???
回答ありがとうございます。 {mes = "あああ";f.etc2.value="white";} と if (f.etc2.value == '') f.etc2.value="white"; を外したらうまく行きました。でも、これで良いでしょうか? 何かバグとか出る心配はありませんか?
{mes = "あああ";;}は残す etc2が何なのか知らないけど、 いらないっていうなら大丈夫じゃないか
16 :
9 :2010/03/10(水) 23:43:45 ID:???
回答ありがとうございます。 書き込みできなくなったら、それを試してみます。 このスクリプトは人のサイトから盗んできたもので etc2は掲示板に書き込む文字の色の設定に使われていました。
etc2が何なのかは誰も知らないんだから、 本当に大丈夫かどうかはそこに貼られた部分だけしか分からんがな
18 :
9 :2010/03/10(水) 23:49:05 ID:???
そうなんですか。一応、etc2のある箇所をペーストしたんですが また失敗したら次回もまたよろしくお願いします。
こんな奴スルーしろよ・・・
正確な画像のサイズが取得できません。 以下のソースを使っていますが、IEではキャッシュが無い時に縦サイズが短くなったり、MACでは縦が長くなったりします。 綺麗な取得方法あればお願いします。 また、やりたいこと「画像サイズが不定なので、特定枠に比率を維持して納める。」だ達成できればそれでOKです。 ご助言お願いします。 function getImageSize(image){ var w = image.width; var h = image.height; if(typeof image.naturalWidth !== 'undefined'){ //for Firefox, Safari, Chrome w = image.naturalWidth; h = image.naturalHeight; }else if(typeof image.runtimeStyle !== 'undefined'){ //for IE var run = image.runtimeStyle; var mem = {w:run.width, h:run.height}; //keep runtimeStyle run.width = "auto"; run.height = "auto"; w = image.width; h = image.height; run.width = mem.w; run.height = mem.h; }else{ //for Opera var mem = {w:image.width, h:image.height}; //keep original style image.removeAttribute("width"); image.removeAttribute("height"); w = image.width; h = image.height; image.width = mem.w; image.height = mem.h; } return {width:w, height:h}; }
追伸。 CSSでも構いません。 よろしくお願いします。
ロード中のサイズ取得は愚行 Imageオブジェクトにプリロードしてロード完了をイベントでキャッチして その時点で縦横のサイズを取得とかすればいい
関数実行時点で画像がまだ読み込まれてないとか? >特定枠に比率維持 横か縦の片方だけをimgに指定すればブラウザ?が勝手に比率維持でやってくれると思うんだけどそれじゃダメなのかい? 縦横両方のサイズが決まっていてもcssのmin-height/width〜〜で出来そうな気がする。
テンプレ
>>2 の差し替え案。前スレ末尾の続き。ご意見求む。
【質問を書く上で】
1)「どんな意図で/何を/どう」操作した場合、「どのように」動作させたいのかを
一般的な言葉や用語で簡潔に説明してください。
「動きません」ではわかりません。脳内用語・オレ用語は混乱のもと。
2)自力で調べたこと/試したことを明記のこと。
OS、ブラウザ+バージョン、(あれば)エラーの行と内容を必ず書きましょう。
エラーの行と内容を見るのはIE8、Firefox、SafariのJavaScriptコンソールで。
3)質問に関するソースコードを出来る限り貼ってください。
余分が少なく、コピペだけで動作やエラー再現のできるものが理想です。
1レスで入らないような長いソースの場合はアップロードする等工夫を。
4)閲覧者の迷惑になる質問は回答されません。
別窓を多数開く、閉じる/戻る/クリックを妨害、画面占有、など。
「分かんねえの?」と煽っても無駄です。
5)「初心者なので」「初心者ですみません」とか書いても好感は得られません。
過去に初心者を言い訳に調べもせず我儘な質問をする人がいたためです。
変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、 1文字めを削除して"123"や"534"にしたいです。 どうすれば出来ますか。
>>25 >>変数strに"a123"や"b534"など英字1文字+数字3桁の文字列
この条件決め打ちでいいなら,
var result = str.substring(1);
substr関数を使う
28 :
Name_Not_Found :2010/03/11(木) 14:00:50 ID:Xv6HQ4tK
もう1つすみません。 変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、 英字を<p></p>ではさんで、 "<p>a</p>123" や"<p>b</p>534"を作ることってできますか?
ヒント置いとくからちょっとは自分で考えろよ "a123".replace(/^(\w)/, "$1/")
>>27 substrは非標準。標準にあるのはsubstring。
>>29 str = str.replace(/(.)/, "<p>$1</p>"); かな。
それはいいけどアンタ少しは自力で調べたり勉強する気あるの?
>>30-31 ありがとうございます!
">"をあらわす ">" は、何文字と数えればいいのですか?
33 :
32 :2010/03/11(木) 14:27:52 ID:???
すいません ">"をあらわす "&gt;" は、何文字と数えればいいのですか?
聞く耳の持たなさワロス
これが最後なんで本当に頼みます ついでに全角文字も何文字と数えるのか教えてください 本当に最後です
試してみたら分かるはずだけど、どうして自分で調べないの?
向上心がなさすぎるな
この流れは ・教えずに自己解決→「他で聞いたらすぐわかったわ。使えねーなお前ら。もうこねーわ。」 ・教えて解決→「このくらいもったいつけずにすぐ教えろよ。使えねーなお前ら。もうこねーわ。」 のどっちかのパターンになることが多いね。
こういう奴に度々来られても困る訳だが
40 :
Name_Not_Found :2010/03/11(木) 15:59:30 ID:YLK/1ooW
解らないので質問です。 変数なのですが、 r1 = new test(); r1.width ="700px"; こういった形のものをループさせ r1を部分の数字を繰り上げ、r2、r3 とインスタンスを作っていきたいのですが 方法はありますでしょうか
eval関数を使う。 素直に配列変数にした方がいいとは思うが。
43 :
40 :2010/03/11(木) 16:32:02 ID:YLK/1ooW
なるほど、ありがとうございます! 配列変数での方法、それとevalも勉強させてもらいます。 今回は時間も無かった事もあり、javascriptとは関係ない所で自己解決。 smartyテンプレート側のforeachループで変数を置き換えjavascriptを書きました。 r{$key} = new test(); r{$key} .width ="700px";
また、evalかっ!
以下ループ
eval("var eval=function(){throw new Error()}"); こう?
>>46 ずいぶん高度な自虐ネタだな
わかっている上でわざとやってるのかが判断できん
/ ̄ ̄ ̄ ̄ ̄ ̄\ | おまえら本当に | ∩_∩ | | (´ー`) <. evalが好き .| ( ) | | | | | | だなぁ | (___)__) \______/
でも動けばいいって言うんだよね
「できない」より、動いた方がいいに決まってる
すごく初歩的ですみません。 Javascriptでメモ帳のハンドルを所得したいのですが以下ではエラーになってしまいます。 どこを直せばよいのでしょうか? <SCRIPT language="JavaScript"> wnd = FindWindow( "NotePad", "" ); alert( wnd.Caption ); </SCRIPT>
きみのあたま
54 :
51 :2010/03/11(木) 18:42:49 ID:???
すみませんでした、出直してきます
>FindWindow JavaScript にはそんなものは定義されていない。 どこを直せばじゃなくて、どうしてこれで動くと思ったのかが知りたい。
>>55 javascript自体にはDOMすら定義されてねーよ
このスレがブラウザのjavascriptのみを対象としてるから漏れなくDOMがくっついてくるだけだ
DOMの代わりにAPIがくっついてくる環境だって探せばある
>>57 勉強不足でした、根本的な理解が足りませんでした。スレチすみません
>>52 うん。いまどきlanguageとは、相当あたま古そうだw
しかも大文字
どうでもいいけどHTML4.01ではタグは大文字推奨じゃなかったっけか
やりたいこと:変更前の文字と変更後の文字が違っている場合に処理を分岐したい 困っていること: <input type="text" value="aaa" onchange="hoge(this)" onclick="hoge(this)">とした際、 function hoge(sender){ var arg = sender.value; } でonclick時とonchenge時のvalue値はそれぞれ取れるけど、onchenge処理の中でonclick時の文字は どのように取得すればいいのでしょうか?
63 :
Name_Not_Found :2010/03/11(木) 21:52:57 ID:IqLkzxen
>>59 ♪ぼくのあたまは〜とまと〜で〜できている〜
googleadsでlanguage="JavaScript1.1"って書くのがあって、
天上人の間ではまたlanguageで書くのかと思った。
我ながら発想が卑屈だなあ。
>>61 うそーん?そしてスレ違いだから各自自分でググろう。
>>62 適当な変数に保存でもしておいてそれを参照すればいい
ついでに言うと何がしたいのかがちょっとわかりにくい
65 :
Name_Not_Found :2010/03/11(木) 21:56:09 ID:IqLkzxen
>>62 hoge()がどこかに保存すればいいんじゃないかな。
hogeの外に普通に置くも良し、hogeをクロージャにするも良し。
>64 >65 ありがとう タグでonchangeとonclick2つ書いて変数保存が単純かつ簡単そうですね クロージャでの方法も、検討してみます。
67 :
20 :2010/03/12(金) 14:03:37 ID:???
>>22 例えばwindowsではキャッシュがあるときonLoadイベントが発生しません。
確実なロードイベントを受け取れる方法があればお願いします。
>>23 縦横いずれも不定値です。
例えば縦指定にしても横が規定値以上だとサイズオーバーです。逆もまた。
>>24 それで細かく書くと長いまとめろと言われるループになると思います。
結局出来ないのでしょうか?
CSSを利用でも構いませんので、アイデアがあればお願いします。
68 :
20 :2010/03/12(金) 14:05:17 ID:???
>>23 CSSのMAX-HEIGHTとかMIN-HEIGHTはIEに対応していないと思います。
69 :
20 :2010/03/12(金) 14:15:56 ID:???
IE max-width で検索したら互換用のjsファイルがいくつか見つかりました。 こちらを試してみたいと思います。 ありがとうございました。
>>24 それで良いと思うよ。
あとは、ChromeでもJSのエラーが見れるってことを追加で(右クリ→要素を検証→最下段)
max-/min-が動かないのはIE6だけで、IEの独自拡張使えばjsも使わずにできるけどな。
onloadもwindowに対してやればいいだろうに。img.onloadも動かないのは有る条件のSafariとOperaだけらしいよ。
あとレスはまとめろ。
71 :
20 :2010/03/12(金) 15:21:17 ID:???
まとめます。 できました。 ありがとうございました。
2)自力で調べたこと/試したことを明記のこと。
OS、ブラウザ+バージョン、(あれば)エラーの箇所と内容を必ず書きましょう。
エラーメッセージと発生箇所の確認はブラウザのJavaScriptコンソール等で。
いちいちブラウザ列挙するのもめんどくさい
各ブラウザの説明をしたほうがいいのなら1レス割くぐらいでもいいんじゃない?
>>67 情報量を増やすことと、ぐだぐだと文章を長くすることは別物
叩かれるのは大抵後者
74 :
Name_Not_Found :2010/03/12(金) 20:40:04 ID:NM0T563m
> IEのキャッシュ時のloadイベント不発 オレオレaddEventListenerでは、event.typeがloadの時は readystate見てloaded|completeだったら即発火にしています。 img以外にframeとか、inputy type="image"とかとか。
74はどこの誤爆?
>>70 >max-/min-が動かないのはIE6だけで、IEの独自拡張使えばjsも使わずにできるけどな。
この部分後学のために教えて
スレチだしググれば一番上にでてくる。
>jsも使わずにできるけどな 横からですが、ぐぐってみましたがJavaScript使ってますね...
確かにJS使ってるな。CSSだけど。さすがIE
minならその独自拡張使わなくてもcssだけでできるらしい
>>80 >その独自拡張使わなくてもcssだけで
どれのことを言ってるのかさっぱりだ
IEはwidthがmin-widthみたいなもんだしねぇ インライン要素もデフォルトでインラインブロック要素
>>81 expressionってやつのことかと思ったんだけど違うのか
質問です。「abcd@abccab@abddef」という文字列があったとき、 @の次にある「ab」だけを取り出したいのですが、どうすればよ いですか?JSって前方はできないのでしょうか?
85 :
84 :2010/03/13(土) 11:23:48 ID:???
ごめんなさい。これじゃ@(ab)で解決ですよね。例が良くなかったです。 出直します。ちょっと寝不足で。すれ汚しすいません。
nameという名前をもつ、チェックボックス、またはラジオボタンのグループを取得する際、 checkboxes = document.forms[0].elements[name]; とすると、結果として、checkboxes には、Array(ノードリストかも)で、グループが返されると 思っていたのですが、チェックボックスが一個しかない場合のみ、チェックボックスの elementオブジェクトそのものが、かえってくるようです。(IE8で確認) おかげでずいぶんハマりました。 結局、checkboxes .lengthがundefinedかどうかで、1個と2個以上の場合わけをするような コードをかいてますが、なんだかスマートではない気がします。 もっとスマートなやりかたはないでしょうか。
ブラウザ上でマウスオーバーされたテキストを取得するには、どんな方法があるでしょうか
>>86 自分は1つしか無い場合はstyle="display:none"で複数になるようダミーを置いてる
>88 ありがとうございます。 こっちなら配列が保証されるんですね。盲点でした。
checkbox = document.getElementsByTagName("form")[0]
document.querySelectorAllもノードリスト 他には、ノードもノードリストも一括で管理できる関数を作るとか
教えてください。 IEを右クリックした時にページ内の任意の文字列を探索し 右クリックした位置にあるテキストボックスに貼り付けたいのですが 「貼り付ける」という動作はどうやって記述するのでしょうか。 ためしにclipboardData.setDataでクリップボードに書いて clipboardData.getData("TEXT")を書いてみたらこの文字列が テキストボックスに入力されてしまいました。
>>93 クリップボードなんか触らずに、選択範囲を取得してテキストエリアのvalueに押し込めば済むんじゃないか?
>clipboardData.getData("TEXT")を書いてみたらこの文字列が
「clipboardData.getData("TEXT")」が入力された?
根本的にコードがおかしいから該当部分のソースをうp
エディタのコピペでの「clipboardData.getData("TEXT")」が残っていて それが挿入された可能性もあるのかめんどくさいな
element.value = 'clipboardData.getData("TEXT")'; とかな。
>>94 ,
>>95 ,
>>96 ありがとうございます。
お恥ずかしながら以下の内容でやってました。
<script language="JavaScript">
arr = new Array(30);
arr[0]="てすと";
clipboardData.setData("Text", arr[0]);
clipboardData.getData("Text");
</script>
>>94 右クリックした位置がテキストボックスか調べられれば
クリップボ−ド経由じゃなくて直接入れればいいということですか。
調べてみます。
>>95 右クリックだけで貼りついたので違うみたいです。
クリップボードこわい
>>97 >右クリックだけで貼りついた
提示されたソースに右クリックや貼り付けの要素がまるでないとか恥ずかしすぎるにも程がある
>>95 はエディタでのCtrl+C内容が「右クリックだけで貼りついた」という想定
100 :
Name_Not_Found :2010/03/15(月) 13:19:25 ID:PqBAarmn
JavaScriptでdocument.write()での書き出しのときタブ設定すると ある行だけ飛ばない語があったりするのですが、どうしてですか?
タブ設定とある行と飛ばない語についてわかりやすく説明してくれ
103 :
Name_Not_Found :2010/03/15(月) 16:53:45 ID:PlvQjM0v
>>100 エスパー発揮しようと思ったけど無理だった。
何のことやらさっぱり分からんが、多分evalで解決出来ると思う。
105 :
Name_Not_Found :2010/03/15(月) 21:22:03 ID:PlvQjM0v
前スレで似たような質問ありましたがちょっと別です。 if( car_seq_id == 3 || car_seq_id == 9 || car_seq_id == 15 || car_seq_id == 26 ){ drive(); } は、switch文で以下のようにスッキリ書けます。 switch(car_seq_id){ case 3: case 9: case 15: case 26: drive(); break; } では、以下のをswitch文でコンパクトに書くことできますか? if( car_seq_id == 3 || car_seq_id == 9 || car_seq_id == 15 && car_col_id == 2 || car_seq_id == 26 && car_col_id == 9 ){ drive(); } 変数はcar_seq_idとcar_col_idの二つだけですが、条件となる数値は今後もどんどんふえていくので、メンテしやすくてパフォーマンスもよろしいものを望んでおります。
コードを書く上でのルール 1つの文に多くを詰め込まないこと
>>106 ,
>>108 これでどうだ!
function test() {
var count = 0;
var check = [
[3],
[9],
[15, 2],
[26, 9]
];
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
}
}
return (count == arguments.length);
}
alert(test(3));
alert(test(3, 5));
パフォーマンス最悪だな
110 :
108 :2010/03/16(火) 00:33:33 ID:???
修正。countの初期化忘れてた。forより後を以下に。
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
var count = 0;
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
if(count == arguments.length) return true;
}
}
return false;
>>109 条件となる数値checkの数を5000・check内の配列を現状+1の3([1,2,3])で最後のcheck要素にマッチするようにしてみたけど、
IEでも300msだったよ。クロムは20ms
5000もチェックしないと思うけど。
その程度の物に何十何百ステップも掛けるな しかも他の人が見たら何やってるのか分からないだろ
switch 1つでできましたw (function() { var seq = function(x) { return Math.pow(2, x); }; var col = function(x) { return Math.pow(3, x); }; window.foo = function(m, n) { m = m || 0; n = n || 0; switch (seq(m) * col(n)) { case seq(3): case seq(9): case seq(15) * col(2): case seq(26) * col(9): drive(); break; } }; })(); function drive() { alert("フヒヒ"); } foo(15, 2); foo(9, null) foo(null, 3);
113 :
Name_Not_Found :2010/03/16(火) 00:53:43 ID:OoeyTemv
>>108 javascriptはハッシュが速いんだし、こんな感じでいいんじゃない?
>>106 の話は元のアルゴリズムを変える方法考えた方がいいような気もするけど。
var seqColTest = (function(seqCols) {
var isSeqCol = {};
for (var i=0,l=seqCols.length; i<l; ++i) {
isSeqCol[seqCols[i]] = 1;
}
return function(car_seq_id, car_cal_id) {
return (isSeqCol[car_seq_id + '-' + car_cal_id]);
}
})(['3-', '9-', '15-2', '26-9']);
alert(seqColTest(1,''));
alert(seqColTest(3,''));
alert(seqColTest(9,''));
alert(seqColTest(15, 2));
alert(seqColTest(26, 9));
var a = car_seq_id, b = car_col_id; switch (true) { case a == 3 || a ==9: case a == 15 && b == 2: case a == 26 && b == 9: drive(); break; } 書き換えただけ('A`)
var hoge = (function(matrix){ return function(a, b){ return a in matrix && ((a=matrix[a])===true || a[b]===true); }; })({ 3:true, 9:true, 15:{2:true}, 26:{9:true} }); hoge(3) hoge(3,1) こういう訳の分からないことをするなら素直にif文でいいと思う
117 :
Name_Not_Found :2010/03/16(火) 01:14:37 ID:OoeyTemv
>>116 あぁ、それ見て
>>113 のアルゴリズ間違ってるのに気付いたわ。
car_seq_idが3のときにcar_cal_idが適当な物だと真にならんかった。
「プログラミング作法」はプログラムを書く仕事に就いてる/就きたいなら読んだ方が良い
if(/3,|9,|15,2|26,9/.test([car_seq_id, car_col_id])) drive();
120 :
Name_Not_Found :2010/03/16(火) 03:43:39 ID:CAWu7EAI
<html> <head> <title>タスクバーを含まない</title> </head> <body> <script type="text/javascript"> <!-- onload='opener.resizeTo(screen.availWidth+","+screen.availHeight);' // --> </script> </body> </html> ブラウザー自体をタスクバーを含まないフルサイズサイズで 動的にリサイズしたいのですができません
開く側のページで指定しろよ
新しいウインドウ開くの鬱陶しいから止めてね
サイト側の勝手なリサイズはブラウザで止めている
タブブラウザ使うとそういうの全部無視される。
125 :
Name_Not_Found :2010/03/16(火) 11:23:24 ID:CAWu7EAI
120です。 実行環境はプラグインを想定しています。 今見ているブラウザをリサイズしないと ガジェットが綺麗にレイアウトできないと思ったので・・・
>タスクバーを含まないフルサイズ 最大化ではなく全画面か そんなことできたらうざい広告が半端なくうざいことになりそうだな
画面一杯占有するようなものはガジェットっていわねーよw
大きさ決めてページ中央に表示でいいじゃん。
129 :
Name_Not_Found :2010/03/16(火) 11:41:51 ID:CAWu7EAI
ニコニコブックマークをプラグインで実装しようと思っています。 ガジェット自体はそれを投影する透明な下敷きだと思ってください
130 :
Name_Not_Found :2010/03/16(火) 11:43:11 ID:CAWu7EAI
ブラウザの最大化のことです。 すいません
情報を小出しにするな。 最大化はググればすぐ出る。先にいえと。 ニコニコブックマーク懐かしいな。あれ2週間でサービス終了してたのか。
132 :
Name_Not_Found :2010/03/16(火) 11:56:42 ID:CAWu7EAI
すいません 具具って見ます
133 :
Name_Not_Found :2010/03/16(火) 12:03:23 ID:CAWu7EAI
最大化=ウィンドウのサイズをScreenいっぱいにする、ではありません。 Windows の仕様として、最大化/最小化/元のサイズに戻す と、 ウィンドウのサイズ変更は、別の動作になっています。 最大化されたウィンドウを、スクリプトで小さくしても、Windows は そのウィンドウは最大化されたままだと認識しているはずです。 よって書かれたような動作になります。 じゃぁ JavaScript で最大化などをコントールできるか? window.open() のパラメータ指定以外にはできません。 よく「自分自身を最大化したい」という質問がありますが、 「window.open() で自分自身を新しく開き、古い自分は close()」 という答えしかでません。 …という状況をふまえて、仕様を修正するか、上を説得してください^^; と出てきました。ということは今見ているブラウザ自体を 最大化することはできないんですね・・
>>133 該当ブラウザのスレに行った方が良くね?
質問なんですが javascriptのブックマークレットってあるじゃないですか ブラウザのアドレスバーに貼り付けるとそのページの語尾が変わるものとか javascript:void(document.body.innerHTML=document.body.innerHTML.replace(/。/g,"にょ")); こういったブックマークレットを通したURLに直リンクする方法ってありませんか?
>>135 無いよ
出来たらセキュリティ的に大問題
>>135 なぜそのようなことをしたいのか詳しく
というのは、迷惑スクリプトの予感がしているから
>>137 やっぱり出来ないんですか
諦めます
>>137 他の人に紹介する時に
直リンクした方が手っ取り早いと思ったので
アドオンのことをプラグインって言ってる時点でお察し
onclick属性で指定されている動作を、HTMLを書き替えずに抑制するにはどうすればよいでしょうか
DOMレベルでonclickを上書きする 特定の関数を単に呼んでるだけなら、JSレベルでその関数を上書きするやや乱暴な方法もある
142 :
Name_Not_Found :2010/03/16(火) 18:58:28 ID:OoeyTemv
>>140 onclick="func1()"ってなってるならfunc1を上書きすればいいと思うよ
143 :
140 :2010/03/16(火) 19:17:11 ID:???
>>141-142 有り難う御座います
すみません、質問がおかしかったです
element.removeAttribute(onclick)
このような書き替え無しに、preventDefault()のような関数を使って抑制することは出来ないでしょうか
145 :
140 :2010/03/16(火) 19:30:45 ID:???
>>144 ブラウザのユーザースクリプトに使おうと思うのですが
なんとなく後者の方が汎用性があると思いまして
すみません
>>145 removeAttribute('onclick') せずに自前の処理を割り込ませてかつ onclick を無効にするには
document.addEventListener('click', function(event) {
var target = event.target;
if (関係ない要素が target だった) return;
event.stopPropagation();
foo(target);
}, true); // ←ここ重要
ってやるしかない。target がリンクとかだと event.preventDefault() も必要
147 :
140 :2010/03/16(火) 20:17:38 ID:???
>>146 無事onclick属性を無効に出来ました
有り難う御座います
148 :
Name_Not_Found :2010/03/16(火) 22:37:08 ID:NVjozAJm
strという変数に文字列が入っています。 str内の、特定の正規表現にマッチする部分を<p> </p>で囲みたいのですが、うまい方法はないでしょうか。 たとえば str = "bbbbbbaaaabbbbb" で、正規表現を /a+/ とすると、 result = "bbbbbb<p>aaaa</p>bbbbb" のようにしたいです。
matchを知っているのになぜreplaceをしらないのか。
150 :
Name_Not_Found :2010/03/17(水) 08:18:22 ID:FaoyXOF/
マッチは知ってるけどライターは知らないみたいな?
151 :
Name_Not_Found :2010/03/17(水) 12:04:45 ID:WAm3b4JH
document.referrerでリンク元のURLを取得することができますが、 リンク元のタイトルを取得するにはどうしたらよいでしょうか? XHRで取得できそうですが、クロスドメインの制限に引っかかりますし・・・ やはり、PHPなりPerlなりを介すしかないのでしょうか? よろしくお願いします。
>>151 > PHPなり ....
その通り。サーバに手伝ってもらわないと不可能。
154 :
151 :2010/03/17(水) 14:35:41 ID:WAm3b4JH
>>152 >>153 やはりそうでしたか・・・
おかげですっきりしました。
ありがとうございました!
ここでPrototypeの質問OK?
156 :
Name_Not_Found :2010/03/18(木) 19:14:59 ID:QGqTw1h3
コールバック関数から呼び出しもとの関数に値を返すことってできますか? ないとすれば、どうするのがベターなんでしょうか?
OKです だったはず
>>156 addEventListener("click", function(n){
func(n);
});
こんなんか
・「コールバック関数」を呼んだ元 普通にreturnしろ ・「コールバック関数を要求した関数」を呼んだ元 同期実行ならクロージャ使え var ary = []; "abc".replace(/./g, function(s){ ary.push(s) }); alert(ary.join(", ")); 非同期?なにそれこわい
161 :
Name_Not_Found :2010/03/18(木) 23:26:38 ID:FjmMt186
ツールバーの座標を読み取るには どうしたらいいのよ つーかできるのか?そんなこと
無理です
163 :
Name_Not_Found :2010/03/18(木) 23:52:22 ID:FjmMt186
<html> <head></head> <title>テスト</title> <body> <script type="text/javascript"> <!-- function maximizewindow() { window.moveTo(0,0); window.resizeTo(screen.availwidth, screen.availHeight); } </body> // --> </script> </html> すまん助けてくれ エラーだ
>>163 「availHeight」と「availWidth」でリサイズって全画面か?
テンプレ嫁
>>2 【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
それに加えて何がエラーなのかわからない あと、titleってhead内に書かなくてもいいのか
bodyタグとscriptタグがネストしてるし、widthのWが小文字だし
ネストはしてないっしょ しかしこりゃ酷いな
関数も呼ばないと動作しないよ
169 :
Name_Not_Found :2010/03/19(金) 08:10:26 ID:8yzn2SB5
先ずはHTML初心者スレに行くべきだな
vol.76 過去ログまだ?
>>171 あげてきた
てか誰でもあげられるんで気づいたら頼む
>>174 使ったことない。ってか、はじめて知った。
見た感じ、あまりメリットなさそうだな。
最適化手法はc/c++やってたからこの辺の書き方してたけど、
上司が読めねぇから普通に書いてくれって言ったの思い出した。
Cと違って代入される毎に型がコロコロ変わったりブラウザ毎に解釈が微妙に変わったりする言語では不安だから使いたくないな
ドットアクセスはできるだけ減らす IE対策としてwindowとかdocumentはローカル変数化 くらいはしてる
177じゃないが ・ドットアクセスは重い ・ローカル変数化しないと重い
>>179 なんでローカル変数にしないと重いんですか?
玄人気取りでリソースケチったマシンなら体感しやすいんじゃないの
なつかしいハックだな IE6比で5倍速になるんだっけ
184 :
Name_Not_Found :2010/03/20(土) 03:51:59 ID:bxhoFvwz
>>183 そんなには違わないかも。でも結構違うよ。
スクリプトの始めで、windowのプロパティを一通り
同名の変数に入れるだけだから、テンプレ化して普通にやってます。
あと、配列やノードリストのlengthを何度も見ない、とかとか。
時代錯誤だな
バッドノウハウってやつ?
つまり可読性が下がるだけ?
ある程度大きい規模にならないと高速化の必要はないだろうね。 しょぼいのはしょぼいなりでOK でも、高速化は工夫のしようが色々あって面白いから試してみるといいよ。
独力で理解できない人は使わないほうがいい
それお前もじゃん
俺も
そこの。おい、キミ。君もだ
194 :
Name_Not_Found :2010/03/20(土) 14:14:41 ID:ZU4Tys8R
それぞれどう違いますか? bazの定義方法の違いなんですが それぞれの目的というか意図というか使い分け方というか //1 var foo = { bar: function() { alert(this.baz); }, baz: "hello!" }; foo.bar(); //2 var foo = { bar: function() { this.baz = "hello!"; alert(this.baz); } }; foo.bar(); //3 var foo = { bar: function() { var baz = "hello!"; alert(baz); } }; foo.bar();
>>194 まず最初に this の値には呼び出しの際に介されたオブジェクトへの参照が格納される。
また、call や apply を使えば意図的に this の値を変更できる。
foo.bar と呼び出した際には、this は foo オブジェクトを指す。(barメソッド内)
今回の例では this はすべて foo オブジェクトを指す。
1)
this が指すオブジェクトの baz プロパティを呼び出す。
2)
this が指すオブジェクトに baz プロパティを定義する。
そして、this を介して baz プロパティを呼び出す。
このとき this 値に依存することなるので必ずしも foo オブジェクトに
buz プロパティが定義されるとは限らない。
3)
ロカール変数として baz を宣言。関数の処理が終了次第、baz 変数は消滅する。
だれか
>>174 の使い方教えてください
宜しくお願い致します
>>195 どうもありがとうございます
1と2の違いは
> このとき this 値に依存することなるので必ずしも foo オブジェクトに
> buz プロパティが定義されるとは限らない。
って部分でしょうか
まだよく理解できませんが
理解でき次第
使い分けてみたいと思います
>>197 説明のしかたが悪かったね。要は this 値は固定じゃないってこと。
1だって this 値が foo オブジェクトを指すとは限らない。
当然2も同じ。3はthis関係ない。
> foo.method と呼び出す限りは method 内での this 値は foo オブジェクト
> foo.method.call/apply ... となると this は変わってしまう
>>197 195じゃないけど、最初にcall, applyでthis値指定できるって書いてあるよね
>>195 に。
例えば、
hoge={};
というオブジェクトを別途作成して、
foo.bar.apply(hoge) とか foo.bar.call(hoge)
とすることで、hogeオブジェクトにbazプロパティが定義されることになる。
これが「fooオブジェクトにbazプロパティが定義されるとは限らない」という意味。
201 :
200 :2010/03/20(土) 15:22:22 ID:???
>>197 1と2の違いを気にしてるようだけど、
1ならbazプロパティが定義されず、2は定義されるという違いがある
bazプロパティが定義されるのは、thisの指すオブジェクトであり、
それはfooオブジェクトとは限らない
202 :
200 :2010/03/20(土) 15:23:21 ID:???
訂正 1ならbazプロパティが定義されず、2は定義されるという違いがある ↓ 1なら「barメソッド呼び出し時に」bazプロパティが定義されず、2は定義されるという違いがある
// 2 var func = foo.bar; func(); alert(foo.baz); // => undefined alert(window.baz); // => Hello
//1 var foo = { bar: function() { alert(this.baz); }, baz: "hello!" }; foo.baz = "hi!" foo.bar(); 2と3はbar関数の中で文字列を定義しているから この関数を使っている限りメッセージを変えることはできない それと2はthisの対象となるオブジェクトを書き換える(状態を変化させる)ことから 副作用があるとか破壊的とか言われる
205 :
195 :2010/03/20(土) 15:29:09 ID:???
ゴチャゴチャしてきたけど ...
>>203 そこまで突っ込むならこの補足をいれるべき。
var func = foo.bar;
func();
alert(window.baz);// =>"Hello"
this のデフォルト値はグローバルオブジェクト。すなわち、window 。
206 :
200 :2010/03/20(土) 15:30:03 ID:???
>>203 もしかして201の反証ってこと?
this値はどのオブジェクトのプロパティとして呼び出されたかを指すから
foo.bar();
じゃなくて
var func = foo.bar();
func();
とした場合には、グローバルオブジェクトであるwindowがthis値になるね
207 :
205 :2010/03/20(土) 15:31:30 ID:oCP5+OLM
あ、ごめん。なしで。勘違いしてた笑
208 :
200 :2010/03/20(土) 15:32:49 ID:???
206訂正 var func = foo.bar(); ↓ var func = foo.bar;
209 :
194 :2010/03/20(土) 15:35:52 ID:ZU4Tys8R
>>199-208 どうもありがとうございます
なんとなくですがわかりました
>>204 1だとhi!に置き換わることを確認しました
2では同じようなことをしてもhello!のままなことを確認しました
210 :
初心者 :2010/03/20(土) 20:23:37 ID:???
211 :
初心者 :2010/03/20(土) 20:38:35 ID:???
名前欄に『初心者』って書いちゃった 。゚(゚ノω`゚)゚。
window.onload $(document.).ready
213 :
210 :2010/03/20(土) 21:12:35 ID:???
214 :
210 :2010/03/20(土) 21:14:12 ID:???
>212さん これは、私へのレスですか?!( ;∀;)
jQueryは$(func)(=jQuery(func))でDOM構築後に実行になるはず。 たぶんブログではprototypeでも使われているんじゃね。 $→jQueryでどうよ。 あとscriptで扱う要素はそれより前に書いておく癖のほうがいいかも?
216 :
210 :2010/03/20(土) 21:18:52 ID:???
>215さん レスありがとうございます! なんか色々調べてたときに $→jQuery やってみたんです。それでもダメでした。。。 ありがとう!!!
有料アダルトの紹介ブログやってる奴に教えるなんてお前ら暇なんだな
218 :
210 :2010/03/20(土) 21:29:35 ID:???
そう。アダルト紹介サイト。作ってみたんだけどこれじゃ情報として全然役に立たないやと思って 納得できるものを作ろうと思って色々やっていたら いつのまにかjavascriptにハマってしまいました。 他のアダルトサイト紹介サイトの管理人さんたちって すごい技術で、私も頑張らなきゃと思ってるんだけど、難しいです。
開き直ったwwwwwww try catchでも使ってデバッグしろよ
220 :
210 :2010/03/20(土) 21:34:45 ID:???
やっぱり、アダルト紹介サイトとかって風当たりが強いのかなぁ。 ずっと取り組んでいたからちょっと麻痺してたのかも。 すみませんでした。 もし、それでもいいよという方がいたら、教えてください。 頑張ります・・・。
221 :
210 :2010/03/20(土) 21:37:34 ID:???
>>219 開き直ったというか、事実なので〜www
try catch ですね。デバッグも考えてたんですけど
やってみます。
なんか、エディタでは成功してるのが引っかかってて
スプリクトは間違ってないのかなって思ったりして。
よし、デバッグしてみる。
>>210 そのままだとドメインが違うから無理。
JSONP使えばなんとかなる。後は自分で頑張れ
223 :
210 :2010/03/20(土) 23:07:24 ID:???
>>222 ありがとう。
今、ファイヤーフォックスのエラーコンソールを使ってたんですけど
なんか、『JavaScriptコンソールを利用すれば、外部ファイルを引き込めない部分でエラーを発見することが可能です』
って情報があったので、ネスケをダウンロード中です。
教えてもらったtry catchっていうのは使い方が難しくてちょっと保留してます。
JSONPっていうのも初めて聞きますが、調べて挑戦してみます。
『頑張れ』ってありがとう!2Chで頑張れって言われるのって
あんまり無いことだから嬉しい。
教えてくれた皆さん、ありがとう。((((●・ω・)ノ♡
なんでネスケ。 Firefoxを使ってるならJavaScriptコンソールはエラーコンソールに統合されてる。 javascript.options.showInConsoleをtrueしろ。
「後は自分で頑張れ」はもう回答しないよって意味なんだけど、ポジティブだなw 嫌いじゃないぞ 折角だからもう1つだけヒント。 FirefoxならFirebug入れとけ あと、Chromeなら Ctrl+Shift+j でDevToolsが使える もちろん使い方は自分で調べろよ
226 :
210 :2010/03/21(日) 00:23:45 ID:???
>>224 さんへ
>>javascript.options.showInConsoleをtrueしろ。
っていうのは
↓これですか?
設定は %appname%/defaults/preferences/ ディレクトリ内の .js ファイルで行います。(拡張子が .js であれば)ファイル名は何でもかまいません。ですので、debug.js とするのが最良でしょう。
/* デバッグ用設定 */
pref("browser.dom.window.dump.enabled", true);
pref("javascript.options.showInConsole", true);
pref("javascript.options.strict", true);
pref("nglayout.debug.disable_xul_cache", true);
pref("nglayout.debug.disable_xul_fastload", true);
これにdebug.jsって名前をつけて
%appname%/defaults/preferences/debug.js保存しました。
>>なんでネスケ。
ネスケは、やめます。どうもです。
今だけでいいから、頭良くなりたい。
227 :
210 :2010/03/21(日) 00:32:01 ID:???
>>225 もう回答しないよって意味でも『頑張れ』は嬉しかったです。
だってもう3日目、寝食忘れてネット廃人のようになってたから。
しかも、ヒント〜!!(喜)
>>Chromeなら Ctrl+Shift+j でDevToolsが使える
↑、これ早速やってみます。
Firebugは、昨日やってみたら、今使ってるバージョン3.6には
対応してないってことが解って、バージョン古いのにしてみようかどうか
考えてたとこなんです。
ありがとう。こんな時間に。
これってdivをscriptの前に移動したら動いちゃうとかじゃないの
229 :
210 :2010/03/21(日) 01:00:01 ID:???
>>228 さん
こんばんは。
<div id="view1"></div> っていうのを
色んな場所に移動してみたんですけど、ダメだったんです。
(でも、これって、
>>228 さんが書いてくれた事を正しく解釈してないかもしれません)
最初の2つの外部ファイルは読み込んでいるようなんですが
移動とかしたら、それも読み込まなくなるという結果でした。
あとは、3つめの外部ファイルが読み込めたらなんとかなりそうな気がして
それで今は<<223さんが教えてくれたJSONPに取り組んでるとこです。
230 :
210 :2010/03/21(日) 01:05:14 ID:???
それと、
>>225 さんが教えてくれたChromeのDevToolsを開いてみたら
私には、すぐに使い方が解るものではなさそうなので(英語だし)、
JSONPをやってみてダメだったら、その時に使い方を習得してやってみようと思っています。
皆さん、ありがとうございます。
232 :
210 :2010/03/21(日) 01:11:57 ID:???
>>あ、最初、その板と、どっちで質問しようか迷ったんです。。 でも、こっちで散々お騒がせしておきながら、そっちでまた質問って ありなんでしょうか???(´・ω・`)
233 :
210 :2010/03/21(日) 01:19:34 ID:???
いや、ダメだ。 もう限界。お風呂にも入りたいし。 あっちのスレに行ってきます(`・ω・´) 皆さんゴメンナサイ( ´・ω・) 短い間でしたが色々ありがとう。
そうかい まあがんばってくれよ ボタンのonclickとか適当なイベントにして実行して動けばタイミングの問題かもよ
235 :
210 :2010/03/21(日) 01:34:02 ID:???
レス、ありがとう。 頑張ってきます!!! そして早くお風呂に入りたいです。
とっとと入れよw
237 :
210 :2010/03/21(日) 02:20:41 ID:???
まず、ご飯食べてる。 今日は、ホントにありがとう。 (つω−`o)っ【。*゜ぉゃすみなさぃ。+゜】 私は寝れないけど。
おはぎうめー
> ボタンのonclickとか適当なイベントにして実行して動けばタイミングの問題かもよ こういういい加減なレスはいらんだろ。 サブドメインが異なるのにXMLHttpRequestしたら、動くわけないのに。 # fc2でXHR Level2対応なアクセスコントロールできるなら一部ブラウザでは動くけどさ
240 :
Name_Not_Found :2010/03/21(日) 14:46:48 ID:ll0As9O9
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content=text/css"> <title></title> <script type="text/javascript"><!-- function RSto(){window.resizeTo(300.500)} //--></script> <style type="text/css"><!-- body {background-color: #ffffff;} --></style> </head> <body> <p> <from> <input type="button" value="リサイズだぜ"onclick="RSto()"> </from> </p> </body> </html> ブラウザ変わらないんだけど どこか間違ってる?
とりあえずHTMLの勉強から始めようか
242 :
Name_Not_Found :2010/03/21(日) 14:55:24 ID:ll0As9O9
いやー日本語からのほうがいいかもしれない
だって
>>241 の言ってる事がわからないから
htmlはあってると思うんだな
>300.500 300, 500 300.5じゃない「300と500」
244 :
Name_Not_Found :2010/03/21(日) 15:05:55 ID:ll0As9O9
確かに・・ 直したけどいまだ無反応
大方ブラウザ側でresizeTo制限する設定にしてるんだろ。標準でもないし動かなくても文句言うな てかfromってなんだよ。action属性も無いし
alert挟んで見ろよ HTML無茶苦茶だし
あら〜
と
"
>>1-10 ,15,16-20
>>21 ,22,25-30"のようなレス指定を抽出したいのだけど
"
>>1-10 ,15,16-20
>>21 ,22,25-30".match(/>>\d+([,-]?\d*)*/g)
で合ってるかな・・?
専ブラですぐに正規表現抽出ためせるやん。
そのままだと
>>1 とか単独のもマッチするけどいいの?
/>>\d+([,-]\d*)+/g
>>[数字]のあとに[カンマ or ハイフン]の場合にマッチ
>>250 確かに?要らなかったね
>>251 レス全部欲しいので単独の物もマッチさせたいです
ありがとう
254 :
174 :2010/03/21(日) 16:59:07 ID:???
>>253 不可能。
新しい名前でElementを作って自分でいろいろコピーするしかない。
257 :
174 :2010/03/21(日) 17:14:38 ID:???
The JSpeed engine analyzes different portions of your JS code for fragments which can be optimized, and substitutes them with faster code. Optimization Example: for (i=0;i<1;i++) { j = i + 1; f = Math.floor(i); f = Math.floor(21.4); } for (i = 0, j = 0; i < 1000000; i++, j++) { if (i == 4) { var tmp = i / 2; a = Math.abs(i); } if ((i % 2) == 0) { var tmp = i / 2; tmp = Math.min(i,tmp); i++; } } var arr = new Array(1000000); for (var i = 0; i < arr.length; i++) {}
258 :
174 :2010/03/21(日) 17:15:23 ID:???
before: ~14 ms
for (var i=0;i<1;++i) {
j = i + 1;
f = i
>>0 ;
f = 21.4
>>0 ;
}
for (var i = 0, j = 0; i < 1000000; ++i, ++j) {
if (i == 4) {
var tmp = i >> 1;
a = i < 0 ? ~i++ : i;
}
if ((i & 1) == 0) {
var tmp = i >> 1;
tmp = i < tmp ? i : tmp;
i++;
}
}
var arr = new Array(1000000);
for (var i = 0, arr_len = arr.length; i < arr_len; ++i) {}
after: ~7 ms
それしか見えないのならもう諦めろ
260 :
174 :2010/03/21(日) 17:18:49 ID:???
↑ ドキュメントってこれですか?
261 :
174 :2010/03/21(日) 17:19:35 ID:???
>>259 先生、もしご存知でしたら教えてください。お願いします。
262 :
253 :2010/03/21(日) 17:30:30 ID:???
>>255 どうもありがとうございますm(_ _)m
>>254 リンクがあるのにわざわざソースを貼るな。
そもそも、一体何が分からないのかが分からない。それすら説明できないようなら諦めろ。
インタープリターが賢かったら全く役に立たないテクニックだから
264 :
174 :2010/03/21(日) 17:46:57 ID:???
ソースすいませんでした ありがとうございます どのように使うものなのかがわかりません
>どのように使うものなのか 高速化の小手先テクニック。x86アセンブラの基本を知ってれば分かる。 但し最近のコンパイラは賢いからC言語だとどっちで書いても速度は同じだったりする。
>>253 Document.renameNodeを使えるDOM3プロセッサを探せ
267 :
Name_Not_Found :2010/03/21(日) 18:42:06 ID:oYRZIBb0
javascriptで面白いライブラリおしえてちょんまげ〜〜〜〜い
>>268 暖かい思いやりに感謝する。
別の質問!!
javascriptを書くときに使うエディタもおしえてぴょんぴょん〜〜♪
死ね
久々にレベル高いのがいるなw
今日のスレは面白いなww
canvasでエミュレーターか いろいろできるようになってくるんだなぁ
test
formを非同期でページ内の<div id="myForm"></div>内に生成しています。 formのinputエリアのIDを指定して値の受け渡しをしていますが、 一度フォームエリアを$("myForm").remove();をして再生成すると form内のtextareaの入力用idが重複してしまい値を受け取らなくなります。 ソース見る限りinputエリアのidは唯一のはずなのですが 原因を何とぞご教授よろしくお願いいたします。
生成したけどremoveされなかったってことでしょ どう見ても生成のやり方に依ると思うんだけど
いじってて気付いた textarea = document.createElement("textarea"); textarea.setAttribute("type","text"); // textarea にtype属性は無い document.getElementsByTagName("body")[0].appendChild(textarea); これIE7以下だとエラーになるけどバグかな?
IE6 で for in で調べると type プロパティには textarea という値が入ってるから readonly のプロパティとして実装されてるんじゃないかしら。
282 :
Name_Not_Found :2010/03/22(月) 11:52:55 ID:cbvQbnLM
エスパーさん、お願いします。 下記のコードが正常に動くようにするにはblockEnter()に何を入れると良いでしょうか? <p><textarea cols="40" rows="10" onkeydown="blockEnter();"></textarea></p> <script type="text/javascript"> function blockEnter() { if (event.keyCode == 13) return false; } </script>
テンプレ
>>2 より
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
284 :
Name_Not_Found :2010/03/22(月) 12:06:48 ID:ycbbAk62
emac scriptの最新版っていつ普及するか教えてくほちーの
>240
<input type="button" value="リサイズだぜ"onclick="RSto()">
↓
<input type="button" value="リサイズだぜ" onclick="RSto()">
↓
<input type="button" value="リサイズだぜ" onclick="try{RSto()}catch(err){if(confirm(err+'\n\n[エラーを翻訳する]')){window.open('
http://translate.google.co.jp/translate_t?text= '+err+'&sl=en&tl=ja')}}">
286 :
Name_Not_Found :2010/03/22(月) 12:42:14 ID:/WDNaoOm
子要素があるかないかはhasChildNodes()で 属性があるかないかはhasAttributes()で 特定の属性があるかないかはhasAttribute(name)ですが、 addEventListenerメソッドがあるかないかを判断するにはどうすればいいですか?
287 :
Name_Not_Found :2010/03/22(月) 12:45:55 ID:gbCtXRNy
>>286 意地悪なことをいうと
(element.addEventListener)
288 :
286 :2010/03/22(月) 12:51:14 ID:???
すみませんイベントタイプも調べたいです
>>286 DocumentEvent#canDispatch
291 :
278 :2010/03/22(月) 15:44:56 ID:???
自己解決です。 $("id") としなければならない所が $(id) になっていました。 消えないわけでした。 あほだ俺orz
>>291 氏と似たうっかりで、jqueryなんだけど
$("#id_name")にするところで、たまに#を抜かすことはあるw
納期が迫ってあわててる時なんかは、その頻度が上がる上がる
293 :
210 :2010/03/22(月) 17:11:03 ID:???
210です。
>>210 〜
>>239 界隈で相談にのってくれた皆様。
今、解決出来ました〜!!!
皆さん、本当にありがとうございまいsた。
どの方のアドバイスもすごい参考になりましたが
その中で、解決の決め手になったのは
>>222 そのままだとドメインが違うから無理。
JSONP使えばなんとかなる。後は自分で頑張れ
という、アドバイスでした。
JSONPのマニュアルを必死に読んでいたときに
これと同じことを指摘してくれた方がいて、その具体的方法を
アドバイスしてくれて、そしたら(とりあえず)JSONPを取り入れなくても
希望が叶うことになったのです。
生成された表を直接ブログに載せるのは無理だということが判り
スクリプトをHTMLにアップしてそっちにリンクを貼って
ユーザーに見てもらうという方法に落ち着きました。
皆さん。本当にありがとうございました。
(* ̄◎ ̄*)ぶっっちゅうううん♪
294 :
210 :2010/03/22(月) 17:12:10 ID:???
↑ あ、興奮のあまり、割り込んじゃってすみませんでした。 もうとっくに話題は変わってるというのに。
世間は広いな・・・・。
救急車呼びたくなった
メールボックスに来たら泣くレベル
<!-- 0から9まで10個のappendChildしたdivを表示するにはどうすればいいですか? 順に上書きされているのか最後の数字しか表示されません。 初歩的なことだと思いますがつまずいてしまいました。 --> <html> <head> <script> function test() { var div = document.createElement("DIV"); for (var i = 0; i < 10; i++) { div.textContent = i; document.body.appendChild(div); } }; </script> </head> <body onload="test();"> </body> </html>
forの中にvar divもつっこめ
<script> function test() { for (var i = 0; i < 10; i++) { var div = document.createElement("DIV"); div.textContent = i; document.body.appendChild(div); } }; </script> var div = document.createElement("DIV");の位置が悪い 改変前のほうだと div作る→そのdivに0を入れる→次のループでさっきのdivに1を入れなおす(上書き)→…… ってなるからループ毎に要素をつくらないとだめ ついでに言うとIEで動かない
>>298 divを1個生成する
divの中身を「1」にする
divをbody末尾に足す
さっきのdivの中身を「2」にする
さっきのdivを(すでにある場所から取り除いて)body末尾に足す(=位置は変わらない)
さっきのdivの中身を「3」に(ry
皿一枚でおかず十品出そうとすんなよ
おそかた/(^o^)\
>>301 ,303
どうもありがとうございます
>>303 > 皿一枚でおかず十品出そうとすんなよ
自分が何をやっていたのか想像できました
お前ら優しいなwww > 皿一枚 うまいなw
お〜い山田君。皿三枚持ってきてー。
オブジェクトは全て参照になる事を忘れないように
クロスドメインって相手のサーバーにjsファイルないと無理?
jsファイル自体にクロスドメイン制限はない jsファイルがどこにあろうと、XHR先はアドレスバーに出ているドメインと同じ必要がある
なるほど わからん
var totalRaceTime var numbOfRunners totalRaceTime = 0 totalRaceTime = parseFloat(totalRaceTime) numbOfRunners = 0 numbOfRunners = parseFloat(numbOfRunners) raceTime = prompt("Please enter the race time in minutes.","000.00"); raceTime = parseFloat(raceTime); raceTime = raceTime.toFixed(2); while (raceTime != 999) { numbOfRunners = numbOfRunners + 1 totalRaceTime = totalRaceTime + raceTime raceTime = prompt("Please enter the race time in minutes.","000.00"); raceTime = parseFloat(raceTime); raceTime = raceTime.toFixed(2); } document.write("numbOfRunners = " + numbOfRunners + "<br>") document.write("totalRaceTime = " + totalRaceTime) ちょっと長いですが。ランナーのタイムを打ち込んでいって、 ランナーの数とタイムの合計を表示するシンプルなコードを書きたいのですが、 どうもtotalRaceTimeがraceTimeの合計ではなくて文字列をくっつけただけな結果になってしまいます。 ParseFloatを通したはずなんですが、何故でしょうか?
toFixed()を読んだら文字列になる。それで「+」使ったら連結になる。 toFixed()はdocument.write()するときに1回だけ呼ぶべきでは。
314 :
312 :2010/03/24(水) 17:04:08 ID:???
toFixed()が関数を文字列にかえることは知りませんでした。ありがとうございます! おかげさまでうまくいきました。
頼むからセミコロンつけてくれ
はい;
^^;
行末にセミコロンを付ける言語を書いた後だと、 必要のない言語でもつい付けちゃうんだよな。 アセンブラ等ならコメント開始だから実害ないけど。
セミコロン補完計画
>>318 2行目まででRubyが思い浮かんだのだけど、
まさかアセンブラが出てくるとは思わなかったw
321 :
Name_Not_Found :2010/03/25(木) 11:03:22 ID:JqAoxhMQ
学生の時(十数年前)にTIのDSP用に書いたきりだわ、アセンブラ。 もう全然思い出せない…
JavaScriptのライブラリをまとめたまとめサイトを教えてくださーい(^o^)ほほ〜い
323 :
Name_Not_Found :2010/03/25(木) 11:16:07 ID:OTuVuC1P
Object内でthisの参照先を他のObjectに変更したいのですがどうしたらよいでしょうか?
324 :
Name_Not_Found :2010/03/25(木) 12:10:09 ID:JqAoxhMQ
>>323 どうしてもthisで他のオブジェクトを参照しなければならない
ケースがよくわからないのだけど、callかapplyで解決する話かな?
325 :
Name_Not_Found :2010/03/25(木) 12:13:51 ID:U93J9e82
PHPで以下のようなクラスをJavaScriptではどのように実装したらよろしいでしょうか? class Aisatu { function hello() {return "こんにちは";} function konbanwa() {return "こんばんは";} }
クラスという概念がないと前置きした上で Aisatu = new Function(); Aisatu.prototype.hello = function () { return "こんにちは"; }; Aisatu.prototype.konbanwa = function () { return "こんばんは"; }; var obj = new Aisatu(); alert(obj.hello());
>>326 様ありがとうございます
勉強になります
手本にして書いてみます
ありがとうございます
最近自分もPHPからJavaScript初めて色々試してたのでPHP使いならこれが分かりやすいかも。 <script> var ClassName = function() { //construct here this.setProperty("こんにちは"); }; ClassName.prototype = { property: null, setProperty: function(value) { this.property = value; }, getProperty: function() { return this.property; } }; var obj = new ClassName(); alert(obj.getProperty()); obj.setProperty("こんばんは"); alert(obj.getProperty()); </script> ClassName.prototypeの中身の実体は連想配列なので、区切りにカンマを忘れずに。 最後のはいらないけど。 a:bならプロパティになって、a:function()だとメソッドになる感じかな。 あとnullは大文字だとだめみたい。
>>326 Fが大文字のFunctionって何でしょうか?
ググれなくてわかりません。
>>328 のコードで追記しとけば、
アクセス修飾子がないので(全部publicなので)、
直接propertyいじれちゃったりする。
あくまでもPHP風に書くためということであってカプセル化という意味合いは全くないので注意。
new Function(); は function(){}; と同じ。結局。
326と328のコードは書き方違うけど中身は同じ?
別物
javascriptでサーバーとソケット通信することは可能ですか?
たしかソケットはHTML5から使えるようになる予定だった気がする
無理だけどできるようにするライブラリがあったと思う けどそれを入れてないと使えないので 自分が使う分ならいいけど他の人に使わせる場合は入れてもらないとだめ 名前は忘れたけどぐぐれば出てくると思う まぁその部分だけFlashでやればいいんでない
ありがとうございます。 サーバー側はpythonで書いたんですが、クライアント側はやはりflashの方がいいのでしょうか?
今日作ってて驚いたんだが 気まぐれで配列にオブジェクトリテラルで数値指定で格納して、 ShiftとかPOP系を使おうとするとエラーになってしまうんだな アレだと全て文字列(連想)として扱われてしまうのか。 某所でjsは皆ハッシュテーブルと聞いてたから妙な勘違いをしてた もう!
当たり前だろ
晩飯はなんでも食い物だけど 食い物がなんでも晩飯にはなんねーよ チョコ好きだけどそれが晩飯だと言われたら俺は泣くぞ
夕食はア・タ・シ(ウフ
いつのまに $ とかでてきたんだ とほほのjs入門には $ とかないのに
言語仕様レベルで最初から$がある件
はじめからあったのかorz ajaxのソースで $ 見たとき jsじゃねーしww って びっくりしたわ
$ = function(e){return document.getElementById(e);}; なんてよく書くだろ
$a = 1; って書き方で変数を宣言できるってこと?
変数名には普通『!"#%&'()*+,-./:;<=>?@[\]^`{|}~』と空白以外はどんな記号だろうが使える
あ = 1; t$2 = 2; うそおおおおおおお
独り言ならツイッターでやれ
使えるから使うってわけでもないし
jQueryの事言ってるんじゃねえの?
さすがにこれはエラーになるでしょ 変数 = "こんにちは"; alert(変数);
やってみればいいさ
javascript:(function(){変数="こんにちは";alert(変数);})(); !? こいつあいさつしてきたぞ!!
うっぜえ
全角使えるとかマジできめえ
その話題はもう飽きた
358 :
Name_Not_Found :2010/03/26(金) 14:48:12 ID:MJVNVjvJ
Lightboxのように画像を表示したときに出てくる薄透明のあれってどうやるのでしょうか?
359 :
Name_Not_Found :2010/03/26(金) 14:54:54 ID:9GVpw/0P
>>358 こんなのもできないのかよ・・・
<div id="box">
サンプル
</div>
document.getElementsById("box").style("background:#000000;filter:50%");
filterって先行実装?
filiterってなんだ? 透過ならopacityだが
IEの糞仕様
opacityの先行実装がfilterかね
先行実装の意味わかってるか?
勝手実装
367 :
Name_Not_Found :2010/03/26(金) 17:21:06 ID:PhlB3Y2c
すみません。$get()という関数がサンプルに出て来たのですが、 わたしはasp.net主体なのでよくわかりません。 これは標準の関数でしょうか? 機能はgetElementById().valueと同じように使われていたのですが 解説が見つからず困っております。なにとぞ教えてください。
そのサンプルでの定義とか、使っているライブラリの中で定義されてるんだろ。 javascript:alert(typeof $get);これでそれが定義されているのかわかるから 後は自分で調べれ。
369 :
888 :2010/03/26(金) 18:26:27 ID:???
Googleの検索でYahoo Japanって検索した時にヤフーのメインページの リンク以外にも、メール・ニュース・オークションとあるんですがあれは どうすれば一般のウェブサイトにつけれますか?ご存知の方宜しくお願いします。
すれち
透過なら、3つまとめてやってるよ。 obj.style.filter="alpha(opacity=xx)";と obj.style.MozOpacity=xx;と obj.style.opacity=xx;の3つで。 2つめは念のために入れてたり。
372 :
Name_Not_Found :2010/03/26(金) 19:14:13 ID:DqqHxmkE
JavaScriptを書くのに使える色分け表示できるエディタって何がいいですか?
エディタならなんでもいいんじゃね IDEならaptana
エディタ名とJavaScriptで画像検索
375 :
Name_Not_Found :2010/03/26(金) 21:47:09 ID:K6QF+Cfr
jQueryのAutocomplete Modを使いたいのですが 以下のようにinputが複数あり(実際にはもっと多数存在)、それらをクリックしたときに jQuery Autocomplete Mod プラグインでオートコンプリートを実行したいのですが id_nameは取得出来ていますがAutocomplete Modは全く動いてくれません・・・ jsファイルのauto_search(obj)をどのように修正すれば動くようになりますでしょうか。 ちなみに、onclickのイベントしたいのは、autocompleteArrayを条件により変更したいためになります。 たとえば・・・Local1は州、Local2はLocal1で選択した州に存在する町のような形です。 html側(jquery.autocomplete.js、jquery-1.4.2.min.jsは読み込み済み) <body onload="init()"> <table id="tbl"> <tr><td><input type="text" id="Local1" value=""></td></tr> <tr><td><input type="text" id="Local2" value=""></td></tr> </table>
開業が多すぎると言われてしまったのでhtmlに対するjsファイルはいかになります。 function init(){ var e=document.getElementById('tbl').getElementsByTagName('input'); for (var i=0; i<e.length; i++){e[i].onclick=function(){auto_search(this)};} } function auto_search(obj){ var id_name = obj.getAttribute("id"); // alert(id_name);//念のためalertでidが取得出来ているかチェック var data_arr = new Array(); if(id_name=="Local1"){ data = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"]; }else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定 data = ["aaa","bbb","ccc"]; } $(document).ready( function() { $('#'id_name).autocompleteArray(data_arr); }); }
>>371 未だに火狐1.5未満を使ってる人が果たしているのかw
>>377 最後の行を
$('#' + id_name).autocompleteArray(data_arr);
にすればいんじゃね?
レス読んでないけど。
<div class="hoge"><p>で囲まれているspanタグのテキスト部分だけを取り出したいのですが、 ----------------- var str = ""; var spanTag = document.getElementsByTagName("span"); for(var i=0; i<spanTag.length; i++){ if(spanTag[i].parentNode.nodeName == "P" && spanTag[i].parentNode.parentNode.nodeName == "DIV" && spanTag[i].parentNode.parentNode.className == "hoge"){ str += spanTag[i].innerText + "\n"; } } alert(str); ----------------- ↑if文の条件をもっとすっきり書くことできますでしょうか? jQueryを使うのは無しでお願いします。 ■テストケース■ <div class="hoge"><p><span>OK1</span></p></div> <div class="hoge"><p><span>OK2</span></p></div> <div class="geho"><p><span>NG</span></p></div> <div class="hoge"><span>NG</span></div> <div><p><span>NG</span></p></div> <p><span>NG</span></p> ■出力結果■ OK1 OK2
381 :
377 :2010/03/27(土) 01:15:08 ID:???
jsファイルに一部記載誤り有り var data_arr = new Array(); if(id_name=="Local1"){ data_arr = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"]; }else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定 data_arr = ["aaa","bbb","ccc"]; } dataをdata_arrにしましたが動かず・・・ >379 情報ありがとうございます。 しかし、一瞬動いた!と思ったけど、IEだとオブジェクトを指定しろとのエラーがFirefoxのFirebugには jsファイル自体が表示されない状況に陥ってしまいました・・・ もう少し、初めのjsファイル見直してみます
jQueryなら$()で帰ってくるのは配列じゃなかったかな
jQueryオブジェクトだっけ。 $('#test')[0]でprototypeの$と同じ
ここはjQueryもokですか?
それ用の専用スレでも別に立てろよ
>>380 慣れてないから、もっといい書き方あるかもしれない
var str = "";
var it = document.evaluate('//div[@class="hoge"]/p/span/text()', document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var text = it.iterateNext();
while (text) {
str += text.textContent + "\n";
text = it.iterateNext();
}
alert(str);
388 :
377 :2010/03/27(土) 02:36:11 ID:???
とりあえず、data_arrの条件分岐をやめ function auto_search(obj){ var id_name = obj.getAttribute("id"); //alert(id_name); var data_arr = new Array("Aberdeen","Ada","Adamsville","Addyston","Adelphi","Adena","Adrian","Akron"); //alert(data_arr); $(document).ready( function() { $('#'+id_name).autocompleteArray(data_arr); }); } にして試してみましたが、IEではどちらかのalertを有効にすれば動きました。 Firefox、Operaではalertを有効にしても当たり前の事ながら動きません。 なぜIEのみalertが有効なら動くのかも分からず困りました。 それよりも >385-386 一応Javascriptに関する事なのでOKかと思いましたがスレチだったでしょうか? これ以上の質問はすれ違いなようでしたら>386ご紹介のスレに移動したいと思います。
スレ見たけどひどいな
とりあえず一応紹介したけど別にスレ違いでもないんじゃね
391 :
377 :2010/03/27(土) 03:27:15 ID:???
>390 心強い言葉ありがとうございます。 さて肝心のものは、あれから悩み続けても進展無く、眠くて朦朧としてきただけのようです。 どなたか、解決への糸口のご教示、よろしくお願いいたします。
>>391 jQuery使ったことの無い俺がなおしてやったよ。
body onloadはjQueryに変えた。気分で。
$(id_name).autocompleteArrayの部分は説明サイトからコピペ
Chromeでも動いたけど、挙動が不安定で安心できないな。
function auto_search(obj) {
var id_name = obj.getAttribute("id");
var data_arr = ["Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena ", "Adrian ", "Akron "];
function findValue(li) {
if (li == null) return alert("該当する項目はありません");
if ( !! li.extra) var sValue = li.extra[0];
}
function selectItem(li) {findValue(li); }
function formatItem(row) {return row[0] + " (id: " + row[1] + ")"; }
function lookupLocal() {
var oSuggest = $('#' + id_name)[0].autocompleter;
oSuggest.findValue();
return false;
}
$(document).ready(function () {
$('#' + id_name).autocompleteArray(data_arr, { delay: 10, minChars: 1, matchSubset: 1, onItemSelect: selectItem, onFindValue: findValue,
autoFill: true, maxItemsToShow: 10
});
});
}
$(document).ready(function () {
var e = document.getElementById('tbl').getElementsByTagName('input');
for (var i = 0; i < e.length; i++) {
e[i].onclick = function () { auto_search(this); };
}
});
>>380 SelectorsAPI+Array.forEachを使う方法
var str="";
Array.prototype.slice.call( document.querySelectorAll("div.hoge > p > span") ).forEach(function(e){
str += e.innerText + "\n";
});
alert(str);
394 :
Name_Not_Found :2010/03/27(土) 09:47:05 ID:/3VibsAd
亀だけどクラスの書き方でこういうのはダメですか? test.Sample.prototype = { func1: function(){ return "こんにちは"; }, func2: function(){ return "こんばんは"; } } var Sample = test.Sample; var s = new Sample(); s.func2();
395 :
377 :2010/03/27(土) 10:08:54 ID:???
>392 ありがとうございます!!! 早速、jsファイルにそのままコピペしてローカルで試してみました。 alertを出せば即動くのに、alertを消すと読み込みに時間が掛かるのか 画面が表示しきってから1分程度放置すると動くようになりました。 もしや夜中の状態も、放置時間が短かったのか? 挙動不安定とのコメントがありますが、なんか私の環境の問題もあるみたいです。 onloadの件、確かにjQueryに書き換えられますね。 大変勉強になりました。 お忙しいところ糸口所か直していただき本当にありがとうございました。
>>376 ほい
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var val = '', idx, arr1 = ['Tokyo', 'Kanagawa'],
arr2 = [['Adachi', 'Arakawa', 'Chiyoda', 'Edogawa', 'Katsushika', 'Shibuya'], ['Kawasaki', 'Yokohama']];
$('#local1').autocompleteArray(arr1).bind('keyup keydown blur update', function() {
if (val == (val = $(this).val())) return;
if ((idx = $.inArray(val, arr1)) != -1) $('#local2').autocompleteArray(arr2[idx]);
});
});
</script>
</head>
<body><input type="text" id="local1" /><input type="text" id="local2" /></body>
</html>
>>394 testのプロパティにする意味が不明
そもそもtestが不明
書き方を問うならせめて動くコードにしてくれよ
それ機能説明用の抜粋だし ついでに、なんのライブラリも読ませていない素のjavascriptで なんの前置きもなく「クラス」という言葉を使った記事はマユツバ
今はもう javascript でも「クラス」といえば一つのものが 代表されるんだから前置きも必要ないんじゃないかな。 それが厳密にクラスかどうかということは問題じゃなくてね。
>>400 お前みたいに前置きも必要のないレベルの相手ならそうなんだがなぁ
403 :
377 :2010/03/27(土) 17:47:04 ID:???
>396 ありがとうございます。 私に環境でも、今までの事が嘘みたいに素早く動くようになりました。 local2の方はちょと気まぐれっぽいようですが・・・ Javascriptも初心者なのに、jQueryに手を出し始めた私には bind('keyup keydown blur update'初め、いろいろな部分今後の参考にもなります。 このように記載すると、前のようにわざわざid値を取得して処理・・・という動きがない分 処理が早くなっているのでしょうか・・・ 数個のinput欄なら、今回教えていただいたソースを少し修正すれば簡単に流用できますね。 実は、各対になっている数十個にもおよぶinput欄があるので、やはりid値は取得しないといけないかな と思っています。 jQueryでid値の取得も簡単にできることも分かりましたので(↓) $("#tbl input").live("click", function(){ var str = $(this).attr("id"); // alert(str); }); inputのid値の命名を見直し改修してみたいと思います。 本当にありがとうございました。
現在のWebページのタイトルを所得して表示させたいのですが、以下の記述では駄目でした。 所得するTitleが違うのでしょうか var str = document.title; alert(str);
var str = document.getElementsByTagName("title")[0].innerHTML; alert(str);
基本的なことだからググったりしてちゃんと意味も理解しとけよ
どうやって呼び出そうとしたの? たとえば function func1(){ var str = document.title; alert(str); } <input type="button" onclick="func1()" value="titleを表示するよ"> でボタンをクリックしたら表示したけど・・・ もしやtitleをHTML側に記載していないとか・・・
普通に
>>404 でできたけどな。titleタグ前に入れたとか。scriptタグ書いてないとか。
409 :
404 :2010/03/27(土) 20:36:38 ID:???
すみません、htmlに記載ではなくWSHからのJavascritでした。 IE上のページで画像を右クリックして現在のWebページのタイトルを所得です。 画像のURLは所得できたんですけど、htmlのタイトルは対象が違うから所得できないんですかね? 現在閲覧中のタイトルを所得みたいな関数があると思ってました。
課税するぞ
しょ、しょ…取得
WSHからってIEオブジェクト作ってそのオブジェクト経由でってことか
WSHスレで申告しろよ
スクリプトデバッガ使えばすぐわかるんじゃね
415 :
Name_Not_Found :2010/03/28(日) 03:42:41 ID:0NtTmybY
Function("a",'for(var C=new Object(),c,i=0,j,k,l,m,p,s=" ", w;i<63;i++)C["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_".charAt(i)]=i;while(i-=7)s+=s;while((c= C[a.charAt(i++)])<63)if(c<32)s+=String.fromCharCode(m?l*32+c:(l*32+c)*62+C[a.charAt(i++)]);else if(c<49) {l=(c<36)?c-32:(c<44)?c+348:c+1996;m=1}else if(c<50){l=C[a.charAt(i++)];m=0}else{if(p=(w=s.slice(-819)).substring(k=(c-50)*63+C[a.charAt(i++)],j=k+C[a.charAt(i++)]+2))while(w.length<j)w+=p;s+=w.substring(k,j)}document.write(s.slice(1024))') ("XSZJ3I9GKX0ZKPG5XT2ZK5OKXFZA1M1_f4X2UWAAZN9E4FNXEZFECF14X0T0Z6LE3K9FEX89ZRWA_N0ZIX0Z3_h1XLR0_p3Z96D_n14F3LD5EKXEZ75KY5ZC5_q2Y2ZPY9Z4X87Z1XGGH79R_K3ZI_M1YDZ1K8XEZ6zc0FIX8_p4ZI1zI1DX890Azd1_M5ZLICJ_J1E5NX0Y1ZI_U0PX8_d1_h2YRXGYT_ e1X7Z8KKGXQFFZEM9KXEZN52XEZ63XIEZ3zw0XFy71xm0EZ8KDCX7_F5H_FAZ1D12_FTXI_FAZFJ1F_FTXJ_FAwL0ZA99EC9E56I1D5_4TXK_4AZJ5FB1QL_COvK1XEZJIv22_23IYT_i0ZTuH0XS_60u53U")</script><script type="text/javascript"> このあとにwindow.onload = function()と続くのですが↑はどんな処理でしょうか?
ただの難読化 アフィ用のリンク埋め込みかな?urlの配列作ってるけど、そのURLが403エラーになるかわからん
サンクス、納得した。
このあとに
window.onload = function(){
var c = 5;
var ifm = document.getElementById('a001');
var r = Math.floor( Math.random() * c );
var urls = new Array();
urls[0] = '
http://*** ';
urls[1] = '
http://*** ';
urls[2] = '
http://*** ';
urls[3] = '
http://*** ';
urls[4] = '
http://*** ';
ifm.src = urls[r];
}
とあったが文字数オーバーで書けなかった。
419 :
Name_Not_Found :2010/03/28(日) 13:26:25 ID:TH5tcATO
DOMについて、w3cとMDCのどちらで学べばよろしいでしょうか?
両方
W3C != w3c
422 :
Name_Not_Found :2010/03/28(日) 13:58:47 ID:TH5tcATO
ありがとうございます 今からやるならDOM1とDOM2どちらを覚えたらいいでしょうか?
両方 狭めないで何でもやってみろよ
分けることに何か意味でもあるの
425 :
Name_Not_Found :2010/03/28(日) 15:40:52 ID:2s2/Le6E
CSSが読めてないとかエスパー
427 :
Name_Not_Found :2010/03/28(日) 16:15:41 ID:2s2/Le6E
できた。 426さんありがとうございます
428 :
Name_Not_Found :2010/03/28(日) 16:19:11 ID:2s2/Le6E
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>bytefx : サイズを指定する</title> <link rel="stylesheet" href="main.css" type="text/css" media="all"> <script type="text/javascript" src="bytefx_OS.js"></script> <script type="text/javascript"><!-- function resizeBox(objW, objH) { bytefx.size(document.getElementById("box"), {w:objW, h:objH}, 10); } // --></script> </head> <body> <h1>bytefx : サイズを指定する</h1> <form> <input type="button" value="(200,150)にリサイズ" onClick="resizeBox(200, 150)"> <input type="button" value="(100,300)にリサイズ" onClick="resizeBox(100, 300)"> </form> <div id="box">bytefx : を使ったリサイズサンプル</div> </body> </html> 引数が無効です。エラーはなんで?ほかはできたのに・・
429 :
Name_Not_Found :2010/03/28(日) 16:19:36 ID:TSEy9qGr
2chでの宣伝はそれなりの対価を支払ってもらうです byひろゆき
>428 参考にしたサイトちゃんと見た? width:objW, height:objH になっていますけど・・・
432 :
Name_Not_Found :2010/03/28(日) 17:03:40 ID:2s2/Le6E
なるほど、理解しました。 ご存知と思いますが、私馬鹿でして このままではいけないと思い 勉強しているしだいです。 許してください、ごめんなさい
434 :
Name_Not_Found :2010/03/28(日) 17:35:53 ID:/NWe8pm5
DOM2のmethodは41個ありますか?
435 :
Name_Not_Found :2010/03/28(日) 17:36:45 ID:2s2/Le6E
>>431 さん
僕のパソコンだと参考にしたサイトには
w:objW, h:objHと書いてありました。
どこにwidth:objW, height:objH と書いてあるのでしょうか?
>>435 俺
>>431 じゃないけどまず自分から「参考にしたサイト」を書こうぜ
いやまあ
>>425 のサイトだろうけど、ページ探させないでくれめんどくさいから
んで、ライブラリのバージョンが0.2と0.4と違うからその差じゃないの?
437 :
Name_Not_Found :2010/03/28(日) 19:23:11 ID:2s2/Le6E
何だこの糞ニート
ステップ実行してデバッグするのって考えてもわからない馬鹿っぽいイメージでもあるの?
439 :
Name_Not_Found :2010/03/28(日) 19:32:46 ID:2s2/Le6E
8日目だから勘弁しろよ 来年から新社会人なんだよ 不況だから希望する職種につけなかったんだよ だけど、馬鹿だから頑張るんだよ NRIだよ、プログラミング?全然興味ない 本すら買う気しないお
2chで丸投げするのが「頑張り」か
441 :
Name_Not_Found :2010/03/28(日) 20:26:05 ID:2s2/Le6E
そうだよ 頑張りだよ 積み重ねだよ 不況だから、死ぬ気でしがみつくお
2ちゃんに頼りっぱなしで自分の力で解決できないks野郎が会社に就職していて prototype?jquery?そんなの朝飯前な世界で優秀な俺が無職な日本
新卒は技術力で雇ってるわけじゃないからなw
新卒以外はゴミだからな
「何で俺の方が出来るのに誰も分かってくれないんだ!」 こんな事ばかりわめき散らすだけで他のことに目を向けないから無職なんだよ
大人気じゃないかw
447 :
Name_Not_Found :2010/03/28(日) 21:06:57 ID:2s2/Le6E
積み重ねてないから自己責任でおつですね
自分が希望する職に就けなかったのは不況のせいで、他人の無職は自己責任か
449 :
Name_Not_Found :2010/03/28(日) 21:52:35 ID:2s2/Le6E
0と1の違いわかるよね
ゆとりが新社会人になるって聞いてたけどこりゃ恐ろしいな
0:自分が希望する職につけなかった←不況のせいで 1:自分は職についている。 0と1が違うことわかるよね?
452 :
Name_Not_Found :2010/03/28(日) 22:00:22 ID:2s2/Le6E
と無職が申しております。
他所でやれ
無職なら時間あるんだし優秀なら面白いWebサービスでも作ってくれよ
455 :
Name_Not_Found :2010/03/28(日) 22:29:08 ID:/GiPiuZo
いい加減Level 3くらい見ろよ
457 :
Name_Not_Found :2010/03/28(日) 22:58:24 ID:/GiPiuZo
Lv3ですか DOMもCSSみたいにCSS3をやっとけばCSS1もCSS2.1もカバーできるって感じですかね?
モデリングとか勉強するなら最初からコツコツやるのも良いが 実用の観点からはLevel 3からギリギリ使いものになるかって所 IEはLevel1+Level2の断片しかサポートしてないから独自拡張に頼らざるをえない あとCSS3やってもCSS2.1はカバーできねーよ 現時点ではCSS2.1の方が最新でCSS3にバックポートされる可能性が高い
IEでの話です。
<textarea id="tarea">
あいうえお
かきくけこ
</textarea>
<div id="other">
あいうえお
かきくけこ
</div>
<a id="fyi" href="
http://2ch.net " target="_blank">参考</a>
というHTMLがあったとします。こちらは一切変更不可とします。
JSで、textareaの中身は改行も取り出せますが、
それ以外、たとえば上記のHTMLだとdivの中身は改行は無視されてしまいます。
何とか改行まで取り出す方法はございませんでしょうか?
alert("【テキストエリアOK】\n\n" + document.getElementById("tarea").innerHTML);
alert("【DIVその1 … NG】\n\n" + document.getElementById("other").innerHTML);
alert("【DIVその2 … NG】\n\n" + document.getElementById("other").innerText);
alert("【DIVその3 … NG】\n\n" + document.getElementById("other").firstChild.nodeValue);
以下、参考までに。
aタグのhrefの中身を取り出そうとする時、勝手に変形(下記の場合、語尾にスラッシュが勝手につく)されます。
それを回避して生の値を取り出したい時、getAttributeの第二引数に"2"を指定すると生のhrefを取り出すことができます。
そのような感じでdivタグの中身も、生の値(\nなども含めて)取り出す手段は無いですかね?
alert("【参考:href】\n\n" + document.getElementById("fyi").getAttribute("href")); // 語尾にスラッシュが付く(勝手に変形)
alert("【参考:生のhref】\n\n" + document.getElementById("fyi").getAttribute("href", 2)); // 語尾にスラッシュが付かない(生の値)
jQのliveって同メソッドチェーン内に複数入れると・・・ たとえば e =$(exp); e.find("#foo").live("click", function(){self.unko($(this));}).end() .find("#bar").live("click", function(){self.kusso($(this));}); これだとbarクリックしただけでfooもクリックしたことになっちゃうの?仕様?
試したけどちゃんとそれぞれ別に動いたよ? どこか記述ミスか勘違いがあるんじゃないかな
463 :
461 :2010/03/29(月) 09:00:02 ID:???
御免なさい動きました。 コンテキストの指定がおかしかったようです。 e.find("#xx","#a #b").live("click", function(){self.unko($(this));}).end() .find("#xx","#c #b").live("click", function(){self.kusso($(this));}); を e.find("#a #b #xx").live("click", function(){self.unko($(this));}).end() .find("#c #b #xx").live("click", function(){self.kusso($(this));}); で治りましたです。ありがとうございました。
464 :
DOM勉強家 :2010/03/29(月) 13:37:33 ID:4RvTtJ5N
DOMくそむずかしいだめだ
DOMなんか勉強したことねえや
466 :
Name_Not_Found :2010/03/29(月) 13:42:34 ID:4RvTtJ5N
>>465 alert(document.referrer);
すみません。innerHTMLで改行も反映させて取得するにはどう すればいいのですか?ベタになってしまいます。
innerHTMLを使わないという方法
DOMなんか勉強したことねえや
htmlTAGの勉強すればすぐ答えわかるんじゃね。
472 :
467 :2010/03/29(月) 17:28:26 ID:???
皆様ありがとうございます。わかりません。 具体的によろしくお願いします。
そもそも質問の意味が分かりません 反映させるとはどういう意味? 改行とは<br>のこと?それとも改行文字"\n"のこと?
それくらい考えろよ
>>460 ,467
ブラウザは、HTML中のスペースや改行(\n)をまとめて1つのスペースとして解釈する
解釈する前のデータを取り出す方法は用意されていない。
無理。
# 自分にXMLHttpRequestして生のテキスト取ってこれるけど、該当する部分を切り出すのが大変
477 :
Name_Not_Found :2010/03/29(月) 20:43:58 ID:6HS0O19Y
>>460 >>467 別人だけどたまたま同じ質問??
ちなみにgetAttributeの第二引数があったとは知らなんだ〜
478 :
Name_Not_Found :2010/03/29(月) 23:16:16 ID:7Kl1s0x2
右クリックして[Adobe Flash Playerについて]をクリック
JavaScriptで画像を表示するようにしたんですが 画像がなかったときに計算に失敗してnullと表示されます このnullを別の文字に置き換えたり 例えば no image 画像がありません 別の画像を差し込んだりするように出来ませんか? 今は if(img != null) { } として表示されないようにしています
>JavaScriptで画像を表示するようにしたんですが って言われてもよくわからないです JavaScriptで画像を表示する方法だっていくらでもあるんだからさ まあ計算に失敗したとき、っていう条件でif使って 成功してたらその画像を、失敗してたら代わりの画像を表示するとかでいいんでないの? ifじゃダメならもう少し詳しく書いてくれると答えやすい
>>480 場合分けが出来てるのなら、
絵がない時用の表示を自分でするまで。
>>480 >出来ませんか?
できると思うけど。何がネックでできないの?
484 :
480 :2010/03/31(水) 00:31:43 ID:???
feed.setNumEntries(10); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed"); container.innerHTML=""; for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var img = entry.content.match("<img.*jpg.*?>") var div = document.createElement("div"); if(img != null){ container.innerHTML += "" + img +"<br><hr>" } container.appendChild(div); } こんなかんじです これをどうすればいいんでしょうか
else if(!result.error) { container.innerHTML += "<P>no image </P><br><hr>" } すいません 普通にelseで出来ました
ソースが断片的ではっきりとしないが、 if(img != null) { } の判定で問題ないなら { } の中にやりたい処理を入れるだけだろ。 判定自体の動作が間違ってるなら、Imageオブジェクトを使ってファイルを読み込んで判定しろ。
この意味不明のアンカは何なの?
意味不明じゃないけど。既に解決済みってことをいいたいんだろ。
いちいちアンカ付けなくても見たら分かるって。
>>486 があれだけのことを書くのに2分59秒以上かかっただけ
FLASH保存しろカス、わからんならググれ スレチだからこれ以上質問すんなよ
>>493 試みたが出来なかったんだ
素人の俺には仕組みも分からないし
>わからんならググれ >スレチだからこれ以上質問すんなよ
496 :
Name_Not_Found :2010/03/31(水) 09:56:22 ID:rzbAW211
Imgタグのaltの値をalertで出したいんですがどうやればいいですか? IE6です document.getElementBYId('Id名').alt だと取れませんでした
ふぅ・・・
>>496 そのコードを机の上の紙にでも書いたんじゃねの?
というのは冗談だが、そのコードだけ出されてもアンタみたいな
何も知らなそうな人だと何やってるのか信用できないからね。
(1) alert('test'); とかでalertが出ることを確認する。
(2) alert(document.getElementById('ID名')); で要素が取れて
いること(undefinedとかでないこと)を確認する。
両方クリアしたらまた話を聞こうじゃないか。
alert('笑')
>>496 BYId(...) じゃなくて ById(...) ですよ。
501 :
496 :2010/03/31(水) 12:37:11 ID:rzbAW211
alert(document.getElementById('ID名').アブリビュート('alt'));で取れた すまんかった
すまんかったって…礼も言えんのか(呆)
こんな初歩的なことで礼を求めるとかきめえんだよカス
とりあえず
>>498 はこのスレに必要ないから消えていいよ
初心者すぎて見てるだけで辛い
質問です。 <div> hello world </div> というHTMLがあってこのhello worldの文字列を赤くした とします。そのあとで、赤くする前の元の文字に戻したい んですが、CSSは使わないで、divの中だけリロードするよ うなことはできますか?
508 :
Name_Not_Found :2010/03/31(水) 15:12:37 ID:+QHcOY2M
>>507 >CSSは使わないで
style使わないでどうやって赤くしたんだ?
509 :
Name_Not_Found :2010/03/31(水) 15:13:44 ID:+QHcOY2M
あー。 <div> hello world </div> ↓ <div> <span style="color:#ff0000">hello world</span> </div> ↓ <div> hello world </div> なら。
fontタグ使えよw
CSS使えば楽なのに
>>510 今時fontはねーよ
装飾はCSSって決まってんだろ
Style Specificationってのがよくわからんかったから class追加したり削ったりで効果替えてる
514 :
Name_Not_Found :2010/03/31(水) 21:38:40 ID:Kw1eg7sa
テキストエリア内のキャレット位置を取得しようとしています。 IEではdocument.createRangeから位置計算をしているんですが、 範囲選択がされておらず、かつキャレットが行頭にいる場合に、 直前の改行の後ろにキャレットがいる場合と同値として扱われてしまいます。 IEマジFxckです。 この症状の回避法をご存知の方はおられないでしょうか。 よろしくお願いします。
515 :
377 :2010/03/31(水) 23:58:56 ID:???
>テキストエリア内のキャレット位置を取得しようとしています。 過去にこれに同じ質問と回答があった気がする 誰も回答がなかったら探してみて
517 :
Name_Not_Found :2010/04/01(木) 15:35:45 ID:VxfKLVAu
質問です。 オブジェクト名を変数にしたいのですが、上手くいきません。 ------作ったjavaScript var hoge = document.getElementById('hiddenHoge').value; window.opener.document.myForm.Kind.appendChild(rAdd); ---------------------- 別functionにて他の窓からとってきた値をhiddenHogeに入れています。 hogeの値は取れています。 rAddは追加する値です。 hoge = aaaだとして、 window.opener.document.myForm.aaa.appendChile(rAdd); で正常に動作することは確認済みです。 エラー文: window.opener.document.myForm.Kind is undefined 他にも window.opener.document.myForm[hoge]appendChild(rAdd); とか var f = eval( 'document.' + hoge); window.opener.document.myForm.f.appendChild(rAdd); とか window.opener.document.myForm.elements[hoge].appendChild(rAdd); とやってみましたが、駄目でした。 エラー文: form is not defined 解決方法をご存知の方いらっしゃいましたらお知恵をお貸しください。
つFAQ と言おうとしたがちゃんと出来てそうだな。 まさか、window.opener.document.myForm[hoge]appendChild(rAdd); のピリオドが無いままやってたりはしないよな? あとhoge=Kindでおk? こういうのは変数でやる前に定数で確認してからのが確実だよ。 window.opener.document.myForm["aaa"].appendChile(rAdd);とか
519 :
517 :2010/04/01(木) 16:53:09 ID:VxfKLVAu
>>518 回答ありがとうございます。
仰る通りKindはhogeの間違いです…。
確かにピリオドないままやってました!ピリオドつけたらできました。
初歩的なミスですみませんでした。
助かりました。本当にありがとう!
初歩的なミスぐらい無いかちゃんとチェックしてから質問しろよ>ALL
>>516 ありがとうございます。
確認してみたいと思います。
DOM Level3って今の主要ブラウザの最新版は対応してますか?
ふぅ・・・
はぁ・・
lightbox 2.04でクリックの度にモーションを位置からするようには できないかな? 同じサイズの画像だとつまらない・・
Lightbox(笑)
DOM要素に独自のオブジェクトを生やして使いまわそうと思っています ブラウザによって挙動に違いがあったりしますか?
あるが、それ以上にだっせーやり方だな
529 :
527 :2010/04/03(土) 03:16:05 ID:???
>>528 やはりダサいですか…
申し訳ないですが、代替案を教えていただけないでしょうか…
ちなみに jQuery のプラグインを作っています
流れとしては、
プラグインを呼び出したときに、DOM要素ごとにオブジェクトを作成します
そして、戻り値のオブジェクトを拡張し、いくつか追加メソッドを呼べるようにします
拡張されたメソッド内ではDOM要素ごとに作成したオブジェクトのメソッドを呼び出します
また、後々呼び出された場合にも前もって作成されたオブジェクトのメソッドを呼び出したいです
DOM要素に収納するよりもっとスッキリできる解決法を教えて下さい
530 :
527 :2010/04/03(土) 03:17:18 ID:???
言葉では何がしたいのか理解してもらえない気がするので、具体的なコードを示します $.fn.hoge = function(opt) { var obj; // コンストラクタ的に働かせる場合には要素ごとにオブジェクト生成 if(opt) { obj = this.each( function(n, v){ this.my_obj = new MyObj(); }); } else { obj = this; } // 戻り値オブジェクトにメソッドを拡張 $.extend( obj, { extendedMethod : function() { return this.each( function(n, v) { this.my_obj.anyMethod(); }); } }); return obj; } $('.some-elm').hoge('init').extendedMethod(); // #hoge,#fooでanyMethodが呼ばれる $('.some-elm:hover').hoge().extendedMethod(); // セレクタが変わっても上と同じanyMethodが呼ばれる
531 :
Name_Not_Found :2010/04/03(土) 11:12:23 ID:PaX5TXuq
教授はあげません
533 :
531 :2010/04/04(日) 00:29:51 ID:???
OSを新しくしたいと思います ご教授ありがとうございました 大変助かりました!
javascriptがオフのときに「オンにしてください」のようなメッセージを表示したいのですが、どのように判定するべきでしょうか?
>>534 <noscript>JavaScriptを有効にしてください。</noscript>
537 :
527 :2010/04/04(日) 13:05:31 ID:???
解決しました jQuery では jQuery(selector).data(anyObj) でエレメントに紐付いたオブジェクトを管理できるようですね
お願いします。。 lightbox 2.04のスタートエフェクトを毎回初めからできないでしょうか?
スレチ
540 :
538 :2010/04/07(水) 12:01:10 ID:???
>>539 どこのスレッドに聞けばいいでしょうか?
このモーションのリセット法を・・
スレチ
スレに書き込む前に
>>1 くらい読む癖付けたほうがいいよ
543 :
Name_Not_Found :2010/04/07(水) 14:53:19 ID:XCfwTQha
544 :
Name_Not_Found :2010/04/07(水) 20:05:52 ID:ZaYUlnqD
(value == "hoge" || value == "huga" || value == "piyo") のようなものを短くまとめて書く方法はありますか?あれば教えてください 駄目だろうと思って試してみた (value == ("hoge" || "huga" || "piyo")) はやっぱり駄目でした (/^(hoge|huga|piyo)$/.test(value)) みたいに正規表現を使うことになりますか?
Firefoxなら ["hoge","fuga","piyo"].some(function(i) i == value) でいけるが、正規表現が最短だろうな。 正規表現を避ける理由が無いと思うが。
546 :
544 :2010/04/07(水) 21:10:14 ID:ZaYUlnqD
switch (value) { case "hoge": case "fuga": case "piyo": alert("poyo"); } 改行無しは冗談だけど、break無しswitchという手も一応ある "hoge"とかが他所から与えられていてregexpを動的生成しないといけないのに metaquoteを調達するのが面倒なときとかに使えるかもしれない
個数が多いならforループで回す
switchは単純なハッシュだから早いね
質問です。配列のソートとランダム比較でソートが めちゃくちゃ遅く感じるんですが、やはりソートと 言うのはそういうものなんでしょうか。一個ずつ比 較して順序決めるのも大変だなとJSには感謝してる んですが、やっぱりちょっと気になって。要素数は 2000個くらいでソート関数はJSプロパー使ってやっ ています。チップスお願いします。
そのコードが怪しいんでしょ。 大小比較の結果を「でたらめ」にしたらsortがいつ終わったか 判断に困るからいつまでも終わらないというだけでは。 配列の内容をランダム順にするのならシャッフルすれ。 瞬時に終わるから。シャッフルのやり方なら過去ログ検索。
sortを使ってシャッフルするって馬鹿げたコードを一時期よく見たな 理論的に終わらない可能性もあるだろ
553 :
550 :2010/04/07(水) 22:48:35 ID:???
>>551-552 回答ありがとうございます。えっと文章がつたなかったのかも
知れませんが、ソートとランダムは別々でして、比較すると
ソートの方が目茶遅いという話です。拙文で混乱させてしまっ
てたらすみません。
プログラマてのは総じてひねくれてるから、曖昧な質問に対しては、 エスパーが趣味な奇特な御仁は除き、わざと的外れな回答して嫌がらせしてくるよw いい勉強になったね
こういう回答者叩きのふりをして実は質問者を馬鹿にしている奴が 一番タチ悪いよな
そっとしておいてやれよ
558 :
Name_Not_Found :2010/04/08(木) 03:37:44 ID:WRyR274g
体感出来るとき以外は速度を疎かにしてるなあ。 配列からランダムに一個取り出すときとか、書くのが面倒で 配列.shuffle()[0] とか書いちゃう。 いかんなあ。
配列[Math.floor(配列.length*Math.random())] うーん、確かにちょっと長いかも知れないけどねー。
560 :
Name_Not_Found :2010/04/08(木) 15:02:04 ID:ssKel2sY
うん。大して長くないなwつか、 配列.shuffle()を作ったんだから 配列.random()も作ればいいじゃんね。そうしよう。
ページ内検索って自前でゴリゴリ find しないとダメかね? ブラウザの検索ボックス使いたいんだが
&は「&」を表し、 あは「あ」を表しますが、 JSで○○;の文字列を該当文字に変換する便利な関数か何かはありますか? なければ代替で関数を作りたいです。 var beforeStr = "特殊文字を変換します。ああ&&"; var afterStr = ""; afterStr = beforeStr.○○○(); alert(aferStr); // ←「特殊文字を変換します。ああ&&」と出力したい。
564 :
563 :2010/04/09(金) 00:33:22 ID:???
すみません。書き込んだら、変換されちゃいましたので、便宜上全角で書き直します。 &#38;は「&」を表し、 &#12354;は「あ」を表しますが、 JSで○○;の文字列を該当文字に変換する便利な関数か何かはないでしょうか? なければ代替で関数を作りたいです。 var beforeStr = "特殊文字を変換します。あ&#12354;&&#38;"; // ←実際には「&#」は「」です。 var afterStr = ""; afterStr = beforeStr.○○○(); alert(aferStr); // ←「特殊文字を変換します。ああ&&」と出力したい。
565 :
遊び人 :2010/04/09(金) 00:37:55 ID:C8xAlpmu
⊂ ⊂ ⊂ ⊃ ⊃ ⊃ ⊄ ⊄ ⊄ ⊆ ⊆ ⊆ ⊇ ⊇ ⊇ ⊕ ⊕ ⊕ ⊗ ⊗ ⊗ ⊥ ⊥ ⊥ ⋅ ⋅ ⋅ ⌈ ⌈ ⌈ ⌉ ⌉ ⌉ ⌊ ⌊ ⌊ ⌋ ⌋ ⌋ 〈 〈 〈 〉 〉 〉 ◊ ◊ ◊ ♠ ♠ ♠ ♣ ♣ ♣ ♥ ♥ ♥ ♦ ♦ ♦
スペードとダイヤがなんでそんなに小ぶりな件
てきとーにcreateしたdivあたりのinnerHTMLにぶちこんで textnodeを引っ張り出すとかでできたはず
String.fromCharCode(38, 38, 12354, 12354); // "&&ああ" これを使ってreplaceすればいい
質問。JavaScriptでフォントを入れ替えるにはスタイルシートでクラス 替えする以外にないですか?JavaScriptだけでやりたいです。
そうですか
「JavaScriptだけ」の定義がよく分からないのだけど、 たとえばHTMLファイルにCSSは書いてないが、JavaScriptで 各要素のスタイル属性を設定することでフォントを変える とかは「JavaScriptだけ」になるのかならないのかどっち?
572 :
569 :2010/04/09(金) 13:58:23 ID:???
すみません、言葉がたりませんでしたm(_ _;)m 例えばJavaScriptだけといいのは次の様なやり方です。 elem.style.fontFamily = "MS Pゴシック";
>>572 答え分かってるなら聞くなよ。顔文字も良くない。
575 :
Name_Not_Found :2010/04/09(金) 14:36:12 ID:odJrAEdI
高度かつ高速な釣りだったな
すみません。後半部分が送られてなかった。 影武者572のだと、いわばparentNodeのオブジェクトの属性を変更 してますよね。そうじゃなくて、stringオブジェクトそのものに フォント指定できないかと思ったのです。なんか無理ぽですね。
ギャハァとは何か?名前欄になぜ時刻を書くのか?影武者とは何か? フザけてるとしか思えない。
>>569 Stringオブジェクトでは無理だから、代わりにspanを使っては。
var span = document.createElement("SPAN");
span.appendChild(document.createTextNode("hogehoge"));
span.style.fontFamily = "...";
...
elem.appendChlid(span);
またはあちこちに挿入するのならコピーを作る必要があるので
elem.appendChild(span.cloneNode(true));
document.styleSheets
580 :
Name_Not_Found :2010/04/09(金) 19:19:09 ID:VBMFSSav
次のコードが動作しません。Win7/FF3.6です。 Array.prototype.push = function(){return this;}; console.log([].push()); * pop などのほかのメソッドなら大丈夫。 アドバイスよろしくお願いします。
581 :
Name_Not_Found :2010/04/09(金) 19:34:20 ID:ucxhGDYD
FFって略す馬鹿まだいるんだなwwww 正確にはMF
582 :
580 :2010/04/09(金) 19:58:12 ID:VBMFSSav
すみません。FFのfirebugの解除したところ、問題は解消されました。
テキストボックス単体で使いたいんですけど formタグ無視して<input type="text"〜だけ使うのって jsで操作するとき(valueを取得したりstyleを変更したり)に何か不具合あるでしょうか?
valid じゃないんだから、どんな挙動になっても文句言うな。
validでしょ
586 :
563 :2010/04/10(土) 03:28:47 ID:???
>>568 ありがとうございます。
var beforeStr = "特殊文字を変換します。あ&#12354;&&#38;";// ←実際には「&#」は「」です。
var afterStr = afterStr = beforeStr.replace(/(\d+);/g, function(total, a){
return String.fromCharCode(a);
});
alert(afterStr); // ←「特殊文字を変換します。ああ&&」と出力。
↑これでできました。
ちなみに、これは(数字);を変換する場合ですが、
では、&(キーワード);を変換するってことはできないですよね。
(例)
&amp; → &
&quot; → "
587 :
563 :2010/04/10(土) 03:31:02 ID:???
コピペミス失礼。 var beforeStr = "特殊文字を変換します。あ&#12354;&&#38;";// ←実際には「&#」は「」です。 var afterStr = beforeStr.replace(/(\d+);/g, function(total, a){ return String.fromCharCode(a); }); alert(afterStr); // ←「特殊文字を変換します。ああ&&」と出力。
588 :
Name_Not_Found :2010/04/10(土) 03:33:06 ID:MSxLD0Vw
& " '
ふと思った素朴な疑問。 普段、当たり前のように使っている()と[]の違いを知りたいです。 var ary = ["a", "b", "c"]; alert(ary[0]); alert(document.getElementsByTagName("div")(0).innerText); 前者の[0]は(0)に変えるとエラー。 後者の(0)は[0]に変えても動く。 なぜでしょうか?
>後者の(0)は[0]に変えても動く お前が普段どういう環境でやってるかよく分かる
>なぜでしょうか? おそらくIEだからです(^o^)
var ary1 = ["a", "b", "c"]; var ary2 = document.getElementsByTagName("div"); alert(ary1[0]); // IE,FF共にOK。当たり前。 alert(ary1(0)); // IE,FF共にNG。関数と区別できないし、そもそも正しい添字の書き方ではないから。 alert(ary2[0].innerHTML); // IE,FF共にOK。配列だから当たり前か。 alert(ary2(0).innerHTML); // IEは(なぜか)OK、FFはきっちりエラー。 こういう理解でOKですね?
ary2*(0)ってやってみ
>>592 document.getElementsByTagName が返す値は配列ではなく
NodeList。DOM標準をちゃんと読むべきだね。
xpathを使ったときsnapshotLengthのsnapshotItemにアクセスするのはsnapshotItem(0)だったので混乱した
配列みたいにインデックスでアクセス出来るのは、 0, 1, 2, ... という名前のプロパティが定義されてるから。 var divList = document.getElementsByTagName('div'); とした時、divList[i] は、divList.item(i) の簡略記法。
598 :
Name_Not_Found :2010/04/10(土) 16:22:07 ID:iIRbWCGq
配列ってこういうオブジェクトってことですか? { 0 : “aaa“, 1 : “bbb“, 2 : “ccc“, length : 3, push : function(){ 追加 }, sort : function(){ 並べかえ }, }
unixtimeをグレゴリオ暦に変換する一番手っ取り早い方法はなんですか?
new Date(0).toString()
>>> document.getElementsByTagName("div") instanceof Array false >>> document.getElementsByTagName("div") instanceof Object true へぇArrayじゃなかったのか
NodeList(またはHTML Collection)は配列みたいなオブジェクト 後で追加した要素にも対応してくれるけど、配列より遅いだったか?
でも IE の場合、NodeList は Object のインスタンスじゃないし、 Array.prototype.slice.call(NodeList) で配列に変換できない罠。
配列を数値に変換するときってどのような処理になるんでしょう? (1) alert( +[123] ); // 123 (2) alert( +[0xFF] ); // 255 ■サイズ1で、要素が数値の配列はその値そのものに変換されるように見える。 (3) alert( +["0xFF"] ); // 255 ■サイズ1で、要素が文字列ならToNumber()か何かで数値に変換される? (4) alert( +["010"] ); // 10 (5) alert( +["123ABC"] ); // NaN ■この挙動はやっぱりToNumber()が使われているように見える (6) alert( +[true] ); // NaN ■ToNumber(true) って1のはずなのになんで? 仕様書を見るとArrayのDefaultValueが呼ばれているように読めるのですが、 その中身までは定義されていないようです。 ということはブラウザ依存の謎仕様なんでしょうか、 それとも何か読み落としてるだけでちゃんと理由があるんでしょうか。
数値に変換する前にtoStringが入ってるから
>>606 ありがとうございます!
もう一度読み直してきます。
createElementで作ったtype=textなInputで、内容のテキストが選択できないというか、 マウスのクリックが全く効かないんですが、何か理由があるんでしょうか?
事故解決しました>< 挿入先がAタグに囲まれてました。
<form> <input type="button" value="すべて選択" onClick="select(1)"> <input type="button" value="すべて解除" onclick="select(0)">'; ・・・・・・・・・・・・・・・・・・・・・・・・・・・ function select ( bool){ var x=document.getElementsByTagName('input'); if(x[i].type.match('checkbox')){ if(bool){ for(var i=0;x[i];i++)x[i].checked = true; }else{ for(var i=0;x[i];i++)x[i].checked = false; } } } なぜか、 すべて選択」が効かないです。 エラーは出てません。 どうチェックして要ったらいいでしょうか。 おねがいします。
そりゃそうだろうな 一行ずつ何をしているのか説明してみろよ ついでに無駄なことをしているのにも気付け
ブラウザのリサイズが終わったタイミングで動かしたい関数があるのですが、どのようにするのがいいのでしょうか? onResizeEndは対応しているブラウザが少ないみたいなので使いたくありません。 onResizeを使うと、リサイズの間に何度も関数が実行されて好ましくありません。 いい方法があれば教えてください。
リサイズなんて迷惑なことやめてくれ
フラグとsettimeout使ってonリサイズをしてからある時間リサイズされてなければ実行はどうよ。
リサイズなんてブラウザ側で無効にしてますけどね
617 :
Name_Not_Found :2010/04/12(月) 23:01:32 ID:Gft8q3RR
おまいらリサイズに脊髄反射しすぎw ウィンドウをリサイズするんじゃなくて、 リサイズされたら発火したいんだろ。 で、厳密にやろうと思ったらマウスとウィンドウの大きさ見張って、 自分なりのイベント作るしかない、のかなあ。
というか、いまどきタブブラウザ使っていればリサイズなんてしないけどな。
横幅に合わせてアイテム数やカラム数を調整したりするサイトはたまにあるよね。
>リサイズされたら リサイズが終わったという文言でどうしてそういう解釈ができるのだろうか
嗚呼リサイズってブラウザ全体じゃなくて要素のリサイズのことね
「ブラウザのリサイズ中」は何もしたくないので「ブラウザのリサイズが終わったタイミング」と書きました。 スクリプトからブラウザのリサイズを行いたいということではなく、 閲覧者がブラウザのサイズを調節したり、最大化や「元に戻す」をしたときに ホームページのレイアウトを調節したかったのです。 誤解を招くような表現で申し訳ありません。
CSSでうまくいくようにやれよ。
>>622 最初の文章で十分に伝わったよ。
判らない方がどうかしてる。
こういう感じ? どれくらい待ったら「リサイズが終わった」と 判断するかは使ってみた感じで調整する必要があるかも。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> var tid = 0; function ex() { var d0 = document.getElementById('d0'), d1 = document.getElementById('d1'); d1.style.left = Math.floor(d0.offsetWidth / 2) + 'px'; tid = 0; } function rs() { tid > 0 && clearTimeout(tid); tid = setTimeout(ex, 1000); } </script> </head><body onresize="rs()" onload="ex()"> <div id="d0"><div id="d1" style="position:absolute">X</div></div> </body></html>
626 :
612 :2010/04/13(火) 18:06:08 ID:???
>>625 ありがとうございます。
私も同じようなスクリプトを書きました。
そのとき思ったのが、tidへの書き込みが重なることがあるかないかです。
同時アクセスは起こりえないんでしょうか?
>>626 ブラウザ上のJavaScriptは単一スレッドで実行されるから、同時アクセス
は起こり得ない。
628 :
612 :2010/04/13(火) 18:28:10 ID:???
>>627 ありがとうございます。スッキリしました。
リキッドデザインにすればよいのではないのかしら
送信フォームなどでボタンの2度押しをできないしているものがありますが、 あれはjavascriptでやっているのでしょうか?
一番必要そうなのは、多段組みで段数を領域幅に応じて変化させる とかかな。そういうのはCSSだけじゃできないから。
いや、できるし。
うーん、1つの「段」に入るテキストの量も段数の変化とともに 変わるわけだと思うけど、内容量を変えるとかできるの? 本当ならCSSスレに質問に行こうっと。
普通にCSSでできるだろ JSが必要になるのは条件によって文字の詰め方を変えるとき
min-width max-width min-height max-height 好きなのを選べ
>>630 ・1回押したらJavaScriptでボタンを無効化する
・ボタン押下時、トークン(画面を表示するごとに毎回変わる値)を一緒に送信。
サーバ側で2回同じ値が送信されてきたら2回目以降を弾く
を両方やるのが普通
諸君らの愛してくれたIE6は死んだ。なぜだ!?
>>638 まだまだ現役ですが。ウチの会社IE7以上は使用禁止
だが斬る
643 :
Name_Not_Found :2010/04/14(水) 01:41:08 ID:FIr7FDoe
644 :
Name_Not_Found :2010/04/14(水) 03:25:44 ID:JgC9T0UH
>>643 ちょうど手元のFirebugに似たようなスクリプト書いてあってワロタ
ちゃんと動くよ
var tmp = document.getElementsByTagName("img");
for(var i=0,l=tmp.length ; i<l ; i++)(function(img){
img.onerror = function(){
console.log(img);
}
img.src = img.src;
})(tmp[i]);
645 :
Name_Not_Found :2010/04/14(水) 03:28:31 ID:JgC9T0UH
あー、わかった。 var img = new Image(); がいかんのよ。
>>645 >>643 じゃないけど、それは関係ないと思う
こっちで試してみ
var arr = [], elems = document.getElementsByTagName("img");
for (var i = 0, len = elems.length; i < len; i++) (function(elem) {
var img = new Image();
img.onerror = function() {
console.log(this.src);// こっちは出力される
arr.push(this.src);
};
img.src = elem.src;
})(elems[i]);
console.log(arr);// こっちは出力されない
さっきから試行錯誤してるんだが、よー分からんな
onerrorが駄目ならonloadでとって差分とればいいじゃないと思ったけどこれも駄目だった(Chromeならこの方法でできた)
ヒント:同期と非同期
ヒント:循環参照
649 :
645 :2010/04/14(水) 09:55:34 ID:JgC9T0UH
うまく伝わらなくて申し訳ない。 ヒント:スコープ
Fxではimg.onerrorが非同期になっているから?! 同期にすればいいってこと?
onError が発生する前にalert( str )まで行ってるんじゃね? ↓実行するとfinish onloadから表示された <script type="text/javascript"> window.onload = function (){ var str = ""; var imgAry = document.images; for(var i=0; i<imgAry.length; i++){ var img = new Image(); img.onerror = function(){ str += img.src + "\n"; alert( "from onerror\n" + str ); } img.src = imgAry[i].src; } alert( "finish onload\n" + str); } </script>
まずメモリーリークを直せ
654 :
Name_Not_Found :2010/04/14(水) 23:36:40 ID:JgC9T0UH
var elem = [<img>,<img>,<img>]; for(var i=0,l=elem.length ; i<l ; i++){ img[i].onclick = function(){ alert(i); } }
655 :
Name_Not_Found :2010/04/15(木) 00:22:33 ID:vQvFmtnL
宣伝乙
どうしてもボタン「すべて選択」が効かない。 教えてください。お願いします。function select()にイベントが届いていないようです。 0<body> 1<div id="imgCheck"></div> 2<script type="text/javascript"> 3//@cc_on 4Number.prototype.zero = function(n){ return ('0000000000'+ this).slice(-n); } 5var html = '<form><input type="button" value="すべて選択" click="select(1)"><input type="button" value="すべて解除" onClick="select(0)">'; 6for(i=0;i<10;i++){ 7var src = 'img'+(i.zero(4))+'jpg'; 8html += '<div class="imgbox"><img src="' + src + '.jpg" alt="'+src+'"><div><input type="checkbox" value="'+src+'">'+src+'</div></div>'; 9} 10html += '</form>'; 11document.getElementById('imgCheck').innerHTML = html; 12document.getElementById('imgCheck')./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'mouseover', chk, false); 13function chk( evt ){ 14var node = evt.target || evt.srcElement; 15if( node.nodeName == 'INPUT' && node.type =='checkbox' ) node.checked = !node.checked; 16} 17function select ( bool){ 18 var x=document.getElementsByTagName('INPUT'); 19 20 for (var i=0;x[i];i++){ 21 22 if(!(x[i].type.match('checkbox')) )continue; 23 24 switch(bool){ 25 case 1: x[i].checked = true; break; 26 case 0: x[i].checked = false; break; 27 } 28 } 29} 30</script>
>イベントが届いていないようです だろうな。HTMLすらまともに書けてないもの。
イベントが届いてないなら届くように書けば良いじゃん いちおうこれヒントな
スレ違いかもしれないんだが、選んだ項目(プルダウンメニュー)によって 自動返信の内容を変えるフリーのメールソフトってないですかね? PHP、CGIどちらでもかまいません。
>>657 onclick="alert(select)"
スコープ順位の高い位置で select が定義されてる。
他に focus, click なんてのもある。
<input type="checkbox" onmouseover="focus(); click();">
名付けには気を遣え。
>>657 <html><head></head><body>
<form><input type="button" value="すべて選択" onclick="sel(1);" /><input type="button" value="すべて解除" onclick="sel(0);" /><div id="imgCheck"></div></form>
<script type="text/javascript">
Number.prototype.zero = function(n) { return ('0000000000' + this).slice(-n); };
var addEvent = function(node, type, fn) {
if (document.addEventListener) node.addEventListener(type, fn, false);
else if (document.attachEvent) node.attachEvent('on' + type, function(e) { fn.call(node, e); });
}, sel = function(num) {
var nodes = document.getElementById('imgCheck').getElementsByTagName('input');
for (var i = 0; nodes[i]; i++) (function(node) {
if (num == 0) node.checked = false;
else node.checked = true;
})(nodes[i]);
}, html = '';
for (var i = 0; i < 10; i++) {
var src = 'img' + i.zero(4) + 'jpg';
html += '<div class="imgbox"><img src="' + src + '.jpg" alt="' + src + '" /><div><input type="checkbox" value="' + src + '">' + src +'</div></div>';
}
document.getElementById('imgCheck').innerHTML = html;
addEvent(document.getElementById('imgCheck'), 'mouseover', function(e) {
var t = e.target || e.srcElement;
if (t.nodeName == 'INPUT' && t.type =='checkbox') t.checked = !t.checked;
});
</script>
</body></html>
>>661 ,662
ありがとうございます。
がんばって今からやってみます。
何かもういろいろひでえな
666 :
657 :2010/04/16(金) 23:39:44 ID:???
>>661 ,662
なんとかがんばって理解しようとしてみた
・onclick」はonClick」でなくてもOKなんですね
・function(e)がよくわからない
こうかいておけば、あらゆるイベントが起こった際に、これが呼び出される?
eにはイベントオブジェクトが入る?
・元スクリプト
>>657 は、なぜ機能しなかったのか
・661さんの
スコープ順位の高い位置で select が定義されてる。」
selectの書いた場所がどうならよかったのか
スコープ順位」とは?
ここらへんが謎です
HTMLであれば属性名の大文字小文字は区別されない
>
>>657 は、なぜ機能しなかったのか
5行目「click」じゃなくて「onclick」だろう
・イベント属性(onclick)の中でコンテキスト(this)はその要素
・input要素はselectメソッドを持つ
<input 〜 onclick="select(1)">だとinput要素のselectメソッドが呼ばれる
=> onclick="window.select(1)"
=> 関数名を変える
662もそうだが、そのままbool使えばいいだろう。1はtrue、0はfalseだ
というか最初からonclick="select(true)"にしとけばいい
668 :
Name_Not_Found :2010/04/17(土) 01:00:56 ID:np2HCHTk
Operaでtextarea入力した単語の自動スペルチェックをOFFにする方法ってないでしょうか .setAttribute("spellcheck", false) とか使ってもだめでした。
それはサイト側でやることなのか? それと、もしそれでオフになったとしてもJSでやる必要なくね?
>>668 特定サイトだけではなく機能自体をOFFにしたいのなら、
以下の手順で切り替え可能
ツール>設定>詳細設定>閲覧>スペルチェック
671 :
Name_Not_Found :2010/04/17(土) 02:03:28 ID:np2HCHTk
>>670 レスどうもです。
自分の作ったHTML上で使えるツールを使う時だけOFFにしたかったのですが、
使う人に対して「どうしても気になるならこういう風に設定して」と説明文を書いておくしか無いですかね。
正直、ただのお節介だと思う。 スペルチェックが必要ない人は最初から切ってる。 textareaを使ったサイトは2chを含め無数にあるのに、 あなたのサイトを訪れたときにだけスペルチェックの赤線が気になって イライラするOperaユーザーなんて全世界に数人もいない。 逆に、それ以外の全ての人にとっては無駄な記述になる。 サイト側で気にすることじゃないよ。
673 :
Name_Not_Found :2010/04/17(土) 09:57:13 ID:ngIEobeO
質問です。 IE限定のwindow.createPopup()を使用しています。 (IE7またはIE8のみの環境で使用しています) これで作成したポップアップウィンドウが消えるとき(または消えたとき)のイベントを ハンドリングしたいのですが、方法がわかりません。分かる方がいましたら教えていただけませんでしょうか? <html> <head> <script> function showPopup() { var popup = window.createPopup(); var pb = popup.document.body; pb.innerHTML = '<div>test</div>'; popup.show(100, 100, 100, 100, document.body); } function popupHide() { document.getElementById('msg').innerHTML = '消えた'; } </script> </head> <body> <div onclick="showPopup();">popup</div> <div id="msg"></div> </body> </html> 試してだめだった方法(上記のpopup.show()の前に記述) 1. popup.onBlur='popupHide()'; 2. popup.onUnload='popupHide()';
674 :
Name_Not_Found :2010/04/17(土) 10:36:22 ID:V4JRvi1z
現在フォーカス持ってる要素って取得できますか?
>>674 document.activeElement
677 :
657 :2010/04/17(土) 23:12:15 ID:???
質問 なんでhtml内のうめこみスクリプトってjavascriptのみなの? pythonとかjavaとかの文法がつかえれば便利だと思うんだけど javascriptだけはなぜか不動の位置にあるのな。 たしかに、RailsとかPHPとかでjavascriptを動的に生成すればいいんだけど それならRubyとかPHPの文法でいいじゃん、なんでjavascriptっていう違う言語に変換してるのか よくわからん。
ブラウザの歴史的ないきさつもあるし、実行環境で用意されてる関数がWeb向きということもあるし、 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
>>679 > 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
他の言語つかったことないな?それとも信者?
そうじゃないというなら他の言語との比較をしてみてよ。C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのか。
Lispは使ったことないが、C#, Rubyは経験あるな。 まずプロトタイプベースの利点を理解した上で文句をつけてるのか、 理解せずにただ持ち上げてるというだけで信者扱いしてるのか白状しる。
>>681 しらねーよwwそんなの。理解してません。てか、そんなの知らなくてもそれなりのシステムは組めてるからな。
たぶん説明されれば、わかるけど。
さあ、白状してやったから、
C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのかいってみなさい。
自由度が高すぎると困る 終わり
VBScript「呼んだ?」
なんでHTTPでなんでHTMLでなんでFlashなのかって言われても返答に困るようなもんだよなぁ デファクトスタンダードって強いよね
>>678 何かのフォームをイベント処理できるソフトを既存のRubyやPHPで書ける?
セキュアを完全保証できるという前提で
>>685 でFAだなあ。
あと文法と実行方式とを混同してるアホはちょっと頭冷やした方がいいと思うよ。
サンドボックスって言葉ぐらい知っててもいいと思う。
言語仕様とオブジェクトライブラリは分けて語った方がいいぞ
IEならレジストリいじって好きなエンジン呼べるはず ActivePerl入れればtext/perlscript使えるんじゃなかったっけ
690 :
Name_Not_Found :2010/04/18(日) 02:06:07 ID:jwQx4DTv
>>678 歴史的問題だと思う
ただ最近 <script type="text/hoge"> として俺言語を記述できるようにするハックを見た記憶がある
>>682 >たぶん説明されれば、わかるけど。
ダウト。
>>692 言語そのものに対する盲目的な信仰を告白するのは
よっぽどの人が言うんでもなけりゃ痛いだけだからやめとけ
言語を単純な優劣でしか考えられない人がいるけどスルーで Webクライアントに向いてるかという話題なのに
>>693 信仰?
説明されても判らない程に頭が悪そうだ、って話だ。
言わせんな恥ずかしい。
VBScript を盛り上げて行こうz
お断りします
C 系の言語ばかり使っていたら、考え方が偏っちゃうyo!
真理に近づきたくばschemeをやるべし
>真理に近づきたくば いや別に
真理タンにお近づきになりたいです!><
702 :
Name_Not_Found :2010/04/19(月) 21:18:23 ID:KtV22HpC
質問です 万年カレンダーを作っているのですが当月は表示できても 前月と次月がうまく表示できません ひと月だけなら前月も次月も表示できるのですがひと月しか できず止まってしまいます どうかご教授お願いします ソースは省略してますがこんな感じです monstr = new Array("1月","2月","3月","4月"…); yostr = new Array("日", "月", "火", "水", "木", "金", "土"); maxday = new Array(31,28,31,30,31,30,31,31,30,31,30,31); var now = new Date(); var today = now.getDate(); var cy, cm; view_cal(0, 0); function view_cal(year, month) { var nDate = new Date(); cy = (!year)? nDate.getFullYear(): year; // 表示年 cm = (!month)? nDate.getMonth(): month; // 表示月 nDate.setFullYear(cy); nDate.setMonth(cm); nDate.setDate(1); var yo1 = nDate.getDay(); var daycnt = 1; var moncnt = 0; var flag = 0; get_cal = "";
703 :
Name_Not_Found :2010/04/19(月) 21:20:00 ID:KtV22HpC
// 月欄 get_cal +="<p><span id=\"pmon\">←</span>" + monstr[cm] + cy + "<span id=\"nmon\">→</span></p>"; // 曜日欄 get_cal +="<table id=\"skejul\"><tr>"; for (i = 0; i < 7; i++) { if (i == 0) { get_cal +="<td>"; } else if (i == 6) { get_cal +="<td>"; } else { get_cal +="<td>"; } get_cal +=yostr[i]; get_cal +="</td>"; } get_cal +="</tr>"; // 日付欄 while (flag < 2) { get_cal +="<tr>"; for (i = 0; i < 7; i++) { get_cal +="<td"; if (flag == 0 && yo1 == i) { flag = 1; } if (flag == 1) { if (daycnt == today) { get_cal +=" " + "id=\"tod\""; // 本日の背景設定 } } get_cal +=">" + daycnt; } if (daycnt++ >= maxday[cm]) { flag = 2; } // 最終日 get_cal +="</td>"; } get_cal +="</tr>"; } get_cal +="</table>";
704 :
Name_Not_Found :2010/04/19(月) 21:22:34 ID:KtV22HpC
//出力 document.getElementById("calendar").innerHTML = get_cal; } document.getElementById("pmon").onclick = SetPrevMonth; document.getElementById("nmon").onclick = SetNextMonth; // 前月の表示 function SetPrevMonth() { if (cm == 1) { cm = 12; cy--; } else { cm--; } view_cal(cy, cm); } // 翌月の表示 function SetNextMonth() { if (cm == 12) { cm = 1; cy++; } else { cm++; } view_cal(cy, cm); }
他にも色々問題はありそうだけど、動かない理由は、 ハンドラを定義した id を持つ要素を view_cal 関数内で 毎回 innerHTML で書き換えているから。
706 :
Name_Not_Found :2010/04/19(月) 22:07:43 ID:KtV22HpC
>>705 ありがとうございます
IDのpmonとnmonを関数の外に出して試してみます
>>706 レスに貼られてるコードだと閉じブレース { が一個多い気がする。
SetPrevMonth、SetNextMonth 内で年またぎの判定を直す必要がある。
(getMonth() の返す値は 0 から 11)
そうすると view_cal 関数内で以下の修正が必要。
cy = (!year)?... -> cy = (year === undefined)?...
cm = (!month)?... -> cm = (month === undefined)?...
そうすると最初の呼び出しは view_cal(0, 0) でなく view_cal() にするとか。
あと、閏年は?
まぁ、設計から見直した方が良いよ。
閉じブレースは } だった。
正直カレンダーみたいな汎用スクリプトは ググレば腐るほど出てくるよね・・・
LightBox的などを開くと「image 1 of 10」って出るじゃないですか ソースで記述した順に1of10、2of10ってなって1番下層にあるimageが10of10になります これを1番上のものを10of10、1番下のものを1of10と逆にしたいのですがなにかいい方法ありませんか? 現在は current: "image {current} of {total}", となっています
ああ、月末日なんて次月の0日にセットすれば分かるのに 意地でも自力で閏年計算するやつばっかりな 何なんだアレ
712 :
702 :2010/04/20(火) 00:00:45 ID:???
>>707 ありがとうございます
かなり改善されて年またぎのところもうまく動作するようになりました
感動しています
本当にありがとうございます
あとはおっしゃる通りうるう年のところだけの問題となりました
自分の勉強のためにカレンダーを作成してたのですが
ググっても万年に関してはけっこう強引なスクリプトばかり出てきまして…
当月のみのカレンダーなら良いのがいっぱいあったのですが
とにかく感謝しております
ありがとうございました
実装依存でしょうねえ
仕様だよ つーか仕様も読まずに実装依存とか抜かすアホが多すぎるだろ
716 :
702 :2010/04/20(火) 00:55:04 ID:???
>>711 ありがとうございます
そのヒントで閏年も解決できました
非常に助かりました
計算するよりかは多少記述量も減るし楽でした
setDate() はインスタンスの保持している年と月の値を使って その月の初日の(基準日からの経過日数)を取得し、 そこに引数の日を加算し、日付を再計算し直す。 だから負の数でも32以上を与えても問題ない。 気をつける必要があるのは月。 12以上の値は問題ないが負の数については実装依存。 理由についてはECMA Script仕様書のMakeDay関数を参照。 (月) = (引数の月) % 12 のような計算はしていても それを0以上に正規化するような処理は入っていないので、 カレンダー上で本当に「マイナス1月」を探して失敗することになる。 setMonth(-1) とかやってエラーにならないのは仕様書から外れてる。
5.2節によりm modulo 12の結果が0または正であることは保証されてるから 月に負数を与えてもまったく問題ないだろ
Dateの使い方を知らずに無駄計算している奴が多すぎ どこぞの有名解説サイトからしてそうなんだが
暇だったら解説してくれんかね?
Jqueryで質問させてください。 <div id="newForm"><div class="input text"><input name="text" type="text" /></div></div> Addボタンを押すと、上記のようなテキストフィールドが追加されます。 これを、下から順に消したいです。 $('#remove').click(function() { var newForm = $('#newForm'); newForm.remove(); }); このようにしたのですが、下からではなく、上から消されてしまいます。 var newForm = $('#newForm').last(); など、いろいろな部分にlast()を使っても、divが残ったり上手く動かないです。 なにかよい方法はないでしょうか?
>>711 おぉ、そんなんできるんだ。と思って試してみたら、
>>> new Date(2010, 4, 0)
Fri Apr 30 2010 00:00:00 GMT+0900 {}
その月の最終日がになってしまった。やり方が違う?
>>715 Dateの仕様読んだ事ないので読みたいんだけど、ECMA-262のことであってる?
>>721 id="remove"の要素はどこにあるんだって言うのと、
clickされた要素はthisで取得できるからfunctionの中の1行目がムダなのと、
つっこみどころが満載です。
もうちょっと情報出してください。
>>722 老婆心ながら、月は0〜11ね。
5月0日→4月最終日だから、合ってる様に見える。
>次月の0日にセット
727 :
721 :2010/04/20(火) 10:32:04 ID:???
>>725 あぁ!そうだった。月は0-11か。
最初
new Date('2010/04/00')
と実行して、Firefoxは上手くいったがChromeが上手くいかず、
「あ、引数の渡し方違うわ」
と直したせいでそのまま4入れてた。すみません。
>>727 まさか画像がくるとは思わなかったわw斬新だな
せめてブラウザで見た結果のソースをキャプチャしろよ
というか、コピペして貼り付けなよ。
730 :
721 :2010/04/20(火) 10:54:55 ID:???
>>729 すいません。
ブラウザのソースは長くなって改行もごちゃちゃで、
コピペすると全部入らないのでこうなってしまいました。
ちゃんとブラウザの結果をわかりやすく表示するように次回から考えたいと思います。
いろいろいじっていると、 removeするエレメントがclassじゃなくてidになっていたのが原因でした。
とりあえずは上手くいきました!
ありがとうございました!
$('#remove').click(function() {
var newForm = $('.newForm').last();
newForm.remove();
});
Jqueryで質問させてください。 <div class="container"> <div class="form"><input type=text name="name"></div> <div class="form"><input type=text name="name"></div> <div class="form"><input type=text name="name"></div> </div> 上記のformクラスを下から消していくには、 $('.form').last().remove(); といったコードでできますが、 formクラスを全部消さずに、最後の一つだけ残すような設定はできるでしょうか? 例えば、下記のような状態になるとremoveできなくなるような。 <div class="container"> <div class="form"><input type=text name="name"></div> </div>
>>731 if ($('.form').children().length > 1) $('.form').last().remove();
まずJqueryって書くのやめろ
734 :
731 :2010/04/20(火) 13:06:05 ID:???
div.container > div.form:not(:last-of-type)
jQueryなのに? 732みたいなのをよく見るけど $('.form')をquerySelectorないしgetElementsByClassNameに置き換えてみろ 何回同じメソッドを走らせてんだよ ましてIE7を気にするのならそのたびにdocumentから探索し直してんだぜ
大規模サイトや情報量(≒ノード数)が多い文書なんかで
>>732 みたいなことやられると、IEじゃなくてもモッサリするよね
jQuery使うのもいいけど、最低限、計算量のことぐらい考えてほしい
739 :
736 :2010/04/21(水) 11:21:10 ID:???
>>737 CSS3使ったSelectorsはIEだと動かなかったはず。実際手元のIE6だと動いてない。
まぁでもIEは捨ててもいいと思うけど。
varで保持せずに毎回$('div.form')とかで何度も要素を取得するコードはウチの会社でもよく見るなぁ。
740 :
Name_Not_Found :2010/04/21(水) 11:51:19 ID:9wyYmVIx
でもローカル変数で保持すると、クロージャーでメモリリークする可能性が高くなる。 上で出てたけど、jQueryは<script type="application/jquery">で別エンジンにしてほしいわ。
先行実装使うなよ
Selectors3はとっくに勧告候補だぞ 動作確認してないがjQuery 1.4のソースコードを眺めてみたら :nth-childはサポートしているが:nth-of-typeはサポートしていないっぽい jQueryのセレクタエンジンはいろいろ中途半端だから信頼できん
jQuery自体がセレクタを独自拡張してるからなあ
Lightbox 2.04にて拡大後の画像をクリックでも閉じるようにする 方法を教えてください。
Lightbox(笑)
Lightboxの機能くらい自分で作れ
uupaa.js使おうよ
uupaaはハックの塊なのと設計が汚いのとで常用するのが怖い
>>748 意味が判らん。
プログラムはハックの塊でしょ、フツーに。
ふーん
美しいプログラムはハックなどしない
だがファックはする
>>751 ちゃうちゃう。
プログラマがプログラムをハックする。
意味わからん
のでタップした
>>740 IEのメモリリークなら3年ほど前の自動更新で修正されたけど。
可能性ってどういう意味?
未修正のリークパターンがあるなら教えてほしい
クロージャで値への参照が残ってしまって一度作ったjQueryのオブジェクトが ずっと消えずに残ってしまうって話じゃない? ブラウザのバグの話ではなく、コード側の不具合のせいで起きるリーク。 Cでmallocしたのにfreeを忘れる系の。
>>756 WebKitでも去年同じ問題が指摘されて修正されたよ
GeckoもWebKitもうまいハックで回避しているけど
GC機構に由来する何気に根本的な問題
IE7の修正は中途半端でIE8なら大丈夫
JavaScriptのReferenceにもクロージャは可能な限り使うなって書いてあるな
javascriptでレスポンスの文字列を取得しようと思い iframeをターゲット指定し、POSTしたレスポンスを 判定しようと考えたのだけどうまくいかない 誰か良いやりかたしりませんか? ■実現したいこと サーバが落ちてる時などに返却される文字列 をブラウザ上に表示させず、レスポンス内容を見て 原因を表示したい ■考えたフロー @iframeに対してターゲット指定を行う Ajavascriptから指定のフォームデータをPOSTでサブミット Bターゲット指定しているiframeのオブジェクトを生成し readyStateを判定 complet ならばtrue falseなら 再帰的にもう一度呼び出す C返却されたレスポンスに含まれる特定タグ(body等)オブジェクトを取得する。 ※期待した戻り値は、指定したタグの要素数分の長さを持つオブジェクト配列 結果は、.lengthが0で何も取得できなかった
XMLHttpRequestというじゃだめなのか? 正常表示できたときには'iframe'で表示させたいってのなら駄目だが、divとかの中に結果突っ込むなら出来るぞ。
エスパーすると外部鯖から取得したいんだと思う
Dojo Toolkitについて勉強したいのですが おすすめの本とかサイトあれば教えてください
google
765 :
Name_Not_Found :2010/04/22(木) 03:27:03 ID:YrKUvYka
>>762 便乗質問です。
<script type=“text/javascript“ src=“API“></script>
って書いて別鯖のAPIから情報取り出すとき、
script要素のロード完了ってわかるものですかね?
script要素のロードが完了するまで レンダリングも何もかも止まるんだが何か。
767 :
Name_Not_Found :2010/04/22(木) 16:32:30 ID:gqy/b/W5
>>766 つまり、A.jsに
var n = 1;
って書いてあったとして、B.jsで
document.write("<script type='text/javascript' src=A.js''></script>");
って書いたら、何も考えずにnは定義済みと考えて良いってことですか?
768 :
Name_Not_Found :2010/04/22(木) 17:11:46 ID:iHFlyciF
769 :
Name_Not_Found :2010/04/22(木) 18:01:40 ID:gqy/b/W5
>>768 うん試してます。
で、一見問題ないようなんだけど、もしかしてロードに時間が
かかったりすると問題あるのかなーと。
あ、
>>766 のは例えば、ブログのページを開いてから暫く動かなく
なるのが多いのも、広告やブログパーツの為に書かれた<script>待ち、
ってこと、かな?
そういうこと だからhead内に外部スクリプトを5個も6個も並べるとパフォーマンス最悪
質問です。厳密にはHTMLの問題ですが、JavaScriptでの取得の問題なの でここでお聞きします。optionを使ったコンボボックスでoption属性に value値は必須なのでしょうか。よろしくお願いします。
はい、次
optionを使ったコンボボックスでoption属性に value値は必須なのでしょうか。よろしくお願いします。
774 :
Name_Not_Found :2010/04/22(木) 23:47:46 ID:1xOh/vLE
>>773 お前はMySQLのデータをSQL文で取得するけどJAVAで実装してるからと
JAVAのスレで質問してるような物だ
つまりスレ違い
つーか、そんくらいの事試せば直ぐ分かるだろうに…
ここに書く暇があるなら試す時間あるだろ
殿方に「お前」って呼ばれた///
>>773 省略すると<option>〜</option>の間の文字列がvalueとして採用されるはず。
value, selectedIndexともに正常動作する。
submitしても正しく値は送られる。
>>774 なくても表示は全く問題なくできることは明らかでも、
選択された要素をJavaScriptで取得しようとしたときに
(規格として)何が起こることになっているのか、という話が聞きたいんでしょ?
的外れすぎるし比喩にすらなってない。
調べればわかることは答えない
>>776 正しいが現実的には「IE6でJSが正常動作しなくて良いなら」という条件がつく。
IE6なんて都市伝説
都市伝説と職場で毎日にらめっこしてる俺の立場は
お前が都市伝説
オライリーたんのリファレンス買おうと思ったら、 間違って絵がいっぱい書いてある方を買ってしまった。 おっぱい。
783 :
Name_Not_Found :2010/04/23(金) 03:58:01 ID:RylGCLVm
>>770 ありがとう。
遅くなってすまんです。
やっと残業終わって帰ってきた〜
rec(document.images["gazou"],"click",changes); function changes(e) { var event=e?e:window.event; var target=event.target?event.target:event.srcElement; target.src=target.src="c.jpg"?"c.jpg":"pics.png"; } <img name="gazou" src="aaa" /> ってやって画像をクリックするたびに 1、2、1、2... と交互に出したいのですが 1、2で止まってしまいます 2のあと画像をクリックしても1にならず どうやるかおしえて!クソ
target.src=target.src="c.jpg"?"pics.png":"c.jpg"; だった解決法方法教えてクソ!
初歩的ミスだろバーカ!
はやくおしえろクソ どうやってやるか教えてクソ
今マイクロソフトのHPをjavascriptで作成してるんです だから早く教えてください
イク!イクぅ!!
ビクン、ビクン。 イク!イクっ!イクぅぅぅう!
function changes(e){ var imgs=document.images["sss"]; imgs.src=imgs.src="pics.png"?"c.jpg":"pics.png";} <img name="sss" src="pics.png" onclick="javascript:changes()"> 画像1回しか入れ替わらないんです クリックするたびに交互に入れ替わるようにしたいんです教えてください。
挿れたらダメっ!イクっ!イクぅ!
自己解決できた クソガリどもはjavascriptヤッテしね 頭わいてるなここのごみすれ
ASPの話ですが C#の関数をjavaScriptのマウスイベントで呼び出すのって絶対無理?
二行で矛盾できるとはやるな
恥ずかしくて言えたもんじゃないだろ。 == を使うところで = を使ってるだけなんだから。 慣れてないなら、素直に if 文使えばいいのにな。
>>794 2chなんてアホばっかりなんだからそれを理解して利用しなよ
2ch で質問してる奴にそんなこと言ってどうすんだ。
みんなまとめて爆発しろということ
IE9でjavascriptのgetter、setterをサポートするかどうかわかる方いますか?
はい
804 :
Name_Not_Found :2010/04/24(土) 22:23:27 ID:qIAH5s2f
見える!私には見えるぞ!
ど、どこですか?それは!
クライアントサイドでなくてコアの機能なんだから、IE の場合、JScript エンジン次第でしょ。 IE9 入れなくても WSH とかをバージョンアップすれば JScript エンジンも新しくなったはずだし 次世代 JScript エンジンの機能は XP 使いにも関係してくると思う今日この頃。
td=setInterval(bgcolor(255),100); function bgcolor(color) { var hex=color.toString(16); if(hex.length<2) { hex="0"+hex; } var colorstring="#FF"+hex+"FF"; var blocks=document.getElementById("colo"); blocks.style.backgroundColor=colorstring; color-=3; } setIntervarlでbgcolor(255)の255を引数としいてbgcolorに渡してるんだけど デクリメントされなくて背景色がかわらない 引数を保存しとくことはできないの?staticみたいに
setIntervalの使い方がおかしい。 引数には関数オブジェクトを渡す。 > setInterval(bgcolor(255),100); これだと、bgcolor(255) を実行して評価し、戻り値undefinedを 100ms後に実行するという意味になる。 > var bgcolor = function() { ... }; > setInterval(bgcolor,100); こうすれば bgcolor 関数が100ms後に実行される。 255をグローバル変数なり何なりに保存しておき、 呼ぶたびにデクリメントしてやればいい。
>>808 setInterval(function() { bgcolor(255); }, 100);
とするか
setInterval("bgcolor(255)", 100);
でいいんじゃねーの
デクリメントの意味も違うしな。 ほんとにプログラマ?
>>810 毎回定数を与えているんだから、ちゃんと動いても色は変わらないと思う
Javascriptの開発するときどういう環境でやるのが効率いいですか? ちなみに今は秀丸&Firebug使ってます
慣れた環境が一番だよ
>>808 (function(color) {
var hex = color.toString(16);
if (hex.length < 2) hex = "0" + hex;
var colorString = "#FF" + hex + "FF";
var elem = document.getElementById('colo');
elem.style.backgroundColor = colorString;
var self = arguments.callee;
if (color >= 0) setTimeout(function() { self(color - 3) }, 100);
})(255);
>>815 引数が 3 で割れねえとエラーになんねが?
以下のようなコードの@はどういう意味でしょうか? @if(hoge == 1) /* ここにコードがあります */ @end
>>818 ありがとうございます。
if文と@if文の違いがわかりません。
>>819 JScriptとJavaScriptは別物
ありがとうございました。 板違いだった事がわかり助かりました。 失礼しました。
color=255; td=setInterval("bgcolor()",100); function bgcolor() { var hex=color.toString(16); if(hex.length<2) { hex="0"+hex; } var colorstring="#FF"+hex+"FF"; var blocks=document.getElementById("colo"); blocks.style.backgroundColor=colorstring; color-=3; } 引き数無しならできた 無名関数わたさなくてもできたぞ col=255; bgcolor(col)みたいに引き数わたすやりかたおしえて
よしきたまかせろ
col=255; "bgcolor("+col+")" ってやってもわたせねえ どうやるのか教えて
setIntervalでのやり方教えて
var intervalId = setInterval(function () { var color = 255; var elem = document.getElementById("colo"); return function() { if (color < 0) color = 0; var hex = color.toString(16); if (hex.length < 2) hex = "0" + hex; var colorString = "#FF" + hex + "FF"; elem.style.backgroundColor = colorString; if (color === 0) clearTimeout(intervalId); color -= 3; }; }(), 100);
clearTimeout じゃない clearInterval
誰もわかんないんじゃね? ここまで答えられてないのは未知の世界
827で問題ねーだろ
ここって中学生ばっかり?
オタクは煽れば答えたがる
833 :
Name_Not_Found :2010/04/25(日) 19:35:09 ID:NSAfYaU0
前スレから中途になってたけど、テンプレ
>>2 改編はやっぱ必要だな。
「煽っても無駄よ」ってのプラス、
「〇〇書いてください、じゃない。お前が書くんだ。」
って感じのを交えて。
煽るような奴が真面目にテンプレ読m
お前らどんなライブラリ使ってる?
mast.urbati.on.js
839 :
833 :2010/04/26(月) 14:50:00 ID:MZgIU5zM
>>838 あー。俺、何スレか前に
>>2 の議論になったときに一案出してんだわ。
ちょっとログ漁ってくる。
何スレ前だか覚えてる人いる?
>>840 そうそうそれそれ。その初期案出したんだが、前スレだっけ?
検索下手だな俺…。まあいいや。
>>24 のに継ぎ足してみる。
あとメル欄にマーキングしてみた。
【質問を書く上で】
1)「どんな意図で/何を/どう」操作した場合、「どのように」動作させたいのかを
一般的な言葉や用語で簡潔に説明してください。
ただ「動きません」ではわかりません。脳内用語・オレ用語は混乱のもと。
2)自力で調べたこと/試したことを明記のこと。
OS、ブラウザ+バージョン、(あれば)エラーの行と内容を必ず書きましょう。
エラーの行と内容を見るのはIE8、Firefox、SafariのJavaScriptコンソールで。
3)質問に関するソースコードを出来る限り貼ってください。
余分が少なく、コピペだけで動作やエラー再現のできるものが理想です。
1レスで入らないような長いソースの場合はアップロードする等工夫を。
4)閲覧者の迷惑になる質問は回答されません。
別窓を多数開く、閉じる/戻る/クリックを妨害、画面占有、など。
「分かんねえの?」と煽っても無駄です。
5)「初心者なので」「初心者ですみません」とか書いても好感は得られません。
スレのみんなは助言はできるけど、あなたのJavaScriptを書くのはあなたです。
> あなたのJavaScriptを書くのはあなたです。 くどいな 最初の「あなたの」はいらないと思う
スレタイ案 ECMAScript(JavaScript/JScript)の質問用スレッドXX
>>841 スレを改善したいからテンプレを改善するんでしょ?(自己満足じゃなくて)
だったらもう少しシンプルにしたほうがいいと思うけどなあ。
結局、読んでくれる人が増えないことには状況は改善されないよ。
シンプルにするならこんな感じかなあ。
846 :
845 :2010/04/26(月) 20:50:55 ID:???
【質問を書く上で】 1) 動作環境や現状を余さず書きましょう ・OS、ブラウザ、利用しているライブラリなど (参考:動作環境の書き方) ・エラーの行と内容、再現方法 (参考:エラー情報を確認する方法) ・自分で調べたことや試したこと 2) 質問に関するソースコードを貼りましょう ・ソースが長くなる場合は適当な工夫を (アップロードやインデントなど) ・なるべくエラーの発生する箇所のみを貼りましょう (関数や一連の処理単位で) 3) その他の注意事項 ・閲覧の妨げとなるスクリプトは、ここでは回答されません ・問題の解決を他人に任せるのではなく、なるべく自分で解決する姿勢を保ちましょう
847 :
845 :2010/04/26(月) 20:51:53 ID:???
上、ちょっと改行は調整したほうが良さそう; 以下は【質問を書く上で】の次のレスに。 【動作環境の書き方】 適当な例を示す。ブラウザの略称など。 【エラー情報を確認する方法】 コンソールへのアクセス方法、簡単な操作方法 ほかにも何かあったら追加。。。
Firefox3.6 上の Greasemonkey でスクリプトを作成しようとしています OSは linux, windows, MacOS など、Firefox が動くOSすべてを想定しています ページ上のJSからは見えず、PC間で異なる値であり、 かつ遷移・ブラウザの再起動などで変化しない値を取得する必要が出てきました なにかいいものはないでしょうか できればブラウザ内で完結でき、配布したときにユーザーが弄る必要のないものがよいのですが。。。
何その糞トラッキングクッキー
>>846 それでいいと思う
あと追加するとしたら【質問の見本】みたいなものかな
852 :
Name_Not_Found :2010/04/26(月) 23:00:07 ID:MZgIU5zM
>>846 文才に嫉妬。
ただシンプルになると、例えば
> 1) 動作環境や現状を余さず書きましょう
って書いてもちゃんと理解できない人がいるのも事実。
そもそも、何がわからないのかがわからない状態で質問している
ケースも多いので。
>>852 >(参考:動作環境の書き方)
とあるのでそちらを参照すれば理解できるのでは?
854 :
845 :2010/04/26(月) 23:45:15 ID:???
>>852 そうだなあ。。
やっぱり
>>850 の意見どおり、【質問の見本】を用意するべきかも。
根本的な問題として、質問者の意識を少し変えてやる必要がありそう。
=>修正案。冒頭( 【質問を書く上で】の真下 )に次の文句を貼り付ける。
より良い質問は、あなたの問題が解決される可能性を高めるでしょう。
このスレも来年には10周年か
856 :
Name_Not_Found :2010/04/27(火) 00:36:30 ID:sSRUi+Jx
関数型言語 のプログラミングを学びたいのですが 実はJavascriptは関数型言語なんだと聞きました。 関数型言語らしいプログラミングされている人いますか?
非同期でやってれば嫌でもそれっぽくなる
F#でもやってください
>>856 JavaScriptの勉強をいくらしたところで関数型を学んだという
雰囲気にはならないと思うな。素直にHaskellでも勉強すれば?
>>852-854 参考のレスと分けたり質問例を入れたりするのはいいかも
知れないけど、やっぱり具体例一式がまずないと判断し
づらいと思う。個人的には1レスに詰めてある方が好み。
ただでさえテンプレのレス数が多いと思っているので。
861 :
845 :2010/04/27(火) 12:41:08 ID:???
>>860 テンプレ改善の目的をはっきりさせるべきだと思う。
俺は読んでくれる人を増やしたいという思いの元で改善したんだけどなー。。
つまりは、実現できるかはともかく「質問レベルの向上」が目標。
単純に今のテンプレが「読みにくいから」とかいう理由なら俺は放棄。
質問レベルの向上をめざすの、賛成でーす。その場合、
テンプレはどういう構造だといいのか?
>>1 から全部見直し?
あと、2ちゃんのスレで質問レベルの向上って生半可なことでは
進まないと思っている。昔から「分からんから聞いちゃえ」な
奴は多数派だしこれからも絶えることはない。そういう奴が
>>1 を見てちょっとは考えを修正するかどうか? または、そういう奴
の質問に対して「お前は
>>1 に合致してない、却下」とかキツく
言うことで対応?現バージョンはその雰囲気が強いかも知れない。
863 :
845 :2010/04/27(火) 13:08:55 ID:???
>>862 少しでも読んでくれる人が増えるならそれで十分じゃないか。
より良い質問を目指す人には、補足を提供してやればいいんだし。
全員の質問レベルを向上させることは確実に不可能って分かってることでしょ?
では、読んでくれる人を増やすにはどうするのがいいの?
テンプレを短く読みやすくする? 大多数の人は
>>1 しか
読まない(ないし、
>>1 すら読まない)。それをどうやって
>>2-7 まで見るように誘導するのがいいのかな? no idea...
前スレでも言った気がするけど、今のテンプレは黒くてすぐに進んで読みたいと思えるものではないから、
読みやす”そうに”見えたら読む人は増えると思うよ。
>>2-7 を読んでいないと思われる書き込みはスルーされます。
とか?
じゃあ、テンプレの主要なものについて、読みやすく見える
本体と「参照」を分けて、テンプレ全体では10レスかもうちょっと
になるけどそれでいいことにする? あと、現在の
>>1 はここで
議論していることとかぶっているけど、直す? いっそ
>>2-7 を読んでいないと思われる書き込みはスルーされます。
だけにするとか?
>正しい(validな)HTMLが書ける! アプリケーション開発視点でいえばhtmlはUIに過ぎないしこの文言はいらない 特に最近はそういう傾向が強く htmlをよく知らない他言語でのGUI開発経験者がスレに進出してきてることもあるはずだ そういう層はIDEのコンポーネント配置で適当なhtml部品を選択してやるなんてのは当たり前になる この文言の代わりにどのブラウザで動かないのかアプリケーションの対象ブラウザを書かせたほうがいい
それは反対だな。UIとしてのみのHTMLだろうが、validなHTML そのものの知識は持ってないとDOMで操作なんてできないと思うが。 別に普段自分で書かなくてもいいけど、validなものを「書ける」能力 は求めた方がいいと思う。
validなHTMLを求めるなら きちんとそっちへのテンプレも用意しろよ
参考サイトに何か載せるということ? ここWeb制作板だし、別に いらない気もするけど、載せるとしたらどこがいいの? W3C?
validなhtmlが書けないと質問しちゃいけないってそりゃあんまりだろwwwww
873 :
845 :2010/04/27(火) 19:26:10 ID:???
この調子だと次のスレまでまたがりそうだね。
>>867 なんかももし変更点があるようならメル欄利用してタグ付けしたほうがいいよ。
>>872 特別
>>1 に載せる必要はなさそうだね。
JavaScriptは普通ブラウザに実装されたECMAScriptのことを指すから
>>869 が言うように、
基本的にはDOMやCSSを切り離しては考えられない。
ただ、先の文言を追加してしまうと純粋なECMAScriptに関する質問の場合に差支えが生じてしまう。
たとえば変数のスコープ、それからクロージャ。現状としてこの類の質問を受け付けている以上は、
HTMLについての理解を特別
>>1 で求める必要はなさそう。
単にこのスレ内でのHTML談議を排除するためだろ HTMLに関係ない質問でとやかく言うことはないし、別に外す必要なくね
>>874 それならWeb開発の質問してる他言語のスレみたいに
○○(この場合JavaScript)とは関係ないHTML勉強するかWeb制作スレでも池
ていうレス返せばいいんじゃね
877 :
Name_Not_Found :2010/04/27(火) 21:16:04 ID:2l5fEPHR
>>873 IEの変態仕様はどうする?(IE6~8)
HTMLがvalidでないものにDOMアクセスして泥沼とかな奴には 「HTMLも書けないのにDOMだとか100年早いんだヨ!」と言いたい んだけどな。そういう奴に限って「自分のHTMLは表示される から無問題」とか信じてたりする。
880 :
845 :2010/04/27(火) 21:38:37 ID:???
>>877 MSDNへのリンクは必須だろうけど、主要な問題はリスト化してもいいかもしれない。
TABLE、それから連想配列の最後のコンマとか。。
FAQとかも、カテゴリごとに分けるべきかも。
【FAQ:DOM】、【FAQ:IE】
>>6 については、h抜きは必要ないと思う。
デバッグ手法についてはいいの?
882 :
Name_Not_Found :2010/04/28(水) 04:44:28 ID:t6cJasrz
>>879 自分も5〜6年前はストリクト教の信者だったので気持ちは
わからなくもないけど、JSスレでそこまでアレするのもキモイ気がする。
つか、これに限らず、この話題って突き詰めていくと
>>2-10 に初級JS講座が出来ちゃうような気が…
883 :
845 :2010/04/28(水) 07:32:47 ID:???
>>881-882 今回はあくまで「手入れ」でしょ?一から作り直す訳じゃないし。
次の項目を整理するくらいでいいんじゃないかな。
>>1 ,質問をする上で => シンプルに
FAQ => カテゴリ分け、数項追加(
>>877 特にIE?)
必要であれば補足事項ということで、次の内容を用意するかあるいは外部サイトを紹介するか。
エラー情報を確認する方法 、その他。
やっぱり全面見直しは大変すぐるから
>>883 でいいかなと。
追加する項目は文案書いてみほしい。
>>882 Strictである必要は全くないけどinvalidは絶対まずいよ。
885 :
Name_Not_Found :2010/04/28(水) 12:06:54 ID:S6AnrVkK
正規表現の質問も平気ですか? 「xxxx=任意&yyyyyyy=任意&zzzzzz=任意」 と言う文字列から任意の値を各々取るにはどうしたらいいでしょうか? xyzの文字は各々固定で、任意には何文字入るかわかりません
887 :
Name_Not_Found :2010/04/28(水) 12:23:27 ID:S6AnrVkK
'xxxx=任意&yyyyyyy=任意&zzzzzz=任意'.match(/[^&=]+(?=&|$)/g)
889 :
Name_Not_Found :2010/04/28(水) 13:47:12 ID:S6AnrVkK
>>888 こんな簡単に出来るとは…
Sliceで実装してみた後だけど勉強になります!
ありがとうございます!
━━━本スレに書く事を許される者は以下の通り━━━━━
一、正しい(validな)HTMLとは何か知っており書ける者
一、JavaScriptはJavaとは別物であると知っている者
一、自ら学んでJavaScriptコードを書く意思を持つ者
一、ユーザに迷惑となるスクリプトを書かない者
一、質問を分かる日本語できちんと説明できる者
一、トラブルを再現する最小限のサンプルを貼れる者
一、テンプレ+FAQ
>>2-10 /過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
893 :
Name_Not_Found :2010/04/29(木) 00:24:29 ID:pnW2DOGH
>>890 iphoneサファリとかクロームライトって、embedでmp3再生できんの?
>>893 >>890 のはiPhone/iPadでは聴けないと思う。
html5のaudioオブジェクトならiPadではインライン再生できるけど、iPhoneだと次のOS待ちのはず。
先生質問です。 jQueryでリセットボタンにidをしこんですべてのチェックボックスをはずす スクリプトをみつけたんですが、セレクトボックスも同時にリセットするように したいです。どのように書けばいいのでしょうか? (リセットボタンにidをつけなければ通常通りリセットされるのですがidをつけると 何故か動作しなくなってしまいました) 元スクリプト $("input#alluncheck").click(function(){ var chkb = $(this).children("input[type=checkbox]"); $("table td input[type=checkbox]").attr('checked', false); $("table td input[type=checkbox]").parent().removeClass("active"); return false; }); html <input type="reset" value="リセット" id="alluncheck"> ご教授くださいm(_ _)m
自己解決しますた
897 :
Name_Not_Found :2010/04/29(木) 13:13:49 ID:mChA73Va
>>894 >html5
おー、その手があったか。
iPhoneのSafariでタッチを検出するイベントはtouchstart,touchmove,touchend,touchcancelなどがありますが、 これらを意図的に呼ぶことはできませんか?(elm.touchstart();などで直接よぶのではなく) var event_func=function(e){ alert(e.touch[0].clientX); } document.body.addEventListner("touchstart", event_func, false); myEventCall("touchstart", 123, 45); myEventCallで画面上の(123, 45)をタッチし始めたことにするような実装がしたいのですが、 createEventやらinitEventやらの使い方がよくわからなくて困っています。
そうですか。
touchstart();
お触りは禁止です!
質問です。要素にクリックとダブルクリックの2つの関数を設置した んですが、ダブルの方が効きません。症状はクリックと同じ動作に なってしまいます。バブルなんとかという現象を以前達人の方に聞い たことがあるのですがそれでしょうか。回避方法ありますか?それと も2つするのが無理なのでしょうか。お願いします。
クリックした瞬間にフォーカスが外れるか、最初のクリックでイベントを 止めるような処理がどっかに書いてあるんじゃない? まずダブルクリックのイベントを外してみて、その上でダブルクリックしたとき、 シングルクリック2回が認識されるかどうかを確認してみたらいいと思う。
905 :
899 :2010/05/01(土) 13:24:01 ID:???
中途半端な知識しか持ってないくせしてその少ない知識を ひけらかしたいだけの奴らしかいないスレに期待した俺が悪かった。 ヒントどころか国語力も危ない奴がいるなんて……。 お疲れさん。
確かFirefoxとIEで挙動が違ったような。 片方がクリックのイベントが2回呼ばれて、もう一方がクリックとダブルクリックのイベントが1回ずつ呼ばれたと思う。 ブラウザの種類を判別してクリック連続押しを判別するようなプログラムを組んでみたら。
IE8ではクリック+ダブルクリック、Firefoxではクリック×2+ダブルクリックだった
答えが分かったなら書いてきゃいいのに touchstartのインターフェイスタイプは Appleの開発用ドキュメントにあるんじゃねの 少なくともそれが分からないとcreateEventもinitEventもしようがないよ 国語力を言う前にドキュメントを読む癖くらいつけろよな
>>905 ここはiPhoneのスレじゃないからスレ違い。俺iPhone持って無いから答えようがない
>>910 社会不適合者は今後もずっとここに隔離されてもらわんと困るから、そんなのは必要ない
と社会不適合者が申しております
お前らせっかくのGWなんだからどっか外に出かけろよ。 金と気力がなくて2chとTwitterに張り付いてるのは俺だけで十分だ。
お前一人にいい格好はさせねえよ
お前一人をそんな酷い目に会わせない、の間違いじゃないの? ってワケで俺も2chとTwitterの一日なのだが。
916 :
903 :2010/05/01(土) 21:49:43 ID:???
>>904 ,906さん
回答ありがとうございます。お二人のおっしゃるような感じです。
環境書き忘れてました。IE-8でした。やはり問題あるんですね。
アドバイス頂いたチェックしてもうちょっと頑張ってみます。
ありがとうございました。
結局テンプレはどこをどう直すの?スレ立て人や スレ立て規制時に代わりにたててくれる人が分かるように このあたりで一式貼っておいてくれると安心なんだけど。
見送りでいいんじゃねーの。 もう少し時間かかるだろ。
919 :
Name_Not_Found :2010/05/04(火) 15:49:12 ID:T7fd45v+
>>913 支援w
>>917 急ぐ必要もないし、もちょっと煮詰めてもいいと思う。
とりあえず現段階のまとめ。
・
>>2 読んで質問の質を上げるためにリライトしよう
・凡例的なのは後続レスに別記がいいけど長くなる
・手直しだけにするか、
>>1 から作りなおすか
>>855 10年の途中で「手取り足取り」っていう糞スレを立てたのは私です。
お断りします ハハ (゚ω゚) / \ ((⊂ ) ノ\つ)) (_⌒ヽ 丶 ヘ | εニ三 ノノ J
Chromeのスクロールイベントなのですが、スクロールを停止することができないです。 if (event.preventDefault) { event.preventDefault(); } event.returnValue = false; return false; どうすればいいでしょう。
event.cancelable
>>920 だから、あなたが
>>1 の差し替え案を貼ってくれて皆が賛成
すればそれでOKなんでしょ。さっさとどうぞ。やっぱ無理では?
漏れも今回見送りで賛成。
自治厨うぜー
<script language="JavaScript"><!-- function printMsg(msgAry) { n = Math.floor(Math.random() * msgAry.length); document.write(msgAry[n],"<br>"); } msg = [ "こんにちは", "いい天気", "みたいですね", "おしまい", "やっぱり再開?" ]; printMsg(msg); // --></script> これの関数の引数であるmsgAryがなぜmsgを呼び出せるようになるのかがわかりません。 名前は別なのになんで?
>>926 「関数の引数」とはどんなものだと理解してるのか説明してみて。
数学の授業でさ、こんな式でるじゃない f(x) = 2x + 1 「ここで f(a) = 22 となる a を求めろ」みたいな問題も聞いたことない? a = 1 f(a) = 2a + 1 f(1) = 21 + 1 = 22 な、簡単だろ?
printMsg(msg); ←
>>927 引数がなんのことかすら理解できてません。
>>928 数一でたしかりましたね・・・。
なんとなくわかりました。
>>929 なるほどそこですね。
931 :
Name_Not_Found :2010/05/07(金) 07:22:10 ID:i3rXakQ2
innerHTMLでボタンを押すと<input type=text>タグを挿入してformで送信と 言うプログラムを作ったのですがfirefox3.5でデータが送信できません IE8などでは正しく動作します 標準モードが悪いのかと思い互換モードにしてみたのですがそれでもダメでした どうしてでしょう?
Firefoxで動作しないのは作り手が悪い IEで動作しないのはIEが悪い これ常識
FirefoxならFirebug入れてDOMの構造見て ちゃんとinput要素が挿入されてるか確認してみたらいいじゃん どうせ引用符が抜けてるとかいうオチだろうけど
934 :
Name_Not_Found :2010/05/07(金) 10:01:50 ID:i3rXakQ2
もう少し詳しく書きますとinnerHTMLで<input>タグは出てくるのです ですが実際にそこに文字を挿入してPOSTしてもサーバーには空データ しか届きません。 IEでは届きます。 firebugも入れてみましたが特にエラーはありませんが…
935 :
Name_Not_Found :2010/05/07(金) 10:12:35 ID:i3rXakQ2
すみません解決しました <table> <form> <td> を <form> <table> <td> にしたら送信されました… レイアウトを崩さないようにしたのですが火狐さんは厳しいですね
帰れw
937 :
Name_Not_Found :2010/05/07(金) 10:34:38 ID:i3rXakQ2
更にすみません… いけたと思ったらIEの方でした だいぶ疲れてるのかな… 絶対firefoxが悪いのだと思ってきました
悪いのは君の頭だ
やっぱりvalid HTMLうんぬんは必要だよねー
>>937 あのね、HTMLっていうのはどんなタグの中にどんなタグを入れて
いいか悪いか全部決まっているの。それを無視してただ表示される
からとかだけでやってたら「たまたま」「ブラウザによって」
動いたり動かなかったりするのは当然。それを勉強する気がない
のならWeb制作なんかしちゃいけないと思うね。ということが
>>1 の冒頭に書いてあるんだけど読まなかったのかな。
どこを縦読み?
942 :
Name_Not_Found :2010/05/07(金) 12:40:35 ID:0fFRIQG1
>>935 うへー。まだそれやってる奴いたのか!
十数年前だぜ、それ流行ったの。Netscape3とか4の頃だっけか。
むしろ厳しいのはFxじゃなくておまいのほうだw
>>942 FORMが余計なマージン作っちゃうんだよね−。
5年くらい前まで、S○NYあたりでやってたよ。
当時のソース見たくないなあw
十数年後にはCSSハックも同じことを言われてるんだろうな そうであってほしい
Imageオブジェクトに相当するCanvasオブジェクトってまだ無いよね? createElement('Canvas')でもいいんだけど、new Canvas()したいお
newを表に出す設計はクソ ソースはgood partsなんちゃら
jquery使いすぎて伝統javascriptを忘れてるどうしよう(´・ω・`)
DOMじゃねーの?javascript忘れたままjQuery使えるってどんなだよ
あっそうですごめん(´・ω・`)
newするのってよくないんですか?new Date()はどう書けばいいですか?
jQueryは $(document).ready(function(){ var x = document.createElement("div"); $(x).css({"color":"red","backgroundColor":"blue"}); document.getElementById("example").appendChild(x); } な感じで標準のDOM操作で出来ることはなるべくライブラリに頼らないようにしてる なるべくね
余計にタチ悪いわ
>>952 純粋に疑問なので聞いてみたいんだけど、
それをjQuery使わずにやるメリットって何?
956 :
Name_Not_Found :2010/05/07(金) 20:56:35 ID:0fFRIQG1
>>952 >document.getElementById("example").appendChild(x);
面倒なのはわかるけど、ちゃんとあるかどうかは調べたいところ。
えー、次スレは975超えたら。テンプレ改訂は今回は見送りで。
一定回数繰り返し処理を行う命令は for (i=0; i<終了値; i++) ですが、(i=0; というのが意味わかりません。 低レベルの質問で申し訳ありませんがどなたかお教え願います。
>>960 JavaScript 入門
でぐぐれ。
初期化
for (var i = 0; i < 10; i++) { func(i); } var i = 0; while (i < 10) { func(i); i++ }
さすがに低レベルすぎね?スレまで来て質問する問題じゃないぞ
そんなこと言ったらこのスレの存在意義がなくなるぞ
>>966 まだ分かってないのな
そもそも便所の落書きに専門スレなんて必要ない
本なんか買わなくてもいい情報はウェブ上で手に入るググれ本を買うのは情弱 ってたまに聞くけどサイの表紙とチョウの表紙の本に限っては買ったほうがいいの?
自治厨です(笑)。 その本とかもテンプレに入れてもいいかもね。 まあ次スレで検討するんだろうけど。 必要のない専門スレが77スレも続くもんかね?(爆笑) おお、こういうのって2ちゃんねるらしくていいなー。
>>969 学ぶならキチンと学べって話。
初学者は手を抜くべきではない。
ネット上のnew Imageとかnew Audioで喜ぶアホにもな
〜という理由で、new は推奨されない。 => new はクソ!使うな! 小学生の頃こういう奴おったわw
new window.Imageは、HTMLImageElement#ownerDocumentをwindow.documentにセットする 仮に、これをowneDocumentが一致しないparent.documentにappendChildしようとすると 本来ならエラー(WRONG_DOCUMENT_ERR)にならなければならない ノードはDocumentごとに管理され、だからcreateElementはDocumentが持つメソッドだってのを もう少し意識して損はない Good partsで言ってるnewを使うなってのとは別 JSのコンストラクタは副作用が大きいのと、オブジェクト生成過程の隠蔽
>>> x = new (function(){this.x = "www";return 77})(); Object { x="www"} >>> x = (function(){this.x = "www";return 77})(); 77 うーん?
なにに躓いてるのかわからんがコンストラクタの挙動そのまんま あと後者はthisがグローバルオブジェクト(window)になってるっていうFAQ
実際、new嫌ってる奴ってだいたい
>>976 レベルだったりする
ちゃんと理解せず勝手にハマって突然否定しはじめる
JSシェルのGlobalがwindowである保証もない
>>976 最初ので77返したい場合は
x.constructor()
>>979 そういう環境で板違いじゃないものは俺は知らん
知らんのは勝手だが、要らん依存関係を持ち込むのは馬鹿 それだけのこと
ム板のECMAスレで言うべきだよね
HTTPヘッダをJavascriptで変更することは可能でしょうか
何をやりたいのかもう少し詳しく。 Ajaxでリクエストを送るときにならもちろんできる。 XMLHttpRequest#setRequestHeaderを参照。
>>987 たとえばhoge.txtがあった場合
日本語名.txtに名前を変更してダウンロードさせたいのですが可能でしょうか
次スレ立てて来て良い?
>>989 よろしくお願いします。こちらまたスレ立て規制。
991 :
989 :2010/05/08(土) 23:16:37 ID:???
んでわ、今回も改正案は保留みたいなので、このまま立てて来る
992 :
989 :2010/05/08(土) 23:23:50 ID:???
乙乙
次スレ立て乙
ume
999
このスレは1000の風になりました
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。