+ JavaScript の質問用スレッド vol.50 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQ】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… Q3. document.write(...)でページ内容を追加したいのですが… A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。 Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。 Q5. Aタグのonclickで動作指定してるのですが時々動きません… A5. 「onclick="...;return false"」としないとページ移動しちゃうから。 Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A7. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。 Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。 Q9. 100*1.15の結果が114.999…998となってしまうのですが… A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q10. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A10. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP") を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
>>1 乙。テンプレの残り入れました(どうしても連投規制になるよね)
./hoge.txtの内容を配列で取得したい。 どうすればいいか教えてくれ。
>>10 XMLHttpRequestでhoge.txtを読み込んで、stringとしてパースして配列に格納。
hote.txtを加工可能なら、JSONPにしておいてインクルードするほうが楽。
13 :
前スレ998 :2006/08/21(月) 18:05:17 ID:???
>999 <input type="checkbox" name="Kind" value="1">1 <input type="checkbox" name="Kind" value="2">2 だと、PHPで最後のckeckedの値しか受け取れないんです。 なので <input type="checkbox" name="Kind[1]" value="1">1 <input type="checkbox" name="Kind[2]" value="2">2 とした場合のKind[]の数(この場合だと2)が知りたいのです。
>>13 まだやってるのかよ。JS側で知る方法はないってば。
PHPで全部生成してるんだからPHPで
<script>
var count = 個数;
</script>
を生成すればいいだろ。ちょっとは頭を使ったらどうだね。
>>13 Kindで始まる名前のcheckboxタグをリストアップして数える、って
すればできないことないと思うけど、
>>14 の言う方法の
ほうが本質的だと思う。
16 :
Name_Not_Found :2006/08/21(月) 18:43:36 ID:RsUUDrKd
こんにちわ。グーグルアドセンスって、どうやってページテーマにあった 広告を出してきているのでしょうか。 恐らくJavascriptだけでは、不可能だと思うので、PHPなども使用していると思うのですが、PHPが動かない フリーサーバー等でも サイトテーマにあった広告を出せるのが不思議でしょうがいないです。 ご存知の方いらっしゃいましたら教えてください。お願いします。
showModalDialogで開いた子ウィンドウ内でページ遷移って出来ないんでしょうか? formタグでtarget="_self"を指定しても別ウィンドウで開いちゃうようです
>>17 できないと思うが、全面iframeにしてその中を遷移とかはどう?
>>16 スレ違いだな。初心者スレでも逝ってくれ。JS無関係だろ。
19 :
17 :2006/08/21(月) 19:20:00 ID:o89GqVbn
親ウィンドウには社員リスト
親ウィンドウのボタンを押すと新規社員入力の子ウィンドウを表示
子ウィンドウの登録ボタンを押すと、
エラーがなければ閉じて親をリロード
エラーがあれば子ウィンドウ内で遷移し続ける
こんなことがしたいんですが・・・うまく説明出来ないんでづらづら書いてみました@@;
>>18 iframe内での遷移は使ったことないのでちょっと模索してみます
>>19 はっきりいってそのインタフェース設計は糞だね。子ウィンドウを
出すのではなく、ボタンを押すと画面のどっちかの端から社員入力
の部品が出て来てその分親画面が狭くなり、その状態で何人でも入力
できる(一人入力した後もその情報は残っていて一部再利用可能)のが
いいだろ。それをAjaxで1枚表示したままずーっとやると。まあ盛れ
の趣味を語ってみただけだけど。
21 :
Name_Not_Found :2006/08/21(月) 20:05:26 ID:yASW5g64
>>20 同感。
最近ではポップアップウィンドウのブロックが一般化してきた流れで、
もう親ウィンドウ&子ウィンドウ式のインターフェイスって
受け入れられなくなってる。
たしかに、ブラウザアプリでサブウインドウを開く時代は 終わったと思う。 ajax的に1つの画面内で情報を更新するのでなければ、 むしろ古典的に全画面遷移のほうがいいよね。
前スレ974・979・986です。 フレームありのページに移動するときに、フレームページのアドレスの 後ろに#XXXをつけて指定し、その#よりも後ろのところに フレーム内のページのアドレスなりの情報を記述してやればいいんじゃないかと考えました。 移動したフレームページの方で、ページを読み込んだ時点で自動で#以降の 情報を読み取り、フレーム内を切り替えてやればいいのではないかと。 簡単な実験ではうまくいきました。
>>24 だからさ、そのページにJS仕込んでいいなら簡単なんだってば。
そう言ったのに。
>>25 簡単だから自分で考えろってことですよね?
で、結局
>>24 の方法も使わ無いことにしました。
>>26 いやまあ、定石としては「#」か「?」か「/」でくっつけるかクッキー使う
かでしょうけどね。
検索しまくったんですけど、その定石が見つからなかったんですよ。 無知は良くないですね。
Object をハッシュとして利用している場合に、ハッシュが空かどうかを 調べるにはどうしたらよいでしょうか? 今のところ、以下のように for (var in obj) で全部なめていますが、 計算量が O(n) かかってしまうので、もし軽い方法がございましたら 教えてください。 function hashLength(hash) { var count = 0; for (var dummy in hash) { count++; } return count; } function isEmptyHash(hash) { return 0 == hashLength(hash); }
hasProperty(obj){ for (var i in obj) { return true; } return false; }
31 :
29 :2006/08/22(火) 01:44:12 ID:???
>>30 そうですね、空かどうか調べるのに全部なめる必要はなかったですね。
いわれてみれば当たり前でした。ありがとうございました。
32 :
Name_Not_Found :2006/08/22(火) 01:46:20 ID:EulGMYEd
ajax
scriptタグのテキストを、ページロード時に動的に書き換えたいのですが上手くいきません。 bodyタグのonloadイベントハンドラから、下記のコードを含むファンクションを呼んでいるのですが、 SCRIPT = document.getElementsByTagName('script')[0]; var javascript = "alert(\'alertに置換')\;"; var JS = document.createTextNode(javascript); SCRIPT.replaceChild(JS,SCRIPT.firstChild); 実行してみると、「引数が無効です。」とエラーが出てしまいます。 どのように記述するべきかご教授お願いいたします。 OSはwindowsXP SP2、ブラウザはIE6.0.2900.2180.xpsp_sp2_grd.050301-1519 です。
35 :
Name_Not_Found :2006/08/22(火) 18:52:11 ID:a/0oRi/+
>>34 >ご教授お願いいたします。
×「教授」
○「教示」
どうしてそんな意味のない事するの?
ご教授願います、なんて変な日本語を使う奴がいまどきいるとは
きょう‐じゅ【教授】ケウ‥ 学術・技芸などを教えること。養護・訓練とならぶ教育上の基本的な作用とされる。
ご教授 ご教示 でぐぐってくれ 日本人ならこの程度の言葉はしっておこうぜ
またこのネタか テンプレにでも入れとけば?
41は自分の気に入らないことを信じない精神薄弱者 そのうち「辞書を信じるなよ」とか言いかねんな
>>42 ネットの与太じゃなく、辞書を信じろって言ってるんだが…
どうでもいいですよ〜
わかるからどっちでもいいよ。言語板いけ。
>>46 それを、ネットの与太って言われてるんだろ。
つか、本質的に、
>>34 の質問に答えないなら、
>>35 も
>>41 も、このスレに必要ないって事を理解しろよ。
教授に「ご」を付ける使い方はないよ
ご教授とかマジで間違っていないと思っている低脳の質問になぜ答えなくてはいけないのだ
>>34 scriptタグの内側はHTMLじゃないんだからそんな方法で
置き換えることはできません。書き換えたければ関数単位で
差し替えるとか。しかしそんなことをやりたいもんかねえ?
他の糞板はどうでもいいが、この板だけは「ご教示」を厳格に使用してほしい。
>>56 敬語ってのは、そう言う物なんだよ。大げさに相手を高める表現ってのは普通に使う。
おまえが、ググった先の奴が、そんな日本語の基本もしらんで、叫んでるだけだ。
いい加減にしろ。
>>52 aspx+ascxという構成で開発していて、動的に置き換えたいスクリプトがascxに記述されています。
最終的に、そのascxは複数のソリューションから参照されるという仮定の下に開発してるので、
同じファンクション内でも、一方のソリューションでは一部分を無効にしたい、もう一方では有効にしておきたい・・という事を、
ascxソース内のスクリプトの記述を直接書き換えずに実現したい場合は、
ページロード時に動的に置き換えるしかないんじゃないか・・・と思い、
>>34 に至った訳です。
>>56 専門性のある事を教えてもらうときには、"ご教授"って言うんだよ。
だから、こういう技術的特化質問スレなんかは、"ご教示"より"ご教授"の方が敬語としてはふさわしい。
確かに、俺らは、人に"教授"する様な、えらそうな者じゃ無いが、敬語として間違ってはいないよ。
誤用を正しいと思っている人たちが言葉狩りをしていくわけですよ
>>58 サーバーサイドでいじれるんなら素直に
サーバーサイドでいじっといたほうがいいと思うんだが。
ちなみにページロード後にscript要素の内容を書き換えたり
script要素を削除したりしてもそのscript要素で
定義された関数とかはそのまま使えるから。
>>59 間違いである。
正しいコードを教えてもらうくらいで、なぜ「教授」ということばが間違った
用法なのか。その理由をとりあえず5つだけ挙げておく。
1.
「教授」には必ず師匠がいて弟子がいるという人間的な関係が存在する。
しかし、掲示板での質疑応答にそれは相応しくない。「教示」が正しい。
2.
「教授」には必ず伝授に要する時間的な長さが介在する。しかし、掲示
板でパッと示されて納得するものには相応しくない。「教示」が正しい。
3.
「教授」には通例、謝礼が介在する。しかし、ことばだけのお礼で終わ
る掲示板には相応しくない。「教示」が正しい。
4.
「教授」には実態のある場所もしくは機関がついている。しかし、バー
チャルな掲示板にはそれは相応しくない。「教示」が正しい。
5.
「教授」ということばは、権威あることばである。教え合う程度のやり
取りには相応しくない。。「教示」が正しい。
結論: 馬鹿に物を教えることは出来ない。
結論:皆暇なんだ
なんでこんなに盛り上がってるの?(´・ω・`)
66 :
Name_Not_Found :2006/08/23(水) 02:33:29 ID:kCaKx1yQ
見て分からん奴は聞いても分からん
67 :
Name_Not_Found :2006/08/23(水) 02:46:43 ID:ycusawG8
getElementById("foo") で <DIV id="foo"> の オブジェクトが取得できると思うのですが、 id ではなく class を使用した <DIV class="foo"> の オブジェクトを取得するメソッドは無いでしょうか?
質問です 画像をClickしたらそのウィンドウが閉じるようにするにはどうすればいいのでしょうか(画像掲示板がむしゃらみたいな感じ)
>>67 なめて探すしかない
getElementsByClassName でググれ
過去スレ検索して来い
>>58 なにをしたいのかよくわからん。
簡潔にした具体例をあげれ。
74 :
67 :2006/08/23(水) 08:56:05 ID:ycusawG8
>>58 動的に変更したいのなら関数を再定義すればその関数が
差し代わるからそれで十分だろ。それで何が不満なわけ?
>>68 <img src="..." onclick="window.close()">
ただしJavaScriptなどで新たに開いた窓でないと警告が出る。
77 :
68 :2006/08/23(水) 09:14:33 ID:???
>>76 ありがとうございます!
いま過去スレ読んでる途中でした。
JavaScriptなどで新たに開いた窓・・というのがまた分かりません・・・
79 :
68 :2006/08/23(水) 10:41:31 ID:???
>>78 JavaScriptに関しては宇宙人です、すみません
どこかで頑張って調べてみます、ありがとうございました
http://www.kawaz.jp/pukiwiki/?JavaScript%A5%E1%A5%E2 次の HTML だが、どっちが正しく動くと思います?ちなみに ' は ' (シングルクオート)です。
<span onclick="alert(''')">ほげ</span>
<span onclick="alert('')">ふが</span>
「ほげ」の方をクリックするとエラーで、「ふが」の方は空文字の alert が出ます。要は javascript が解釈される前に実体参照が展開されて、ブラウザから見たら次のように書いてあるのと同じなわけです。
<span onclick="alert(''')">ほげ</span>
<span onclick="alert('')">ふが</span>
さて、ここで次の例です。これはどう動くでしょうか?
<script>alert('ほげ'')</script>
<script>alert('ふが')</script>
正解は「ふが'」がポップアップされます。さっきの例と逆、…というか script タグの中では実体参照の展開は行われないようです。ちなみに script タグの中を <!-- --> で囲っても結果は同じでした。
この2つの例はどちらも、IE と Firefox で試しましたがどちらもこの挙動のようです。
>>80 多分&を使って書いてたんだろうけど、意味不明です。
&を使って書いてください
>>80 コピペなんだろうけど、それで何が言いたいのかわかんないw
>>80 CDATAセクションの話だ。JavaScriptとは関係ない。
どっちもふがでポップアップって書いてあるの
「ポップアップ」 どうこうの話だったのかよw
a href をクリックすると javascriptが発動するようにしたいんですが ひとつひとつ <a onlclick=""> と書いていくと非効率です なんとか一括で設定できないでしょうか? document.getElementsByTagName('a').onclick = function () { alert("テスト"); } とりあえずこんな感じでかいてみたんですが動きませんでした
>>86 document.getElementsByTagName()が何を返すかくらい勉強しろボケ。
for(var a = document.getElementsByTagName('a'), i = 0; i < a.length; ++i)
a[i].onclick = function() { alert('テスト'); };
もちろんHTML上でリンクが全て読み込まれた後でやらないと無意味だから。
88 :
Name_Not_Found :2006/08/23(水) 17:45:51 ID:PAwv1H0z
質問です。 ディレクトリに目的の画像がなかったとき代替の画像を差し替えるように したく思い、次のように書いたのですが、「1.gif」の代わりに「2.jpg」を表示 しません。他に方法ありますでしょうか、ご教示ください。 function ShowImg() { try { document.images['x'].src='1.gif';} catch(e) { document.images['x'].src='2.jpg';} } <img name="x" src="0.jpg">
ありません。
>>88 なぜそれでは駄目かというと、srcをセットするという動作
自体は何の問題もなく実行できるから。その「後で」取り
寄せようとしたときに無いのを捕捉するにはonerrorハンドラを使う。
function ShowImg() {
var i = document.images['x']; i.src = '1.gif';
i.onerror = function() { i.src = '2.jpg'; };
}
カーソルが画像の上に来たときにインラインフレーム内に 画像や別ページを表示させる方法はありませんか? 全画面と別ウィンドウで開くというのはできたのですが。
>>91 <iframe name="名前" ...></iframe>で名前指定するよね。
frames.名前.location.href = '行き先URL';
を実行すればいいっしょ。
すいません input type="file"のvalueの値をjavascriptで操作しようと思ったんですが、 そもそも"file"にvalue値は存在しないんでしょうか winのIE6とFireFox1.5ではinputタグに直接value="hoge"とか入れても表示されません "file"のvalue値を操作するのにみなさんどのような方法をとってますか? よろしくおねがいします
セキュリティ上できません。
>>93 セキュリティ上の理由から「絶対に」操作できない。そんな
ことができたら「ページ表示したとたんに重要なファイルを
決め打ちで選択して取り寄せて盗む」ことができてしまうだろ。
そんな恐ろしいブラウザ誰も使わんよ。ちょっとは想像力を働かせろよ。
表示済みのテーブル(2列)があり、ボタン押下等のイベントにより、 新規行を追加(colspan=2を設定して1列として)します。 このとき、追加された行のcolspan設定が認識されず、 1列の中に入ったように表示されます。 作成されるHTMLは問題ないと思いますが、解決策はあるでしょうか。 ・JavaScript関数 for(var i = conversations.length - 1; i >= 0; i--){ tr = document.createElement("tr"); td1 = document.createElement("td"); td1.setAttribute("colspan", "2"); td1.innerHTML = conversations[i]; tr.appendChild(td1); obj = document.getElementById("A"); obj.insertBefore(tr, obj.firstChild); } ・HTML <table><tbody id="A"> <tr><td>あ</td><td>ああああああああああああ</td></tr> </logic:notEmpty> </tbody></table>
>>96 setAttribute()をやめてcolSpan属性を設定すればいいのでは。
とかくトラブルの元になるsetAttribute()が好きな奴、大杉。
洩れは絶対使わない。
>>98 colSpan属性を設定するために、setAttribute()を使ってるんじゃないの?
td_no_object.colspan = "2"; とか、そういう風に書けよ、ってことでしょ。
insertRow とか試せよ。過去ログが残っていれば調べるくらいしても(ry。
>>96 そもそもIEはTD要素のinnerHTML書き込みをサポートしないんでは。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var t = document.getElementById('t0');
for(var n = 1; n < 6; ++n) {
var d1 = document.createElement('td'), d2 = document.createElement('td');
d1.colSpan = n; d2.colSpan = 6-n;
d1.appendChild(document.createTextNode('abcd'));
d2.appendChild(document.createTextNode('wxyz'));
var r = document.createElement('tr');
r.appendChild(d1); r.appendChild(d2); t.appendChild(r);
}
}
</script>
</head><body>
<p><table summary="test" border="2"><tbody id="t0">
<tr><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td><td>F</td></tr>
</tbody></table><br><button onclick="test()">Test</button></p>
</body></html>
すみません。 過去スレ全集に45〜49のログを上げました。 が、マイナー環境(マカエレ。)のdatファイルのため、何か不具合がないか心配です。 一応マカエレ。での読み込みとWebブラウザでの表示を確認したのですが、 他環境でもし不具合があるようでしたら、どなたかにログを上げ直していただきたい。
HTMLTableSectionElementを飛ばして
HTMLTableElementに
HTMLTableRowElementを
insertBeforeしようとしているから
>>96 がおかしいわけで。
だから、それを暗黙に吸収してくれる insertRow とか使えと言っているのだが。
(HTMLTableElement#insertRow(index)
HTMLTableSectionElement#insertRow(index)
どちらも定義されてる。)
106 :
Name_Not_Found :2006/08/23(水) 23:14:31 ID:SoHpqiEg
<xml id="xml" src="syasin_aki.xml"></xml> で取得したXML文章を 一部のノード <ak>あかい</ak>を<ak>あおい</ak> という風に書き換えてから <xml id="xsl03" src="syasin_03.xsl"></xml> function chg03() { dsp.innerHTML = xml.transformNode(xsl03.documentElement); } で適応したいのですが var ak2=xml.createTextNode('あおい') xml.replaceChild(ak2,ak); をchg03にいれて 書き換えようとしたのですがうまく動きません うまいやり方を教えてください
107 :
Name_Not_Found :2006/08/23(水) 23:16:27 ID:N8FKQw5R
HTMLから変数を渡す方法って、どんなのがありますか?
108 :
Name_Not_Found :2006/08/23(水) 23:37:28 ID:j5ozKLcf
英語でおk
>>105 いや、
>>96 で id="A"を振ってあるのはtable要素じゃなくて
tbody要素だから大丈夫なんじゃないの?
>>107 適当な<input type="hidden">を作ってそのvalueで渡すとか?
110 :
Name_Not_Found :2006/08/23(水) 23:53:06 ID:N8FKQw5R
form以外では無いですか? onmouseclickとかで。 厨ですみません。
112 :
93 :2006/08/24(木) 00:23:09 ID:???
113 :
Name_Not_Found :2006/08/24(木) 00:24:33 ID:m7zm7mer
htmlファイルからjsファイルに渡したいんです。
htmlファイル: <script type="text/javascript">var a = "unko";</script> <script type="text/javascript" src="jsファイル"></script> jsファイル: alert(a);
>>106 変数akの中身は何だ
xmlはakの親なのか
自分のホームページのTOPページをよく更新するのですが、 自分のホームページを訪れる観覧者がホームページに入った瞬間、 1度自動で更新させるような(htmlタグ)を探していますが、 手動ボタンで更新させるhtmlタグや、自動で何秒ごとに更新させるようなタグしか見つからずに困っております。 詳しい方がいれば助言の方、宜しくお願い致します
以下のようなスクリプトで、hereをクリックすると画像を表示するように したいのですが、Firefox 1.5 では表示されるのに、IE 6.0 では表示され ません。なにがまずいのでしょうか。 <html><head><script type="text/javascript"> function $(id) { return document.getElementById(id); } function addListener(elem, eventType, func, cap) { if (elem.addEventListener) { elem.addEventListener(eventType, func, cap); return true; } else if (elem.attachEvent) { elem.attachEvent('on' + eventType, func); return true; } else { return false; } } function load() { addListener($('image_link'), 'click', showImage, false); } function showImage() { $('image_div').innerHTML = '<img src="test.jpg"></a>'; } </script></head> <body onload="load()"> <div id="image_div"></div> <a href="javascript:void(0)" id="image_link">here</a> </body></html>
118 :
Name_Not_Found :2006/08/24(木) 01:26:34 ID:SkAGM7dR
>>117 >$('image_div').innerHTML = '<img src="test.jpg"></a>';
ここがダメだと思います
>>116 <meta http-equiv="pragma" content="no-cache">
>>116 location.hashが空なら「#1」をつけたURIに遷移とか
すればいいんじゃないの。一度遷移した後は「#1」が
ついてるからそれ以上遷移しないと。
121 :
117 :2006/08/24(木) 01:36:17 ID:???
>>188 すみません、一部タグがまちがっていましたので修正しましたが、まだだめでした。
なお、以下の部分に alert を入れるとなぜか表示されるようです。
<html><head><script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function addListener(elem, eventType, func, cap) {
if (elem.addEventListener) {
elem.addEventListener(eventType, func, cap);
return true;
} else if (elem.attachEvent) {
elem.attachEvent('on' + eventType, func);
return true;
} else {
return false;
}
}
function load() {
addListener($('image_link'), 'click', showImage, false);
}
function showImage() {
$('image_div').innerHTML = '<img src="test.jpg"></img>';
// alert('dummy'); // ここに alert を入れるとなぜか表示される
}
</script></head>
<body onload="load()">
<div id="image_div"></div>
<a href="javascript:void(0)" id="image_link">here</a>
</body></html>
へれ?
>>121 リンクが遷移してしまうとスクリプトの動作はキャンセルされる。
showImage()の最後に「return false;」入れたらどうかな。
124 :
117 :2006/08/24(木) 01:58:48 ID:???
>>123 おおおー、いけました。どうもありがとうございます。
return false; では OK で、return true; ではだめでした。
こんな落とし穴があるとは。
> リンクが遷移してしまうとスクリプトの動作はキャンセルされる。
このあたりの仕様はどこを参照したら書いてあるのでしょうか。
ちょっと探してみたのですが、見つけられませんでした。
125 :
117 :2006/08/24(木) 02:38:41 ID:???
127 :
Name_Not_Found :2006/08/25(金) 08:37:30 ID:xGfPpRle
ヘルプ! リアルタイムで時間を求めるためにJavaScriptを用いてコードを開発しました。 しかし、1度ロードしただけで動きません。どこも悪いと思えないのですが。 <script language="javascript" text=text/html> <!-- function change(){ var da=new Date(); document.write(da); } setTimeout('change()',1000); --//> </script>
document.writeが悪い
誘導されてきました。 <style> #a,#b,#c{display:none;} </style> <script> var abc=new Array('a','b','c'); function hyouji(obj){ for(i=0;i<abc.length;i++){ if(obj==abc[i]){ document.getElementById(abc[i]).style.display='block'; }else{ document.getElementById(abc[i]).style.display='none'; } } } </script> <a href="#" onmouseover="hyouji('a');">a</a> <a href="#" onmouseover="hyouji('b');">b</a> <a href="#" onmouseover="hyouji('c');">c</a> <div id="a">a</div> <div id="b">b</div> <div id="c">c</div> これがIEでうまくうごきません。 顔と頭以外でどこがおかしいか指摘してください。
>>129 まず「どう動かない」のか説明してみれ。あとエラーは
出ていないのね? a、b、cという変数は使っていないね?
>>127 FAQ
>>3 のQ3/A3を読めボケ!
>>127 setTimeoutは繰り返し実行じゃなくてintervalだけ待って実行
>>130 FireFoxだと、下にマウスオーバーしたabcのどれかが表示されますが、IEだとなにも表示されません。
エラーも出ていません。a、b、cの変数も使っていません。
>>133 > 顔と頭以外でどこがおかしいか指摘してください。
こういうつまらないこと書く暇があったら、普通にデバッグすれば?
そうだな、試してみたけど普通に動くし
136 :
匿名 :2006/08/25(金) 12:01:16 ID:2+E6fdR5
みなさん、こんにちは。 プログラミングという雲の上の言葉を習得しようと思い立ちました。私は来月 で58歳になります。経理の仕事一筋でコンピューターは操作に自信があるだ けで、その元を作るなどとても夢にも及びません。 こんな私ですが、Java Scriptを知り定年後のことも考えて習得を発心しました。 プログラマーの定年は35歳と以前言われていたのが頭にありまして、老化した 頭ではとても無理と周囲から言われます。 みなさんの年齢はおいくつくらいなのでしょうか。それとプログラマー歴も何年 くらいでこのように超高度な式が書けるようになるのでしょうか。 ご教示くだされば幸いです。私のようなものでも可能でしょうか。
>>136 > 私のようなものでも可能でしょうか。
書き込みから判断するに不可能です。適性がありません。おやめください。
>>136 がんばってください!
でもなんでJavaScriptを習得しようと思ったんですか?
趣味でやるなら簡単な言語であるし、全然問題はないのですが、仕事にはなりにくい言語ですよ。(笑
あと、どんな言語であれ、「高度な式」 というのはないです。
どんな複雑なプログラムも、細かく見れば簡単な単語や文法の積み重ねです。
プログラマという職業の定年は35、というのは、頭というより、体力や意欲による部分が大きいのではないでしょうかw
頭の方は知識と経験でカバーできますが、体力はそうはいきませんし。
歳をとるごとに徹夜なんてそーそーできることじゃなくなってきました。
とりあえず、JavaScript なら数ヶ月も"ちゃんと"勉強して何か作っていけば、
JSでできることはほとんど何でも書けるようになるんじゃないでしょうか。
・・・釣りかもしれないとは思いつつ、マジメニお返事シタヨ!
私は40過ぎのプログラマなんだけど、正直「何年くらいで」とか「可能でしょうか」とかきこんなことろで聞いてる段階で、先行きは不安です。 javascrptなんかそれこそテキストエディタとブラウザさえあれば開発ができるのだから、最低でもまず自分でなにか作ってみて、それでわからなかったときにここに来るというくらいでないと、習得は難しいと思いますよ。
年齢的な影響より個人の特性の影響がずっと大だと思うね。 さっさと適当な入門書で勉強してみればいいんでないの。
同意。既に年齢の所為にして逃げ道を作っているあたりに意欲が感じられん。
> 適当な入門書 これが既に落とし穴w
老後の趣味でやるんだろ?別に批判する事ないだろ。むしろ、頑張れ!って感じ。
>>136 JavaScriptって、大概のブラウザに入ってるし、ちょこちょこっと動かすもの簡単。
とっつきは、非常に良い。
だけど、JavaScriptは、初心者向けの言語じゃ無い。
コンピューター言語の基礎が無いと、いつまで経っても、ピントの外れたスクリプトを書き続ける事になる。
最初に学ぶ言語としては、避けるべき言語だと、個人的には思う。
Pascalとか、Javaとかの、厳格な言語(制約が多くて、取っ付きが悪いが、間違えようが少ない)で基礎を勉強してから、
JavaScriptをいじると、JavaScriptのおもしろさが、良くわかるかも。
別に職業プログラマーになるわけじゃないんだから コンピューター言語の基礎なんてどうでもいいだろ。
>>143 同意。
やっぱJavaScriptから入ると仕組みがよくわからずひどいコードになりがち。
JAVAとかでオブジェクトって概念を知るとやっぱ面白さが違うよ。
コンピュータプログラミングの面白さを味わいたいなら、WindowsのHSPみたいなのがいいんじゃない? javascriptはナナメの線ひとつ描けないからなぁ
147 :
129 :2006/08/25(金) 15:39:47 ID:???
解決しました。 <a name="a"></a> <a name="b"></a> <a name="c"></a> が原因でした。
148 :
Name_Not_Found :2006/08/25(金) 15:52:28 ID:mNRjzoGQ
>>145 JavaScriptではオブジェクトの概念がわからないの?
そんなことないと思うが
>>148 そゆことじゃないよ。
JSはほぼ全てオブジェクトなんだけど、JSの本とか講座とかでそれをくわしく書いてるとこは少ないし、
オブジェクトの概念を一から理解するのにJSは向いてるかといえばあまり向いてない気がするよ。
ルーズな書き方してる質問者とか見るととてもわかってるとは思えないしね。
ぼくの習った本では、「オブジェクトとは」という章がちゃんとあって、 そこでは、オブジェクトとはモノである、って書いてありました。 例というのが載っていて、クルマはオブジェクトである。モノはみんな オブジェクトだから。で、クルマの色、年式、タイプは属性で、スピード はメソッドだって書いてありました。ホントかウソかわかりませんけど。
そういう無意味な例えをしている本は信用ならない
しかし自分で説明せよと言われるとかなり困るんだよな いっそオブジェクトをハッシュとして教えてしまったほうが楽かもしれない
154 :
151 :2006/08/25(金) 17:12:47 ID:???
>>151 それだけで、オブジェクト指向プログラミングができるようになるなら、驚愕だ。
習っただけで、ソースに活かせてる?
サイ本とMyUNIXはオブジェクト指向の説明大丈夫だと思うけどね
米国では第5版の出荷が始まったな。俺の手元には来月届く予定。
ttp://www.oreilly.com/catalog/jscript5/toc.html Array-Like, Closure, Class, Module, Namespace
という、今まで封印または半封印してきた言葉を積極的に使っているのも時流かな。
SVG, VML, <canvas>, Flash8 が、目新しい。
このスレのテンプレ同様、Ajax、XML、E4X が追加されたのは当然だな。
JSはVBよりはましなレベルのオブジェクト志向 と言うと叩かれるか?w とおひれをつけてみる>゚)))彡
>>158 ム板のECMAScriptスレでどうぞw
今日本語版を読んでるんだけど 原著買えば良かったかな これって訳者がオライリーに翻訳しますよって持ちかけない限り 日本語版って出ないのかね
161 :
Name_Not_Found :2006/08/26(土) 09:12:08 ID:MqUyLvyO
amzon.jpで書籍検索を以前やっていて、今朝別件でamazon.jpを利用したら、 あなた以前にこんな本見たでしょ!って、ズラズラと過去に調べた本のタイ トルが羅列された。正直いって怖い。JavaScriptはここまではしませんよね。
>>161 スレ違い。よそへ逝け。同じ本屋でて、そんなもの取れて当り前じゃん。
163 :
161 :2006/08/26(土) 13:26:20 ID:5yP8JElR
JavaScriptでのやり方が知りたいんです。
>>161 JavaScrptでは大量の情報を恒久的に覚えておく方法はない。帰れ。
165 :
161 :2006/08/26(土) 15:17:23 ID:???
あなたには聞いていません。 わかる人お願いします。
ちょっとまて、161って質問なの? チラシの裏に書いた日記だよね?
ここの回答者を信用しないのなら、ますますここに居る理由はないだろ。帰れ。
168 :
161 :2006/08/26(土) 16:17:09 ID:???
わかる人に聞いているんです。 わからない人は喋らないでください。
わかるよ。教えてあげないけどwwww
170 :
161 :2006/08/26(土) 16:32:19 ID:???
そんなこといってどうせわからないんでしょう。 わからない人は喋らないでください。
>>170 document.getAdjacentBalloonHead(セッション名)
言いからお前はテンプレ100回読んでみ?w 前にお前と同じ発言したアホがいるからww
173 :
161 :2006/08/26(土) 18:04:40 ID:m7aOxSYK
161で独白した者です。いまちょっと寄ってみて大変なネタに使われている のを知りました。163=165=168=170だと思います。流れを読めば釣だって 分かるんじゃないんですか?
(><)わかんないんです
175 :
161 :2006/08/26(土) 18:38:39 ID:???
>>173 どうしてこんな偽者が出てくるんですか?
意図がつかめません。
回答がわからないから、うやむやにして終わらせようと言うつもりでしょうか?
わかる人お願いしますね。
本物の161なら質問の意図と内容を明確にしろと
なんか偽者だらけだからトリップつけました 今後私以外の161は全部偽者です 人の名前を騙るなんてつまらないことしないでください
amazonが「過去に検索した本の一覧」を保持しておけるのは 当り前じゃん。データベースで検索して、そのときに検索した もののデータを検索したユーザIDと一緒に記録しておけばいい わけでしょ。 で、アンタはJavaScriptで何がしたいわけさ。まさかAmazon と同じにデータベースに全部記録したいとは言わないよな。 JavaScriptは言語であってデータベースじゃないんだから。 自分がやりたいことをきちんと書かないから煽られるんだろ。
>>178 あなたには聞いていません。ちゃんと教えられないならしゃべらないでください
2ちゃんで人に喋るなというのは無理ぽ。
単に過去に検索した2、3件をクッキーに入れておいて表示するとか?
てーかID出てるんだからageれば本人かどうかわかるっつ
183 :
161 ◆qdF/cGRD8Y :2006/08/26(土) 20:15:01 ID:ObKX+fOx
偽物が出てますね^^;
184 :
161 :2006/08/26(土) 23:26:25 ID:bVLu9s3u
信じないと思うけど、私が
>>161 の投稿者です。amazon.co.jpの。短いセン
テンスでもやはり文体というのはありますね。偽者はいかにも偽者らしいw
185 :
Name_Not_Found :2006/08/26(土) 23:30:50 ID:vzp+/+IM
IE6.0 OSは、XPです java scriptで文字を表示させることって可能ですか? htmlで<body>〜</body>の間に下記を書き込んで <script src="./js/○○.js"></script> おはようとかhtmlに表示させたいんです。 ファイル数が多いため1個1個書き換えると凄い時間がかかってしまって ○○.jsの中だけど書き越えると1回の作業で終わると思いまして。 どこかサンプルとか解説してるサイトないでしょうか?
document.write("おはよう");
>>186 m(_ _"m)ペコリ m(_ _"m)ペコリ
ありがとうございます!!
まじで助かりました!
189 :
Name_Not_Found :2006/08/27(日) 08:44:29 ID:n1Lh06cV
昨日考えついたんですが、シャッフルというのは配列要素をどこかにコピー してそれを配列の数でランダムに割り当てて戻せば一発でできませんか?
>>189 「配列の数でランダムに割り当てる」とは?
配列の要素数回Math.random()を呼ぶだけだと同じ番号が重複するけど。
だまってソース書いて実行しれと(´・ω・`)
シャッフルはだまって香汁 var playstate = 1; shuffle = 1; songs=new Array(); songs[0]="SONGURL HERE" songs[1]="SONGURL HERE" songs[2]="SONGURL HERE" if (shuffle == 1) { var randsg = Math.floor(Math.random()*songs.length); document.darkplayer.FileName = songs[randsg]; document.darkplayer.scr = songs[randsg]; document.forms['form'].playlist.options[randsg].selected = true; } function play(list) { if (playstate == 2) { document.darkplayer.Play(); } else { var snum = list.options[list.selectedIndex].value document.darkplayer.FileName = songs[snum]; document.darkplayer.scr = songs[snum]; } playstate = 1; }
関数(name){・・・} 関数("名前"); 上記な感じで引数に文字列指定できないお 誰かたすけてっ><
>>193 エラーの出ている最小限のソースを作って貼る。
それができないなら帰れ。
195 :
193 :2006/08/27(日) 16:39:28 ID:???
>>194 長年やってるんならこれくらい想像つくでしょ。
単純に
関数(name){・・・}
関数("名前");
こんな感じで引数に文字列指定できなかっ、て話なんだけど
>>195 つかんね。アンタがどんなアホやってるかなんて洩れは知らん。
ここで質問するのに向いてない奴は帰れ。
関数定義するのに予約語functionを書いてないんじゃ…
>>195 想像すれば想像つくだろうが何でわざわざ偉そうなお前のために想像しなきゃいけないんだ?
199 :
Name_Not_Found :2006/08/27(日) 21:36:12 ID:Aq9V4Hgg
>>199 そんなわけの分からん怪しいzipファイルを誰がDLすると思ってるんだボケ。
どうしてもそうさせたければ、先ず個人情報を公開しろ。
でなきゃ、その解凍したファイルをUPしてそのURIを貼り付けることだボケ。
HTMLだからソースを見て怪しくないと判断した人だけば実行すれば いいのでは。
>>199 セミコロンの自動挿入を使いまくるなんて、大胆な人だ
XMLなら<script>に <![CDATA[ … ]]> を入れるべきでは
207 :
Name_Not_Found :2006/08/28(月) 08:11:57 ID:NFshv0il
質問です。 いくつかあるinputの文字色を一斉に変えたいのですが、 IDに統一性がなく for文が使いにくい状況です。 var o = document.getElementsByTagName('input'); o.style.color='blue'; のような形で簡潔に実現する方法はありませんか。
>>207 全部変えるんだったら
var o = document.getElementsByTagName('input');
for(var i = 0; i < o.length; ++i) o[i].style.color = 'blue';
209 :
207 :2006/08/28(月) 09:14:02 ID:???
>>208 さん
ありがとうございます。それでよかったんですね。Egg of Columbusです。
どうもNAMEアクセスだと属性が変えられないような先入観あって試して
ませんでした。今度はちゃんとやってみてから来ます。
210 :
185 :2006/08/28(月) 13:12:29 ID:???
やっぱり解決できません。 document.write("おはよう"); だと、「おはよう」としか表示できません。 でも、「おはよう」と「こんにちわ」を表示させたいのです。
>>210 if (あなたのレベル >= 初心者のレベル) document.write("
>>5-6 のサイト読め");
else document.write("「javascript 講座」 ででもぐぐって初心者程度の知識つけてこい");
>>210 document.write("おはよう");
document.write("こんにちは");
手取り足取りスレに誘導させるための自演かなんかだろ
おカネないんですか?おカネがないならないってハッキリ言ってください。 Gatcha! @1150-ISHIWATARI(Ct.Cd.Jpn)
//この位やっておけば桶かな? document.write("おはよう"); document.write("こんにちは"); document.write("こんばんは"); document.write("おやすみ");
document.write(["おやすみ","おはよう","こんにちは","こんばんは"][Math.floor(new Date().getHours()/6)]);
217 :
185 :2006/08/28(月) 22:57:55 ID:???
「おはよう」と「こんにちわ」と言うのはただの例えで、挨拶を表示させたいわけじゃ有りません!!
エスパーはどこじゃ
っていうか釣りでしょ?w
以後放置で
>>185 の時点で放置できない奴がたくさんいるんだけど、なんで?
夏だから?
というか暇だからかなw
223 :
Name_Not_Found :2006/08/29(火) 23:02:10 ID:4NwIL1ju
すいません。シャッフルの過程が目に見えるようなスクリプトありますか?
こんばんは。
JavaScriptで出来た、オンラインソースコードエディタを探しています。
FCKEditorなどのようなWYSIWYGなエディタではなくて、emacsやviのような純粋なテキストエディタです。
emacsやviのように高度である必要はないのですが、構文ハイライトや自動インデントだけがあればいいと思っています。
http://www.aboutedit.com/ 一日かけてこれを見つけましたが、Internalサーバーエラーでした・・・
これ以外で、ご存知の方がいらっしゃいましたらご教示ください。
それから、エディタのアルゴリズムを載せているようなページをご存知でしたらあわせて教えていただければ幸いです。
225 :
224 :2006/08/30(水) 00:54:02 ID:???
226 :
Name_Not_Found :2006/08/30(水) 07:33:11 ID:rVOTBC/U
質問です。 function checkRadio(){ if (document.myFORM.rType[0]) alert("存在しています"); else alert("存在していません"); if (document.myFORM.rType[9]) alert("存在しています"); else alert("存在していません"); } <form name="myFORM"> <input type="radio" name="rType" CHECKED>一番目<br> <input type="radio" name="rType">二番目<br> <input type="radio" name="rType">三番目<br> <input type="button" value="存在状態表示" onClick="checkRadio()"><br> </form> これは「ラジオボタンの存在を調べる」というものなのですが、意味がよく わかりません。どなたか解説お願いします。
>>223 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function shuffle(a) {
for(var i = a.length-1; i > 0; --i) {
var j = Math.floor((i+1)*Math.random());
var x = a[j]; a[j] = a[i]; a[i] = x;
document.write(a.toString() + '<br>'); // print debug
}
}
shuffle([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]);
</script>
</body></html>
>>226 日本語がわからないみたいですが、何語で説明したらいいのでしょうか?
229 :
226 :2006/08/30(水) 13:34:09 ID:???
>>228 なんだその言い方は!
どこが分からんかいってみろ、ヴォケ!
>>226 そのコードが「ラジオボタンの存在を調べる」ようにはとても
見えないね。単にmyFORMというフォームにrTypeという名前の
部品が複数個あるとしてその1番目と10番目が存在している
かどうかを表示してるだけのように見える。しかも「.」が抜けて
いるため動かなさそう。
なぜアンタが煽られているかというと、自分がやりたいことを
まっとうに説明して質問するほうが早道なのに役にも立たない
他人のスクリプト(しかも動かない)を貼って解説しろとか
ほざいているから。
教えて欲しいことがあるならちゃんと説明するように努力は
しないとね。
>>230 すまそ「.」は抜けてないね、洩れの見ているフォントが
いまいちでよく見えなかった。
こういう無意味なサンプル置いてる記事はイカンね。 ラジオボタンの有無を調べることに何の意味があるのか。 自分で作ってるページなら、あるかないかわかるではないのか。 しかも230が書いてるように、汎用にすらなってない。
だいたい document.myFORM って書いてる時点でどうかと思うわけで。 こういうの書く人が平気で本とか出すから進歩しないんだよなあ・・・。
はっきりいってその辺の糞記事よりこのスレの常連の方が絶対 よく分かっているって。そう思わないのならここ来なきゃいいんだよ。 どうしても質問したいならその糞記事書いた奴に質問したらどうだ?!
<script type="text/javascript"> function shuffle(a) { for(var i = a.length-1; i > 0; --i) { var j = Math.floor((i+1)*Math.random()); var x = a[j]; a[j] = a[i]; a[i] = x; //document.write(a.toString() + '<br>'); // print debug } return a; } var r = {}; for (var i=0; i<100000; i++) { var a = shuffle([1,2,3,4,5]); var ajoin = a.join(' '); if(isNaN(r[ajoin])) r[ajoin] = 0; r[ajoin]++; } var i; for (i in r) { document.write(i,' = ', r[i], '<br>'); } </script> 確かによろしくない?
そうじゃなくて、シャッフルのアルゴリズムの問題 function shuffle(a){ for(var i=a.length;i--;) a.push(a.splice(Math.floor(Math.random()*i),1)),document.write(a.join(),"<br>"); } subject = new Array(); for(i=0;i<256;i++)subject[i] = i; shuffle(subject);
まず、日本語の勉強から始めた方がいいよ君たち
>>239 アルゴリズムが問題あるというのなら「どう問題がある」
のか説明しなよ。自分で別途書いても元のに間違いがある
かどうかは分からないわけだろ。シャッフルのアルゴリズム
なんて沢山あるんだし。pushだのspliceだの使いまくったら
すげー遅いぞ。
そりゃ他人の書いたアルゴリズムが「間違っている」と断言した 以上は説明する責任はあるわな。
>>238 計測するのなら添字を数値にした方が速いと思う。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function shuffle(a) {
for(var i = a.length-1; i > 0; --i) {
var j = Math.floor((i+1)*Math.random());
var x = a[j]; a[j] = a[i]; a[i] = x;
//document.write(a.toString() + '<br>'); // print debug
}
return a;
}
var r = {};
for (var i = 0; i < 10000; i++) {
var a = shuffle([1,2,3,4,5]), s = Number(a.join(''));
if(!r[s]) r[s] = 1; else ++r[s];
}
for(var i = 12345; i <= 54321; ++i) {
if(r[i]) document.write(i,' : ', r[i], '<br>');
}
</script>
</body></html>
質問です 小窓で開いた画像についてですが、その画像をクリックすると小窓を閉じるには どのような命令文になるか教えてください 現在、ヘッダーに記述無く下記の通り 小窓閉じもヘッダーに記述しない方法で実行したいです <a href="javascript:w=window.open('---.jpg','','scrollbars=no,resizable=no,Width=340,Height=260,resizable=no');w.focus();">画像</a>
>>235 そうですね。あと、allaboutでやってる高橋登史朗とかいう人。
あの人も本とか出してるようですけど、ぼくは、あの人がオブジェクトを
「oj」って略してるの見て本買うのやめました。なんかセンスない人のよう
な気がして。きっとプログラムコードもそれなりなんだろうなって。
>>244 <img onclick="close()">
>>239 Array#splice の戻り値は配列だろ。[0]もつけずに何をやりたいんだ?馬鹿?w
つうか、配列のシャッフルなんて、既出過ぎてここでは禁句だろ。
もし語るべき何かが残っているとすれば、
存在しない値に強制undefinedしてしまうのをどう処理するか、
シャッフルをソートの一種と考えたとき、ソート同様にsquashするのかどうか、
という二点だな。
>>243 元々は配列に1から20まであったからな。20!だっけ?並び替えのパターンは。
これはひどい(´・ω・`)
>>247 アンカーで画像を直接呼び出す記述なのでimgタグがありません
他の方法をご教授お願いします
>>246 そんなひどい・・・
252にワラタ
>>245 おお同じように感じてる人がいた。あの人はajaxが注目されるずっと以前からjavascriptでいろいろやってたみたいだけど、
なんかセンスが 「プログラムの本質を分かってない」という感じがするんだよね。まあブログとかはチェックさせてもらってますが。
まあ漏れもそんな偉そうなコード書けるわけじゃないが。
>>249 > ソート同様にsquashする
kwsk
>>252 それは多分無理だと思う
代わりに新しく開いたウィンドウにdocument.writeでHTMLを書き出すとかは?
257 :
252 :2006/08/30(水) 23:27:56 ID:???
なんとか自己解決しました とりあえずありがとねー
>>256 Mozではこういうので動いたけどIEでも動くんじゃないかね?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var w = window.open('t0.png', '_blank');
w.focus()
w.onclick = function() { w.close(); };
}
</script>
</head><body>
<p><a href="javascript:test()">test</p></a>
</body></html>
>>258 おーFirefoxで動いた。知らんかったわ
260 :
Name_Not_Found :2006/08/31(木) 08:52:00 ID:NAfEtTjx
textareaをdisplay:none;にした状態でfocus()にすることができないのです が、どういうコードにすれば可能でしょうか?普通のDOMでやってます。
>>260 display:noneでfocus()なんて無茶だと思うけど、一時的に
display:inlineにして、focus()して、またnoneに戻すとか?
お願いします。 フリーで配布されているcgi(掲示板)を設置しその掲示板を インラインフレームではなく、javascriptで、ブログに埋め込みたいのですが それは配布されているcgiをいじる必要があるのでしょうか? それとも、.jsファイルに何かをすればできる事なのでしょうか? (ブログパーツみたいな事がしたいのです) お知恵をお貸しください。お願いします。
>>262 ブログにはブログ用の掲示板というものがある。まる。
>>263 先生!ヒントをお願いします!
sbで使いたいです!
できません。
>>265 なんで自分で思い付かないだけで「できない」と断言するかなー。
>>262 その掲示板を読むのはXMLHttpRequest()を使い、responseText
をそのまま適当なdivのinnerHTMLに突っ込むのでできないかな。
送信するためには送信ボタンのところを修正してJavaScriptを
呼ぶようにしてその中でCGIに送るように中継するんだろうね。
すげー大変そうだけどね。洩れは作る気にはならんね。まあ
どうしてもやりたければ頑張って勉強してみれば。
>>266 できるんだからあとは自分で好きなように作るだけじゃないの。
作ってくれとかなら断るけどね。何か具体的な「技術的」課題
があるのなら相談には乗るよ。
269 :
266 :2006/08/31(木) 12:09:58 ID:???
>>268 そうか!とりあえず自分でがんばってみる。
わかんなかったらまた来るぜぃ!
ありがとな 268
270 :
262 :2006/08/31(木) 13:09:26 ID:???
>263 それを自分でやりたかったのですが。 >267 あなたがすげー大変っというなら、私には無理なんでしょうな。 どうもありがとうございました。
せっ せんせい!!!!!(><)
>>269 ホイールでスクロールできるようにしとけよ
Windows Media Player のバージョン情報を、ネットスケープ・FireFox・Operaなどで取得する 方法はありますか? バージョンを判定して、足りてなかったらWMPタグの変わりに、 エラーメッセージを出力したいのです。 下記のようなやり方をSony Musicのサイトではやっていましたが、 IEでしかバージョン情報は取得できません。 (WMP7.1以上かどうかを判定している) IE以外でWMPのバージョン情報を取得する方法をご存知の方、 よければご教授お願い致します。
<HTML> <HEAD> <SCRIPT language="JavaScript"> function getWmVersion(){ returnValue = false; if (WindowsでIEだったら) { if (isWmObject) { WMPObj = new ActiveXObject( "WMPlayer.OCX" ); if (WMPObj && WMPObj.versionInfo.indexOf("7.0.0") == -1) { returnValue = true; } } } else { var pName_Wmt="Windows Media"; for(i=0;i<navigator.plugins.length;i++){ if(navigator.plugins[i].name.indexOf(pName_Wmt,0)!=-1){ returnValue = true; } } } return returnValue; } </SCRIPT> </HEAD>
<BODY> <SCRIPT language="JavaScript"> var isWmObject; </SCRIPT> <SCRIPT language='VBScript'> On Error Resume Next isWmObject = (IsObject(CreateObject("WMPlayer.OCX.7"))) </SCRIPT> <SCRIPT language="JavaScript"><!-- if (getWmVersion()) { alert('WMPタグを出力'); } else { alert('バージョンが足りません'); } </SCRIPT> </BODY> </HTML>
276 :
266 :2006/08/31(木) 16:23:27 ID:???
また来ました。
スクロールバーを画像にする件で。
>>268 すまん、できんかった。
>>272 すまん、できんかった。
なにができないって、iframeの中の情報が増えると
スクロールバーの移動量がおいつかなくて
下まで見られないんだよ。
javascriptを、その都度修正すればいいんだけど
汎用性を持たせたいので無理。
もうダメだ。耳から砂が出てきたよ。
タフケテ〜
いいからもうFlash使え
>>276 iframeの中身の縦高さが分かればいいんでしょ。
var w = frames.そのiframeの名前, d = w.document, h = 0;
if(d.documentElement && d.documentElement.clientHeight)
h = d.documentElement.clientHeight;
else if(d.body && d.body.clientHeight)
h = d.body.clientHeight;
else
h = w.innerHeight;
とかすればhに高さが取れると思うけどどうよ。
279 :
Name_Not_Found :2006/08/31(木) 16:37:42 ID:MDIashv7
東京天文台のプログラムでは土曜日、他の大手コンピュータでは日曜 日、また他の計算によると月曜日という答えがあるらしいのですが、も っとも妥当なアルゴリズムで行くと、西暦1年1月1日は結局のところ 何曜日とするのが正解なのでしょうか。
dateobj = new Date(); dateobj.setFullYear(1); dateobj.setMonth(0); dateobj.setDate(1); alert(dateobj.getDay());
283 :
280 :2006/08/31(木) 16:55:29 ID:???
>>280 JavaScript以外はとたんに脳機能停止するようなボケ頭の人は黙っていてください。
もちろんJavaScriptも問題ですが。
JavaScript
>>283 2ちゃんは話題ことにスレがあるものなんだから洩れは
スレ違いを許容しないね。だいたいがここにJavaScript
の知識がある常連はいても暦のシステムの知識がある
奴はいないだろ。ユリウスとかグレゴリオとか全部知って
ないと答えられない質問だと思うがね。
まあ、
>>282 みたいにいきなりJavaScriptで計算してみせる
バカはいるがね。それがこの質問で何の役に立つ?
286 :
Name_Not_Found :2006/08/31(木) 18:10:35 ID:b7D4rxbH
ホームページ制作王は、世界の権威として名高いCOMDEXが
21世紀のワールドスタンダードに認定したWebパブリッシングアプリケーションである。
ホームページ制作王に不可能はない。
不可能があるとすれば、そこが人類の英知の限界点である。
21世紀、世界のWebはホームページ制作王を中心に回っていくのである。
にもかかわらず、ここ日本では、心ない風評のため、まだまだ普及に
遅れがみられる。
ホームページ制作王を普及させないかぎり、我が国のWebは、
世界の趨勢の後塵を拝するばかりである。
世界が認めた高性能!ホームページ制作王
http://pc8.2ch.net/test/read.cgi/hp/1106508682/
すみません、質問です。 iframeタグのscrollingプロパティって、JavaScriptから 参照、設定は出来ないのでしょうか。 NetscapeでフレームにでるスクロールバーをJavaScriptから 消したいのですがscrollingのプロバティの操作が有効では ないようです。 フレームを読んでいる上位のhtmlは変更出来ず、フレームに 読み込まれているhtmlから自分自身のフレームのスクロールバーを 消したいと思っています。 window.scrollbars.visible = false; とかもやってみたのですが駄目でした。 どなんたかご存知のかたがいらっしゃったら教えて下さい。 よろしくお願いします。
CSS
>>287 frameにはscolling属性はあるがiframeには無いぞ。HTMLの
勉強をしろボケ!
さらに、外側が別鯖で手が出せないならその要素のプロパティ
にもアクセスできる訳がないだろ。
自身のスクロールバーを消すのはJavaScript不要。CSSスレへ
逝って質問しろ。
>>288 ありがとうございます。
なんとかCSSでやれないかためしてみます。
>>289 実質Netscapeはiframeのscrollingプロパティを解釈するよ。
別鯖じゃないよ。同サイトだけど事情により修正できないだけ。
それから、scollingではなくてscrollingな。
>>290 「なんとか」ではなくCSSスレでは初歩中の初歩の質問だから。
<style type="text/css">
html, body { overflow: hidden }
</style>
あーつい答えてしまったがスレ違いなので反応しないように。
>>291 ありがとうございます。
実はフレームによばれる方のhtmlも制約があって実質そのhtmlから
参照されている別ファイルのJavaScriptでいろいろ実現しなきゃ
いけないんです。
それでCSSは xxx.style.yyy = zzz; という感じで実現してたんですが、
Netscapeだと
document.body.style.overflow = 'hidden';
が利かないんです。
で別の手段をさぐっていて全然上手くいかず困りはてて質問した訳ですが、
「CSS」というヒントをいただいた時にdocument.writeで書けば良いのでは?
という考えにいたったわけです。
実際にこれで上手く動作しました。ありがとうございました。
スレ違い失礼しました。
こんにちは。 JavaScriptでフレームのスクロールバーの有無を制御したいのですが、 以下のスクリプトをIEで実行しても無視されます(scrollingの値は参照できます) window.parent.frames[1].frameElement.scrolling='no'; // スクロールバー無し どなたか正しいスクリプトを教えて下さい。 (上スレのdocument.writeかCSSでスクロールバーを消すのは確認してました。 Javascriptで制御する方法が知りたいのです)
>>293 あるフレームから隣のフレームのスクロールバーをON/OFFする
という理解でいいのかね。そのあたりが書いてないけど。
295 :
Name_Not_Found :2006/09/02(土) 11:59:35 ID:0h/JALgr
申し訳ありません。質問があります。 まず、親画面から子画面をモーダルで発生させます。 子画面にはリストボックスがあり、データを複数 選択できます。 データを複数選択後、確定ボタン押下のタイミングで、 親画面にリストで選択された値を表示させたいのです。 その際、親画面全体を再描画するのではなく、 リスト選択されたデータを表示させる一部分 のみを変更したいのです。 (<DIV> … (リストの中身) … </DIV> ) ↑ 親ウィンドゥの、この部分のみ変更。 もし対処法ご存知でしたら、ぜひともご教授頂きたく 思います。よろしくお願いいたします。
>>295 そのdivにID振ってボタン押し下げ時に
window.opener.document.getElementById('ID名').innerHTML = '入れ替え内容';
入れ替え内容は勝手に作ればいいだろ。終了。
それを言うなら教示だなボケ
辞書には「教授する」も載っているぞ。以下無限ループのスレ 違いなのでそういう突っ込みはやめて欲しい。
299 :
Name_Not_Found :2006/09/02(土) 13:08:06 ID:0h/JALgr
>>296 ありがとうございます!記載の方法で実現することができました。
>>298 フォローありがとうございます!(^^;。
300 :
Name_Not_Found :2006/09/02(土) 13:41:05 ID:Xc3ug3dF
>>298 >辞書には「教授する」も載っているぞ。
またその段階に退行するのか。。。。
わずか10日前にあれほど。。。。
301 :
293 :2006/09/02(土) 13:48:43 ID:???
>>294 その操作です。
色々試しているのですが旨く行きません...
# setAttribute()を使うのか知らん?
>>301 いいかね、setAttributeとかscrollingとか「HTMLの属性を
JavaScriptからいじろう」という発想は忘れろ。だいたい
痛い目にあうことになる。「表現」なら最初からDOM CSSを使う。
--- main.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head><title>???</title></head><frameset cols="*,*">
<frame name="left" src="t1.html"><frame name="right" src="t2.html">
<noframes><body><p>no frame...</p></body></noframes></frameset></html>
--- t1.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function set(v) {
var d = parent.frames.right.document, b = d.documentElement || d.body;
b.style.overflow = v;
}
</script>
</head><body><div><button onclick="set('hidden')">OFF</button>
<button onclick="set('auto')">ON</button></div></body></html>
--- t2.html --- ご自由に
>>303 なるほど、これが世に言う「馬鹿の壁」ってやつか。
「教授する」はもちろんその用例が日本語にあるただしい動詞句。 だが、こんな場合には使わないぞ。 あちこちの掲示板で「ご教授下さい」 が大流行しているが、正し いSyntaxを操るここの住人なら日本語も正しいSyntaxで遣いたいものだ。 どうでもいいというヤシは、結局、 if(you=voke)goToMoon(); とでも書くようなヤシなんだろう。
>>285 同意。西暦1年1月1日が本当は何曜日だったのか、これは意外と難しい問題だな。
アイザック・ニュートンの誕生日は、ユリウス暦では1642年12月25日だが、グレ
ゴリオ暦では翌年の1月5日になるということはわかっている。
var a = new Array(); for (var i=0; i<5; i++) a[i] = i; とした配列があって、それのすべてを参照するときに var len = a.length; for (var i=0; i<len; i++) alert(a[i]); と何度も参照される値(a.length)をあらかじめ別の変数に入れると 高速化できるってのはもはや都市伝説となってしまったんでしょうか?
>>306 西暦元年に1月1日なんて存在しないだろ。
ここにいるのはほぼプログラミング馬鹿であって常識人とは 全然限らないと思うがね。スレ違いと分かっていても言い合い が止められないくらい馬鹿だということは少なくとも分かる(w
>>307 ちょっと測ってみた
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var a = new Array(1000);
var t0 = new Date().getTime();
for(var i = 0; i < 100; ++i) {
for(var l = a.length, j = 0; j < l; ++j) a[j] = i;
}
var t1 = new Date().getTime();
for(var i = 0; i < 100; ++i) {
for(var j = 0; j < a.length; ++j) a[j] = i;
}
var t2 = new Date().getTime();
document.writeln((t1-t0) + 'msec<br>');
document.writeln((t2-t1) + 'msec<br>');
</script>
</body></html>
とあるマシンのMoz: 428msec vs 450msec
別のマシンのIE6: 321msec vs 370msec
まあ10%くらい違うかも試練。洩れはそんなの気にするより
分かりやすく書くね。普通ループ内の処理がずっと重いし。
ましてalert()で5回のループでそんなことするの無意味。
恥をかくのは間違いなくご教授の方なんだが、 低学歴に物を教えるのは本当に大変なんだな
「教授」:教え授けること 「教示」:教え示すこと ここで、問題は二点あって、 1、「授ける」・「示す」という動詞の意味の違い、授けるは身分的に上のものが下のものになにかを与えるという意味があり、示すにはないということ。 2、教授・教示する主体の知識の違い、教授は主体側の知識の一部分を「体系的に」教えるという意味で、教示はそこには言及していない。 で、掲示板などで教授と教示を使う文脈では 「ご教授ください」という言葉は、身分的下位の者が上位のものにお願いをする言葉としては、あつかましい言葉になってしまう。もし本当に「教授」するなら、JavaScriptはJavaではないというところから、ライブラリの使い方まで体系的に教える必要があるから。 「ご教示ください」という言葉には、そのニュアンスがなく、ある一部分の問題を解決するための質問をするときに使うことができる。 というわけで「ご教示ください」を使うのが正しいと主張しているわけで。 どっちでもいいと思うけどね。
しかしこないだから教示厨うざいわー。(´・ω・`)
>>314 おまえ、根本的に敬語の仕組み判ってないだろ…。
拝聴するように、とか言われて、拝みながら聞くか?
>>314 うざい。キエロ
べらべら演説した挙句、どっちでもいいとは、おまえバカだろ。
いいから黙って「教示」を遣え、アフォども。
318 :
293 :2006/09/02(土) 17:38:53 ID:???
>>302 ありがとうございます。回答を参考にします。
あとDOMも勉強してみます。
御説、有難く拝聴(だけ)いたしますた〜(w ぐーぐるで検索したら「教授する」「教示する」の比率は 3:2で「教授する」が多いんだよね。つまり普通の表現に なっているわけさ。そうかアンタはぐーぐるより昔の由緒ある 紙に書かれた文章だけ相手にしたいわけね。だったら2ちゃん なんかに来ないで本でも読んでればいいじゃん。
だいたい「言語は生きもの」とか「表現の自由」とか分かって ないのかね。顔真っ赤にして自分の気に食わない表現を叩こう とするよりもっと有意義な時間の使い方があるんじゃないのかね。 お、2ちゃんらしくなって来ました〜。
さあ、
>>317 が頭から湯気を出して言い返す言葉を考えて
おります。どんなのが出て来るでしょうか。楽しみです。
少々お待ちください−
おいおい… もはや次のテンプレに入れるしかないんじゃねーの? ・このスレでは言葉づかいの正しさに関する議論(例「教示する」 vs「教授する」)はスレ違いでありスルーされます
>>322 現にスルーできていないことに問題があるのでわ ^_^;
次の質問、どぞー(せっかく正常な状態だったのに ;_;)
<!-- ここまで <html lang="ja"> --> </html> <html lang="ja-web">
326 :
317 :2006/09/02(土) 19:07:44 ID:???
とあるdocumentがフレーム内のdocumentか否かを調べる方法はありますか? documentからwindowを参照できさえすれば、そのwindow == window.topで調べることが可能だと思いますが。
317じゃないけどさ
>>320 >だいたい「言語は生きもの」とか「表現の自由」とか分かってない
その台詞って、所詮、間違って言葉使った奴が使う言い訳に過ぎないよ。
「教示」も「教授」も両方、使いこなせる人が、
敢えて本来とは違う使い方をすれば、まさに「表現の自由」
だけど、単に間違いを誤摩化す言い訳に使うと格好悪い。
言葉違いぐらいでこんな目くじらたててるのってどうかしてない? oinkじゃあるまいし。
>>327 別に document 同士で比較すればいいやん(´・ω・`)
>>328 どう見ても
>>320 と最初にご教授を使った奴とは別人だろ。
それとも誰がどの発言したか同定できてるの。2ちゃんの管理者でも
ないくせに。状況を自分の都合のいいように解釈したら何でも言えるだろ。
そして「教授する」が60%、「教示する」が40%というぐーぐるの
検索結果はどう説明するわけ。世の中は6割が馬鹿とか言うのか。
現実を直視しない奴が馬鹿なんだろ。
目くじらたててるんじゃ無くて、馬鹿にされてるんだろ。 たとえどんな些細なことでも、他人の無知は、徹底的に 笑い、嘲り、あげつらうのが、2chのデフォらしいし。
>>331 なるほど正論だ。しかしどっちかというとガキの喧嘩に
しか見えない。周りからスレ違いだと言われても理性が
なくてやめられないアホども。ガキの喧嘩は迷惑だ。
>>327 javascript:for (p in document) {try {if (document[p] == function () {return this;}()) alert('document.' + p);} catch (e) {;}};eval()
>>330 >そして「教授する」が60%、「教示する」が40%というぐーぐるの
>検索結果はどう説明するわけ。
まさに 『根拠:インターネットに書いてあった』
>>334 「書いてあった」と「比率」じゃだいぶ違うんじゃないの。
現にどちらが多く使われてる分かるという点でさ。
>インターネットで見た 謙日流だっけそれ
337 :
317 :2006/09/02(土) 20:55:28 ID:???
真実を多数決で決めることほど愚かなことはない。 ネットで誤用が正用を上回ってる例など腐るほどあるぜ。ヴォケ
>>311 >そんなの気にするより分かりやすく書くね。
そういう問題じゃあないだろ。
静的な length を扱いたいなら、一時変数に格納。
動的な length を扱いたいなら、(オブジェクト).length を毎回取得。
すいませんが、Googleの検索件数の比率をお書きになられている方、 それは単に「教示」と「教授」の発現件数に過ぎないのではないでしょうか? 問題なのは 『本来「教示」を使うべきところに』 「教示」が使われている件数 と 「教授」が使われている件数 だと思うのですが。。。 Googleには『本来「教示」を使うべきところに』という 文脈判断の能力は無いと思いますので、単に「教示」と「教授」の発現件数を 挙げても無意味だと思います。
>>336 >謙日流だっけそれ
あーあ、フラグ立てちゃったね。
>>338 静的であっても一時変数は使わない
動的な場合にループ処理開始時点での長さが欲しかったら変数に入れるけど
ネット上でら抜き言葉の方が多いからら抜き言葉の方が正しい? 死ねよ
自分の無知っぷりを堂々と人に押しつける教授厨ウザス
>>342 いや、あんたがら抜きなんか決して使わないつーのなら
それはそれで筋が通っていると思うけどね。洩れは使うけどね。
>>339 はい、そうですが、私がランダムに何件かスキャンしてみたところ
ここで「そんなのに教授するなんて言わない」と言うような使い方
ばかりだったかと。(「教授vs教示」論は除く)
ご自分でもチェックしてみたらどうでしょう。
>>345 ら抜き言葉は仕事を始めてからは決して使っていない。
自分がどう感じるかではなく、仕事相手にら抜き言葉を使えば教養が無いと見る人がいる可能性がある、という事実が重要。
ご教授します、役不足に代表される勘違い日本語や、尊敬語や謙譲語などのこういった誤用はやはり素養の無さを示すよね。
というわけでIBM大和の受付お姉さん、社内の敬称や「とんでもございません」はやめてください。
おまいらそろそろスレ板移動しれ(´・ω・`)
いや、2ちゃんや友人との会話で使わないのかという話だけどね… そうか、このスレだったら過去スレ検索すれば事例が分かるな。 あとでやってみよ。まずはデータだな♪
レスの無駄づかい、いくない。
>>349 2ちゃんでのみ使うんだったらご教授くださいでもいいんじゃない?
でも使えばフレンチキスをバードキスと勘違いする並のバッシングを受けるだろうが
>>351 だから言葉づかいの問題でこんなにレスの無駄使いして何が
嬉しいのか。ほっときゃいいじゃんと思うわけ。議論するのなら
JavaScriptの議論して欲しいんだよな。
テンプレの
>>1 に入れた方がいいんじゃないのかな。
: このスレに書き込むことが許されるものは以下のとおり
の項目中に
・他人の言葉使いや語彙の選択に寛容でいられる者
とかね。
>>353 「言葉使い」は「言葉遣い」が正しい。不満なら辞書を引けボケ。
ネットの結果を知りたいか?
・言葉使い の検索結果 約 757,000 件
・言葉遣い の検索結果 約 1,700,000 件
で正用の「言葉遣い」の方が百万件近く上回っている。ま、常識だが。
なぜ「言葉使い」はまちがいか。それは、意味が「使」の語義的に
「言葉を使う人」若しくは「言葉のお使い」みたいになってしまうからだ。
きちんとした辞書を見れば原義と用法がちゃんと載っている。
「教示」と「教授」についても教えてほしければ教えてやるぞ。ボケ。
formを使わずにPOSTで情報を送信することはできますか?
xmlhttp
どーでもいいけど、文章の最後に「ボケ」なんてつける人に日本語教えてもらいたくないな。 このスレ、言葉使いのレスで何レス無駄にしたんだろう?(´・ω・)
ま、テンプレでは「言葉づかい」にするんでしょうね。
もともと有益なレスなんて数%だしどうでもいい。うざいけど。
数%が2%になるのはやっぱり嫌だな。
きみたちは安易に有益な何かを求めすぎているのでは? どうでもいい言葉の話かもしれないが、洩れにはそれなりに面白かった。 世の中に安易に手に入る良いものなどどこにあるだろうか。あのダイヤモンド を見たまえ。炭素が単一な無色透明の硬い結晶になるまでには、十億年の歳月を 要する。しかも地下200キロの深さでマグマの燃えたぎる高温と強大な圧力が 必要なのだ。それを見つけるのにどれほどの努力が必要かご存知か? 掘り上げた土砂の中に一億分の一の率でしか発見できないとされている。しかも 発掘された原石の中で宝石としての価値があるのは、わずか10パーセントに 過ぎない。きみたちの言う有益なスクリプトなども同じようなものだ。 Easy come, easy go.これは私が某研究所にいたときによく言われた言葉だ。
はいはいワロス。でも洩れはスレ違いは許容しないよ。
「ご教授お願いします」なんて言うから変なのが現れる 「教えろやハゲ」で十分だ
>>365 確かに(笑) 2ちゃんだしな。
洩れは「申し訳ありませんが…」とか謝って質問してくるのに
むかつく。何謝ってるんだ、てめーが調べない言い訳かよ、って(w
367 :
Name_Not_Found :2006/09/04(月) 08:58:25 ID:NnNZOGIY
1000までの整数の中で素数を列挙しないさいというとき、抽出するアルゴリズム で一番簡潔なのものってどういうのがありますか。 949 番目の素数 7489 までは求められますが、JavaScriptだとそれ以降が「実行 時エラー: スタック領域が不足しています」となってしまいます。
エラトステネスのふるい。
まあ、素数表を作っておくのが一番はやいと思うけど。
>>367 藻前のアルゴリズムが糞なだけだろ。しかも「1000までの整数」
といいつつ7489を求めているというのは何なんだ。もっと自分で
よく見直してから質問しろボケ。
素数列挙アルゴリズムで再帰など不要。再帰をやめればスタック
あふれはなくなる。
それって学校の課題ですか?
>>367 7489程度でスタックオーバーフローなんてどんなくそコード書いてるんだ。
しかしなんか見覚えのあるメッセージと思って
「949 番目の素数 7489」でググってみたら……
そっからたどれるリンク先に素数を列挙するコードが
山ほどのっかってるだろ。
373 :
Name_Not_Found :2006/09/04(月) 13:01:53 ID:rFQ6lJui
ブログの管理画面から移動する際に記事投稿時は警告ダイアログを出したいのですが function disp(ansa){ window.confirm('移動する(´・ω・`)'); } HTML部分 <body onUnload="disp()"> だとキャンセルを選択しても移動していまいマス。 どんな感じで判定を受け取ればよいのでしょうか
>>373 confirmでokかキャンセルの選択した結果はどこに行くと思ってる?
それ以前にunloadまで来ちゃうと止められないんじゃないかな。unload自体確実に起こるわけじゃないし、移動のトリガとなる部分で処理したほうがいいと思う。
>>365-366 といいつつ、実際そんなこと言ったら 「教わるものの態度じゃない」 とかなんとかケチつけるくせに^^;
>>366 >てめーが調べない言い訳かよ、って(w
まさにそこだと思う。
ネットでものを尋ねる程度に仰々しく敬語使われると
「あ、こいつ、
自分で調べず楽しようとしてる後ろめたさを
大げさな敬語を使うことで贖おうとしているナ」
と感じる。
「教授」指摘厨の連中もこの辺が引っかかってるんじゃないかな。
>>376 教授の議論はもう充分かと思うが、それはあるかもな。慇懃な奴、にやけ
た奴はときどき無性にカチンと来るときがある。ところで今後は「教示」な。
ご教授ください って書いたら このスレのログくらい読みやがれボケ ってことですかw
じゃあ、次の質問から わたし中学生です。 〜質問内容〜 おしえてお兄ちゃん☆ で。
>>379 中学生の後に「女の子」が抜けてるな。
個人的にはショタ系なら男でもOKだが。
そこのキミとキミ。私語はやめて廊下に立ってなさい! いまはJavaScriptの時間ですよ!
日付関数で使う「86400000」ってさ、なんかゴロとかで覚えてる? どうも忘れっぽくて。
>>384 使わない。24*60*60(*1000)
>>384 はちまんろくせんよんひゃく
とゼロ3つ
ワロスでいいじゃん
完璧覚えた!
>>373 (1)「return window.confirm(...); 」とする。さらに
(2)「<body onbeforeunload="return disp(...)"> 」かな。試してない。IE専。
わたし中学生です。 ラジオボタンやチェックボックス、テキストボックス等が混在した フォームの内容をXMLHttpRequestを利用してサブミットする JavaScriptを書いており、そのフォームからpostするデータの生成方法 について質問です。 現状ではform内のinput、select、textarea要素のコレクションを 取得し、要素名やtype属性で場合わけし、必要に応じてcheckedや selectedプロパティなども比較しながらチマチマとpostするデータを 生成しておりますが、何か他に効率よい方法はありますでしょうか。 おしえてお兄ちゃん☆
自分のファイル名(拡張子抜き)を保持して、 そのIDの要素にclassを追加することでデザインを変えたいのです。 で、以下のことをやったらFirefox、safari、ネスケはOKで、IEだけダメでした。 IEってCSSを初めに読んで読み直さないとかですかね? それとも何か文法がおかしいですかね? 以下抜粋です。 <html> <head> <style type="text/css"> .on { background-color:#CCCCCC; margin-top:100px; } </style> <script type="text/javascript"> function load(){ var path=window.location.href; // URLのパス var file=path.substring(path.lastIndexOf('/',path.length)+1,path.length); // file名 var id=file.substring(0,file.lastIndexOf('\.',file.length)); // 拡張子を除く alert(id); // 確認 var el=document.getElementById(id); el.setAttribute("class","on"); alert(el.getAttribute("id")); // 追加されたか確認 } </script> </head> <body onload="load()"> <li id="CSSforSSI">色が変わればOK</li> </body> </html>
>>392 "class" → "className"
>>391 ここじゃなんだから、ちょっと部屋に行こうか。
貞操の危機
>>392 このスレだけでも何回も出ているが、IEのsetAttribute()は
そういうのに使っても役に立たないから。過去ログ読めボケ!
文法がおかしい?もしそうなら構文エラー出るだろ、エラー
見てないのかよ?!
>>393 ありがとうございます。できました。
>>395 ごめんなさい。setAttributeで検索掛けたけど
IEの実装が変っていうのしかでてこなかったので聞いてみました。
397 :
391 :2006/09/05(火) 10:58:12 ID:???
>>393 質問自体はネタじゃないんで、よかったらここで教えてください。
よろしくお願いします。
>>397 > 質問自体はネタじゃないんで、よかったらここで教えてください。
そんなの信じられるかよw
多分方法は無いんじゃないかな
>>391 手抜き気味だがこんな汎用関数作ってるよ
function getFormValues( name) {
var r={} ;
function setobj(key,val) {
if(r[key]) {
if( typeof r[key] == "object" ) {
r[key].push(val) ;
} else r[key] = [ r[key], val ] ;
} else r[key] = val ;
}
var o = document.getElementsByName(name)[0].elements ;
for(i=0;i<o.length;i++) {
e = o[i] ;
switch(e.type){
case 'text':
case 'hidden':setobj(e.name,e.value) ;break;
case 'textarea':setobj(e.name,e.value) ;break;
case 'radio':if(e.checked) setobj(e.name,e.value) ;break;
case 'select-one':setobj(e.name,e.value) ;break;
case 'checkbox':if(e.checked) setobj(e.name,e.value) ;break;
}
}
return r;
}
べ,べつにおにいちゃんって言われたから答えるんじゃないんだからねっ!
>>399 これだけの処理のためにprototypeを入れるのはナンセンスでしょう
400じゃないけど自分で作ったほうがいいんじゃないかな
IE用にsetAttribute作ってやるだけじゃんね
>>401 >これだけの処理のためにprototypeを入れるのはナンセンスでしょう
確かに、JavaScriptを書くのはこれで最後にしたい、と
思っている人にはPrototype.jsは勧められませんが、
質問の文面から判断して、これまでも、これからも
JavaScriptを書く機会の多い人なのかな?と勝手に
思ったので、それなら、他にもいろいろな便利機能も
詰まってるし、今後、いろいろな機会で
Prototype.jsは知っていることは損にはならない
(まぁ、賛否いろいろでしょうけど、)かと思って
善意で紹介しました。
あと、もちろん、自作することを否定するわけでもありません。
404 :
Name_Not_Found :2006/09/05(火) 12:11:22 ID:NYgSv9Fs
IEのsetAttributeについてはテンプレに入れるべき
>>404 なるほど、でどこにどういう文面で入れるかね。
>>403 JavaScriptを書く機会が多ければ多いほどprototype.jsを使うべきじゃない、という話もある
過去レスで「prototype.jsはプロトタイプ式のオブジェクト指向を無視している」という指摘があった
本来のJavaScript(ECMAScript)の記法を学ぶ上でprototype.jsが邪魔になるのは俺も同意
>>406 はいはい、お詳しいようで、降参します。
訂正します:
× JavaScriptを書く機会が多い人にはお勧めします。
○ JavaScriptを書く機会が多くても、「プロトタイプ式のオブジェクト指向」
や「ECMAScriptの記法」とかを正しく学ぶ必要がある人にはお勧めしません。
ただ、そんなに全否定することも無いと思いますよ。
取りあえず、そこそこ確かに動く物を、手っ取り早く短時間で作る、
というニーズには、非常に役立つことは間違いありませんから。
>>408 正直、prototypeを薦めるなら、YahooUIを薦めるけどな。
>>408 全否定しているように見えたとしたら悪かった
ただ、399にprototype.jsを勧めるのはよろしくないと思っただけです
ニーズが多いならprototype.jsその他ライブラリのスレを 作ればいいんだけどね。洩れは興味ないからなあ…
412 :
391 :2006/09/05(火) 13:21:20 ID:???
お兄ちゃんたちケンカしちゃだめ!
…ごめんなさい。もうやめます。
prototype.jsは一応、流行に取り残されまいと以前眺めてはみました。
便利な部分もあるんだけど、そりが合わない部分もあるのでそれきりなんだけど。
自分も
>>400 と内容的には同値なことをしています。
他のみんなも、いろいろどうもありがとうございました。
急いでAjaxアプリを作らなきゃならんときにprototype.jsを使った。 XMLHttpRequestとXPath関連はブラウザの差異が激しくてライブラリがないとやってられない。 確かに、勉強用には不適だと思う。
そういや、JavaScriptのthrowって誰もキャッチしなかったらどういう動作になるのだろう。
>>414 言語仕様上ははっきり書いてないような希ガス。
実際にはブラウザ上のJavaScriptエラーになるでしょ。
throwってJavaのような決まったクラスみたいなのがあればいいんだけど、 オブジェクトなら何でも投げられるよね。throw "test" みたいに。 自分で使うにはいいのだけれど、人に使わせるときに何を投げるか悩むよ。 俺は諦めて文字列を投げているけど。
'自暴自棄'とか投げたりして。
418 :
Name_Not_Found :2006/09/05(火) 16:00:33 ID:L3uSITcY
Operaでonfocusが取れなくてとても困っています。
Opera8.54で、anchorの中にspanやimgタグがあると、
それらのspanやimgをクリックしてもonfocusが投げられないバグがあるようです。
ttp://my.opera.com/community/forums/topic.dml?id=91431 (情報英文)
実際にバグをチェックするHTMLはこちらです
ttp://bugs.blaut.biz/focus.html バグがあるのはわかったのですが、プログラム上では画像をクリックしたときのonfocusが必要で、
何とかプログラム側でブラウザのバグを回避できないかと色々やってみたのですがダメでした。
例えば <a href="#">x<img src=""/>x</a> という形だとxを押した時しかonfocusが発行されません。
他にも <a><span><img/></span></a> という形にしてみましたが効果なしです。
行き詰ってしまったので、このバグを避けるための皆様のアイデアをお聞かせください。
よろしくお願いします。
hoover っていうの? クリックしないでも、GIFとかの上にマウスカーソルを乗っけると、 なんかポップアップしたりするのあるでしょ。 これ、img タグではなく、クリッカブルマップでできないかな。 世界地図があって、クリッカブルマップになっている。 国の上にカーソルを乗っけると、小ウィンドウになんか出てくる。 クリックすると、さらに詳細なページに行く。 これ、できませんか?
>>419 マップの情報を自前で持っておけばどうにでもできるでしょ。
onmouseover、onmousemoveでマウスの座標取ってマップと
照合して動作すればいいんだから。ひたすら書くだけ。
>>418 画像のonclickで自前でfocusハンドラを呼び出すとかはどう?
>>418 なぜonclickじゃなくてonfocus?
クリックを拾いたいんでしょ?
422 :
419 :2006/09/05(火) 16:12:01 ID:???
>>420 言っていることは正しいんだけど、
それだと、多角形領域の接触判定?みたいなのを
全部自分で書く羽目になるよね。
それ、面倒すぎ・・・。
クリッカブルマップの機能をつかって、そのあたりを楽したいんですが。
>>419 普通にareaタグにonmouseoverイベント効くみたいよ。imgでなくareaタグにonmouseoverを付ければおk
>>420-421 フォーカスが来たら画像拡大縮小の枠を表示する目的なので、
タブキーでのフォーカスでも取れたりすると便利でよかったのですが、
確かにonclickでも良い気がしました。
focus()関数は動いていますから、自分でフォーカスを設定出来ますしね。
W3Cで見たら、HTML4.01にはAREAにonmouse*が定義されているようだね
removeChildに関して質問です。 removeChildを使って一度DOM木から外したHTMLElementを、 暫く放っておいた後に再利用することは出来るのでしょうか? 具体的に言うとポップアップみたいなテンプレートを表示させようと思っているのですが、 最初はdisplay:noneなどを使ってDOM木に縛り付けたまま運用していました。 しかしDOM木の色々なレベル(BODY直下から果てしなく深いDIVの中まで)で呼ばれるので、 コードがちょっと汚くなったので、使わない時はDOMから外しておきたいのです。 仕様にはその点について詳しく書かれていないので、ご存知の方は是非教えてください。 よろしくお願いします。
var aaa = document.createElement("p"); aaa.appendChild(document.createTextNode("(`・ω・´) ")); document.body.appendChild(aaa); document.body.removeChild(aaa); document.body.appendChild(aaa); document.body.removeChild(aaa); document.body.appendChild(aaa); document.body.removeChild(aaa); なんぼでもできるよ。
>>426 いろいろなレベルで呼ばれるからコードが汚くなるってのがいまいちわからんのだが。id振っといてgetElementById経由で呼び出せば、どこから呼んでも同じでは?
426の付随質問だけど、完全にDOMノードを破棄する命令は無いよな? IEにはdestoryがあるけど、基本的にはブラウザのガベージコレクションを待つ必要があるよね
>>430 ないとも。ガベージコレクションを待つ必要がある、で正しい。
433 :
Name_Not_Found :2006/09/05(火) 20:10:42 ID:m/bOWXEx
selectedIndexを 引数で <input type="button" onclick="prne(-1)" value="前"> <input type="button" onclick="prne(1)" value="次"> のようにして上げたり下げたりしたいのですが 関数を二つにしないとだめでしょうか? いい方法はないですか?よろしく御願いします。
問題はprne()の中身だな。なぜそれを書かぬ。
お答えありがとうございます。 UP用とDOWN用を2つの関数にしてif文にすればできますが、 何とか1つにならないか〜な〜と まあ普通なんで書くまでもありません。
>>433 function prne(d) {
var s = document.getElementById('SELECTのID');
s.selectedIndex = (s.selectedIndex + d) % s.options.length;
}
function prne(d) { document.getElementById('selectArea').selectedIndex += d; } なぜこうしないか
>>436 さん
有り難うございます。domのほうがシンプルに書けますね。
ただこれもselectedIndexが-1になってしまいます。
是非、そこを教えて頂きたい。
s.selectedIndex > 0 s.selectedIndex < s.options.length の条件でif節つかえばいいじゃん。
横着しすぎですね。 if else ではなく if (s.selectedIndex >= 0 ) {s.selectedIndex = (s.selectedIndex + d) % s.options.length; } if (s.selectedIndex < 0 ) {s.selectedIndex = (s.options.length - 1); } こうですね。 ありがとうございました。解決、パチパチ。
s.selectedIndex = (s.options.length + s.selectedIndex + d) % s.options.length;
442 :
Name_Not_Found :2006/09/06(水) 03:14:02 ID:GyH+YV7t
document.write('3');
>>443 var r //radius
if(r>0)
2*r*3 < 3* 2√3*r //true
日本の文科省の役人どもが子供の数学的思考をダメにしている例
チラシの裏 prototype.jsの汚染から少しでも逃れるため、以下のようなコードを作ってみた Array.prototype.test = "test"; var array = ["a","b","c"]; for(var x in array) { if(array.hasOwnProperty(x)) { alert(array[x]); } } IEやFxでは意図どおりa b cが表示されてtestが表示されないのだが、 Operaではa b c test全てが表示されなくなってしまう。 常にhasOwnPropertyがfalseを返してくるようだ。 元々配列に対してfor...in構文を使っていいのかどうかも気になったから ECMA仕様書を読んでみたが、仕様的には表示されるのが正しいことがわかった。 for...in構文も使って問題ないようだ。 しかし、Operaで動かないなら諦めるか…
448 :
Name_Not_Found :2006/09/06(水) 11:56:31 ID:C/y1U4JS
・return x ・return(x) ・return((x)) ・return function(){return(x)} これらは等価ですか?
>>446 んな馬鹿なと思ってやってみたらホントだ。
Opera 9では直ってるけど8.5だと
[0].hasOwnProperty("0")がfalseを返すね。
試してみたところ[0].hasOwnProperty(0)はtrueを返すみたいだから
if (!isNaN(x) && array.hasOwnProperty(+x)) { alert(array[x]); }
とでもしてみたら。
あるいはOpera 8のときだけArray.prototype.hasOwnPropertyを書き換えるとか。
にしてもOpera 8は[0].hasOwnProperty(NaN)もtrueを返すんだね。
どういう実装になってんだか。
>>448 上3つは等価だが最後のは関数が返されるから
まったく違うね。ちゃんと文法通り「;」つけられる
ように勉強する方が先だと思うが。気色悪すぎ。
>>450 セミコロン付けなくても文法的には正しいよ
>>451 「正しい」の定義次第だね。ともかく片端から「省略」されると
気色悪いね。
>>453 「枝葉末節」だね。ともかく片端から「重箱の隅」つつかれると
気色悪いね。
455 :
hoge :2006/09/06(水) 12:50:38 ID:???
Cのprintf("%05d", hoge);のようなこと、整数部の右詰0による桁揃えはできますか? 以前、toFixedによる小数点以下の桁数をそろえる質問は見かけたのですが。
>>455 自分で左側に「0」を詰めるしかないね。
var x = 3.14259235;
document.writeln(('00000' + x.toFixed(5)).replace(/(.*)(.....\..*)/, '$2'))
>>447 今はObjectの汚染に関してはなくなっている
>>449 どういう実装になっているのか本気で謎
仕様にあれだけ正確かつ細かく実装方法が書いてあるのに、なぜ実装できない…
実はエンジニアのスキルが低い??
>>453 文法に則った、という意味ではセミコロンの省略はなんら問題ない
仮に文法のセミコロンの省略法則を一切使わないとすると
{ /* ... */ } という空のブロックが書けないから逆に不自然
>>456 × var x = 3.14259235;
○ var x = 3.14159265;
>>458 書けるんじゃないですかね。
Block : { StatementListopt }
だからStatementListは無くてもいい。
>>460-461 その通りだった。スマソ。
かけないのはFunctionBodyの方だね
var x = function() {} が書けないっぽい
>>446 js> [x for (x in array.__iterator__())].toSource();
[[0, "a"], [1, "b"], [2, "c"]]
あと、現行のFx1.5ならArrayに追加されたメソッドが使えるな。 js> array.map(function (c, i) {return [i, c];}).toSource() [[0, "a"], [1, "b"], [2, "c"]]
>>463 __iterator__を直接呼ぶべきではない。
[x for (x in Iterator(array))]としろ。
js> Array.prototype[5] = undefined; js> Array.prototype[7] = "d"; d js> array[9] = undefined js> [x for (x in array.__iterator__())].toSource() [[0, "a"], [1, "b"], [2, "c"], [9, undefined]] js> array.map(function (c, i) {return [i, c];}).toSource() [[0, "a"], [1, "b"], [2, "c"], , , [5, undefined], , [7, "d"], , [9, undefined]] まあ、この5と7みたいにして、Arrayに対してある番号の 「既定値」を与える人はめったにいないだろうが、一応、違いを書いておく。
>>465 独自拡張を存分に使うのは至極当然なこと。おまえみたいな雑魚にどうこう言われても困るw
>>467 > 独自拡張を存分に使うのは至極当然なこと
MS信者ですね
勝手な憶測だが、
>>465 の真意は、__iterator__ の上書きに対して心配しているのかも知れない。
以下、理由を述べない
>>465 の真意をこれだと仮定して話すが、
独自拡張 __iterator__ を上書きしてしまう以前に、function Iterator(...) { .. }
みたいな余計なことをしてくれる人間の方が多いだろうと判断すれば、
むしろ積極的に、__iterator__ を使うだろう。
もちろん、逆も然り。
要するに、これらがどちらもPythonかぶれの言語作者による
独自拡張であるという時点で、議論は成り立たない。
>>468 口はさまなくていいお、雑魚未満はwww
Webprog痛に帰ってえいじゃっくすについて語ってろwww
元々はOpera8で動かなくて困っているって話でしたよねw
仕事で浮いている奴がまさにこんな感じだった。 一人で関係ないことをべらべら話しだし、それを指摘するとマジ切れ。 結局職場の雰囲気が合わないって言って辞めて、みんなほっとしたよ。 名前が木村だったけどやっぱり在日だったのかなぁ。
ボタンを押すと、ちっこいウインドウもどきが前面に現れて、 それ以外は薄暗い感じに透過させ且つ入力不可って画面作りたいんですが 可能かどうかもわかりません・・・ 参考サイト等無いでしょうか? よろしくお願いします
>>472 半透明のブロック要素で最前面を覆うことで可能だね。半透明のcssはブウラザごとに違うので面倒だけど。
475 :
465 :2006/09/06(水) 20:15:24 ID:???
479 :
Name_Not_Found :2006/09/06(水) 23:29:12 ID:1vwaDMbD
var i が3より小さくない場合(つまりboolian判別でfalse)というとき、 if( i !< 3 ) のようには書けないのでしょうか。
(!(i < 3)) (i >= 3)
481 :
479 :2006/09/06(水) 23:59:08 ID:???
今まで、自分でクラスを作るときに function class1() { var _this = this; this.handlerFunction = function() { _this.somefunc(); }; this.somefunc = function() { alert("c1"); }; } みたいな形でthisのbind問題を解決してきたんだけれど、 この方法だとprototypeベースの継承をしようとしたときに問題になることがわかった。 例えば function class2() { this.somefunc = function() { alert("class2"); }; } class2.prototype = new class1(); var c = new class2(); window.onload = c.handlerFunction; とやった場合、アラートではc1が表示されてしまう…。当然クロージャを使って this.handlerFunction = function(_this) { return function() { _this.somefunc(); }; }(this); と書いても同じ。 この問題はprototype.jsのbind関数みたいなものを使わないと解決できないのかな。
>>482 クロージャで包んでしまったらthisみたいに文脈に合わせて
切り替わることがなくなるわけだから当然だと思うけどね。
this.gethandler = function() { return function(x){return function(){x.somefunc();};}(this); } で window.onload = c.gethandler(); とかでは。
>>483 当然、という文字が482の中にもあるように見えるけど
>>482 そこは
function class2() {
class1.apply(this);
this.somefunc = function() { alert("class2"); };
}
とするところじゃない?
要はコンストラクタ内でスーパークラスのコンストラクタも呼び出してやると。
>>486 482じゃないけど、プロトタイプベースの継承という意味ではちょっと違う気がする。
個人的にはそれでいいと思うけど、俺はプロトタイプベースの継承に慣れてないからよくわからん。
>>482 根本的なところがおかしい。
prototypeベース継承の肝は、prototypeチェーンにある。
だが、その定義では、肝心のチェーンが意味を成さない。
class1.prototype.somefunc = function…
class2.prototype.somefunc = function…
と定義しなければならない。
>>488 class2.prototype = new class1();
でも別にいいんじゃないの。
491 :
Name_Not_Found :2006/09/07(木) 21:33:30 ID:d7OGXPn1
質問させて頂きます。↓のプログラムで”ここ”に”文字が正しくない”というエラーが出ますが、 何が行けないのか分かりません・・・。どの文字がエラーになるのか分かりましたら指摘して 頂きたいのですがお願いします。 <body> <script language = "JavaScript" type = "text/javascript"> ・氏名?<input type = "text" size = "20" name = "name"><br> //ここか ・クラス?01<input type = "radio" name = "class" value = "01"> //ここに 02<input type = "radio" name = "class" value = "02"> </script> </body> </html>
すいません、環境はIE6です。HTMLは4.01ですorz
>>493 見捨てないでください(;_;)何か書式がダメなのでしょうか・・・?
何回見直しても分かりませんorz
すいませんでした。自分が書いていた物は↓の物です。
エラー情報が出るScript部分を切り取りaaa等の文字を打って見ると
表示されますので、エラーはやはりscript部分だと思います・・・。
連レス申し訳ないです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd ">
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html;charset = Shift_JIS">
<meta http-equiv = "Content-Script-Type" content = "text/javascript">
<body>
<script language = "JavaScript" type = "text/javascript">
・氏名?<input type = "text" size = "20" name = "name"><br> //ここか
・クラス?01<input type = "radio" name = "class" value = "01"> //ここに
02<input type = "radio" name = "class" value = "02">
</script>
</body>
</html>
>>495 ネタにしてもよくここまで考えたもんだな(www
>>496 ちょっと待ってください、本当に分かりません。・゚・(ノД`)・゚・。 ネタでも何でも無いです。・゚・(ノД`)・゚・。
スクリプトでは無いのに <script language = "JavaScript" type = "text/javascript"> を 記述していたのが、間違いでした。スレ汚し申し訳ないです。
これは一生考えつかないなーw
500 :
Name_Not_Found :2006/09/08(金) 00:54:35 ID:e12syWD+
あぁぁ・・・どうか最後にもう一度ヒントを頂けないでしょうか・・・orz 下のcheck関数のif、alert、documentの行のいずれかに"識別しがありません"とエラーが出ます。 myformはフォーム名。classはクラス番号を聞く時のラジオボタンのフォーム名です。 function check(){ if((document.myform.class[0].checked==false) && (document.myform.class[1].checked==false)){ alert("\nクラスが未入力です"); document.myform.class[0].focus(); return false; } </script> </head> <body> <form name = "myform" method = "post" enctype = "text/plain" onsubmit = "return check();"> クラス:01<input type = "radio" name = "class" value = "1"> :02<input type = "radio" name = "class" value = "2"> </form> </body> </html>
>>500 「class」というのはjavaScriptでは予約語だからそういう風に
直に書くと構文エラーになる。そもそも「class」というnameを
つけるヤシだと思うだけでドン引きなわけだが分かってる?
「手取り足取りスレ」というのがあるんでそこへ逝くことを勧める。
そこなら気長につき合ってくれる人がいそうだしね。
>>501 レス有難う御座います!予約語ですか、知識不足すいませんでしたorz
予約語を調べてから変数名を考えて見ます。
次からご紹介頂いたスレへ移動します。夜分親切に有難う御座いました。
おいおい予約語(の存在)も知らんでコード書いてるのかよ. それでエラーってまいるな.
>>503 聞いた事はありましたが、分かりませんでしたorz
それから
>>502 さんの指摘して頂いた変数名の件でようやく全体を軽く作りきる事が出来ました。
少々、微妙な箇所が多いので2,3時間寝て微調整しようかと思います。
やっと安心して寝れます・・・。
付き合ってくださった皆さん、本当に有難う御座いました。本当に嬉しい!!!!!!・゚・(つД`)・゚・ zzz
使われない予約語がたくさんあって、しかもプロパティやメソッドの名前に使用できないってのも問題だとは思うけどな 1.7では改善されてるんだっけ?
うむ、プロパティに書けないのは酷すぎると思う。
<head> <script type="text/javascript"> testImage = new Image(); testImage.src="sample.jpg"; </script> </head>
>>508 おお!
ありがとうございます。
助かりました。
510 :
507 :2006/09/08(金) 06:15:02 ID:???
>>508 を組み込んで Another HTML-lint gateway でチェックしたら↓の警告がでたんですがどうしたらいいですか?
「<SCRIPT>〜</SCRIPT> 内の要素はすべてコメントで囲んだ方が安全です。」
まじかよ('A`) まさか感謝されるとは思わなかったww あーあ、釣りですか、そうですかw
>>510 そう言われたんだからそのとおり コメント ( <!-- 〜 --> ) で囲めばいいじゃん。
ってか lint するくらいがんばりたいんだったらHTMLの常識くらい知っとかんと意味なくね?
>>511 色々調べたつもりなんですが書いてあることがマチマチ(に見える)で・・・
>>512 釣りじゃないですよ。
ホントにjavaスクリプトは初心者なんです。
CSSばっかりで・・・
--> ←には //をつけた方がいいんでしょうか?
これも調べてみたんですがどっちもありすぎて・・・
514 :
513 :2006/09/08(金) 06:44:32 ID:???
自己解決しました。トホホ・・・ お騒がせしました。
世の中のライブラリを見ると、 getComputedStyleとかcurrentStyleとかをあまり使っていないようだけれど 何か理由でもあるのかな? そのどちらも動かないブラウザに心当たりが無いのだけれど。
すみませ〜ん 昔のファイルを復活させているのですが、 function aboutBox() { m1 = "\n\n"; m2 = ".\n"; m3 = "/\n\n"; m4 = "Special Thanks To...\n"; m5 = " \n"; m6 = " \n"; m7 = " \n"; m8 = " \n"; m9 = " \n"; m10 = " \n"; m11 = " ...persons with deep heart!\n\n"; m12 = "\n"; alert(m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+m12); } と書いているんですが、ブラウザで A href="aboutBox()" をクリックすると、エラーになります。 なぜですか??
質問です。 DIVを透過させてイベントを受け取ることって出来ますか? <html><head><title>test</title></head><body> <div id="divA" style="position:relative;width:30px;height:30px;background-color:red" onclick="alert('clicked')">a</div> <div id="divB" style="position:absolute;top:0;left:0;width:500px;height:500px"></div> </body></html> 上のようなHTMLで、id="divA"の赤い部分をクリックしたらalertを出せるようにしたいのですが、 どうすればよいでしょう? 上のコードだと、IEでは(なぜか)divAの中の文字"a"をクリックするとalertが出ますが、 文字ではないところをクリックしてもアラートが出ません。 他のブラウザ(Fx、Mozilla、Opera、Safari)では赤い部分のどこをクリックしてもalertが出ません。 divBにbackgroundColorなどが設定してあればイベントが取れないのもわかりますが、 透過でオブジェクトが見えているのでなんとかイベントを取りたいです。 よろしくお願いします。
>518 BをAより先に書く。
>>519 それはできません。
質問を簡単にするために省きましたが、実際にはdivBの中にはelementがあり、
そのelementはdivAよりも上に出る必要があるのです。
また他で使っているためにzIndexも使えません。
>520 じゃあ構造そのものを作り替える。 つーかスレ違いじゃん。
>>521 DOM構造を作り変えるなら519でいいですよね。
やはり方法がないのかな。
今時、<script></script>内をコメントで囲まないと危険ってブラウザ存在してるの?
>>523 存在はしていると思うけど、対応する必要はないんじゃないかな。
個人的には
<script><!--
この行が文法違反に見えて宗教的に嫌だ
>>523 <script>
<!--
</script>
これってどんな風に解釈されるんだろうね。
でも、対応してないブラウザで見るやついる。
ごく少数なら考えなくてもいいと思う。
なんかよくわからんけど <!-- と // は同じなのか。 すまん・
<script><!-- alert(""); // --></script> <script><!-- alert(""); // --></script> この二つの動作が違うというのは違和感ありまくりだが、過渡期には仕方なかった
528 :
Name_Not_Found :2006/09/08(金) 12:15:46 ID:N+q2kMwh
function fncA(obj){ obj.onclick=function{ fncB(this); } } function fncB(obj){ obj.onclick=function{ fncB(this); } } <button onclick="fncA(this)">A</button> このbuttonをコピーする時に、すでに一度でもonclickを経ている状態で コピー先のonclickが未定義になっちゃうんですが・・・仕様なのかな?
529 :
528 :2006/09/08(金) 12:17:10 ID:???
日本語が・・・ ×すでに一度でもonclickを経ている状態で ○すでに一度でもonclickを経ている状態でコピーすると
531 :
528 :2006/09/08(金) 12:23:53 ID:???
function fncA(obj){ obj.onclick=function{ fncB(this); } } function fncB(obj){ obj.onclick=function{ fncA(this); } } ↑こっちも微妙に間違ってましたorz >530サン このボタンや他のインプットタグやらが含まれているノードを複製してアレコレしています
>>528 >>531 馬鹿じゃん! そこだけ見せて分かるESPなどここにいない。
トラブルが再現する最小限のサンプルを作って貼れ。
それが嫌なら帰って2度と来ないでくれ。
>>528-533 あのさあ、その「this」が何を指していると思ってる?
<div onclick="func(this)">...</div>
だったら確かにdivオブジェクトを指しているけれど、
アンタの例の場合は別のものを指してるんじゃないですかね?
536 :
Name_Not_Found :2006/09/08(金) 12:40:24 ID:SP2lM6UU
/\b\d\b/というときの「\b」って空白( )じゃないんですね。 「\b」(区切り)というのはどう考えればいいですか?
537 :
クズ :2006/09/08(金) 13:00:40 ID:???
レスありがとうございます みなさんのご指摘通りです、まじすんません。。 さらにスレ汚しになるかもしれませんが、張らせて頂きます <html> <head> <script type="text/javascript"><!-- function fncA(obj){ obj.innerHTML = "fncB"; obj.onclick = function(){ fncB(this);} } function fncB(obj){ obj.innerHTML = "fncA"; obj.onclick = function(){ fncA(this);} } function fncC(obj){ var trNode = obj.parentNode.parentNode; var tbNode = document.getElementsByTagName("TBODY"); tbNode[0].insertBefore(trNode.cloneNode(true)); } //--></script> </head> <body> <table> <tbody> <tr><td>test</td><td><button onclick="fncA(this)">fncA</button><button onclick="fncC(this)">fncC</button></td></tr> </tbody> </table> </body> </html>
数値の入った文字列をevalで数値化してるのですが、 あたまに"0"が入ってると8進数になってしまいます。 単純に頭に0があれば削ればいいだけなんですが もっとスマートな方法は無いのでしょうか?
>>538 確かにアンタがやってることはアホだ。ふつう
parseInt()かparseFloat()を使うだろ。eval()は
まっとうな奴ならまず絶対に使わない(JSONを評価
するときくらいか)。
私がアホかどうかはどうでもいいことです。余計な一言を言わないように。 教えてくれてありがとう。
>>538 >>540 に捕捉
parseIntの第二引数に10を与えると常に10進数としてパースしてくれる。
>eval()はまっとうな奴ならまず絶対に使わない
んなことはない
>>539 それは文字列中でしょ。正規表現中では違う。
>>542 どういう時にeval()使うか説明キボン。
parseInt()で「第2引数として10を指定しない」と10進数
じゃなくパースされてしまうことがあるか?ないだろ?
だったら10をわざわざ指定する必要ないじゃん。
>>543 部外者だが、言われてみてevalを使う機会が全然無いのにびっくりだ。
XMLHttpRequestで外部から引っ張ってきたコードを実行するときくらいだね。
>>537 とりあえずthisをやめたら問題なく動くようだが(あとinsertBeforeの
引数不足ね)、そもそも何をやりたいのか不明なんだよな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function fncA(obj){
obj.innerHTML = "fncB"; obj.onclick = function(){ fncB(obj);}
}
function fncB(obj){
obj.innerHTML = "fncA"; obj.onclick = function(){ fncA(obj);}
}
function fncC(obj){
var trNode = obj.parentNode.parentNode;
var tbNode = document.getElementsByTagName("TBODY");
tbNode[0].insertBefore(trNode.cloneNode(true), trNode);
}
</script>
</head><body><table><tbody><tr><td>test</td><td><button
onclick="fncA(this)">fncA</button><button
onclick="fncC(this)">fncC</button></td></tr></tbody></table></body></html>
>>543 parseInt("033")が27になるんだが、俺の環境だけなの?
evalは、ブラウザ上で動く対話型インタプリタを作ったときに、
document.body.ap まで入れるとappendChildを補完してくれるってのを実装するときに使った。
特殊な例になって悪いが
おれ
>>542 じゃないけど、
getで値受け取るときに使うよ。
>>547 げげっ!!
: 15.1.2.2 parseInt (string , radix)
: parseInt 関数は、 radix の指定にしたがい引数 string の
: 内容を解釈して判定される整数値を生成する。文字列内の先行
: する空白文字は無視される。 radix が undefined または 0
: ならば、それは 10 と仮定される。
そのECMA232規格を逸脱したブラウザって何?
そういう特殊な目的にeval()使うのはありと思うけどね。
どうやってappendChildがあることを補完できるの?
>>548 formに
return (function() { alert("XSS脆弱性"); return 0;)();
とか書かれて嫌です><
>>548 はっきりいってそれは危険すぎると思うけどね。
悪意あるユーザが任意のJavaScriptコードを実行
させることができるわけだぞ!? まさか仕事じゃないよな!?
もしかして
>>538 も入力欄の値を数値にするのに
eval()を使っている? それだったらまったく同じ
危険があるわけだけど…
>>549 Firefox 1.5だが、IEでは違うのか。
でも、ECMA262でも「先頭の文字が0なら8進数としてもしてもいい」
みたいなこと書いてるから間違いでは無いと思う
>どうやってappendChildがあることを補完できるの?
"document.body"をevalしてfor inで回す
>>554 ほんと?じゃあ洩れが見てるドキュメントがヘンなのかな…
テンプレに載ってる和訳だけど…
557 :
554 :2006/09/08(金) 13:47:57 ID:???
15.1.2.2 (略) 12. If the length of S is at least 1 and the first character of S is “0”, then at the implementation's discretion either let R = 8 or leave R unchanged.
>>556 悪いこと言わないから和訳は見ないほうがいい。
そうか、後ろに注記があるのね。よく見てなかったスマソ。 「8進で解釈してもいい」なんてずいぶんな標準だと思う、 だったら結局10を常に指定しないと安心できないじゃん。 そうか、常にparseFloat()を使うのが正解だったりして。
560 :
554 :2006/09/08(金) 13:50:07 ID:???
>>556 どちらでもいい(実装依存)ということだから、10進数でも問題はないけどね
>>558 和訳にも載ってるみたい
12. S の長さが少なくとも 1 で、かつ S の最初の文字が "0" ならば、実装の裁量で R = 8 とするか、あるいは R を変更せずそのままにする。
でも見ないほうがいいには同感
>>551 いま、技術の時間で暇なのでこっそりネットしている中学生です。
勉強になりました。やめます。
ありがとうございます
>>546 うーんまだ変わらない気が・・・
fncA,Bのボタンを押した後で、fncCを押すとコピーした方のボタンが無効になってるぽいです
obj.onclickで書き換えた状態もコピーするのが目的です
>>544 無理ってことなら、コピーの都度onclickに設定する方向でいってみます
>>546 insertBeforeの引数不足は問題なしかと。
insertBefore
Inserts the node newChild before the existing child node refChild. If refChild is null, insert newChild at the end of the list of children.
>>562 Mozでは問題なく動作してるんだがIEとcloneNode()の動作
が違うんだろうねえ。その都度設定するのがよさそうだね。
565 :
528 :2006/09/08(金) 14:19:03 ID:???
>>564 なるほどー勉強になります
途中でIE環境だって言い忘れたの気づいて冷や冷やしてたのは内緒です(汗
:都度設定する方法でうまくいきました
cloneNodeで新たに後付で設定されたハンドラをコピーしないのは正しい、気がする。 addEventListenerなんかで設定されているのを外から気付きようがないし。 しかしHTMLに明示的に書いてあるハンドラがコピーされないのは間違っているのも確か。 IEの実装は中途半端に良く出来てる。願わくばドキュメント化してくれ。
>>518-520 <div id="diva"><div id="divb">...</div></dvi>
にするしかないんじゃないの。そうしてもdivbを上に出して
重ねることは何ら問題ないよねえ。
>>568 >>518 じゃないけど、でもそれだと、divB のどこでもクリックしたら alert でちゃわない?
571 :
516 :2006/09/08(金) 16:32:24 ID:n1yzXjzj
すみません…1日調べたんですけど…なぜエラーがでるのかわからない。 エラーは「ランタイムエラーが発生しました、デバッグしますか?オブジェクトがありません:行0」 とでます。 へんなことはしてないんですが… function aboutBox() { m1 = "\n\n"; m2 = ".\n"; m3 = "/\n\n"; … m11 = " ...persons with deep heart!\n\n"; m12 = "\n"; alert(m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+m12); }
>>571 デバッグすればいい
1行1行削っていけばどこが問題かわかるだろ?
alertを埋め込んで、そこに行くまでにエラーが出ているかどうか確かめるとかさ
ま、エラーの原因はわかっているんだけど、自分でやってみなさい。
ヒント:関数内1行目で既にエラー
>>570 あんまり考えてないんだけど、divBでもハンドラつけて
受け止めてバブルするかどうか制御すればどうにでも
なるんじゃないかな〜。
574 :
Name_Not_Found :2006/09/08(金) 17:57:16 ID:R8KWSz9B
質問です。 alert(String(new Date()).match(/(Fri)/)); はどうしてFri,Friが返るのでしょうか。()はこの際、どんな働きをしてい るのか、教えてください。
フリフリだからさ
>>574 まずECMA262のString.prototype.match()の説明はちゃんと読め。
読んで分からないところがあれば質問してくれたらよい。
アンタのはどう見ても何も調べたようには見えないね。
自分で調べる気がないなら帰ってくれ。
>>576 どうして言語厨ってのはそういうイジワルな答え方するかね。match使うのにECMA262の仕様書読まなくたっていいじゃんか。
>>574 matchは配列を返す。Fri,Friと表示されるのは実は['Fri','Fri']の配列になってる。最初の要素がマッチした全体。2番目がカッコ内。とにかくいろいろ変えて試してみれば理解できるはず。
578 :
574 :2006/09/08(金) 20:26:22 ID:???
>>577 さん
ありがとうございます。いろいろ試してみます。多謝。
>>577 match()使うのにマニュアルは読んだ方がいいね。
で、MSのはいまいちだからNetscapeかECMAということで
ECMAを挙げるのはいいんでは。読む箇所をちゃんと特定
してるんで不親切ってことはないと思うが。
こんばんは、 質問です。 textareaを使ったエディタを改造して、入力補完をできるようにしています。 ただ、補完された内容をtextareaに挿入すると、妙な位置にキャレットが移動してしまいます。 これを解決するにはどのようにすればいいでしょうか、教えてください。 <html> <head> <script language="javascript" type="text/javascript"> function puttext(){ text = document.getElementById("area").value; temp = text.substr(0, 10); temp += "hoge"; temp += text.substr(10); document.getElementById("area").value = temp; } </script> </head> <body> <input type="button"/> <textarea id="area" onkeydown="puttext();" rows = "20" cols="100"> mogemoge </textarea> </body> </html>
582 :
580 :2006/09/08(金) 20:58:12 ID:???
メソッドを理解していないのも悪いのだろうが、そんな素人にいきなりECMAを
嫁というのは、さぞいい気持ちなんだろうな。あんなもの多少知っている人間
でも読めるヤシはそういない。そうやって、弱いものを追い返してるから、ど
うでもいい「教授」論が出たりするんじゃなかろうか。
>>577 のように1行です
むところを、ネチネチいじめるわけだ。そんなことをされたんだろうな、多分。
>>752 駄目です〜試しに全部の行に var をつけてみましたが無駄でした。
教えてください〜
HEADの中の
<!-- Language="JavaScript" SRC="index.js"></SCRI-->
が間違ってます?
別にECMAが読めないとか他の資料を探したいとかいう相談にも乗るけど。 ともかく何も自分では調べないというのはよろしくないと思うね。 何もしたくないヤシ用のスレもあるんだから 何もしたくないヤシはスレ違いということさ。
GoogleAdsenseのように 登録されたリンクをランダムに横長に4つほど表示する プログラムってJavaScriptで可能でしょうか? 登録されたランダムを一つだけ表示する方法はよく見かけますが Adsensのように複数表示するのを探していますが見つからなくて・・ そのような方法を扱っているサイトでも良いのでお願いします。
出来るから頑張って作れ
すいません。あつかましいですが、作ってください・・(涙
>>589 ここは自分で勉強して作れるようになるスレだ。
勉強したくないのなら手取り足取りスレへでも逝けば。
document.body.onload と window.onload って同じようなものなんですか? window.onload=wonload; function wonload() { window.alert(document.body.onload); } を簡潔なHTMLのheadに書いて実行してみたら --------------------------- Microsoft Internet Explorer --------------------------- function wonload() { window.alert(document.body.onload); } --------------------------- OK --------------------------- となりました。 それと、 window.onload ってどのタイミングで起こるんでしょうか?
>>592 アンタの実験の説明はまったく理解できないが、bodyのonload
とwindow.onloadは同じでしょ。もっともframesetが最外側なら
framesetのonloadとwindow.onloadが同じになるよね。タイミング
はそのページを構成するすべての要素(HTML、画像等)を読み込み
終わったタイミング。
>>593 では、
<html>
<head>
<script type="text/javascript">
document.body.onload=wonload;
</script>
</head>
<body>
.
のようにするとエラーもなく
document.body.onload=wonload;
以降の処理が実行されないのはなぜでしょうか?
書いてませんが document.body.onload=wonload; 以下には他のコードが書いてあって、 document.body.onload=wonload; の部分だけコメントアウトすると 実行されます。
>>594 script 書いた時点で body 存在してねーじゃん (´・ω・`) おばか
んじゃあ >bodyのonload >とwindow.onloadは同じでしょ。 これは? 同じではないんじゃね? あと、エラーも出ずに止まるのはなんで?
しらん。それ言ったの俺じゃないし。
あと、
>>594 だと最初にエラー出てるだろ (´・ω・`) どこ見てエラーでてない言ってんの?
再起動してもう一回やってみたら出た。 なんで質問なんかしt(ry
板違いの所で質問してしまい前の文そのままですが、失礼します。
ここ(
http://bookmarklet.daa.jp/ )のブックマークレット集をお気に入りからじゃなくて
直接HTMLに<script />で埋め込むにはどういう風に改変したらいいのですか?
そもそもHTMLに書くjavascripとブックマークレットのそれの記述は異なるのでしょうか?
例えばこれとかです。実際試してみたんですがうまく動きません。アドバイスお願いします。
javascript:(function(){
var%20links=document.getElementsByTagName('a');
for(i=0;i<links.length;i++){
var%20theLink=links[i];
if(theLink.getAttribute('rel')=='nofollow'){
theLink.style.backgroundColor='red';
theLink.style.color='white';
theLink.style.fontWeight='bold';
theLink.style.textDecoration='none';
}}})();
601 :
Name_Not_Found :2006/09/10(日) 09:18:48 ID:EEThcRnK
質問です x='2006/09/10 09:05';として new Date(x)にセットしたとき、これと同じ書 式で現在日時を表示するにはどう書けばよいのでしょうか。お願いします。
>>600 まず聞くがエラーは出ていないのかね。
>>601 Dateオブジェクトには年、月等個別に取り出すメソッドが
あるから、それで個別に取り出して連結すればいいんでないの。
全部書いてくれというのなら断るからね。
603 :
601 :2006/09/10(日) 10:11:49 ID:???
>>602 dateobj.getMonth()などと個別にやればもちろんですが、書式(yyyy/mm/dd hh:mm)
として同じ書式で返す方法があるのかなと思いまして。
>>602 例として書いたやつは既にあるブックマークレットとしてあったものでお気に入りから実行すると
うまくうごきましたのでエラーはないと思います。
ただ、このスクリプトをheadタグに<script>として埋め込んでも全く動作してくれないのです。
そこでお尋ねしたいのが
・ブックマークレットはそもそもお気に入りから呼び出すように作られてるのでHTMLに記述することはできないのか
・出来るとしたら<script>タグ内に記述でいいのか、またその場合改変が必要なのか
という2点なんです。よろしくお願いします。
意味不明次
>>605 説明下手ですいません。要は
>>600 のサイトのサンプルを
お気に入りに登録してから呼び出す、のではなく
HTMLに最初から記述しておいてページ開いたと同時に実行できるようにしたいんです。
そのためにサンプルをどの様に改変すればいいのかをお尋ねしたかったんです。
見当違いの質問なんでしょうか…。
607 :
Name_Not_Found :2006/09/10(日) 11:18:52 ID:n7HgKBe+
aq
それってほとんど丸投げと同じだよな ちょっとは勉強して、自分でやってみないと このスレでは答えてくれる人いないかと…
>>606 アンタが実際にHTMLに記述して動かしてそれでブラウザの
エラーは出ていないのかという質問なんだが。ブラウザの
エラーの見かたを知らないとかいうオチじゃないよな…
>>606 bookmarkletとhtmlのscriptタグの中のjavascriptの違い
・bookmarkletはURLエンコードされている
・動作するタイミングが違う
この2点をチェックしてみよう
こんにちは。 選択されたラジオバタンを知るために次のようなコードを作ってみました。 function F(num){ x=document.getElementsByName(num); if(x[0].checked)alert('No.1 was selected') } <form name="f1"> <input type="radio" name="r1" onclick="F(this)">B <input type="radio" name="r1">B <input type="radio" name="r1">C </fomr> 1番目のボタンを選択してもアラートされません。この方法で順番を知る ことは出来ないのでしょうか。やはりfor文でないと無理ですか?
614 :
613 :2006/09/10(日) 13:19:25 ID:???
>>613 慌てて書いたのですいません。
×バタン ○ボタン
最初のボタンはB-->A
です。スレ消費すいません。
613みたいなコードを見るとあまりに論理的でなさすぎて頭痛がしてくる
>>613 つっこみどころが多すぎるな。
いろんなサンプルコードからとってきて組み立てたんだろうけど、どうして
このコードで動くんじゃないかと思ったか、自分の書いたコードを解説できる?
解説を試みててみれば、なにが悪いか気づくんじゃないかな。
617 :
613 :2006/09/10(日) 13:51:19 ID:???
失礼しました。勉強してからまた来ます。
コードなしの質問には自分で書かないようなやる気のないヤシは帰れ。
自分で書いたコードを貼って、どこがいけないのでしょうか?と聞いても
「頭痛がしてくる」だの「なぜ動くと思った」とか批評ばかり。肝心の
ことは何も教えてくれない。
結局、質問者は自責の念にとらわれてすごすごと帰って行く。あんたは悪く
ないよ。罵倒されないようにせっかくコード書いて貼ったのに、何にも教え
る気のない、
>>615 や
>>616 のようなアフォな連中がこの板を役立たずにして
るだけだ。
>>618 だって少し考えればわかるようなことじゃんw
…ざわ …ざわ
>>618 で、アンタはその「肝心なこと」ってやつを教えてくれないのか?
622 :
616 :2006/09/10(日) 14:35:31 ID:???
勉強するための適切なアドバイスを与えたつもりだったんだけどなぁ。
ここは答えを単に教えるスレじゃないんでしょ?
>>618 の模範回答を見てみたいのでよろしこ。
623 :
618 :2006/09/10(日) 15:40:42 ID:???
誰に言ってるんだ、このヴォケども。
教えるのはオレじゃないだろ。行儀の悪い
>>615 や
>>616 が大いに恥じて書く
のが筋じゃないのか。模範解答を見てみたい、だと?生意気言いやがって。
マタイ第9章6節のイエスの心境だぜ。しかし、イエスに倣ってお前たち
に示してやる。
>>613 のコードを最大限に生かして書くと模範解答はこうなる。
function F(fm,sfx){
n=0;
for (var i=0;i<3;i++){x=fm.elements['r1'][i].checked;
if(x)n=i+1;}alert('The '+n+sfx+' button is selected.');}
<form name="f1">
<input type="radio" name="r1" onclick="F(this.form,'st')">A
<input type="radio" name="r1">B
<input type="radio" name="r1">C
</form>
こんにちは。 スクロールボックスの表示されたtextAreaがあるのですが、その表示領域の上端のY座標が、textareaの全体の高さの中でどの位置にあるのかを取得する方法はありますが。 例えば、textAreaに100行ほど入力されていて、表示領域は20行ほどでスクロールバーが表示されている状態で、30-50行目までを表示しているということを知りたいのです。 教えてください。よろしくお願いします。
>>624 ここは答えを単に教えるスレじゃないのが分からんのか?
帰れ。
627 :
606 :2006/09/10(日) 17:11:30 ID:???
>>608-610 >>612 レスありがとうございます。
完成を急いでたので丸投げな質問になってしまいすいません。
やっぱりもう少し勉強してからやってみることにします。
失礼しました。
うはwwww618の立場なしwww
630 :
624 :2006/09/10(日) 20:11:00 ID:???
>>626 ありがとうございます。
テキストエリアに表示されているテキストの最初の行を取得するのは、ここにはないような感じでした。
結局、テキストエリアと同サイズのDIVレイヤーを用意して、テキストエリアのスクロール・サイズ変更と同期させることで、
DIVレイヤーのscrollTopを取得しテキストエリアのLineHeightで割りました。
・・・そんなことしなくてもよかったりしたら、体育座りします。
631 :
Name_Not_Found :2006/09/10(日) 20:30:23 ID:XNyLZ/Lm
クエリーとか言うのでしょうか? URLの後ろに ?hoge=fuga とかつけるやつ。 あの変数をjavascriptで受け取るにはどのように書けばいいのでしょうか?
632 :
Name_Not_Found :2006/09/10(日) 20:32:58 ID:Jsu/fN7e
application/xhtml+xml なxhtml1.1文書で、javascriptの document.writeが 使えないんですが、何か有効な打開策はないでしょうか? 自分で作成する分には document.writeつかわなきゃいいわけですが 音ログなんかの外部サービスから、直接jsファイルを参照するときに、なにか 打つ手があるようであれば、なにとぞご教示賜りたく。 よろしくお願いします。
Y2K問題の頃はいろいろ騒いだけど、現在getYear()を使うとIEとNNではど んな違いあるか、だれか知ってる?他にFF,Operaとかも。 もちろん、getFullYear()にすれば問題ないのは分かるけど、ちょっと興味 あるんで。
>>632 [object].appendChild(element);
などは駄目?
てか、クロスブラウザとか考えたことないから。
>>632 javascript:document.body.appendChild(new DOMParser().parseFromString('<xh:p xmlns:xh="
http://www.w3.org/1999/xhtml "><xh:strong>h<\/xh:strong>oge<\/xh:p>', 'application/xhtml+xml').documentElement);eval();
過去に、Range#createContextualFragment でHTML用の回答をした時に
XHTMLならこうしろと注釈を書いた気がするが、無かったか?
638 :
634 :2006/09/10(日) 22:53:16 ID:???
639 :
632 :2006/09/10(日) 23:05:47 ID:Jsu/fN7e
私の質問が言葉足らずだったようで、誤解を招いているようです。
おそらく、>637氏のソリューションは、当該jsファイルを自分で編集できる場合だとおもうんですが
>632の質問の前提は、外部にある、自分で編集できないjsファイルをxhtml内で
<script type="text/javascript" src="
http://hogehoge.com/foofoo.js "></script>
などとして引っ張ってくる場合を前提としています。
document.writeを書き換えてしまうとか? document.write = function(msg){ document.getElementById('bar').innerHTML += msg; } ちょっと無理があるか…
641 :
Name_Not_Found :2006/09/10(日) 23:39:07 ID:XNyLZ/Lm
642 :
Name_Not_Found :2006/09/11(月) 00:18:35 ID:RvKXlRt1
一度目は選択されたページに飛ぶのですが、飛んだそのページにて 一度目と同じ地域を選択してinputボタンを押すと そのHTMLファイルが置いてあるフォルダ内が表示されてしまいます。 これはどうすれば直せますか? 何度押しても選択した画面が表示されるようにしたいのです。 ちなみに関係あるかどうかわかりませんがオフラインでやっています。 よろしくお願いします。 <script laguage="JavaScript" type="text/JavaScript" <!-- var add; function jmpset(menu){ add = menu.options[menu.selectIndex].value; } //--> </script> <form class="form-padding"><b>地域を選択してください</b><br> <select name="menu" size="1" onChange="jmpset(this)"> <option value="hokkaido.html">北海道</option> <option value="nagoya.html">名古屋</option> <option value="tokyo.html">東京</option> <option value="oosaka.html">大阪</option> </select> <input type="button" value="支店を表示する" onClick="location.href = add"> </form>
>>642 javascriptはページ読み込みごとに初期化される。add変数に代入したものは、
次に別ページに行ったときには残っていないのです。オフラインだろうが
サーバ上だろうが一緒。
現在いるページを判別して、selectで現在ページが選択されたようにして
おくのがuiとしては親切でしょう。
ui=user interface
ここでajaxですお
646 :
Name_Not_Found :2006/09/11(月) 10:16:34 ID:HEbud1io
質問です document.write([1]); はどうして「1」になるのでしょうか。
>>646 [1]は配列です。document.writeは配列を、カンマ区切りで出力します。
649 :
646 :2006/09/11(月) 10:33:29 ID:???
>>648 でも、配列オブジェクトがありませんよね。配列といえるのでしょうか。
配列として、どこに格納されているものを配列として呼び出したのでしょうか。
>>649 配列オブジェクトあります。配列といえます。
メモリに格納されているものを配列として呼び出しました。
>>649 省略記法だと思えば。[1] は a=new array(); a[0]=1 のaと同じ
>>651 document.write([2]);
これ2が出るぞ。
配列なら要素は空じゃないん?
>>652 アホか。配列リテラルだってば。
[1,2,3,4,5] で1〜5がこの順で格納された配列。
['a','b','c'] でa〜cがこの順で格納された配列。添字じゃないんだヨ!
var a = [1,2,3,4,5];
とか使うのが一番普通の使い方だけど式だからどこに書いてもいい。
つまり "12345" (文字リテラル) 12344 (数字リテラル) [1,2,3,4,5] (配列リテラル) こういうことッス
document.write("12345"); ここで使った "12345" を 変数として扱うことができないように document.write([1,2,3,4,5]); ここで使った[1,2,3,4,5]を後でどうこうすること はできないッス 基本ッス
>>655 i=new Number();
s=new String();
a=new Array();
i=123;
s="123";
a=[1,2,3];
ていう意味だと思ふ
これは、バグですか?
正しい仕様だってば。javascriptは何でもobjectなんで初期化の関数が存在 するけど、[1,2]って書くと、内部的には自動的にnew Arrayってやってくれる ってこと。 文字列のリテラルだって、 s = "aaa" ; と書いても内部的には s = new String("aaa") ; ってしてる。
>>659 ありがとう。 元質問者ではないけど。
document.write(["あ","い","う"][1]);
[]これの中に書くと自動で配列になっちゃうわけですね。
>>659 なんかその説明はおかしいぞ。JavaScriptでは"aaa"は文字列値
であり文字列オブジェクトとは違うもの。半可通な解説はやめてくれ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</style>
</head><body>
<script type="text/javascript">
var s = 'abc';
document.write((typeof s) + '<br>');
var o = new String('abc');
document.write((typeof o) + '<br>');
</script>
</body></html>
662 :
659 :2006/09/11(月) 12:32:51 ID:???
>>661 うぁスマソ。素で勘違いしてた。
配列は間違ってないよね?
>>661 文字列って、
"こんなの".big();
とかできるから、文字列自体、オブジェクトじゃないんですか? 裏では。
>>662 配列の説明も間違いだろ。もし、内部で自動的にnew Array()してオブジェク
トを生成してるなら、そのオブジェクト名を取り出して見せてみなよ。
内部で適当に割り振った記番号か何かが取り出せるわけでしょ。あんたの説明
が正しいなら。「q45863658」とかさ。
659ではないが、 >内部で適当に割り振った記番号か何かが取り出せるわけでしょ。 なんでそうなるの?関係ないと思うが
666 :
659 :2006/09/11(月) 12:47:08 ID:???
>>664 オブジェクトのインスタンスが生成されるのと、オブジェクト名は関係ない
でしょ。インスタンスがたまたま変数に代入されたらそれが名前になるだけで。
内部的処理の場合は、インスタンス(のポインタか何か)が無名領域に格納される
ので名前がつかないだけだと思うが。
>>663 文字列自体はオブジェクトではない。上でも出てるようにデータ型の一つ。
数値とか文字列という基本データ型とは別に、それをラップするラッパーオブジェクトクラスがあって
そのオブジェクトは基本データ型と同じ値を持っていてかつプロパティやメソッドが定義されているので
そのデータ(値)を操作することが出来る(しているようにみえる)。
っていうふうなことがサイ本には書かれてるけど俺の解釈はあってるのかな?
669 :
663 :2006/09/11(月) 12:52:04 ID:???
670 :
663 :2006/09/11(月) 12:52:46 ID:???
671 :
659 :2006/09/11(月) 13:56:01 ID:???
>>667 >「.」でプロパティを参照「した瞬間にオブジェクトに変換」される。
なるほど。実装はどうあれ、参照する側としては文字列リテラルと文字列オブジェクト
は同じに扱えるってことでFA?
>>671 だからtypeofとか===とかが絡まない範囲ではね。上にデモが
あっただろ?なにがFAだよく考えて発言しろ。
>>671-672 それだけじゃないぞ。次のデモもよく見れ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</style>
</head><body>
<script type="text/javascript">
var s = 'abc', o = new String("abc");
s.counter = 1; o.counter = 1;
s.couter++; o.counter++;
document.write(s.counter + ', ' + o.counter + '<br>');
</script>
</body></html>
げげ、タイプミスあるじゃん。結果は変わらんのだけど(笑)
>>671 同じように扱えているように見えているだけで
正確にはオブジェクトに変換されるって言うのは間違いじゃない?
>>675 生成規則 MemberExpression : MemberExpression [ Expression ] は次のように評価される:
1. MemberExpression を評価。
2. GetValue(Result(1)) を呼出す。
3. Expression を評価。
4. GetValue(Result(3)) を呼出す。
5. ToObject(Result(2)) を呼出す。
6. ToString(Result(4)) を呼出す。
7. 基準オブジェクトが Result(5) でプロパティ名が Result(6) である Reference 型の値を返す。
確かに「ToObject()」されると仕様には書いてありますな。
引用の範囲が足りなかった。 ドット記法は次の構文的変換で説明される: MemberExpression . Identifier の振る舞いは次と同等である。 MemberExpression [ <identifier-string> ]
いずれにしてもオブジェクトはあるだろ。オブジェクトはモノそのものなんだから。 リテラルといっても打たれたリテラルはオブジェクトとして内部ではコピーされて いるわけじゃん。
>>678 単にvar s = 'abc';だけならオブジェクトは作られて
いないだろ。少なくとも言語仕様上は。
>680 なんでやねん。「s」ちゅう名前の変数オブジェクトもろ生成してるやん。 それて、「abc」ちゅう文字列作って「s」ちゅうオブジェクトに入れまし たん、いうてるコードやろ。
変数オブジェクトって何?
>>681 変数はオブジェクトではないよ。何でもかんでもオブジェクトだと
つぶやけば許されると思ったら大間違いだろ。修行し直してこい。
そもそもアンタの用語づかいを見てるとECMAの言語仕様を読んでる
とは思えん。なんでそんなので偉そうに解説できるのか不思議だね。
些細なことでキレるととたんに関西弁(笑)
orz...変数てオブジェクトやないのんか? せやけど学校のセンセ、変数オブジェクトに格納するとかいうてたけどな。 たしか。
変数オブジェクトてオブジェクトの事じゃないか
なんかこの流れ、JavaScriptスレで久しぶりに勉強になったw
学校のハゲおやじの言うことなんて どこまでホントだか… 仕様があるならそっちが先
689 :
681 :2006/09/11(月) 17:12:47 ID:???
>686 な、そやろ。ほなら変数はオブジェクトやないか。 変数は箱の形をしたオブジェクトでそこへ文字列や配列や数字や記号を 入れておいてまた使えるのやゆうてたんよ、そのハゲおやじ。ガセなん?
一人コードまで書いて、リテラルとオブジェクトを解説しているのがいるが 文字列リテラルと配列リテラルは全然別物なんだけど。 仕様上配列リテラルなんてものは存在しないしね
>>689 var s;
alert(typeof s);
でオブジェクトってでる?
箱モデルはなあ…。Cとかならいいんだけど a = [1] b = a b.push(2) で、aもbも[1,2]になるんだが、箱モデルではどう説明するんだろ
>>690 しかもtypeofをあてにしてるしな。
typeofは実際のオブジェクトと同じものを返すわけではないし、
実は実装依存(ECMA11.4.3)
Stringリテラルが書かれたら当然Stringオブジェクトが作られますよ?
String TypeとString Objectを混同している人が多そう 英語の仕様書を読んだほうが…
>>695 そこ見当違い。どこをどうしたらStringがExecution Contextsなんだよ
>>694 そしてそれは「new String(...)」とは違うもんだよな。
>>661 参照。
じゃあどういうもんか説明してみ。
36ページの「9.9 ToObject」に、String typeをString Objectに変換することが明示されてるよ 要するに、 "aaa" -> String Type。意味は無いけどtypeof "aaa" はstringを返すことが多い new String "aaa" -> String Object "aaa".toUpperCase()の処理 ・"aaa"をString typeとして認識 ・オブジェクトの呼び出しなので"aaa"をtoObjectする ・ToObject("aaa").toUpperCaseが評価される
>>697 695は694への返信ではないぞ。
どこをどうしたら変数オブジェクトの話にStringが出てくるんだよ
変数がオブジェクトだと言っている人、その「変数オブジェクト」 がどのようなプロパティをもっていてどのような操作ができるという話 なのか説明してみなよ。 「変数を格納するのに使うオブジェクト」ならもちろんあるよ。 グローバル変数なら window オブジェクトがそうだし、ローカル ならそれぞれの実行コンテキストオブジェクトがそうだ。しかし 「var s = ...」の変数「s」はそれらのオブジェクトの「プロパティ」 であってそれ自体が単独のオブジェクトというわけではない。
>>700 だから var s = 'abc';
では変換は起きていないでしょ。どこにオブジェクトが現れて
くるわけさ。説明してみ。
>>698 参照渡し?
b = aではオブジェクトへの参照をコピーしている。
だからaとbは同じオブジェクトを指していて、箱モデルでは説明できないって言いたかったんだが
>>704 たぶん「参照のコピー」と言いたかったんじゃないですかね。
>>699 彼には悪いがホレ氏は typeof X を誤解しまくってる。
ECMAScriptにはtypeとobjectの二つの概念があって、
文字列は標準で「String type」と「String object」が定義されている。
ここで配列は前者が定義されていないので、配列の説明で文字列を出すのは意味無し。
ところでこの議論?は一体何人で行われているのだろう?
>>703 いや俺はString Objectが出来るのは間違いだと思ってるよ。
ObjectとTypeの区別がついていない人が多いんじゃないかな。
もっとも706の言うとおり、なんでtypeofが出てくるのかはわからないけど。
ごめん今何でもめてるのかわかってないんだけど
んーstringについて整理すると var s="abc" のsはstring typeの変数でありオブジェクトではない。 s.toUpperCase() のようにオブジェクトとしての操作をしようとしたときに オブジェクト化される。 673のようにstring typeにプロパティを加える操作をしても、その場で オブジェクトに変換され元の変数がオブジェクトになるわけではないので、 そのプロパティはundefinedになる。 var s= new String("abc") は最初からstrin オブジェクト じゃあ発端となった配列リテラルは、配列オブジェクトと同じものと考えて いいの?
>>710 配列リテラルはない
配列の表現が出てきたら、
40ページ 11.1.4 Array Initialiser で定義されている通りに解釈され、
その処理で最終的にArrayオブジェクトが適切に初期化された状態で帰ってくる
なるほどこれでスッキリした。勉強になりました。
で、「変数オブジェクト」の話はどうなったの。
>>702 でいいの?
配列リテラルというのはないんだけど、配列イニシャライザとか
長々しいのでつい配列リテラルとかオブジェクトリテラルとか書いて
しまいたくなるのだよねー。それで通じるし。しかしこういう議論の
時にはよくなかったね。
>>708 typeofを見ると「値」なのか「オブジェクト」なのかが区別
できるじゃない。逆に言うとそうしないと今string typeと
string objectのどちらが変数に入っているのか区別できない
場面が多いわけなんだけどね。
typeofの実装は実装依存なので、その気になればどうとでも出来てしまうから…
こういう議論のときにコードを出すのも間違ってるよね。 コードではなくて仕様で示さないと。
>>716 typeofの動作が実装依存なのは対象がホストオブジェクトのときだけだろ。
今はDOM周りの話してるわけでもないし。
719 :
718 :2006/09/11(月) 19:26:47 ID:???
>>718 その通りだけど、まぁ言いがかりみたいなものだが、たとえば
「stringがホストオブジェクトに変換されて、それのtypeofがstringを表示する仕様だ!」
とか言われても、typeofを使って説明していると反論できないからね
>>713 イニシャライザが長いと思わないし、
大体リテラルとイニシャライザは根本的に違うものなんだけど
>>721 もちろん根本的に違うけど、長い長くないは個人の感覚だから
どうにもならんね(w
>>720 new String()とか'abc'とかやってる間はホストオブジェクトに
なる余地はないね。標準に準拠している限りは。
>>716 もちろん標準を読むんだけど、(その部分の動作が)標準に準拠
してる処理系の実行結果を示した方が分かりやすいこともある。
誰かまとめてよ
俺は '...' 文字列リテラル /.../ 正規表現リテラル [...] 配列初期化子 {...} オブジェクト初期化子 って呼んでる。 で、詳しい人に質問したいんだけど、 ソース中にif (a === undefined)って書いたとき期待通りに動作するのは 仕様にない「undefinedリテラル」が処理系では実装されているから……?
726 :
Name_Not_Found :2006/09/12(火) 01:05:55 ID:Kw1ZQ+VJ
質問です。 あるサイトで見たのですが、どうしてもその意味が分かりません。よろしく お願いします。 dd=new Date()として、Year=dd.getFullYear()、以下同じようにして現在の値 をMontとDateにも設定します。で、そのサイトによると、 「 Yearに20を掛けてMonthを加えその合計に50を掛けるそしてそれにきょうの Dateを加える 」 のですが、これはいったい何を計算しているのでしょうか。
>>726 年月日を「別の日であれば決して同じにならないような規則で」
1つの整数に対応させている。
>>722 > new String()とか'abc'とかやってる間はホストオブジェクトに
> なる余地はないね。標準に準拠している限りは。
それをいえるのは仕様を読んでいるからであり、
typeofを使って説明しているだけでは絶対に言えない
>>725 勝手にみんなリテラル呼ばわりすると思わないで貰いたい…
どの言語を見たって「配列リテラル」なんて存在しないし、
リテラルの意味をどう考えてもありえない呼び方だから。
英語勉強して
>>728 それは言い過ぎでは。
配列初期化子の生成規則名がArrayLiteralになってるんだし
配列リテラルといっても別にかまわないんじゃないかと俺は思う。
>>729 728じゃないけど、そのLiteralはまさに英語のliteralそのままの文字表現という意味じゃないのかな?
ECMAで配列リテラルは存在しないけど、配列リテラルって呼び方自体はAnsi-Cでなかったっけ?
>>728 もちろん、コードサンプルと仕様を併せて考えるのは前提だと
思っているんだけど。でなかったらどんな動作だって「動かして
みたらこうなりました」以上の意味は全くないしそれじゃ議論の
役に立たない。それとも洩れが「動かしてみたらこうなりました」
とだけ報告したくてコード貼ったと主張してるのか。そんな曲解な
ヤシと議論しようとした洩れがバカでした(w
世の中のあらゆる言語を熟知していると豪語する
>>728 サンかよ。
Smalltalk(Squeak)の構文 literal = ['-'] number | named-literal | symbol-literal | character-literal | string | array-literal | byte-array-literal | binding-literal
734 :
Name_Not_Found :2006/09/12(火) 08:51:59 ID:9zf4bEMn
IE7や最近のツールバーが用意している、ポップアップブロック機能に ひっかかりそうなポップアップ広告はどうやってつくるのでしょうか。 作り方が出ているサイトのURLでも結構ですので教えて下さい。 ダミーで作りたいのです。よろしくお願いします。
<body onload="window.open('画像ファイルのURI', '_blank')"> とかかな?普通のページに入れたら最悪に嫌われるからそのつもりで。
>>734 おまえ他んとこでそれ聞いてたろ。カエレ
>>728 JavaScriptでも、JScriptでも、きちんとリファレンス読めよ。
配列リテラル、文字列リテラル、オブジェクトリテラル、整数リテラル、実数リテラル…、全部リテラルだから。
>>737 それら使用説明書が仕様としているのがECMA262-3だろうに。
継承関係を考えろ、バーカ。
>>738 普通に配列リテラル使いますよ♪言葉も普通に存在しますよ。(*^。^*)
740 :
724 :2006/09/12(火) 11:09:49 ID:???
>>725 なるほどそこ読み落としてた。ありがとう。
でもまあ、これからもJavaScriptの真面目な話をするときはきっちり使い分けるように気を付けていくつもり。
>>738 このスレ的にはECMA262-3読め、で終わるんじゃないかな。
言語の仕様書というのは曖昧さがないように考えて作るものだから、 普通のマニュアルやリファレンスと比べて用語も記法も分かりにくい よね。だから厳密な話するときに仕様書の用語使うのはしかたないけど JavaScript Referenceなどで使っている用語まで否定して他人を馬鹿 呼ばわりするようでは言語厨すっこめと言われてもしかたないと思うな。 だいたいECMAにないJavaScript用語とかどうするんだね。セッタとか ゲッタとか今は使っておいて標準化のときに用語が代わったら途端に 使う奴を馬鹿呼ばわりするつもりかね。
そもそも「JavaScript」という言語名自体が(ry そうかJavaScriptと呼ぶ奴は馬鹿ですかそうですか。 てめーがECMAScriptスレへ逝ってろ。
さて次のテンプレには何と入れるかね。用語に曖昧さがある ならそれは議論の妨げになるから注意すべきだけど、曖昧さ がないのなら用語選択は書き手の自由だと思うのだけど。 教授と教示の喧嘩も同じセンだよね。
>>740 ECMA262-3なんつー言語は、"存在しない"。
あれは、実装屋が読むもので、言語リファレンスでもなんでもない。
さらに言うなら、JavaScriptあっての、ECMA262だ。本末転倒。
よくページの○○化とかいうので JavaScript:document.body.innerHTML=document.body.innerHTML.split('。').join('〜。');focus(); みたいなスクリプトをアドレスバーに張るというのはありますが、 これをページ自体に埋め込むにはどうすればいいのでしょうか。
>>745 <body onload="document.body.innerHTML = ... ">
とかで動作すると思うけど。
749 :
745 :2006/09/12(火) 11:58:54 ID:???
>>746 だから勘違い野郎を制御するにはテンプレに入れるのが一番簡単。
751 :
726 :2006/09/12(火) 12:16:25 ID:???
>>727 ありがとうございます。
もう少し詳しくお願いできないでしょうか。すいません。
>>750 テンプレ至高主義か?
放っておけばいい
うーん。言語の厳密な仕様について学ぶことが不要とは言わないけど、 ここは「web制作板」だよねぇ。目的はjavascriptを使って実際のブラウザで なにか動くものを作ることじゃないのかなぁ。 仕様がどうあろうと、実際のメジャーなブラウザで動作した結果がどうかを 考慮しないと、実用ではないのだが・・・・・・ 少なくともスレタイは「javascript勉強スレッド」くらいにしたほうがいいね。
(-・-ω◎-) ^
>>754 今のままでいいんじゃない?
少なくとも今回の議論はかなり面白かったし、定期的に出るのも悪くない
>>751 727ではないが、それ以上の詳しい説明は無いと思うぞ。
その数字をどういう風に使っているかしらないが、その数値自体に意味は無い。
日付を数値にシリアライズするだけならDate.getTime()を使ったほうが楽だと
思うんだけど・・・・
>>754-756 制作上の質問と言語の質問と両方あるところがいいところだと
思うんだよね。そもそも言語の質問だけでスレが維持できる
ほどの量はないので。
JavaScriptは、PC時計は取得できるようですが、 もちろんPC時計が狂っていれば正しい時間とは言えなくなります。 そこでNTPサーバなどから取得した、正確(に近い)時間を取得したいのですが、 そのようなことはJavaScriptでできますでしょうか?
PC時計をさくら時計で正しくすれ
761 :
751 :2006/09/12(火) 13:57:41 ID:???
>>757 ご説明で納得しました。成程そういうことですね。ありがとうございます!
>>759 NTPをxmlやJSONPなんかで配信するようなサービスか自鯖があればできそう。
ただ、httpのリクエストで取ってくることになるから、その間のタイムラグ
は誤差がでることになるね。
763 :
Name_Not_Found :2006/09/12(火) 18:24:05 ID:UYl5CqhH
質問です。 後で関数を呼び出して表示させるとき、関数の書き方は function X(){ document.write('hello') } と function X(){ return document.write('hello') } とで、どちらが正しい書き方ですか?
戻り値が必要でなければ上のでいいだろ。 return を書かなかったところでどうなるもんじゃない
766 :
Name_Not_Found :2006/09/12(火) 20:19:20 ID:s3kbIlwo
ネットスケープでJavascriptを使って開くと縦の大きさが指定できないのですが・・・ どうしてでしょう?IEはサイズ通り開きます。 Dwでビヘイビアで指定してます Netscape Ver7.1
767 :
763 :2006/09/12(火) 20:21:10 ID:???
>>766 ネスケのことは知らない。
それにしても、ウィンドウサイズ勝手に変わったらイラっとするよな
769 :
Name_Not_Found :2006/09/12(火) 21:24:40 ID:s3kbIlwo
何故か、ウインドウをクリックで開くと縦がテーブルの縦の大きさになってしまう しかもCSSで指定した下側ボーダーは無視で開く
>>766 >>769 何をヒトリゴト喋ってるんだ?うるさいからやめてくれ。
もしも質問するつもりなら「問題が出る最小限の例題を
作って貼る」ようにしてくれ。それが嫌なら帰れ。
771 :
Name_Not_Found :2006/09/12(火) 22:26:07 ID:s3kbIlwo
onClick="MM_openBrWindow('./abcdefg.htm','abcdefg,'width=530,height=654')" こう書いてあるんだけど
どうでもいいわ。子窓うざいし。ドリームなんとかのスレ逝けば?
773 :
Name_Not_Found :2006/09/12(火) 22:39:44 ID:s3kbIlwo
なんでも良いから テーブル作ってCSSでボーダー付けてそれを 別のファイルから↑のMM_openBrWindowで少し余らせるくらいに開いてみて 多分ぴったりにしかならないと思うよ
>>771 もろ構文エラーじゃないか。エラー出てないかよく見ろよ。
エラーのあるソースで何が起きるかなんてブラウザごとに
違って当然だろ。
なんてことするんだ。こりゃ混乱の元じゃないか、火狐クン。 /\d/.test('1') // =>true /\d/.test('1') // =>true
771=773? ここの住人はDWのMM_openBrWindowの中身がどうなってるか知らないし興味 ないと思うよ。MM_openBrWindowのサポートはadobeの仕事だと思うけど。
>775 /\___/\ /、-―' ゙、ー- ::\ | (○), 、(○)、:::| | ,,ノ(、_, )ヽ、,, :::| それは大変だ | ,゛-=-'、 .:::::| \ '´`.::: .::::/ /`ー‐--‐‐―´´\
>>775 \w とかもやってみ。
おかげで [_0-9A-Za-z] って書く癖ついたわ。
779 :
Name_Not_Found :2006/09/12(火) 23:22:42 ID:s3kbIlwo
>>776 function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
こうなってるみたい
結構普通ぽい
>>779 その関数ってさあ
winodw.MM_openBrWindow = window.open;
と同じことだよね。
何考えてやってんだ製作者www
>>771 シングルクオート閉じれ
UAの実装の違いとかを吸収するときのことを想定したんじゃないかな
//v2.0 でか
>>779 なんだ別名つけてるだけやんけ。つーかV1.0はどんなんだったのか。
784 :
Name_Not_Found :2006/09/12(火) 23:33:58 ID:s3kbIlwo
>>780 ごめん
コピペミス
onClick="MM_openBrWindow('./abcdef.htm','abcdef','scrollbars=no,resizable=no,width=530,height=654')"
やっぱネスケとファイヤーホックスのバグっぽい
まあwindow.openはweb1.0時代の遺物ってことで
×バグ ○仕様
787 :
Name_Not_Found :2006/09/12(火) 23:44:23 ID:s3kbIlwo
やった、解決した IEは width height で指定 ネスケはinnerWidth innerHeight でいけるみたい これはブラウザ判定して分けないとダメぽい
788 :
Name_Not_Found :2006/09/12(火) 23:47:27 ID:s3kbIlwo
おおっ 両方書いたら、同じように動いたよ ωαγατα..._φ(゚ー゚*) おまえらサンキュー(* ^ー゚)ノバイバイ
自己解決だと?釣りぽ。この種のヤシは以後スルーで。
790 :
Name_Not_Found :2006/09/13(水) 00:20:01 ID:9RcuUriD
フラッシュを貼り付けたときの
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0 " width="550" height="400" title="test_02">
<param name="movie" value="test_02.swf">
<param name="quality" value="high">
<embed src="test_02.swf" quality="high" pluginspage="
http://www.macromedia.com/go/getflashplayer " type="application/x-shockwave-flash" width="550" height="400"></embed>
</object>
<param name="movie" value="test_02.swf">の"test_02.swf"この部分を変えることは出来ないでしょうか?
<SCRIPT type="text/javascript">
<!--
document.all.movie.value="new.swf";
//-->
</SCRIPT>
とかしてみたけど駄目でした。
お願いいたします。
791 :
Name_Not_Found :2006/09/13(水) 00:21:41 ID:9aRGQxMk
>>789 ごめん、やっぱ無理っぽい
ブラウザ判定して分けないといけないみたい
たまたま上手くいっただけ
>>784 それでもシングルクォートがおかしなことになっているようですが?
793 :
Name_Not_Found :2006/09/13(水) 08:06:38 ID:1tgmr077
質問。 var q = 27; var n = (q >= 21)/3; alert(n); //0.3333333333333 どうしてこうなるのでしょうか?
>>793 q >= 21 → true
trueを演算のため数値に変換 → 1
1 / 3 → 0.33333...
>>790 それ全体を<div id="ID名">...</div>で囲んで
document.getElementById('ID名').innerHTML = それ全体の文字列(を手直ししたもの);
にするのが一番簡単かと。
795 :
793 :2006/09/13(水) 08:53:39 ID:???
>>790 paramにid属性つけて(たとえばmov1)
document.getElementById("mov1").value="test.swf";
ってやればいいじゃまいか
こんにちは replace(/A/, "B"). のように最後に「.」(period)がついているときは、 どういうことになるんですか?
800 :
759 :2006/09/13(水) 11:59:52 ID:???
スレ伸びるの早いですね。遅レスすみません。
>>760 ajaxでチャットを作る予定なのでそういうことではないのです。
>>762 なるほどーそのようなサービスありそうですね。
タイムラグの誤差程度なら問題ないですし、
早速調べてみたいと思います。
最悪サーバ側で時間を取得しようと思いますが、
それだと送信側がページ遷移してしまうので、
ajaxモドキになりそうですが・・・
どうもレスありがとうございました。
>>799 それで文が終わってるなら構文エラー。
replaceした結果にさらに何か施すなら別にいいんでないの。
var x = str.replace(/A/, 'B').split('@');
とかね。
>>800 そんなの時刻をチャットのサーバ側でつけるべきに決まってる
と思うが。クライアント側にも時刻が欲しければチャットの
応答のついでに常に時刻も返すようにするとかさ。
>>800 チャットってことはホスト鯖があるわけだから、鯖時間を正とすればいいだけでは。
NTPしてない鯖なんてそもそも論外だし。
スレタイなんだが、タイトルに表示されると、vol.50は「150」番目 のvolumeのように見えて紛らわしい。「l」(el)と数字の頭をもう少し 離せないだろうか。
>>803 フォント変えるなりなんなり。
自分も普通に50に見える。
806 :
Name_Not_Found :2006/09/13(水) 13:11:17 ID:xMnUf06L
初歩的な質問ですけど、「2%4」は「0」なんじゃないのでしょうか。 だって、商は0.5、余り0ですよね。でもぼくのPCだと「2」となります。 説明お願いできますか。
>>806 おいおい…「確かに初歩的だ」と思わずうなずいてシマタよ。
小学生に聞いても「2 ÷ 4 = 0 … 2」と答えるぞ。
説明する気にもならん。つかあんたの流儀だと余りは
つねに0だな。44 ÷ 7 = (44/7) … 0 とかね。
808 :
Name_Not_Found :2006/09/13(水) 13:53:43 ID:9aRGQxMk
>>792 あれ?間違ってる?
ちゃんと動いてるよ
806釣りだって絶対w
>>807 >つかあんたの流儀だと余りは
>つねに0だな。44 ÷ 7 = (44/7) … 0 とかね。
だれの流儀でも、これ、わからんな。
>>806 でもゼロとはいわんだろ。
そもそも、7の倍数はだな(w
10の位の数から1の位を2倍した数を引いた答えが7で割り切れるとき、
だから。
言ってるじゃん。「2 ÷ 4 = (2/4) … 0」だって。
4 ÷ 2 = よわるにぃ
3÷7 = さわるな
1÷1=胃悪い('A')
510 ÷ 4 = ことわるよーん
00÷971=おれ、悪くない
数学板でやれ
92÷4 = 国、悪し
質問です setInterval関数で 関数名を指定するとき、引数を指定したいのですが どうすればいいでしょうか? IE6とFF1.5で動けばいいです。
>>855 こうか。
tId=setInterval("document.getElementById('"+objId+"').innerHTML+='.';", 1000);
>>823 それはださい。
>>822 過去スレ読めば百回くらい同じような質問と解答があるぞボケ!!!
setInterval(function(x){return function() {func(x);};}(引数), 時間);
画像をクリックするとその隣に表示されているチェックボックスに チェックが入るようにするようにしたいのですが、できませんか? いろいろ探しても見つからなくて…
tid=setInterval(function(x){return function(){x.innerHTML+='.';};} (document.getElementById(objid)), 1000); とかの方がずっと軽いだろうな。10msec間隔ぐらいまで動くと思う。
>>825 javascript いらない。
<label for="hogehoge">
<img src="image.png" alt="おしてみそ" />
<input type="checkbox" id="hogehoge" name="hogehoge" value="1" />check
</label>
IE6 以下以外なら <label> で囲んでれば for と id のペアなくてもおk
>>825 画像をクリックしたときの動作→imgにonclickをつけて動作指定
チェックボックスをチェック→そのinputにidをふって
document.getElementById('ID名').checked = true
以上で必要なことは全部だ。何が見つからないだ基本中の基本だボケ!
>>829 どうでもいいが、JSでやるなら、俺ならこう書く。
var obj = document.getElementById('ID名');
obj.checked = !obj.checked;
831 :
825 :2006/09/13(水) 16:19:54 ID:???
神様方ありがとうございます。 labelすら知りませんでした。ただ画像には使えないみたいですね。 ちょっとやってみます。
>>830 テストしてないけど、それでいいのか!?
俺は1の経験地を手に入れた。レベルがあがった!
if ( obj.checked ) { obj.checked = true; }
else { obj.checked = false; }
↓
obj.checked = ( obj.checked ) ? true: false;
↓
obj.checked = !obj.checked;
最初の頃とかマジあほっぽいコードだ・・・
あ、↑の分岐、trueとfalse逆だな
>>832 張る前一応試したからいけると思うけども・・・。
まあ俺も最初のころは一番上だったねw
「画像をクリックするとその隣に表示されているチェックボックスにチェックが入るように」 と書かれているから、「チェックボックスを反転させる」のは実装ミス。 と言ってみるテスツ
うん、まあそう言うだろうとはおもった
そういう意味では
>>829 だけが正解だな。
onclick よりも onmouseup のが連打しても動作安定してんだけど、これも余計なことだね。
<script type="text/javascript"> function check(){ var obj = document.getElementById('hoge'); obj.checked = !obj.checked; } </script> <input type="checkbox" id="hoge"> <img src="img.png" onclick="check();">
>>836 ちょ! 試したら本当に安定してていいね
俺は1の経験地を手に入れた。
俺のIMEが経験"値"を学習しないのは何故なんだ・・・
<script type="text/javascript"> function chk(){ document.getElementById("hoge").checked ^= 1; } </script> <input type="checkbox" id="hoge"> <img src="img.png" onclick="chk()">
<input type="checkbox" id="hoge"> <img src="img.png" onclick="document.getElementById('hoge').checked^=1">
<input type="checkbox" id="hoge"> <img src="img.png" onclick="document.getElementById('hoge').checked=true">
うん。日々精進あるのみ。
JS でも ^= ってできたんだなあ・・・。 ||= とか &&= とかはできないのにのう (´・ω・`)
それどんな演算子
a = a && b; の略
if (!a) a = b; とかを略したりできるってやつ。 function で引数が省略されたときにけっこー使える手なんだが。
まあCにもJavaにもなかったものだしな。
Perlに比べたら型もあるしifの性能もいいから
>>847 でいいんじゃね??
>>844 ^ には要注意。
js> var i = 2006;
js> var j = 2007;
js> i ^= j; j ^= i; i ^= j; print(i, j)
2007 2006
js> var i = new Number(2006);
js> var j = new Number(2007);
js> Number.prototype.p = "prototype.p";
prototype.p
js> i.p = "i.p"; j.p = "j.p";
j.p
js> i ^= j; j ^= i; i ^= j; print(i, j)
2007 2006
js> i.p
prototype.p
js> j.p
prototype.p
おっ、喧嘩か......やれやれい
854 :
790 :2006/09/13(水) 23:51:05 ID:9RcuUriD
855 :
Name_Not_Found :2006/09/14(木) 07:58:50 ID:2/KLgmqB
str='1-1-1,2-2-2,3-3-3,4-4-4'; から,と-でsplitして 二次元配列をつくりなさい。
856 :
Name_Not_Found :2006/09/14(木) 08:15:05 ID:2/KLgmqB
御願いします。m(_ _)m
>>856 断る! 宿題/課題は自分でやれ。splitの勉強をすればすぐできる。
底をなんとかm(_ _)m
859 :
Name_Not_Found :2006/09/14(木) 09:30:26 ID:p2GOKlyl
ちょっとお尋ねします。 dt.setDate()としたとき、これって格納先がありませんよね。 var x=dt.setDate(); とかしないで、どうして設定値を扱えるのでしょうか。どこに 格納されているのですか。何だかよく分かりません。
あのさ、これ→「10888869450418352160768000000」って、何の階乗だかって どうしたら求まるの。JavaScriptでどうやればいい?押せー手。
JavaScriptにこじつけて算数を教わろうとは(ry
>>859 Hint
仮にn=9としてそのnの階乗で割り切れるかを試す
割り切れれば、元のnはもっと大きな数。
割り切れなければ、元のnは1,2,3.....n-1のどれかだ。
ちょい亀レスだけど、
>>840 のは checked だから良かったけど、
style.display のような block: none; の場合はどうするのがスマートなんだろうか?
display や visibility も 0||1 で評価されるようにして欲しいなあ。
ブラウザ仕様によってちがうからコードを統一できない。いつものアホな話だが。
評価は 0|1 だろ
>>863 with(document.getElementById("id").style){display = (display=="block")?"none":"block";}
しかし、例えばdisplayはblock noneのほかにinlineもあるし、visibilityもinheritがあったりするし、
なんでもかんでも0|1であらわせるわけじゃない。個人的にはcheckedも文字列の方が統一されていていいや。
そもそもcheckedもtrue/falseなんであって0/1じゃないんだよな。
>>860 (function fact_of(n,x){return n == 1 ? 1 : 1 + fact_of(n/(x+1),x+1)})(10888869450418352160768000000,1); // => 27
ごめん適当
869 :
860 :2006/09/14(木) 16:11:20 ID:???
>>868 ソース見て 「階乗」 の意味を知ったわw
でも値が階乗じゃなかったら・・・まあどうでもいいか。
ここ!(といって頭を指差す)
855なんて習うも糞もリファレンスちょい読むだけのレベルだな 下手すると小学生でも解ける
そういう意味じゃてくて
>>855 は「どこの学校ででた宿題なのか」って意味じゃね
str='1-1-1,2-2-2,3-3-3,4-4-4'; これがなんでこんなにp-p-p,q-q-qと反復しているか、そこがみそだな。 とするとregExpの練習にもなる。
ならねーよw
たとえ、window.open(child.html,"_blank"); で開いても、 子ウィンドウから、親ウィンドウの変数が参照できるよね。 たとえば、alert(window.opener.parent_val); とか。 これ、参照できないように開くことはできないんですか? 別の言い方をすると、親子の縁を断絶して開く方法は?
879 :
855 :2006/09/14(木) 18:37:40 ID:???
どうやってもundefinedになってしまいます。 str='1-1-1,2-2-2,3-3-3,4-4-4';を,と-でsplitして どう二次元配列にpushすればいいのかonz....
str='1-1-1,2-2-2,3-3-3,4-4-4'; myArray = str.split(","); for(i=0;i<myArray.length;i++) myArray[i] = myArray[i].split("-") Array.prototype.dump = function() { document.write("["); for (var i=0; i<this.length; i++) { if (i) document.write(", "); if (this[i] instanceof Array) this[i].dump(); else document.write(this[i]); } document.write("]"); }; myArray.dump();
>>880 んなら、お前は日本語どこで習った?
872じゃ分からんだろうよ。
>>881 後半FirefoxならtoSource()一発です。
デバッグはFirefoxのほうが楽だよ。
>>882 ごめんよ。
日本語習ったばかりの奴にはわかりにくい言い方だったな。
>>881 それは欠番が無いArray専用だわな。
それでは、Arrayの欠番と、undefinedを区別できないな。
(まあ、分かり切った値(i == 0)を除くためだけに、
Array#length回も if (i) しちゃう能無しに気付けというのも酷だろうがw)
js> Array(3).concat([1,2]).toSource()
[, , , 1, 2]
js> Array(3).concat([undefined, undefined]).toSource()
[, , , undefined, undefined]
js> undefined = 3;
3
js> Array(undefined).concat([undefined, undefined]).toSource()
[, , , 3, 3]
js> Array(undefined).concat([undefined, void 0, void 0]).toSource()
[, , , 3, undefined, undefined]
>>886 後学のためにあなたならどう書くか教えてくだされ。
join 使え(´・ω・`)
890 :
878 :2006/09/14(木) 22:31:49 ID:???
教えてくだされ。 どうやって、ウィンドウの親子の縁を切るんでしょうか。
区役所の窓ぐちで
孫を作って子を殺すってのは? 試してないけどさw
open(child.html,"_blank").opener = null なんかどうだろ
894 :
881 :2006/09/15(金) 00:05:47 ID:???
ただのCSVのパースだけなら詰まらないからと 後半にちょっと力んでしまっただけ。 Input myArray = [["1", "1", "1"], ["2", "2", "2"], ["3", "3", "3"], ["4", "4", "4"]]; Output [["1", "1", "1"], ["2", "2", "2"], ["3", "3", "3"], ["4", "4", "4"]] さあオマイラならどうする
俺ならスルーする
俺はもう寝る
俺ならダブルクォーテションは使わない
質問です。 以下のJavaScriptの書き方に、何か問題があるでしょうか? function goBack(form, formName, action, value){ form.action = action; form.formName = formName; form.formName.flag.value = value; form.submit(); } ※flagは、起動するアクションにマッピングされているActionFormのフィールド ボタン押下時に、上記のJavaScriptのメソッドを呼び、 そこでformをサブミット、 アクションを起動する。 ということをやりたいのですが、アクションクラスは呼ばれるものの、 受け取ったformの中のflagの値がnullになってしまうんです。 アクションが呼ばれていることから、問題はScriptの書き方だろうなとは思うのですが、 何分かなりの初心者なもので、解決策が思いつきません。 ちなみにStruts1.2.09、Tomcat5、Eclipse3.1を使って、WEBの開発を行っています。 どなたか原因が分かる方かいらっしゃいましたら、 ご教授お願いします。
HTMLのフォームの主要部分はなんてかいてんの?
900 :
Name_Not_Found :2006/09/15(金) 03:13:42 ID:qju8V0uT
写真や画像jpg/gifが自動的にブラウザの大きさに合わせて 調整してくれるようにする方法どうやったらよいですか?
JSでやると難しい気がするんだが
そんな難しくはないと思うが、ブラウザでの画像の無理やりな拡大縮小は汚いのでオススメできない。
質問です。 IFRAMEをcontentWindow.document.designMode = "on" にしたとき、 カーソルの位置はどのように取得することが出来るんでしょうか? タイミングによってカーソルの位置を変えたいのですが、 それ以前に現在の位置すら取得できなくて困っています。
>>900 ウインドウのサイズを取得して、そこから適当な画像サイズを計算して、imageの
widthかheightにセットするだけです。
たしかにブラウザでの拡縮はflashほど綺麗ではないがプレビュー目的なら使えない
こともない。
flashはそんなに綺麗か。おれはflashだと思っただけで画面を戻してしまう。
質問です。 <div id="test">test<br> <br> test<br> <br> test<br></div> 上のようなHTMLがあった場合に、 var children = document.getElementById("test").childNodes; for(var i=0; i<children.length; i++) { alert(children[i].nodeType); } // nodeTypeは 3 が TEXT_NODE で、1 が ELEMENT_NODE(この場合<br>) 上のスクリプトを実行させると、 IEでは<br>の後の改行文字を無視して 3 1 1 3 1 1 3 1 と返ってきます。 Firefoxでは 3 1 3 1 3 1 3 1 3 1 と改行文字もしっかりと認識してくれるのですが、 IEで改行を無視させない方法は無いのでしょうか?
IE で改行認識させるなら <pre> るしかなかったきがす。
子のーどとかとる時値変わっちゃうんだよね
今、2行目に行ったテキスト文字を取り出すプログラムを書いているのですが、 IEで妙な挙動をするのに悩んでいます。 <html><head><title>test</title><script> onload = function() { var spans = document.getElementById("id").childNodes; for(var i=0; i<spans.length; i++) { alert(spans[i].firstChild.nodeValue + ":" + spans[i].offsetTop); } }; </script></head><body> <div id="id" style="width:30px"><span>テ</span><span>ス</span><span>ト</span><span>文</span><span>字</span><span>列</span></div> </body></html> divの中にSPANが6つ入っていて、それぞれ1文字ずつ書かれています。 スクリプトではそのSPANのoffsetTopの値をalertで表示するようになっています。 上のHTMLを実行すると、私の環境のブラウザ上では テス ト文 字 列 というように表示されます。しかし、offsetTopは テ:0 ス:0 ト:0 文:18 字:18 列:36 というように、明らかに2行目にある「ト」の文字のoffsetTopが「テス」と同じになります。 これは1行目以外の文頭の文字(ト、字、列)で同じ症状が発生しているようです。 ちなみにoffsetHeightは全て18で、2行に渡って領域が取られている訳ではなさそうです。 FireFoxではきちんと表示されるのですが、どうやって回避すればよいでしょうか? 皆さんの知恵をお貸しください。よろしくお願いします。
911 :
Name_Not_Found :2006/09/15(金) 17:53:53 ID:2AKs0cYS
イメージを読んで配列に格納し読み込めなかった場合 代替画像を読み込ませたいのですが、画像がない場合 newn.onerror = function()でreturn;を返しても、無限ループを起こしてしまいます 何か対処法はないものでしょうか?
912 :
911 :2006/09/15(金) 17:54:25 ID:2AKs0cYS
var subimg = "./sub.gif"; newn = document.createElement("IMG");//new Image(); prImg = new Array(); count = 0; animeMAX = 2; fileMAX = 2; function setting(name, file){ for(i=0; i<=animeMAX ; i++){ prImg[i] = new Array(); for(j=0; j<=fileMAX; j++){ prImg[i][j] = new Image(); if(j<10){ url = file + i + "/" + name + "0" + j + ".jpg"; }else{ url = file + i + "/" + name + j + ".jpg"; } newn.src = url; newn.onload = function(){ prImg[i][j].src = url; alert(url+"1"); } newn.onerror = function(){ if (newn.src == subimg){ return; } alert(url+"2"); prImg[i][j].src = subimg; newn.src = subimg; }}}}
914 :
911 :2006/09/15(金) 19:57:45 ID:LAuBVePo
長いと怒られ、切ったのです
申し訳ない、
>>913 function chg00() {
dsp.innerHTML = xml.transformNode(xsl.documentElement);
name = xml.lastChild.firstChild.attributes.item(0).text
file = xml.lastChild.firstChild.attributes.item(1).text
aniMAX = xml.lastChild.childNodes.length
setting(name, file);
}
//-->
</script>
</head>
<body onLoad="chg00()">
<div id="dsp"></div>
</body>
</html>
915 :
Name_Not_Found :2006/09/15(金) 21:28:12 ID:AfEPkoYV
自分が管理している掲示板がスパムの被害にあっています。 例えば↓のようなHTMLの場合 <form action="./hoge.cgi" method="post"> 名前<input type="text" name="name" size="20" value=""> メール<input type="text" name="email" size="20" value=""> 内容<textarea name="hogehoge" rows="10" cols="60"></textarea> </form> テキストボックスが空の場合は、書き込みを受け付けないような設定にするには どのようにしたらよいでしょうか?
>>915 SPAM業者は基本的にHTMLのFORMを無視してリクエストを送信してくるので、
JavaScriptで対応しても意味が無い。CGIの方を書き換えるべき
チラシの裏 今IEのcurrentStyleを使って遊んでいたら、 <font size="+1">test</font> のcurrentStyle.fontSize が "+1" だった。 こんなのcurrentStyleとはいわんだろ ^^; FirefoxとOperaはきちんとpixelで返してくれました。 IEだとどうすればfont-sizeを取得出来るんだろうね。
うゎぁまじか。 Border*Widthもデフォルトだかなんだかしらんがmediumだの返すことあるしなぁ…。
>>918 mediumならまだいいんですよ、style.borderWidth = "medium" って指定出来ますから。
でも"+1"はstyle.fontSize = "+1" とか指定ありえないですからね。
ちなみに上の指定をしてみたところ、"1px"になりました。
<html><head><title>test3</title><script> window.onload = function() { for(var i=0;i<100;i++) { var span = document.createElement("span"); span.appendChild(document.createTextNode("あ")); document.getElementById("div").appendChild(span); } } </script></head><body> <div id="div" style="position:relative;width:200px;height:200px;border:1px solid red;overflow:auto"> </div></body></html> 上のなんの変哲の無いコードが、Safariで変な挙動をします。 DIVのwidthを200pxに設定しているのに、200pxで改行されずに1行に延々と文字列が続きます。 最後の1個だけ何故か2行目に出てくるのですが、結果やたら横に長いスクロールバーが出てしまいます。 IEやFxと同じように200pxで折り返して欲しいのですが、どう設定すればよいでしょうか?
JavaScriptで、「○×したいときは、こうする」というタイプの本は多いんですが、 文法とかが書かれているような本でお勧めの本とかありますか? 入門書ではなくて、仕様をわかりやすく解説してあるのを探しています。
>>921 役に立つ書籍スレを読むべきだな。洩れはサイ本かMyUNIXを勧めている。
つか今まで散々出ている話題だろ、過去スレ読んでないのかよ!
>>922 MSのはロクでもないね、あれが先頭から読めるもんかね。Netscapeの
ガイドの方ならまだいいけどあれ読むより本買った方がいいと思う。
>>923 ブラウザまわりのオブジェクトや関数を一切学ばなくてよいのならね。
しかしそういう奴はまずいないだろ?
>>921 Core JavaScript 1.5 Guideは?
過去スレとか普通読むか? 面倒くさい。 ECMA262の仕様書は難解だからやめといたほうがいいと思う。 処理系作るときは必要だったけどさ。
>>1 ・テンプレ/FAQ/過去ログ/関連資料を読める者。とくに
>>2-10 は必須!!!
テンプレ変更したいなら今主張しろ。過去スレ全集は検索できるんだから
本とか書籍とかで検索したらいいんじゃないかね。ECMAが普通に読むもの
ではないというのはそう思うけど処理系作る時だけ読むというのはヘンだろ。
あんたJavaScript処理系作ったのかい? 洩れは作ってないけどECMA読んでるよ。
ここの常連でECMA参照してる奴だってほとんどがそうだと思うけどね。
他の資料だと曖昧にしか分からないことを調べるにはこれしかない。
>>927 過去スレ全部読めって意味じゃないの?
ていうか、「本」とかで調べたらやたら関係ないの出てくるし
>処理系作る時だけ読む
そんなこと言ってないじゃん
細かい事調べるのには必要だが、普通は分かりやすいリファレンスとかを見たほうが早い
どうでもいいですよ〜
>>920 ですが、
JavaScriptの問題ではなくてDOM/CSSの問題のようですので、
スレッドを変えて質問します。ありがとうございました
setAttributeをテンプレにいれたらという声があったので
>>3 に↓を入れようとしたら文字数オーバーになってしまった。
Q11. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A11. IEでそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。
>>931 現行のQ6/A6は削除してもいいかと思うんだけど。まずない質問だし。
それはそうと、おたくの文案なんだけどね、
(1)setAttributeのバグは他にはなかったっけ?setAttributeを使うな
と言う方が話が早い気がしているんだけど…
(2)その「obj.onclick=bar」で「関数を入れるんだな」と分かってくれる
人がどれだけいるか…(もちFAQ嫁と言われるようなレベルのヤシで)
>>930 DOM/CSSはここで扱ってるけどね、どう見てもSafariのバグで
どうしょうもない気がするなあ。
>>3 を二つに分けるのは美しくないし、
かといって他のを削るわけにもいかないよなあ…
934 :
933 :2006/09/16(土) 14:48:47 ID:???
書き込む前にリロードすべきだった まあ、削るとするならQ6かな
A.7の下2行を削れば?
A.7の下の2行は知っておくと応用が効くので入れたいんだよなー。
それを言うならQ6も応用が利くから消したくないよな。 Q8を削るのはいかがだろうか
setInterval/setTimeout で質問。 なんとなく、だけど、 この割り込みで呼び出された関数って、 普通とは違う空間にいないか? 見えるはずのスコープが見えなかったりとか、 なんか挙動が普通じゃないのだが、 名前空間とかスコープとか実行コンテキストとか、 なんかそのあたりで、フツーとちょっと違いそうな香りがするんだが。
>>938 そんなことを感じたことは一度もない。ソースを提示してくれ。
まさかthisが違うとか、そんな初歩的な話ではないよな?
>>937 Q8/A8は応用が効かないけどよく出る質問なんだよな。
むしろFAQを10個ぐらい増やしてもう1レス使うとか
>>941 それだ。
ハンドラのthis問題は入れたいな
A7 の下一行をけずるとか
A10 は 「Ajax でぐぐれ」 で済むとか
まあ
>>941 もありかと。
オブジェクト内とか setTimeout とか addEventListener とかで
function (obj) { return function () { alert(obj) } }(this);
こういうのもあまり知られてない技だとおもう。
あと str.replace(/(hoge)(fuga)/, function (all, a, b) { alert(all, a, b); return 'piyo'; }); とか。
>>943 知られていない技を紹介するんじゃなくてFAQでなければ意味が無いぞw
それはそうと一番下のは何?
>あと str.replace(/(hoge)(fuga)/, function (all, a, b) { alert(all, a, b); return 'piyo'; }); とか。
これは調べれば分かるレベル。
ttp://homepage3.nifty.com/aya_js/js3/js310.htm ようはreplaceの第二引数に関数を入れるとその関数に文字全体、$1、$2、・・・と引数が渡され、該当部分はreturnした文字列に置換される。
>>945 それ、技でも何でもないじゃないか。聞いて損した
947 :
945 :2006/09/16(土) 18:43:19 ID:???
>>946 一応言っておくが俺は
>>943 ではない。
聞いて損したといわれても、幅広いブラウザで動作しない技よりかはましだと思う。
>>947 いやなんか、その程度すら知らなかったと思われてつい口が悪くなった
それはそうと新しいテンプレどうしようかね
そら調べればわかるだろうけど、調べられないからここに来て質問すんじゃねーの? 同じような質問を何回もされないようにFAQ書くんじゃないのかいな。
951 :
Name_Not_Found :2006/09/16(土) 20:17:59 ID:820ilimW
お話中すいません。 よくベンチマークとしてスクリプトの実行速度を測ったりしますが、あれは どのようにして出すのでしょうか。PCの速度はとてつもなく速いので、光速 を計算するときのようにすごく大きな数を掛けて割り出すのだと思いますが、 何か簡単な例を挙げて教えて頂けませんか。お願いします。
>>950 仮にFAQが無かったとしてFAQのQ1-10まで1スレで出ると思うのか?
質問自体は過去ログみれば何回もでてきてるやん。
現実的に知らない人が多いって話。
>>951 こういうことでなく?
var from = (new Date()).getTime();
for (var i = 10000; i--;) { func(); }
var to = (new Date()).getTime();
alert(to - from);
でもJSの処理自体は結構遅い部類だよね。
953 :
951 :2006/09/16(土) 20:42:40 ID:???
>>952 ありがとうございます。objを指定しなさい、と叱られました。
func()のあたりだと思いますが、ご再考を。すいません。
わろっしゅww
956 :
Name_Not_Found :2006/09/16(土) 20:57:04 ID:RGY9Uj/e
URLの?より後ろの部分、いわゆるQUERY_STRINGをJavaScriptで取得できませんか?
location.search
新スレは975超えたら。FAQの追加/変更は議論が間に合わなさそうなんで、 今回は保留ね。
975までに誰かが素晴らしいFAQ11-20を作ってくれたらそれでもいいけどね
AJAXで2つのファイルを同じページの別々の場所に読み込みたいのですがうまくいきません function printPage() { file= "file"; space="space"; getPage(); file= "file2"; space="space2"; getPage(); } function getPage() { xmlhttp = createXMLHttp(); if (xmlhttp) { xmlhttp.onreadystatechange = setPageData; xmlhttp.open("GET", file, true); xmlhttp.send(null); } } function setPageData(){ if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ document.getElementById(space).innerHTML = xmlhttp.responseText; } } function createXMLHttp() { 省略 } といった感じでやっているのですが、どうもうまくいきません file= "file2";から下に3行を消せばちゃんと動くのですが... どうにかうまく表示させる方法はないものでしょうか?
>>960 自作の関数にパラメタをつける方法をまず勉強したまへ。そして
xmlhttp.onreadystatechange = function() { setPageData(f); };
とする。もちろんfはgetPageのパラメタとして外からファイル名を渡す。
今は1個目のgetPage()を読んで終わったらすぐfileとspaceを
書き換えてしまっているので、読み込み終わってsetPageData()が
呼ばれた時には古い値は書き換えられて失われてしまってるだろ。
グローバル変数で受渡しって何十年前の発想だよそれって感じ。
独断と偏見により作ってみました。20もないですが。 【FAQその1】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… A3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが… A3. セミコロンで複数の文を区切られます。onclick="foo();bar();"としましょう。 Q4. document.write(...)でページ内容を追加したいのですが… A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Firefox等)で対応済。 Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。 Q6. DOMでtable要素にtr要素を追加しても表示されないのですが… A6. IEではtbody要素にtr要素を追加する必要があります。 tbody要素はtbodyタグを書いていなくても自動的に作成されます。 またはtable.insertRow()/tbody.insertRow()を使いましょう。 Q7. Aタグのonclickで動作指定してるのですが時々動きません… A7. 「onclick="...;return false"」としないとページ移動しちゃうから。 Q8. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A8. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q9. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A9. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
【FAQその2】 Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A10. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。 Q11. 100*1.15の結果が114.999…998となってしまうのですが… A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A12. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP") を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。 Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません… A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。 なお、onclickなどのイベントハンドラに指定するのは関数名のみです。 後ろに()をつけるとイベント時ではなくその場で関数が実行されてしまいます。 setAttribute("onclick","foo();bar();")などとしたいときは obj.onclick=function(){foo();bar();}という風に関数式を使いましょう。 Q14. 以下のコードが思ったとおりに動かないのですが… function MyClass(element){ element.onclick=function(){this.method();}; } MyClass.prototype.method=function(){...}; var myObj=new MyClass(...); A14. thisが指す値は状況により変化します。以下のようにしましょう。 element.onclick=function(x){return function(){x.method();};}(this); Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが… A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、 offsetがマッチした位置、sが置き換え前の文字列全体になります。
>>963 > QA-14
それだったら
...onclick = this.method;
でいいじゃん。バカか?
>>963 > QA-13
1996年から1997年、HTMLのイベント属性。
1997年から199年、イベントプロパティに匿名関数。
1999年から現在、attachEventやaddEventListener。
どうして、歴史的に見ても、暫定的な方法だった、onclick = function を薦めるんだ?
今はもう2006年で、お前らが相手にしているブラウザ全てで
addEventListenerかattachEventを使えるだろう。
その暫定的な方法で、thisを使う癖がついているから、
いつまでたっても、イベントオブジェクトへの問い合わせが苦手なんだろ。
いいかげん、頭を切り替えろ。
やってることわかればいいんじゃねーの? とは思うが、
まあ普通 setAttribute("onclick" 〜はやらんわな。
とりあえず
>>962-963 乙。
文句いうやつはそこを書き直すくらいしようぜ。
> A13
IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。
複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
という風に無名関数を作りましょう。中に書かれたコードが実行されます。
> Q14
Q14 以下で "hoge" を出すにはどうしたら?
function MyClass(element){
this.title = 'hoge';
element.title = 'fuga';
element.onclick=function(){ alert(this.title); };
}
var myObj=new MyClass(...);
とか?
addEventListenerはremoveEventListenerしないとまずいのかしら?とか思い込んでるのであまり使っていない。 element.onclick = eventHandler; element.onclick = eventHandler; と重ねても一度しか実行されない。 element.addEventListener("click", eventHandler, true); element.addEventListener("click", eventHandler, true); これも多分問題ない。 element.addEventListener("click", function(e){ eventHandler(e); }, true); element.addEventListener("click", function(e){ eventHandler(e); }, true); こういうのは二度実行されるからまずいよね?
> これも多分問題ない。 うそん。 それ、二回実行されないほうがまずくね?
>>969 > setAttribute("onclick"
あー、ごめん、気分的問題っていうか。
HTML的に標準な属性には setAttribute 使うけど、およそJSのためだけの属性とかには使いたくないっていうか。
個人的な意見でしたゴメソ。
いわゆる現在の 「初心者」 的には onclick じゃないかなー、と思った次第。
まあ addEventListener 系はもう一個 Q&A 増やすのでもありかとw
「Q いつでもイベントを追加したり削除したりするにはどうしたら?」 とかで。
>>970 その仕様知らんかたw
addEventListener は後方互換用にラッパー作ってやってんだけど、ちょっと作り直さなきゃだなー。
残念ながら980までにまとまりそうに無いな 諦めよう
This new static class extends long native double package label in short native super interface, Private transient false protected synchronized function while volatile throws public final float with return. 予約語だけで文章作ってみた。予約語全部を含めるのはむずかしいなあ。
>>975 そのページに載っている状態だと全部Flashで作ってあるけどね。
本番はどうやってるのか知らないけどレイヤー作ってその大きさ
を変化させればどうにでもなると思うが。
979 :
978 :2006/09/17(日) 13:50:57 ID:???
無理でした。DIONは無理です。別のプロバイダの方お願いします
よーし。こんどはパパが1000ゲットしてらるからな、優。よく見てるんだぞ。
しかし、それがパパの声を聞いた最後になろうとは、優は夢にも思わなかったのでした・・・。
そ
selection.createRange().text って テーブルの中の文字は取得できない?
もう少しだ、優。自転車レースのフィニッシュの要領だ、わかるだろ? さっきはパパ、らりっちゃったな。あせってはダメだ。
うめ(´・ω・`)うめ
うま ↑ 間違った… 埋め
カウントダウン行くよー!! 10!
996 :
992 :2006/09/17(日) 20:56:42 ID:???
9! もう連投負けはしないぞ
10!
9!
100
_ _ ._ _ / /\/_\ ./_\\ \ / / / /_/ /\ / /_/ /\\ \ / / / \_ /\/ \_/\/ \ \ / / / \\./ .\\/ \ \ / /\/ . ̄  ̄ / /\ / / / ________ / / / / / / / ____ _/\ ./ / / / / / ./ /\____./ /\.\/ / / / / / / ./ / / / / ./ ̄ / / / / / / / / / / / ./ / / / / / / / / / ./ / ./ / / / / .\/ / / /___/ /__./ / / / \ \ / _ ̄ ̄____ /\ / /\/ \ \ /__/\ ̄ ̄ /__/ ./ / / / \/''\ \\/ ̄ ̄ ̄ ̄\.\/ \/ / \_/  ̄  ̄ \/ ポカーン
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。