+ JavaScript の質問用スレッド vol.62 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQその1】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが… A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。 Q4. document.write(...)でページ内容を追加したいのですが… A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。 Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。 Q6. DOMでtable要素にtr要素を追加しても表示されないのですが… A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。 tbody要素はtbodyタグを書いていなくても自動的に作成されます。 またはtable.insertRow()/tbody.insertRow()を使いましょう。 Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A8. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
【FAQその2】 Q9. Aタグのonclickで動作指定してるのですが時々動きません… A9. 「onclick="...;return false"」としないとページ移動しちゃうから。 Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。 Q11. 100*1.15の結果が114.999…998となってしまうのですが… A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0") を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。 Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません… A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();}; という風に無名関数を作りましょう。中に書かれたコードが実行されます。 Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが 「"...this..."」とか「function(){...this...}」ではうまく行きません。 A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に 束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中) Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが… A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、 offsetがマッチした位置、sが置き換え前の文字列全体になります。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
8 :
Name_Not_Found :2007/12/24(月) 17:11:06 ID:+LI/LRws
質問です。 <html> <head> </head> <body> <h1>座標表示</h1> <img id="foo" src = bar.jpg> <script type="text/javascript"><!-- window.document.getElementsById("foo").onmousemove = getMouseXY; function getMouseXY(evt) { if (document.all) { cx = event.offsetX; cy = event.offsetY; }else{ cx = evt.layerX; cy = evt.layerY; } document.getElementById("result").innerHTML = "(offsetX,offsetY) = "+cx + ", "+cy; } // --></script> <div id="result"></div> </body> </html> 上記のような感じで、画像の左上を0,0としたときの座標を得るにはどうすれば良いでしょうか?
>>8 その画像のoffsetLeftとoffsetTopを差し引けばいいかも。
ある要素があります。たとえば <div id='foge'><p>aaaaa</p></div> こんな感じでいくつもの子ノードを内包しているものです。 それでdivにイベントハンドラを mouseout で設置しました。 私の想定していたのはdivの外側にマウスをやったときにイベントが発動するものです。 ところが、これだと、内側のpにマウスが入ったときにもイベントが発動してしまうのです。 これを防ぐ方法はIE6のクロスブラウザ対策を含めてあるでしょうか? IEがevtのcurrentTargetに対応していれば判別は簡単なのですが・・・ 現状ではevtの発生源の親ノードを調べていってdiv id='hoge'があれば発動しないという 遠回りな対策をとっています。 他にいい対処方法があったら教えてください。
>>10 bubbleをオフにすれば済むような希ガス
12 :
10 :2007/12/24(月) 22:59:13 ID:???
>>11 レスサンクスです
IEはバブルのみなので、キャプチャすることができないのです。
>>12 なるほど。
>>6 のMSサイトでeventオブジェクトのところを見てみたが、
IEではeventにfromElementというプロパティがあるようだけど、これで
判別できないかな。
15 :
Name_Not_Found :2007/12/25(火) 01:04:45 ID:0j5DtR/l
setTimeoutに関する質問です ある要素でイベントが起きたら一定時間後にその要素に変化が起きるということをやりたくて 引数としてイベントが発生した要素を渡すつもりで以下のように書いたのですが動きません window.setTimeout(function(){ foo(event.srcElement); },time); 以下のようにevent.srcElementを一旦tmpで受けてやると動きました tmp=event.srcElement; window.setTimeout(function(){ foo(tmp); },time); まあ動いたのでめでたしめでたしなんですが、感覚的に気持ち悪いのも確かです tmpを使わずにevent.srcElementを渡してやる方法はないでしょうか (IE専なのは要素に変化を起こすための関数fooの中でIEでしか使えない関数を使うからです 他のブラウザの場合は拾うイベントタイプから関数まで別物にして同じ動作を実現しているので 回答もIE専で問題ありません)
>>15 そりゃsrcElement保存しとかなあかんでしょ。気持ち悪いとか言われてもねぇ。
curryメソッド追加して (function(event){ foo(event.srcElement) }).curry(event)
19 :
Name_Not_Found :2007/12/25(火) 18:00:05 ID:Jz9bL9ry
curryメソッドってなんだよ
フォームから画像をアップする前にプレビューするものを作っています。 以下のようにimgcに2つの値を渡して後者の値をgetElementByIdのidとしたいのですがうまく動きません。 どうすればいいでしょうか? <form enctype="multipart/form-data" method="post" id="myform" action="post.php"> hoo:<input type="file" onChange="imgc(this,img1)" /><br /> foo:<input type="file" onChange="imgc(this,img2)" /><br /> <img src="" id="img1" /><br /> <img src="" id="img2" /><br /> <input type="submit" value="送信" /> </form> function test(hoge, foo){ document.getElementById(foo).src= hoge.value; document.getElementById(foo).style.display="inline"; }
imgcはどこにあんのさ
あんたimgcのなんなのさ
type="file" 内の文字列が読めるかどうかはブラウザ次第 (セキュリティがらみの問題で) 読んだ文字列をそのまま src に突っ込んで 表示されるかどうかはまた別の問題 時にはあきらめも肝心です
24 :
Name_Not_Found :2007/12/25(火) 19:34:07 ID:AWfl9KNA
>>20 これでできるが。
<form enctype="multipart/form-data"
method="post" id="myform" action="post.php">
hoo:<input type="file" onChange="imgc(this.value, 'img1')" /><br />
hoo:<input type="file" onChange="imgc(this.value, 'img2')" /><br />
<img src="" id="img1" /><br />
<img src="" id="img2" /><br />
<input type="submit" value="送信" />
</form>
<script>
function imgc(hoge, foo){
document.getElementById(foo).src= hoge;
document.getElementById(foo).style.display="inline";
}</script>
25 :
Name_Not_Found :2007/12/25(火) 19:36:25 ID:AWfl9KNA
ただし、ローカルファイルはできなかった。firefoxでは。 web上のURLコピペすればできた。
26 :
Name_Not_Found :2007/12/25(火) 22:01:28 ID:QVYZ7H2X
<select>をクリック等でプルダウメニューを現在表示しているのかしていないのかを知る方法 はありますでしょうか? Firefoxで。
27 :
Name_Not_Found :2007/12/25(火) 23:36:41 ID:AWfl9KNA
わっふるわっふる
束縛アルゴリズムというのはどういうコードなのでしょうか。 できれば簡単な例でご教示ください。
>>20 セキュリティ制約上、無理と思われ。
>>28 文脈が分からないと何とも言えないね。deep bindingとか
shallow bindingとかのことなのか、それとも数理計画ぽい話なのか。
>>26 ホレ。Mozで試しただけ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function v(x) { window.status = x; }
</script>
<div><select onmousedown="v(1)" onmouseup="v(2)" onchange="v(3)">
<option>A</option><option>B</option><option>C</option></select></div>
</head><body>
</body></html>
質問です。 イベント発生時にエレメントの位置を取得するというのはよく見ますが 指定位置にあるエレメントを取得することはできますか? 例 <div id="txt1" style="position:absolute; top:100px; left:100px; width:100px; height:100px; #eeeeee;">text1</div> <div id="txt2" style="position:absolute; top:200px; left:100px; width:100px; height:100px; #eeeeee;">text2</div> <div id="txt3" style="position:absolute; top:300px; left:100px; width:100px; height:100px; #eeeeee;">text3</div> object.style.top = 120 object.style.left = 100 この位置を指定した場合はid="txt1"のdiv要素を取得する というのは可能でしょうか?
31 :
Name_Not_Found :2007/12/26(水) 14:16:11 ID:7nxJ+bWU
力業だけど全要素の位置判定して当てはまるの選べばいいじゃん
>>31 ああ・・・たしかに・・・!
年末頭まわんねー・・・
どうもありがとう!!
まだjsなんて使ってるんだ。時代はPHPだよ。 jsやる暇があったら今すぐPHPの入門書でも読むべき。
PHPとAJAXの融合だお!
それなら俺はPHPでJavaScriptを出力してやる!
36 :
Name_Not_Found :2007/12/26(水) 16:07:23 ID:hNybkCjr
まだPHPなんか使ってるんだ。時代はMySQLだお。
たしかにPHPはいい本出してるね
>>33 がクライアントサイドPHPをJavaScriptで実装してくれるそうです。
42 :
Name_Not_Found :2007/12/26(水) 19:04:51 ID:0RvsY7LS
>>29 ありがとうございます。
でもプルダウンを表示するのはマウス契機だけではないですね。
また、キーボード押下を拾ってもプルダウン表示とは限らない。
プルダウンメニューを自作するのが一番だね
json.js を使うサンプルなどありませんでしょうか。。
js記述 function expand(id) { if (id.style.display == "none") { id.style.display = "";} else {id.style.display = "none";} window.event.cancelBubble = true;} HTML記述 <p><span class="list" onclick="expand(a);" style="cursor:hand;">クリック</span></p> <div id="a" style="display:none"> <p>表示1</p> </div> クリックで隠れた部分を表示されるスクリプトなんですが ドックタイプがHTML 4.0だと IE、ファイヤーフォックス、オペラ全て作動するのですが ドックタイプをXHTML 1.0 にすると ファイヤーフォックスだけ作動しません どのように記述すれば作動するでしょうか
function expand(id) {
の直後に
if(typeof id == "string") id = document.getElementById(id);
を挿入して
onclick="expand(a);"
を
onclick="expand('a');"
に変更する
俺にはむしろ
>>45 がなぜ動くのか不思議なくらいだw
そうやってつまらないJAVASCRIPTを書いてる間に 俺はどんどんPHPを学習していってるわけだが。
onSubmit='setTimeout("{ document.box.clear.click(); document.box.text.focus();}", 300);' 現在perlでチャットを作成しています。 チャットで発言するとclear(リセットボタン)を実行して、 そのときの発言を消し、カーソルをtext(発言欄)に移動させます。 ですが、チャットのオプションとしてほかにもタブやチェックボックスで 細かい設定をできるようにしようと考えています。 このままの場合、オプションのチェックボックスなどの情報も 発言時にリセットされてしまい手間がかかってしまいます。 発言欄のテキストボックスのみ初期化したいのですがどのようにしたらよいでしょうか? 回答よろしくお願いします。
49 :
Name_Not_Found :2007/12/27(木) 13:07:26 ID:lLBDfzMf
>>47 そうやってPHPなんか弄くってる間に俺はどんどんMySQL習得して行っちゃうわけだが。
>>49 そうやってMySQLなんか弄くってる間に俺はどんどんN-BASIC習得して行っちゃうわけだが。
51 :
Name_Not_Found :2007/12/27(木) 14:42:15 ID:glIMimh6
こんにちは。質問があります。 dという変数を現在のDateオブジェクトにしたとき、今日が過去のある日と 未来のある日の間にあるかどうかを判定するとします。 このとき、if文の中に (d>=new Date(過去の日)&&d<=new Date(未来の日)) という書き方でよいと思うのですが、&&が||になっているのを見ました。 ||だとどういうことなのでしょうか。そしてそれは正しい書き方ですか。 よろしくお願いします。
52 :
Name_Not_Found :2007/12/27(木) 15:19:30 ID:c8vlvSsJ
>>50 N-BASICって今でも実行環境存続してるんだ。。。
>>48 【textareaのエレメント】.value = "";
でいけるよ
>>50 そうやってN-BASICなんか弄くってる間に俺はどんどんFirebirdSQL習得して行っちゃうわけだが。
>>51 ||は論理OR演算子だからそのまま論理AND演算子に置き換えると常時trueになっちゃうお
56 :
Name_Not_Found :2007/12/27(木) 17:13:17 ID:9SO/ysTV
そうやって技術学んでいる間に技術畑から抜けた奴らがどんどん出世していくわけだが
ところでspryってどうよ
>>53 返答ありがとうございます。
エレメントという言葉が分らなかったので検索で調べてみましたが
結局よく分りませんでした。
エレメントはたぶんテキストエリアのname="xxx"の部分のことだと思うので
何通りか変更して試したところ上手くいきませんでした。
onSubmit='setTimeout("{ document.box.text.value=""; document.box.text.focus();}", 300);'
一番これが近そうですがこれのどこがだめなのでしょうか。
これはひどい
>>58 エレメント分からないって論外だよ。本でも買って地道に勉強すれ。
手取り足取り教えてやるスレじゃないんでね。まあがんばって。
>>59-60 チャットの完成のためだけのことを考えjavascriptの知識がなく、そこで躓き、
javascriptについて詳しく知るつもりはなくその部分の回答だけでもいただけたら、と
思ってこのスレに書き込ませていただきましたがどうやらこちらの認識が甘かったようです。
お二方の回答から
>>58 がまったくの的外れなことをしてしまったと思います。
>>58 で調べたとはいいましたが、javascriptについては無知なので何が書いてあるか本当に分りませんでした。
理解するには
>>60 でいわれてるように地道な勉強が必要なようです。
チャットの作成を諦めたくはないのでもう一度調べなおしてみようと思います。
>53さん、せっかく教えていただけた答えですが
生かすことができなくてすいませんでした。
>>61 チャットを作るならperlよりもPHPの方が簡単だと思う。
それならJS使わなくてもPHPだけで作れるんじゃないかなぁ
つーか、elementが何か知らないというのはHTMLからやり直せということだぞ。
(
>>53 の用語法もかなり怪しいが、ごく好意的に解釈することにする)
用語法……?
>>62 インタフェース部分のJavascriptだろ。
>>61 ちなみにMSDNのダイナミックHTMLのリファレンスだとElementじゃなくてObjectって読んでるお。(MSHTMLのリファレンスだとIHTMLElementとかになってるけど)
平たく言えばHTMLの要素を指すJavascriptの変数。(document.getElementById("foo")はidに「foo」という値を持ったHTML要素を返す)
エレメントオブジェクトでおk
>>67 MSDNを基準にすな。MSDNではArrayだろうが何だろうが一緒くたにObject。
70 :
Name_Not_Found :2007/12/28(金) 09:10:35 ID:NRmfUpFP
メンバが見つからないって叱られるんだけど、どこも正常に見える。 こういうとき考えられる原因ってどんなこと?
目
for in とかで全メンバ表示する
PHPは変数に$を使えて超便利だ。
質問です。asciiコードをJavascriptで表わせますか。どうやればcがで ますか。よろしく教えてください。
JavaScriptは変数に日本語(平仮名、カタカナ、漢字)を使えるから超便利だ
76 :
Name_Not_Found :2007/12/28(金) 18:00:21 ID:Db0T23zQ
GOOGLE AJAX APIを使ってRSSに含まれる画像の部分を表示したいんですが どうやればいいですか
77 :
Name_Not_Found :2007/12/28(金) 19:34:30 ID:UUQO5rp0
>>77 googleの説明通りに作ってみて、具体的な疑問が出てから、質問しなおせ。
79 :
Name_Not_Found :2007/12/28(金) 22:40:15 ID:UUQO5rp0
役にたたんやつだな GOOGLEは画像扱えませんよとか扱えるよくらいでいいのに 答えになってない書き込みすんなよ
扱えるよ
扱えませんよ
答えになってない
>>79 まだできないのか。
早くやれよ、このボンクラが。
知らないならレスしなくていいよ
だから扱えるよ
86 :
Name_Not_Found :2007/12/29(土) 00:30:51 ID:8/xiD4tk
このスレはJAVASCRIPTでうざいホームページ作ってる人のスレ こんなスレで質問したのが間違いだった
扱えると言ってるのに、何が不満なんだ。
for in とかで全メンバ表示すればいいよ
>>84 文句垂れてる暇があったら、さっさと作って、具体的に質問しろよ、ボンクラが。
つうか、googleが面倒な部分2箇所を全てやってくれているから、本当の初心者じゃないと質問が発生しないけどなw
とりあえず誰かに質問すれば教えてくれる、という根性がまず間違い
他の誰でもない、アンタだから聞いているんだ!
質問です。 あるボタンをクリックすると、違う場所にあるテーブルの複数のセルの背景色を一括変更するにはどうしたらいいのでしょうか。 1つのセルだけならできるのですが、複数となるとスクリプトが長くなってしまいます。 ただ、うまくまとめることができそうなので・・・。 6×6のテーブルのうちx1y1,x1y3,x2y2,x2y4,x3y3,x3y5,・・・のように列等で指定できない場合をお聞きしたいです。
>うまくまとめることができそうなので うーん、どうできそうなのか、どこまでできたのか晒そうよ。 だって回答者は君の技術レベルを知らないんだぜ。不思議だろ。 説明読む限り、斜め一列を市松模様にしたいんか? それとも複数セルへの一括処理を簡略化する手法を聞いてるのかな。 そこが判らん。 前者なら洟垂れ素人でも苦はないだろうから後者に言及しときます 関数にJSONで[{x,y},{x,y},...]な配列を渡して処理するのが一番ベタで順当な解だと思いますよ。
おとといからオーム社のJavascriptプログラミング入門買って独学で勉強してるんだけど この教本、地雷な気がしてきた。その辺のウェブで見れるコラムの方がずっと分かりやすい。 高かったのに。
例文のHTMLを見ればおおよそのレベルもわかる。
え? 会社で読んだオームの面白かったけどな
それ読まなかったら今でもJavaScript鼻で笑ってスルーしてたかも
難解って事かな、それともオームのJavaScript本で「JavaScriptプログラミング入門」以外のがあって(実際あるが)それを差してるのかな。
買う前の指南としちゃ
>>95 が最短解だな
技術書なんざ経費で買い漁るモンだろうとも思うが
皮肉臭い 「ウェブで見れるコラム」が信用出来なくなったときに 読み直すのが良いんじゃないかな、と思います
98 :
94 :2007/12/29(土) 08:28:04 ID:???
後学のために何らかの参考になりそうな気になった点をまとめて見ます。 用語にほとんど説明がなく、c++辺りの言語やhtmlの知識が前提になっているようで、 かといって他の言語を習得している人だからこそ陥りやすいミスや疑問に 全く配慮されてなく、どの層をターゲットにしてるのか全く不明。 また、数学に例えると、公式と使い方だけ示して、 証明をすっとばしてるぬるい参考書的な印象でした。 後学のためになれば。
とほほで十分
とほほは有害
とほほは便利
102 :
Name_Not_Found :2007/12/29(土) 12:21:42 ID:obEUvuGX
トホホ・・・。
右クリックのJavaScriptを見ていただきたいのですがこちらのスレでも大丈夫でしょうか?
104 :
Name_Not_Found :2007/12/29(土) 14:11:55 ID:yqBzY4gh
>>104 回線切って首吊って死ぬといいよ('(゚∀゚∩
>>106 違います。。。
<html>
<script type="text/javascript" defer>
<!--
var pWin = external.menuArguments;
var sSel = pWin.document.selection.createRange().text;
sSel = encodeURIComponent(sSel);
if (sSel != "") {
var uri = "
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR= " + sSel;
pWin.window.open(uri, "", "");
}
//-->
</script>
</html>
これで検索すると日本語が文字化けしてしまうんです
エンコード?だとは思うのですがどこをなおしたらいいのか教えて欲しいのです
よろしくお願いします
>>107 encodeURIComponent()はUTF-8のコードポイントで%XXに変換する。
そのスクリプトの文字エンコードや、そのスクリプトが埋め込まれたHTMLなどの文字エンコードに関係ない。
UTF-8固定なので、逆に、他の文字エンコードへの変換は、その変換先の文字エンコードだけを調べれば良いという利点になっている。
つまり、例えば、myEncode()という関数を作ったとして、
myEncode(string, encode_from, encode_to) みたいな3つの引数は必要なくて、
myEncode(string, encode_to) みたいに2つの引数で済むということだ。
相手がEUC-JPで書かれたHTMLのフォームの場合だと、myEncode('あいうえお', 'EUC-JP') みたいになるだろう。
あんたがやることは、myEncode()を一から作ることではなく、
http://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html のスクリプトを読み込んで、必要な変換関数をencodeURIComponent()の代わりに使うことだろう。
>>108 もともと違う右クリ(サイトから落として)用JavaScriptだったのをURLだけ置き換えて使っていただけなので困ってました
本格的なのですね(´д`、)アゥゥ
落としてみます
ありがとうございました
110 :
Name_Not_Found :2007/12/29(土) 16:48:29 ID:8/xiD4tk
ブラウザカスタマイズしたほうが早いのに何でそんなことやってるの
スレ違いな気もしますが、OperaのJS処理ってIE、Firefoxと違っておかしな事が多くありませんか? removeNodeでタグなどを消しても反映されなかったり、 変数 = document.getElementById('hoge'); 変数.insertAdjacentHTML(〜 などが動作しなかったり…
>>110 多くの人が使うサイトに検索機能を入れるのだと、その多くの人に
ブラウザカスタマイズしろとお願いするのかね。それにブラウザ
カスタマイズするよりあのスクリプト入れる方が簡単な気もするな…
>>111 removeNodeというメソッドはDOM標準にはないと思うが。
insertAdjacentHTMLも当然ない。クロスブラウザでやりたいのなら
そういうものを使わずに書くもんじゃないのか。またはOpera捨てるか。
114 :
Name_Not_Found :2007/12/29(土) 17:19:24 ID:ya3bEqsg
8の倍数に7が多いのは何故なんでしょうか。もしかしてフェルマー以来の 大発見だたったりして。後々エピソードになるかも知れないので時計を見る と昨日の深夜2時26分でした。分かる方お願いします。繰り返しますが、発見 は僕です。
>>113 >DOM標準にはないと思うが
知りませんでした。
outerHTMLとかと同じで独自拡張か何かなんですかね?残念です。
むしろ removeNode が独自に実装されてると知らずに自作を走らせてた
Opera7くらいまではMSIEと認識させる設定にしているかどうかで使えるメソッドが変わった。 てきとうな事を言うが、今は聞かないから廃止したのでは? とりあえず、昔も今も、removeNode()とinsertAdjacentHTML()は使える。 removeNode()の注意点は子孫を残すか消すかを決める引数だけ。 removeNode()とapplyElement()はIE独自実装ながら間違いなく便利だ。
118 :
Name_Not_Found :2007/12/29(土) 18:30:49 ID:yqBzY4gh
>>118 テンプレ読めない奴は帰れ。
>>2 の冒頭。
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
120 :
Name_Not_Found :2007/12/29(土) 18:57:28 ID:yqBzY4gh
質問です。 ビルトイン関数の始めに引数で予約語のデクリメント演算する際、正規表現がマッチしません。 メタキャラ等は合ってるはずですし、 RegExpからオブジェクト系統の配列処理もしてるのですが何故でしょうか...? ちなみに、searchメソッドからgフラグの終了表現は返します。 他の掲示板で質問しても、 「日本語でおk」などと意味不明な返信しか返ってこないのでここで質問した次第です。 どうかご教授願います。
122 :
Name_Not_Found :2007/12/29(土) 19:21:57 ID:obEUvuGX
123 :
Name_Not_Found :2007/12/29(土) 19:24:37 ID:2zr2i4+R
>>121 英語でおk
MSの機械翻訳みたいに日本語で分からないときは英語を見れば分かる
>>121 JavaScriptでおk
ぐだぐだ言わずにコードを晒せ
大漁w
127 :
Name_Not_Found :2007/12/29(土) 20:28:04 ID:gmVFM9HN
name: plat battleship fact number: 12 1234 876 hitpoint: 1000 1300 5000 と入力したら 別窓に plat 12 battleship 1234 fact 876 と返してくるコードplz 書き始めがわからん
128 :
Name_Not_Found :2007/12/29(土) 20:33:11 ID:dWYhLp9w
if文でaとbとc全てが一致しているかどうか調べたいのですが、 if(a==b==c)とやっても何故かできません。 if(a==b&&b==c)とやれば一応できますが、もっと短縮する方法はないでしょうか?
130 :
Name_Not_Found :2007/12/29(土) 21:06:39 ID:dWYhLp9w
>>129 ということは、aとbとcとdとe...のように増えた場合でも
if(a==b&&b==c&&c==d&&d==e...)とやらなければいけないのですね。
回答ありがとうございました。
if (a == [b=c=d=e][0]) { alert(全部同じ) }
>>131 それはどういう理論なの。まずeの値がdとcとbに代入されて
それ以前のdとcとbの値が無くなってしまうが、それから?
133 :
131 :2007/12/29(土) 22:30:34 ID:???
>>132 ごめん。推敲してる途中で送信してしまった。
よく見るとでたらめもいいところだわ。
>>127 Stringオブジェクトのsplitメソッドは分割した文字列のarrayが返ってくる
<input type="text" id="name">
<input type="text" id="number">
<input type="text" id="hitpoint">
<input type="button" onclick = "test();">
<script>
var test = function(){
var names = document.getElementById("name").value.split(" ");
var numbers = document.getElementById("number").value.split(" ");
var hitpoints = document.getElementById("hitpoint").value.split(" ");
var str = "";
for(i in names){
str = str + names[i] + " "
str = str + numbers[i] + " "
str = str + hitpoints[i] + "\n"
}
alert(str);
};
</script>
>>121 ビルトイン関数とは? 普通組み込み(bulitin)関数
は処理系が予め用意するものなので自分がビルトイン
関数の本体を書くことはあり得ないが何やってるの。
引数で? 引数は単なる変数だから何かの動作をする
わけじゃないよな。引数に何か値が入っていてそれに
何かの操作を行うというわけなのだろうか?
予約語のデクリメント演算? 予約語は変数として
使えないからコードの途中に予約語がいきなり出たら
構文エラーになるわけだが?
正規表現がマッチしない? どんな正規表現を何と
マッチさせようとしているのか全然分からない。
メタキャラは合ってる? いっとくがPerlとJavaScript
で正規表現の機能は同じではないぞ。
RegExpからオブジェクト系統の配列処理? RegExp
オブジェクトは単なるオブジェクトだから、配列は
関係ない。RegExpのメソッドで配列を返すものを何か
呼んでいるという意味ならそのメソッドを言え。
searchメソッドからgフラグの終了表現を返す?
String#searchだったらあてはまった位置または-1
を返すんだから返すものは数値だけでしょ。
gフラグは複数回あてはまりを許すというだけで
終了とは関係ないと思うが。
つまりあんたの言ってることはここの常連には
キチガイが文章書いてるようにしか見えないんだよ。
if( [ b, c, d, e ].every( function( x ){ return a == x } ) ){ alert( '全部同じ' ) }
137 :
Name_Not_Found :2007/12/29(土) 23:28:36 ID:uqMKR9iI
Opera9.25ですが、 onkeypress で return false をしても<input>にfocusされ ている場合などに F12 などファンクションキーの動きが抑制できません。 抑制する方法はありますでしょうか? 宜しくお願い致します。 -------------- <script> window.onload = function(){ var input = document.createElement('input'); document.body.appendChild(input); input.onkeypress = document.onkeypress = function(){ return false; } } </script> --------------
139 :
Name_Not_Found :2007/12/29(土) 23:30:47 ID:gmVFM9HN
だが断る!
innerHTMLで文章を書き換える際にタグを入れたい場合はどうすればいいのですか?
入れればいいんじゃないかな
>>138 みたいな馬鹿が出てきたから言わなきゃならんな。
a == b && b == c
これは a == b が false なら、c は評価されない。
もっと分かりやすく言えば、
a == b && b == x.y.z
みたいな、事前チェックしないとエラーが出そうな x.y.z は評価されないということ。
しかし、[b, c].every(...)などのコードにすると、この抽象化ループ実行以前に、レシーバの配列の中身は全て評価されている。
つまり、まるで違うことをやっている。
>>143 の復習(普通に書けば変数評価さえされない)
js> a = 1
1
js> b = 2
2
js> c = 3
3
js> a == b && b == x.y.z
false
もしかしてIterator()を使えばできないか、という疑問。
JavaScript1.7以上(使った処理系は1.8)なので、まだ不案内な人もいるだろうから、まず、どういうものかを示す。
js> g = (indexAndValue for (indexAndValue in Iterator([b, c])))
[object Generator]
js> a == g.next()[1]//a == b
false
js> a == g.next()[1]// a == c
false
js> a == g.next()[1]// 終わっている
uncaught exception: [object StopIteration]
実際に未宣言の値でやってみる。
js> g = (indexAndValue for (indexAndValue in Iterator([b, x.y.z])))
[object Generator]
js> a == g.next()[1]
typein:9: ReferenceError: x is not defined
出来なかった。
146 :
Name_Not_Found :2007/12/30(日) 05:49:48 ID:G0BJl3/F
JavaScriptの基本はわかりましたが基本しかわかりません firstChild.nodeValueの使い方について詳しく載せてあるページを教えてください
tohoho
DOMというものについて詳しく とほほにはのってない
>>148 google検索すれば最初にでてくるだろ。
このスレにもリンクは載っている。
何様のつもりか知らないが偉そうに見ず知らずの他人に説明の労を求めるなよ、いつものボンクラ暇人が。
<span> ←ここがエレメント? あいうえお ←ここがテキスト?要素?子ノード?firstChild? </span>
>>151 HTML入門の最初の5ページくらいは読んでおけ。
凄いとは思うけど偉大とは思わんな
とほほのいいとこ=みやすい。もうらてき とほほのけってん=まちがいだらけ。ふるすぎる
だから間違ったことを見やすく教え込むから害悪なんだって。
ばかが培養されていく件
JavScriptなんてテポドン食らえばいいのに
ハ,,ハ ( ゚ω゚ ) お断りします / \ ((⊂ ) ノ\つ)) (_⌒ヽ ヽ ヘ } ε≡Ξ ノノ `J
JavascriptがなくなってもJScriptできのこれる
とほほを間違いだらけや古いと 批判する奴はたくさん出てきてるのに とほほを超える、正しいサイトを 誰一人作ろうとしないのは なんでなんだぜ?
洩れ達だって、あの分かりやすさは大したものだと思うよ。 それを超えるなんてすごく大変。でも内容は古いし有害。
技術のある人たちは仕様書で事足りるから。
95%がとほほファンという現実
仕様書って?まさか...
作っても完成するころには内容が古いって批判を受ける状態になっちゃうんだろ。
167 :
163 :2007/12/30(日) 14:00:26 ID:???
言語の仕様書や説明書ね。 まさか読んだことすらない訳?
だからとほほファンがとほほでできないことが一杯あると気づいて ここにやって来たら更生させると。
169 :
Name_Not_Found :2007/12/30(日) 14:09:58 ID:5hIXaDpA
>>167 説明書って何?いつのまにか付け加わってるけど。
170 :
163 :2007/12/30(日) 14:17:59 ID:???
仕様書の存在すら知らないでプログラミングやってるとかワロタwww さすが冬休み。つーかこの板で期待する俺が馬鹿だったな。
日本のjavascripterのほぼ全てがとほほで育ったという事実。
仕様と規格のちがいを冬休みの間に猛勉強したほうがいいな。
173 :
Name_Not_Found :2007/12/30(日) 14:45:03 ID:5hIXaDpA
だから説明書って何さ
とほほを本にすると説明書になるよ。
175 :
Name_Not_Found :2007/12/30(日) 15:11:37 ID:QWRhcNcL
document.onmouseoverと特定のaリンクに指定されているmouseoverが競合しないようにするにはどうすればいいですか?
とほほが見やすいかは主観の問題だが(俺は見づらくて仕方ない) 網羅的とか言ってる奴は正気なのか。 どう考えても足りなすぎなのに、余計なものはしっかり入ってるから困るんだろ。 古さは関係ない。時代を考慮しても駄目な部類。
177 :
Name_Not_Found :2007/12/30(日) 15:55:54 ID:QWRhcNcL
自己解決しました
とほほが「見づらくて仕方ない」という貴兄にぜひ伺いたい。 貴兄のセンスもあるとは思うが、見やすいものとは一体どの ようなものか、uriを提示してくれると小生の考え方も変わる かもしれない。小生は見やすくて仕方がない、と思うのだ。
>>178 176じゃないが
>とほほが見やすいかは主観の問題だが
180 :
Name_Not_Found :2007/12/30(日) 16:28:14 ID:Vcpbv65t
textareaの外側ではなく、内側の高さを調べること方法は何か無いでしょうか?
外側と内側って何だ
確かとほほの本があったな。ゲオでみたことある。
外側のサイズ調べて、枠のサイズ引けばいいんでねーの
でも
>>181
184 :
Name_Not_Found :2007/12/30(日) 17:44:44 ID:Vcpbv65t
┏━━━━━━━━━━━┓↑ ┃↑ ┃│外側の高さ ┃↓ 内側の高さ ┃│ ┗━━━━━━━━━━━┛↓
フォント(行)のサイズ * [textAreaElement].row で充分じゃないの
186 :
Name_Not_Found :2007/12/30(日) 18:06:24 ID:Vcpbv65t
>>183 枠の太さってCSSやJavaScriptで明示的に設定されていないときにも
取得できるんですっけ?
>>185 style.heightでrowsとは関係なく高さが設定されている場合
その方法だとまずいですね
offsetHeightとclientHeightの違いを調べろ
188 :
Name_Not_Found :2007/12/30(日) 18:32:18 ID:Vcpbv65t
>>186 >style.height
設定されていないテスト用テキストエリアオブジェクトを作って、差だけ求めとけ。
あと、IEなら、getClientRects()をテスト用テキストエリアオブジェクトの行数分回して加算できるし、
IEその他関係なく、沢山の行数のテスト用テキストエリアオブジェクトとレイアウトが変わらないような<pre><span/></pre>を作って測るとかな。
つうか、前スレでも<input type="text">で似たような質問があっただろ。
ちょいと質問。 カレンダー表示スクリプトにおいて、1月1日を01月01日と表示するために よりスマートな書き方はないでしょうか。 今はNewDateで取り出した日付を年月日でバラバラにして、 9月以前の場合は月日を一旦文字列に直して強制的に0をくっつけてます。 動くことは動くんで間違いないんですが、どうもあまりスマートじゃない・・・ function plus(){ date=today+""; month = mon+""; if (date.length ==1){date = "0" + date;} if (month.length ==1) { month = "0" + month; } } 行数も多いし・・・最初から01月01日と表示する方法はない・・・ですよね。 対象ブラウザはIE5以上、NN6以上、Gecko。
>>191 十分スマートだと思うが。
(JavaScript歴5年の者より)
String(value + 100).subString(1);
>>193 おしい、×subString ○substring
確かになぜ全部小文字なのかちょっと不統一な気もする。
>>191 まあ、IE5が1999年だから、これが使われているPCが1995年頃の非力な初期のノートだったりもするわけで、実行速度重視で神経質に書かざるをえないわな。
用意しとけよ。 var ds = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59"];
スマートに書くなら
>>193 、どーしても速度重視なら
>>196 で、
ifで枝分かれするコードの出る幕はないな。
それだ!
>>194 俺も教えてもらってはじめて知ったがsubstringで1単語だ。
J2SEのString.substringだったか
201 :
Name_Not_Found :2007/12/31(月) 21:23:59 ID:OyxOeKAF
JavaVMでアプレットを起動すると最下部に
Java Applet Window というメッセージが表示されます。
* MSのJavaVMなら、警告 アプレット ウインドウ
このステータスバーみたいなやつを消す方法ありませんか?
具体的に言うとYahooGamesの囲碁です。
http://games.yahoo.co.jp/games/login.html?game=Go SunのJavaVMで、画面の解像度を800×600にすると
この表示のせいで必要な部分が隠れてしまいます。
202 :
201 :2007/12/31(月) 21:24:30 ID:???
>>201 セキュリティ上の理由から出るものであり、絶対に消せない。
消せるような環境が存在したとしたら、すぐ世の中から抹殺される。
全面アプレットが作れたらブラウザの「そっくりさん」を作って
ユーザを騙しまくってクレジットカードのIDでも何でも盗み放題に
なるとは思わないかね。いや、アンタがショボくてそんなことは
到底できないとしても、金のためなら何でもやるスゴい奴はいるから。
204 :
Name_Not_Found :2007/12/31(月) 21:58:51 ID:OyxOeKAF
そうですか。JavaVMにかんしてはさっぱりなので知りませんでした。 ただのステータスバーみたいに感じたのですが絶対に消せないのですね。 わかりました。証明書とかは関係ないんですね。失礼しました。
というかこのスレでは Java は扱っていないんだが
そうか、JavaScriptで消せるかという質問だと思ったけど 全然そういうことじゃなかったのかも。
文字列のバイト数を返すメソッドの名前 何がいいだろうか
byteSize sizeInBytes しかしJavaScript内部では全部の文字が2バイトだよね。 SJISとかiso-2022-jpとかeuc-jpに変換した後のバイト数 だと、実際に変換しないと分からないというか。
>>208 sizeInBytes いいね。ありがとう
211 :
Name_Not_Found :2008/01/01(火) 23:39:31 ID:r0740eEi
フォルダ内のファイル数がわからない場合、ファイル数を取得する方法を教えてください。 例えば gazou__ 001.jpg │_ 002.jpg |_ 003.jpg このgazouフォルダの中の画像数を取得する といった感じです。
前も似たような質問あったような・・・ jsじゃディレクトリやファイル情報得るの無理だべ
ブラウザ上のJavascriptは無理。 WSH上のJScriptなんかならFileSsytemObjectのGetFolder()とFilesで取れるはず
>>212 やはり無理ですか
>>213 情報ありがとうございます。
やってみようと思います。
ありがとうございました。
ある要素divに div.style.height = '30px'; と設定して そのdivの div.offsetHeightを見ると 96px div.scrollHeight を見ると 93px になっていました。 スタイルに設定した高さよりもoffsetHeightなどが大きくなってしまうのは なぜでしょうか?
>>215 それはJavaScriptの質問ではなく、ブラウザの整形レイアウトの
仕組みの質問だな。CSSスレに逝けば?
すみません・・・ お正月用にJavascriptでおみくじ作ったんですが、 ケータイからは見れないと苦情が来ましたです どしたらいいのかしら
218 :
217 :2008/01/02(水) 00:38:31 ID:???
PC用では画像をクリックさせて、ランダムに 12種類のおみくじの結果ページを表示させてたんですが・・・ ケータイサイトではそれができないらしいです・・・
俺にJavaScriptが動く携帯をお年玉としてください。。
パケホの上限額が上がってもいいなら内蔵フルブラウザ使えばいいじゃない
222 :
Name_Not_Found :2008/01/02(水) 05:14:59 ID:w5VibIPF
>>218 おみくじのスクリプトの後に次のように記述すればOK!
<noscript>大凶です</noscript>
>>217 JavaScriptが動く携帯端末なら見られるのでは。
多くの端末はJavaScriptに対応していない。
てか携帯にわざわざんな事やらすなよ・・・
225 :
Name_Not_Found :2008/01/02(水) 23:58:27 ID:9ogp7txl
指定していた画像サイズ → 画像そのままのサイズ で表示する場合どのようにすればいいのでしょうか。 <a href="JavaScript:changeSize1()">原寸サイズ</A> <SCRIPT language="JavaScript"> <!-- function changeSize1() { document.img.width = ?; ←ここになにか入れれば原寸サイズの画像が表示される? document.img.height = ?; ← } //--> </SCRIPT> <IMG src="white.jpg" name="img" border="0" Width = "600" Height = "852">
>>225 new Image()で新規に画像オブジェクトを作り、srcプロパティを
設定して対象画像を設定する。その後onloadイベントを待って
widthとheightを参照すれば、本来のサイズが分かる。面倒でしょ。
だから画像を取り換えるのならimgタグに幅と高さを指定しない
方がいいんではないだろうか。
>>225 removeAttribute('width')とか。
>>226 その方法でやってみようと思います。
回答ありがとうございました。
ジャヴァスクリプトの世界は魔物だぜぇ・・・ こんなバグだらけの世界につきあってられんわ。
230 :
Name_Not_Found :2008/01/03(木) 08:34:23 ID:LEPEsyRc
ゲームのチャット画面みたいな文字が下から上へ流れていくテーブルを作りたいのですが、 ぐぐっても需要ないのかサンプルみつかりません。 <div id=line1>〜<div id=line30>まで作って HTTPRequestでデータ取得、<div id=line30>から最新データを追加していく みたいなのを一応考えてみたのですが、なんかしっくりきません・・・ なんかいい方法ないでしょうか?
HTMLで入力フォームをつくり、そこに数字を入力してボタンを押すと 別ページに入力した数字が表示される といったwebページを作っています。 フォームにidという名前をつけ、別ページにdocument.write("id=", id, "だよ"); と書いてもunderfindと表示されるだけでうまくいきません。 何が間違っているのかいまいち分からないのでご指摘お願いします。
>>231 何がというか、根本的に理解してないので
とりあえず入門サイトで順番に一通りやってきな。
>>230 divでボックスつくってoverflow
データ更新時にscrollTop = scrollHeightすればおk
いやそれだとだめじゃね・・・?
IEだと中途半端なところで止まるが hoge.scrollTop = hoge.scrollHeight; hoge.scrollTop = hoge.scrollHeight; と二行かけばなぜか上手くいくからおk
236 :
Name_Not_Found :2008/01/03(木) 09:33:00 ID:LEPEsyRc
ここまで全部俺。
width と height は必須属性だろ?
>>231 div じゃなくて ul のほうがマークアップ的にも適切だね。
ul.removeChild(ul.getElementsByTagName('li')[0]) してから
ul.appendChild(新しい li 要素) すればいいんじゃないかな
>>240 見りゃ分かんだろ。くだらねえこと聞くなボケ。
242 :
Name_Not_Found :2008/01/05(土) 15:06:55 ID:XPGIwXjB
var fs, a, ForAppending; ForAppending = 8; fs = new ActiveXObject("Scripting.FileSystemObject"); a = fs.OpenTextFile("D:\aaa\bbb\ccc\ddd.txt", ForAppending, true); a.WriteLine("Hello world!"); a.Close(); 「ファイルの名前または数が不正です(4行目、1文字目)」とエラーが出ます。 どこがおかしいのですか?下のvbsだと動きます。 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("D:\aaa\bbb\ccc\ddd.txt", 8, True) f.WriteLine "Hello world!" f.Close
MAS VBScript> Echo "D:\aaa\bbb\ccc\ddd.txt"
D:\aaa\bbb\ccc\ddd.txt
MAS VBScript> Echo """"
"
http://msdn2.microsoft.com/en-us/library/ms234766.aspx MAS JScript> Echo("D:\aaa\bbb\ccc\ddd.txt")
D:aabbcccddd.txt
MAS JScript> Echo("D:\vwx\byz\ccc\ddd.txt")
D:vwyzcccddd.txt
MAS JScript> Echo("qQ\bp")
qp
MAS JScript> Echo("\b".charCodeAt(0))
8
MAS JScript> Echo("qQ\u0008p")
qp
MAS JScript> Echo("\\")
\
関係ないが……。
MAS VBScript> Echo 11 \ 5
2
IE7って、cloneNodeでコピーしたとき、そこにセットされてたイベントまでそのまま持ってくるのね。 IE6やfox, operaはもっかい設置し直さないといけないのに。 イベントが二重に発動するから変だと思ったけど・・・ この挙動のおかげで、IE7を判別して場合分けしなきゃいけなくなった。
DOM2-Events的にはイベントリスナは複製されないのにな。 つーかバブリングするときはevent delegationしろとあれほど(r バブリングしないのはイベント属性に書いとけば確実に複製される。 迷う余地はない。
それだけ?
おうよ。
ながしまよ。
>>246 IE6と7の間にそんな違いあるかな?
サンプルコードください
253 :
Name_Not_Found :2008/01/09(水) 16:40:16 ID:Yx8msom2
JavaScriptでbackground-imageを設定するにはどうすればいいですか? background-colorの場合には以下のようにしてできましたが、imageについては できませんでした。 onClick="this.style.backgroundColor='blue';" アドバイスお願いします。
onClick="this.style.backgroundImage='url(hoge.jpg)';"
255 :
だいご :2008/01/09(水) 17:27:03 ID:3N03nkBM
Firefox2.0上のJavaScriptでマウスに関するイベントハンドラ(onclick,onmousemove等)以外のイベント発生時に 現在のマウスの座標(例えばscreenX)を取得することは可能でしょうか? 可能であれば是非ご教授願いたいのです。よろしくお願いいたします。
できません。
>>253 javascript 背景画像 の検索結果 約 457,000 件
少しは自分で調べる気はないのか
258 :
だいご :2008/01/09(水) 18:12:36 ID:3N03nkBM
>>256 IEでは可能でしたので、もしかしたらFirefoxでも出来るのでは?と相当WEB上を探しましたが
結局見つかりませんでした。やはり無理みたいですね。
ブラウザを×ボタンで閉じようとした時、onbeforeunloadイベントでevent.returnValue = "注意!!"として注意を促すことで
出来る限りシステムのログアウトをしてからブラウザを閉じさせようという狙いがありましたが
Firefoxでなにか良い手はないでしょうかね・・・。
ちなみにIEではページ遷移時毎回警告ウィンドウが開くのを防ぐために以下のようなことをやっています。
// マウスの位置がブラウザのドキュメント外
if(event.clientX < 0 || document.body.clientWidth < event.clientX ||
event.clientY < 0 || document.body.clientHeight < event.clientY)
{
event.returnValue = "ブラウザを閉じる前や当システム以外のページに移動する前に、必ずログアウトをおこなってください。" ;
}
ショートカットを使われたら終わりじゃんって感じですが、ちょっとした「×ボタンを押す癖」対応みたいなものなのでそれについてはここでは触れないでください(^^;
使用環境はIE6以上、Firefox2.0以上と限定されています。
なにか良い案はないでしょうか?
そんな糞設計するなよ… 万一ネットワークに障害が起きて、ログアウトできなくなったらどうするの?プロセス強制終了させる?
260 :
だいご :2008/01/09(水) 18:34:10 ID:3N03nkBM
>>259 たしかにくそ設計です(^^;自分の力量のなさを痛感しております。
今のところセッションのタイムアウトで自動ログアウトという仕様です(TT)
ちなみにC#でWEBアプリを開発しています。
JavaScriptでなくASP.NETのほうでも何か手がないかもっと突っ込んで調べて見ます。
・・・でもJavaScriptではなんとかならないですかね・・・。
IEで出来ていることがFirefoxで出来ないのは少し悔しい気もしますし。<-私だけか(笑
http の仕様上 一定時間過ぎたらログオフ扱いにするしかないと思う
IE6で困ってます。 td要素にimg要素をappendChild()したら閉じタグを吐いてくれなくて 画像が表示されなくて困ってます・・・。 td要素のinnerHTMLにテキストで'<img ほにゃらら />'を書き込んでも IEが勝手に修正して閉じタグを消しちゃいます。 どうすればいいでょうか?
263 :
だいご :2008/01/09(水) 18:56:44 ID:3N03nkBM
>>261 やっぱりそうですよね・・・。
今抱えている案件ではユーザー管理をしていて、
同名ユーザーで同システムに同時ログインは不可となっています。
ログイン時Globalクラスの変数にログインしたユーザー名をセットし、
ログアウトボタンクリック時に変数から削除しています。
この状態でブラウザの×ボタンを閉じられると、変数からユーザー名を削除する機会がないわけです。
ASP.NETのほうで何か手がないか、相当調べたのですがうまい方法が見つからず
JavaScriptにすがろうと思ったわけです。
識者のかた、ぜひお助けを・・・。
>>262 >>3 のテンプレの
> Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
> A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
> <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
が関係してるとか?tdは大丈夫なんだっけ?
>>263 サーバーサイドの設計が常軌を逸して糞すぎる。
セッションを一から勉強し直して、同名ユーザで再ログイン可能な実装にすべき。
もちろんセッションハイジャック等のセキュリティ上の課題も考慮して。
いずれにせよクライアントサイドでどうこうできる問題じゃない。
>>264 ありがとう。
原因は、
>>3 の
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。
でした・・・。
267 :
だいご :2008/01/09(水) 19:43:31 ID:3N03nkBM
>>265 出来ればそうしたいのですが、ちょっと難しいです。
同名ユーザーでログイン不可の状態は2通り考えられます。
1.実際にそのシステムにログインし、システムを使用中である場合。
2.ブラウザを×ボタンで閉じ、セッションにユーザー名が残っている場合。
2.の場合であれば、強制的にログイン可能としても問題ありませんが、
1.の場合は別のPC(ここではPC1)を使用して作業しているユーザーを押しのけてログインすることになってしまいます。(後勝ちになってしまう)
もちろんPC1で作業中だったユーザーは強制的にログアウトされます。これは理不尽なことです。
そんなわけで単純には「同名ユーザで再ログイン可能」とするわけにもいかないのです。
はい? 同名ユーザいて同時にログインするの? どちらにせよ板違いだよ
270 :
だいご :2008/01/09(水) 23:01:18 ID:qnmUy4Vl
>>268 各部署ごとにユーザー名を分けて使用します。
ですので同部署内では同名のユーザー名が使用されます。
これ以上は板違いになるのでやめときます。
>>258 に書いたように、IEで出来るようなことをFirefoxでもやりたいのです。
私には難しすぎて・・・。
onunloadじゃだめなのか
クッキー喰わせれば?
ログインしようとしたユーザのセッションが残ってる場合には確認を出すぐらいが妥当な気がする。 onunloadってページ遷移でも発生するんじゃなかったっけ?xボタン対応で使うのは難しいような。
274 :
だいご :2008/01/10(木) 13:24:24 ID:esj7jg2x
>>271 258 に書いたように、IEではonbeforeunloadを使用することで対応しています。
ブラウザが閉じられるタイミングでonunloadは発生しません。
>>272 クッキーを喰わせる。。。すみません、私にはそうすることによってどのような解決策があるのか
見当もつきません(^^;出来ればもう少しヒントを・・・。
>>273 通常のページ遷移時かどうかの切り分けは、window.eventのマウスの位置(clientX(Y)やdocument.body.clientWidth等)
から通常の遷移(リンククリックとか)であるかどうかを切り分けています。
この場合、IEでは×ボタンクリック以外(リロードや戻る等のクリック)でもonbeforeunloadが発生し
マウスがドキュメント上にないため通常の遷移でない、となってしまいますが
今回の案件ではリロードや戻る等のクリックも、できればさせたくないので
×ボタン同様の処理としてよい、としています。
ただ、Firefoxではマウス関連のイベント(onclick等)以外ではマウスの位置が取得できません。
そこが困りものなんです。
とりあえず現状では、ログインしようとしたユーザのセッションが残ってる場合には確認を出して
強制的にログイン可能としています。
ただ、こうすると本当にユーザーがログインしていて作業中の場合でも強制的にログインでき、
そうした場合作業中のユーザーを強制的にログアウトさせざるを得ないというのが難点です。
せっかくユーザー管理しているのですから、同じユーザーを複数人で使用するのはやめようよ!
と言いたい所ですが、ここで愚痴っても仕方ないですね・・・。
>とりあえず現状では、ログインしようとしたユーザのセッションが残ってる場合には確認を出して >強制的にログイン可能としています。 それは、確認じゃなくて警告でしょ。 あと、onbeforeunload はoperaでは実装されてないと思う。 まぁ、シェア的にはsafariにも負けてるらしいから、無視していいかも知れんが。
>>274 単にタイムアウトでのログアウト処理と、
タイム内で再ログインの不可を実装すればいいんでないの
277 :
Name_Not_Found :2008/01/10(木) 17:25:45 ID:GAgDCX2+
OperaでonkeypressでkeyCodeを取得すると "Home" と"$" が同じ36になってしまいます。 どちらを押されたかを判別にはどのようにしたらよいのでしょうか? (onkeydownではキーコードなので問題ないのですが) <input type="text" onkeypress="window.status=event.keyCode" />
278 :
Name_Not_Found :2008/01/10(木) 18:09:33 ID:OcTfstCD
onkeydownの方が先に起きるんだから onkeydownでどっちだったのか記憶すれば
279 :
だいご :2008/01/10(木) 18:26:26 ID:esj7jg2x
>>275 いいえ、確認です。警告ともいえますが(^^; そこで「強制ログインする」と選択した場合のみ
強制的にログインさせます。
この案件ではoperaはサポートしなくて良いです。
使用環境はIE6以上、Firefox2.0以上と限定されています。
>>276 それは実装済みですが、ブラウザの×ボタンで閉じられた場合のログイン名では、
セッションタイムアウトまで誰もログインできないことが問題なんです。
√ ̄ヽ--ヘ
/ ☆ ヽ
0く━=ニニ二>
//(●) (●) \
/ ヘ (__人__) | ■■ 自宅警備員へお知らせ! ■■
/ヽノ彡,,.. .|∪| /
/ 丿,, /\ヽノ/ゝ 丶 2008年1月11日午前6時(日本時間)より
(  ̄jヽ,/_l ヽ 「2ちゃんねる」が12時間にわたって停止
\ ____ ̄{。 _____ } します。自宅警備を強化し待機せよ。
ヽ、,,_, {---} }。 {---} j
【2ちゃんねる停止】 2ちゃんねるが12時間にわたって停止
http://mamono.2ch.net/test/read.cgi/newsplus/1199955812/
281 :
Name_Not_Found :2008/01/10(木) 18:35:00 ID:GAgDCX2+
>>278 ありがとうございます。確かにそうですね。
そうします。
でもonkeypressだけでできる方法があると楽なんですけど・・・。
Gecko 1.8.1なんですけど、テキストとして与えられたHTMLやXHTMLをパースして それに対してDOM操作を行うにはどうすればいいですか?
DOMParser
>>283 well-formedじゃないテキストを渡すとパースエラーを吐くので…
もちろんwell-formedじゃないのが悪いんですが、どうにかエラーを吐かせずに続けさせる方法はありませんか?
>>284 try-catchで捕捉してエラーがあるといってユーザに突っ返す。
Range#createContextualFragment() HTMLElement#innerHTML
ieのimgのonloadがバグバグ(キャッシュされている画像では発動しない、アニメGIFではループするたびに発動する)なのですが これをまとめて解決するライブラリはありませんか?
>>287 detachEvent()を使った処理を関数本体に一行追記するだけだろう。
290 :
Name_Not_Found :2008/01/11(金) 20:09:22 ID:5woHa3BD
以下のようなJSONPを返すAPIがあって、
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
callback({
"aaaaa1" : {"name" : "bbbbb1", "url" : "
http://www.eeeee1.com/ "},
"aaaaa2" : {"name" : "bbbbb2", "url" : "
http://www.eeeee2.com/ "},
"aaaaa3" : {"name" : "bbbbb3", "url" : "
http://www.eeeee3.com/ "}
});
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
読み取るHTMLのほうで、たとえば
function callback(res) {
alert(res.aaaaa1.name);
}
とすると、bbbbb1という値は出てくるのですが、これを一気に
<ul>
<li><a href="
http://www.eeeee1.com/ "></a>bbbbb1</li>
<li><a href="
http://www.eeeee2.com/ "></a>bbbbb2</li>
<li><a href="
http://www.eeeee3.com/ "></a>bbbbb3</li>
</ul>
にするために、
for (r in res) {}と書いて、r.nameやr.urlで取り出そうととしても出来ません。
どうやら、rにはaaaaa1やaaaaa2が入ってしまうようで。
どういうコードにすればいいでしょうか?
res[r].name res[r].url でどうだい
>>290 JavaScriptのfor inはeachと違うから。勉強不足。
>>289 それだと画像を入れ替えたときにonloadが動かないじゃないですか
294 :
Name_Not_Found :2008/01/11(金) 21:48:47 ID:5woHa3BD
for each (r in res) {}で、r.nameやr.urlとして取り出せました!! こんな構文あったんですね!!JavaScript 1.6で導入されたようで。 自分がもってるリファレンス本は古くて、書いてありませんでした。 新しい本買おうっと。 どうもありがとうございました。
>>293 画像を入れ替える時に毎回一緒にonloadハンドラをつけるべし。
なお、正確にはonloadハンドラをつけてからsrcを指定する。
>>295 それが面倒だからライブラリないかって聞いてるんだよ
その程度が面倒なら向いてない気がするな。まあ、 希望のものが見つかるといいね。
コードを示した方が近道だろうな。もうすっかり丸投げ臭満開なんで相手にする気にもならんが。
>>289 キャッシュされてる画像に云々はどう解決すればいいんだ?
キャッシュされててもonloadはちゃんと上がるでしょ。でなかったら そんなイベント役に立たないもんね。
302 :
Name_Not_Found :2008/01/13(日) 02:54:42 ID:LMunSfri
formの要素の順番を入れ替えたいと思い、下記のようなテストのコードを書いたのですが、
以下のコードですとsubmit時にtest2が送信出来ていません。
見た目の入れ替えはしっかり出来ているので良いのですが、肝心の値が送れなくて困っています。
何故こうなるのかや、対処法をご存知の方がおられましたらご教示ください。
よろしくおねがいします。
追伸
改行が多すぎると怒られたのでアップローダーにあげました。
http://kossie.net/up/src/kos1886.html
>>302 $('tr2')がフォームの外に出ちゃったのかよ!
>>302 要素の包含関係がおかしい。HTML基礎勉強。
>>303-304 いただいた助言を元にトライしてみたところ、うまく行くようになりました。
ありがとうざいました。
306 :
Name_Not_Found :2008/01/13(日) 08:30:42 ID:FK/DvCxn
F1キーを無効にするにはどうすればいいでしょうか? >window.document.onkeydown = function(){ > if(event.keyCode != 112) > return true; > event.keyCode = 0; > return false; >} 通常のキー(a,b,c)は無効化できましたが、F1など、IE側で 設定されている?キーについてはそのまま通ってしまいます。 何方か、アドバイスお願いします。
308 :
Name_Not_Found :2008/01/13(日) 16:02:08 ID:GbGAEqGV
ある検索サイトにて、以下のように文字列が変換されました. あ ⇒ %A4%A2 い ⇒ %A4%A4 JavaScriptで例のように文字列を変換するにはどうすればいいのでしょうか. もし、JavaScriptでは実現できないのであれば、お手数をおかけしますが、 他の手段を示していただければ、と思います。 よろしくお願いします。
310 :
Name_Not_Found :2008/01/13(日) 17:54:37 ID:fDVplYbt
>>309 お早いアドバイスありがとうございます!
ライブラリを利用してみたところ、無事変換されました。
311 :
Name_Not_Found :2008/01/13(日) 19:42:57 ID:bqcViDBj
regexp.compile はperlのstudyの様に高速化させる効果があるということですが、 これは、本当に効果がありますか? 何か差がはっきりと出ている例は無いでしょうか。
自分で試せばいいじゃない
____ / \ / ⌒ ⌒\ / ( ●) (●) \ ・・・・・ | ,ノ(、_, )ヽ | \ -=ニ=- / ノ \ ____ / \ / ⌒ ⌒ \ / (●) (●) \ ん? | ,ノ(、_, )ヽ | \ -=ニ=- / ノ \
314 :
Name_Not_Found :2008/01/14(月) 19:23:52 ID:EWmOSahe
JavaScriptで、クリックした時のように<select>を開く(プルダウンメニューを開く)には どのようにしたらよいのでしょうか? IE、可能であればFirefox, Operaでもできると便利なのですが。
____ / \ / ⌒ ⌒ \ / (●) (●) \ 日本語喋れバーカ | ,ノ(、_, )ヽ | \ -=ニ=- / ノ \
まともな回答者まだかよ
そろそろ冬休みも終わるだろ
間違ってます。これはひどい。
>>318 期待している動作なのかわからないけど、こういうこと?
/* まずオブジェクトを作成する */
function Point( x, y ){
this.x = x;
this.y = y;
return this;
}
/* メソッドを追加 */
Point.prototype.move = function( x,y ){
this.x += x;
this.y += y;
}
var p = new Point( 50, 50 );
p.move( 10, 10 );
document.write( p.x ); // 「50+10」で「60」が表示される。
コンストラクタでreturn this;する奴って何がしたいんだろうか
>>321 > for(var i=0;i>3;i++)
> for(var j=0;j>3;j++)
> for(var k=0;k>3;k++)
ちょww
>>322 見てすぐにコンストラクタだって事が分かるからじゃないの。
自分もやらんけど。
>>323 目を疑った
・・・もしかして俺ら釣られてるんじゃね?
>>326 意味が分からん
メソッドがthisを返せばチェーンになるだろうが
コンストラクタがthisを返すことに何の意味がある?
だからメソッドにも使えるようにだって書いてんだろ読めや
329 :
Name_Not_Found :2008/01/15(火) 20:58:59 ID:7poEA2VE
(言葉が足りないと思いますが、コンストラクタと書いてあるので) new で作成した場合には return this してもしなくても入る値は同じ になりますので意味は無いですけど、newで使わないことも有り得るの で意味が有るか無いかは場合によりけりじゃないですか? Javaとかから入った人は嫌いな使い方かもしれませんけど。
単に new 書き忘れても (省略しても) いいようにじゃねーの? function hoge(){ this.hage = "はげ"; return this; } alert(new hoge().hage); alert(hoge().hage);
「newで使わない」なら関数として実行されることを考慮しなければならない コンストラクタをメソッドとして実行するケースは所謂継承時のapply/call時くらいで その場合でもsuperがthisを返す必要はまずない 場合によりけりと言うが、必要な場合とはどういうケースなんだ?
333 :
Name_Not_Found :2008/01/15(火) 21:29:00 ID:0cR1iErH
質問させてください
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
上記のUAで、W3Cのslidy.jsを利用しています(cssは自前の物のみ)
http://www.w3.org/Talks/Tools/Slidy/# (1)
http://www.w3.org/Talks/Tools/Slidy/slidy.js この状況で、異なる<div class="slide">...</div>ブロック内にある要素(たとえばp)に対して、
以下のようなCSSで通し番号をつけたいのですが、何故かスライドが変わると番号が1にリセットされてしまいます
body{ counter-reset: num 0; }
p:before{ content: counter(num); counter-increment: num 1; }
slidy.jsを使わなければどんな親要素を跨いでも通し番号になるので、
slidy.jsが勝手にclass="slide"にcounter-resetを指定しているのかと思ったのですが、
修正すべき該当箇所が分かりませんでした
どなたかお分かりになりましたらお教えください
334 :
Name_Not_Found :2008/01/15(火) 21:32:55 ID:7poEA2VE
>> 331 こんなとかをcallなどでとか、とか、とか。 var o = jpn(eng(china(text( 有り無しではなく、有り得る可能性があるからその人に意味を聞いてみないと。 まあ普通の人ならコメント書いてると思うけど。 あとcall,applyは継承以外にも使える便利ものですよ。 thisを変更したい場合なんて沢山あるし。ただ自分はうっかりミスが怖いのであまりこの方法は使いませんけど。
>>331 VB畑の誰かがreturn thisしたら、コピペ人間が真似をして広まった。
と、かなり昔の過去スレにあったような。
>>332 display:noneで消したブロックはカウントされないんじゃない?
336 :
335 :2008/01/15(火) 21:58:39 ID:???
337 :
Name_Not_Found :2008/01/15(火) 22:12:34 ID:LPFvLhS5
文字列を変数として扱うことって出来ますか?
連想配列でググレ
designMode(contenteditable)についての質問です。 IE6でdesignModeのドキュメント内で改行(EnterKey押下)を行うと <br>ではなく、既存行を<p></p>で囲ってしまいます。 Firefoxでは<br>が一つ挿入されるので IEでも<br>で統一したいのですが、いい方法は無いでしょうか? <div id="edit" contenteditable></div> <input type="button" value="showsrc" onclick="alert(document.getElementById('edit').innerHTML)">
340 :
333 :2008/01/15(火) 23:08:02 ID:0cR1iErH
>>335 ,336
ありがとうございます、仰る通り、
function hideSlide(slide){ slide.style.visibility = "hidden"; slide.style.display = "none"; }
とあったので、後半をコメントアウトしてみたところ通し番号になりました
ただ、それによって今度はPageUpキーで前頁に戻ると、先の頁でclass="incremental"
と指定されていた要素が表示されたままになり、文字が被ってしまいます
この問題は二律背反なのでしょうか…
>>334 >あとcall,applyは継承以外にも使える便利ものですよ。
この文章からは断定できないが、もしかして、継承を実装するコードに出現することがよくあるからといって、callやapplyによるまとめ書き部分を、継承を実装する部分そのものだと勘違いしてないか?
もしそのような思い込みがあるなら、それは間違いだ。
具体的に継承を実装する方法は、prototypeプロパティや__proto__プロパティを書き換えて(乗っ取って)、プロトタイプチェーンを繋げる事であり、これ(ら)の他に方法はない。
質問させてください 文字を一回すべて表示したあとに、また逆からすべての文字を表示させるには どうすればいいのでしょうか 下のようにforループを2回つけたのですが動作しませんでした <html> <body> <script type="text/javascript"> var mycars = new Array(); mycars[0] = "nissan"; mycars[1] = "toyota"; mycars[2] = "honda"; for (i=0;i<mycars.length;i++) { document.write(mycars[i] + "<br />"); } for (i=2;i=0;i--) { document.write(mycars[i] + "<br />"); } </script> </body> </html>
>for (i=2;i=0;i--)
>>343 簡単なミスでした
ありがとうございました
var arr = new Array(6); arr[0] = "1"; arr[1] = "3"; arr[2] = "70"; arr[3] = "55"; arr[4] = "200"; arr[5] = "9"; 上のように定められた値を足していき 合計を出すにはどのようなプログラムをくめばいいでしょうか +を使うとarr[0]とarr[1]の結果が13になってしまいます どなたか御教授ください
arr[0]-0 + arr[1]
>>345 ダブルクォートに囲まれてるから文字列として判断される
数値に変えてあげればよい
>>346 document.write(arr[0]-0 + arr[1]);
とタイプしましたが結果は変わりませんでした
やりかたがいけないのでしょうか?
>>347 ようやくできました
本当にありがとうございました
いまさらJavascriptと小馬鹿にしてたが cssでブロック要素の高さを揃えくれるJSには感心した おまいら意外と出来る子だったんだな
それはおまいができn(ry
知らないにも限度があるだろ。もっと知れば感心から感動にかわr
E4XとDOMとの対応関係を考えてみたんだが、 e.*[0] // e.firstChild e.*[e.*.length() - 1] // e.lastChild e.parent().*[e.childIndex() - 1] // e.previousSibling e.parent().*[e.childIndex() + 1] // e.nextSibling 冗長な気がするんだけど他にやり方ある?
同じIE7を使用していても、execCommandが動かない環境があります。 javascript:document.execCommand('saveAs',false,'a.htm');eval() saveAs以外にCopyも動きません。 関連付けを弄ったりした後に発生したので、レジストリが関係していると思っているのですが、 何が原因か判らないでしょうか?
セキュリティ設定変えたんじゃないの。
変えてはいないです。リセットしたり設定を下げても同じなので謎です。 VMware+IE6で色々試していますが、今の所再現できていません。IE7も試してみます。
357 :
354 :2008/01/17(木) 01:51:12 ID:???
原因判明しました。 フォルダオプションから、HTML、HTMを削除すると動作しなくなる様子。 IE6では消しても問題ない。 中途半端に復元しても駄目。 以下のキーがあれば動作 なければ動作しない様子 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.htm] "PerceivedType"="text"
■質問です。 イベントハンドラにユーザー定義関数を指定するとき 「window.onload = dispAlert」のように引数をつけないようにするものだと 思っていたのですが、以下のように引数を指定してやると IE6 WinXP sp2 FF2.0 WinXP sp2 のどちらでも動作しました。 引数指定するソースをみたことがないのですが、 これは問題ないのでしょうか? ===================================== window.onload = dispAlert("あいうえお"); function dispAlert(val){ alert(val); }
>>358 document.onclickに変えて試してみな。
どういう問題が出るかすぐにわかるから。
>>358 「いつ」それが実行されてると思う?同じ方法で適当な要素の
onmousedownハンドラをつけてみなよ。
361 :
358 :2008/01/17(木) 17:39:29 ID:???
>>359 ありがとうございます。試してみました。
onclickにしても、onmousedownにしてもページ読み込みをした時点で
イベントが起きたことになってalertが呼び出されてしまいますね。
>>360 ID指定したDIV要素にも試してみましたが、同じ結果でした。
「いつ」というのは、ページの表示直後ということですか?
では、358のコードのように引数を指定したいときは、
予め変数(textArg)に値を格納しておくしかないでしょうか?
=================================================
textArg = "あいうえお";
document.onclick = dispAlert;
function dispAlert(){
alert(textArg);
}
>>361 > イベントが起きたことになってalertが呼び出されてしまいますね。
起きてもいないし、起きたことにもなっていないよ。
> 「いつ」というのは、ページの表示直後ということですか?
読み込んでる途中。
> 予め変数(textArg)に値を格納しておくしかないでしょうか?
まあどこかに保持しておく必要あり。
363 :
358 :2008/01/17(木) 23:29:06 ID:???
>>361 document.onclick = function() {
dispAlert("あいうえお");
};
365 :
Name_Not_Found :2008/01/18(金) 11:28:56 ID:b9s2kjel
★質問させて頂きます。 現在カンマ区切りのデータベースを作成して、以下の記述でHTMLファイルに反映させています。 <PARAM NAME="DataURL" VALUE="report.txt"> 複数のデータベースがあり(report1.txt、report2.txt ...)、反映させたいデータベースのファイル名を「report.txt」に変更する方法で対応しています。 データベースの数だけHTMLファイルを作成する事も考えたのですが、1つのファイルから表示させるデータベースを選択して表示する事、 (例としまして、変更前:report1.txtの内容表示 → 変更後:report2.txtの内容表示)は可能でしょうか? 上記の問題を解決する方法をご存知の方いらっしゃいましたら、よろしくご教示願います。 参考ページだけでも構いませんので、お力添え頂きたく存じます。
367 :
365 :2008/01/18(金) 15:48:40 ID:b9s2kjel
>>366 ご紹介ありがとうございます。
ソースとにらめっこして構築に励みます。
369 :
365 :2008/01/18(金) 18:17:55 ID:b9s2kjel
>>366 お陰さまで出来上がりました。
思い通りに動いたときはガッツポーズで、小躍りしたい心境でした。
>>368 こちらも参考になりそうですね。英文に負けずに読んでみます。
お二方、どうもありがとうございました。
>>369 ガッツポーズで、小躍りしてるところをようつべにうp!
371 :
Name_Not_Found :2008/01/19(土) 22:39:33 ID:BFOZM2mq
WinXP Home SP2、IE6 SP2、McAfeeインターネットセキュリティスイート使ってます。 PCに保存したHTMLファイルのエリアが「マイコンピュータ」ではなく 「制限付きサイト」となってしまいます。 その中に書いたJavaScriptも動かなくて困っているのですが、 何が原因と思われるでしょうか?
「制限付きサイト」から保存したから
なら「制限付きサイト」から外せば
374 :
371 :2008/01/20(日) 01:52:39 ID:VMy+nY7P
>>372 テキストエディタで新しいファイルで保存しなおしたら動きました。
ありがとうございます。
でも制限付きを保存したとかこの情報ってどこで持っているのでしょうか?
メールの添付ファイルを保存したものだったのですけど…
NTFS ADS でググってスレ違い
376 :
371 :2008/01/20(日) 01:56:29 ID:VMy+nY7P
>>373 ローカルに保存したファイルを制限付きサイトから除外できるのでしょうか?
指定できるのはURLだけだと思ってましたが
377 :
371 :2008/01/20(日) 01:57:13 ID:VMy+nY7P
>>374 拡張子を.txtに変えてプロパティを表示すると一番下のところで解除できる
379 :
Name_Not_Found :2008/01/21(月) 01:26:55 ID:CeO4fkdY
サブウインドウの内容を書き換えようとしています。 var win = window.open("file.html"); var body = win.document.body; 〜中略〜 body.appendChild(tags); とすると、インターフェイスがサポートされていませんとでます。 子ウインドウの内容を書き換えることはできないのでしょうか?
381 :
379 :2008/01/21(月) 11:38:51 ID:w9y+K3qp
>>380 tagsの内容は同じウインドウ内でうまく動いているのでたぶん大丈夫です。
試しに先ほど〜省略〜としていたところを
var tags = document.createElement("div");
としてみましたがだめでした。
なので原因は違うと思うのですが…
>>379-382 自分のドキュメント側で作ったものを別の窓のドキュメントに
差し込むのはだめね。向う側のドキュメントのcreateElementを
使うか文字列(innerHTML)を使う。あと、window.open()した後
「一瞬待って」からやらないとMozで動作しなかった。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var win = window.open('about:blank');
var elt = win.document.createElement('h1');
setTimeout(function() {
win.document.body.appendChild(elt);
elt.innerHTML = '<h1>test</h1>'; }, 0);
}
</script>
</head><body>
<div><button onclick="test()">Test</button></div>
</body></html>
384 :
379 :2008/01/21(月) 13:59:26 ID:w9y+K3qp
>>382 関係ないと思ったので一部省略してましたが、省略していた部分に原因があり結果として小出しになってしまいました…失礼しました。
>>383 ご指摘の通りdocument.createElementにウインドウオブジェクトが無いのが問題でした。
また、ご丁寧にMozillaの解説もありがとうございました。
メディアファイルを埋め込むスクリプト作ってるけど、IEの場合 var params = [ ["enablejavascript","true"], ["height","16"], ["width","256"], ["src","movie.mov"], ["volume","100"], ["autoplay","true"], ["loop","false"], ] var div = document.createElement('div'); var object = document.createElement('object'); div.appendChild(object); object.id = 'media'; object.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"; (略) for(var i=0; i<params.length; i++) { var = document.createElement('param'); param.setAttribute('name', params[i][0]); param.setAttribute('value', params[i][1]); object.appendChild(param); } みたいな操作ってできないのかな? alert(div.innerHTML);で、書き出してみると、Mozillaだとちゃんと展開されていたようだけど、IEだとエラーすらでない。 IEは、DOM操作だけでメディアファイルを埋め込む事って無理なのかな?
createElement()の引数をIE風に書かない限りは無理です。
Firefox 2.0.0.*なんですが、 ISO8601をパースするにはそこらへんに転がってるライブラリ使わないとできませんか?
まあ、そのとおり。
ISO 8601の全形式をパースするとかならともかく YYYY-MM-DDThh:mm:ssTZだけとかなら 正規表現使ってちゃちゃっとできるんじゃないの
正規表現文字列の中にいくつのパターンがあるか簡単に数える方法はありますか? たとえばこういう AB(a(bc(def)|([[\]()+?|^$.*]\(gh(ijkl)\)m)nop)qr)CD 複雑な文字列の中にパターンがいくつ含まれているかを調べたいんですが。 前から順番に 1文字ずつ、"(" と ")" の対応を調べていくしかないですか?
「パターン」というのが何をさすのかよくわからないんだけど キャプチャ用括弧の数を数えるんならそれこそ正規表現の出番ですよ。 \と[]の扱いに気をつければ何とかなるでしょ。
[0-9][0-9] で 10*10=100 パターンだよねってのを知りたいんでしょ + が入ってる時点でどうにもならんと思うが
[abc][012] なら9パターンとかそういう風に展開するってこと?
被ったすまん
395 :
390 :2008/01/22(火) 22:31:40 ID:???
みなさん申し訳ないです。 パターンの意味がわかってなかったようです。 後方参照できるようになる「丸括弧開く」と「丸括弧閉じる」 の対がいくつあるのかを簡単に数える方法が知りたかったんです。
396 :
Name_Not_Found :2008/01/22(火) 22:43:00 ID:zmwMQRyo
それって普通に数えれば良いじゃんw
.*
ムズカッタ
<input type="text">で onkeyupかonkeydownでEnterキーの押下を検出して入力値を確定する、 ということをしたいのですが IMEの漢字変換の確定時のEnterキーの押下にも反応してしまいます。 どうやって見分けたらいいですか?
onkeypress
var Weapon = new Array(2120); Weapon[10]=new Array("テスト武器","500"); Weapon[20]=new Array("テスト武器2","500"); function Load () { var OpValue; OpValue == 0; for (i = 0; i < 2120; i++) { if (typeof(Weapon[i][0]) != "undefined") { document.PC.Weapon.options[OpValue] = new Option("Weapon[i][0]",Weapon[i][1]); OpValue = OpValue + 1; } } } ゲームの攻略サイトで、装備を選択し、能力値を計算するものを作ろうとしています。 まず上部のように配列を大量に用意し、都合のいい配列にだけ武器のデータを入れてます。 その後、LoadでHTML内のセレクトボックスに武器の名前を読み込みたいたいのですが 名前データのない配列をスキップしようと、if (typeof(Weapon[i][0]) != "undefined")を使った ところ、ここでエラーが出ているようです。何故でしょうか?
>OpValue == 0; OpValue = 0; >if (typeof(Weapon[i][0]) != "undefined") { if (typeof(Weapon[i]) != "undefined" && typeof(Weapon[i][0]) != "undefined") {
>"Weapon[i][0]" Weapon[i][0] ちょっと間違えすぎだろ。
404 :
401 :2008/01/23(水) 19:59:57 ID:???
指摘された所を直したら動き出しました。 ありがとうございます。 >if (typeof(Weapon[i][0]) != "undefined") { これだけではやっぱり動かないようです。理由が良く分からないのですが なぜダメだったのですか?
405 :
Name_Not_Found :2008/01/23(水) 20:20:17 ID:vj7CG7MC
if(Weapon[i]) だけじゃだめ? 初心者なんでちょっと聞いてみたい
>>405 var Weapon = new Array(2120)
これでWeaponはWeapon[0]〜Weapon[2119]すべて初期値undefined
の配列となっている。
Weapon[10]=new Array("テスト武器","500");
Weapon[20]=new Array("テスト武器2","500");
これでWeapon[10]とWeapon[20]だけは配列が入っているので
Weapon[10][0]等が可能となっているが、残りはundefinedのまま。
Weapon[i]は10と20以外undefinedだから添字アクセスしたらエラー。
408 :
Name_Not_Found :2008/01/23(水) 20:42:31 ID:vj7CG7MC
>>406 undefinedかどうか調べてるのだからエラーにはならなくないですか?
>>408 どう見てもアンカーミスだろ常識的に考えて。
ワロタ
411 :
Name_Not_Found :2008/01/23(水) 21:45:01 ID:vj7CG7MC
ん〜よく分からん・・・。
押されたボタンの位置にdivのレイヤーを表示させたいんですが、 割と複雑に組まれたHTMLだと、ボタンの位置が取得できません。 offsetTopなどで取得するんだと思うんですが、確実に座標を取得する方法はないんでしょうか。
>>412 地道に作るしかないと思うけどな。Mozで試しただけ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var elt = document.getElementById('d0'), x = getx(elt,0), y = gety(elt,0);
var d = document.createElement('div');
d.style.position = 'absolute'; d.style.backgroundColor = 'green';
d.style.left = x + 'px'; d.style.top = y + 'px';
d.style.width = d.style.height = '100px'; document.body.appendChild(d);
}
function getx(elt, d) {
return elt === document.body ? d : getx(elt.parentNode, d+elt.offsetLeft-2);
}
function gety(elt, d) {
return elt === document.body ? d : gety(elt.parentNode, d+elt.offsetTop-2);
}
</script>
</head><body>
<div style="padding:2cm"><table border="2" summary="test"><tbody>
<tr><td>X</td><td><div><button id="d0" onclick="test()">Test</button></div>
</td></tr></tbody></table></div></body></html>
たとえば body {padding: 100em;} としてスクロールバーを出しただけで緑の方形がとんでもない位置に飛ぶな。
elt.offsetParent
418 :
Name_Not_Found :2008/01/24(木) 20:37:25 ID:RIrg/AQJ
GoogleMapsAIPです toggleGroupの部分ってこれで間違いないですか? チェックボックスまで出るんですが、チェックを弄るとエラーになります <input type="checkbox" id="Checkbox" onclick="toggleGroup('')" CHECKED /> function toggleGroup(type) { if (marker.isHidden()) { marker1.show(); marker2.show(); marker3.show(); } else { marker1.hide(); marker2.hide(); marker3.hide(); } } マーカーの配置までは問題なく終わっています
ちょっと追記 <input type="checkbox" id="Checkbox" onclick="toggleGroup('')" CHECKED /> <script> function toggleGroup(type) { if (marker.isHidden()) { marker1.show(); marker2.show(); marker3.show(); } else { marker1.hide(); marker2.hide(); marker3.hide(); } } </script>
420 :
Name_Not_Found :2008/01/24(木) 21:44:31 ID:ZmLQVxG6
DOMに関して初心者的な質問です。 createElementでエレメンツを作成することが可能ですが、 逆に指定したエレメンツを削除することが出来る関数はありますか? Internet Explorer,Safari,Firefoxの3ブラウザどれでも動作する関数でお願いしますm(_ _)m
親要素のremoveChild()がレコメンツ
elm ←削除したいノード elm.parentNode.removeChild(elm);
423 :
Name_Not_Found :2008/01/25(金) 14:18:32 ID:NUeIo6Jk
質問させて頂きます。 「Table Data Control」オブジェクトの機能を使ってデータベースを抽出したいのですが、持っている参考書ではオプションメニューから完全一致の検索しか載っておりません。テキスト領域に文字列を入力し、その文字を「含む」条件の抽出を行いたいのです。 参考書の絞り込み条件は list.FilterCriterion = "="; となっています。 どの様に書き換えれば「含む」検索ができるのでしょうか? 御存じの方いらっしゃいましたら、宜しくご教示下さいませ。
425 :
420 :2008/01/25(金) 17:41:18 ID:???
<html> <head> <title></title> <script type="text/javascript"> <!-- function check(f){ Val add = f.email.value; num = add.indexOf("@"); if(num >= 0){ return true; } else{ alert("メールアドレスが正しくありません。"); return false; } } //--> </script> </head> <body> <p>配信を希望するメールアドレスを入力してください。</p> <form action="test.html" name="Form1" onsubmit="return check(this)"> <input type="text" name="email"><input type="submit" value="登録"> </form> </body> </html> やりたいことはメールアドレス入力欄に@が入ってるかどうかで表示をわけるという 動作をしたいんですが上記のコードでうまく判別することができません。 どこを修正すればよろしいでしょうか。
>>426 まず質問だけど、エラーが出ていたりしないだろうね(笑)。
JavaScriptエラーが出ているうちは期待する動作なんて無理ぽ。
エラーが取れないなら何行目でどういうエラーが出ているか書く(w
それができないならあきらめる(w(w
428 :
426 :2008/01/25(金) 19:21:05 ID:???
TeraPadでつくっているのでエラー表示とか出ないんですよ。。
君のサイトは TeraPad で表示するのかい?
そして君の動作確認はTeraPadでやるのかい? そしたらフォームが動作しないのは当り前だね。 マジレスすると、ブラウザでページ表示させたとき 黄色い三角とか出るだろ。それをクリックするとJavaScript エラーの内容が表示される。そんなのも知らずに制作すんな!
今からデバッグの方法を覚えるなら Firefox でデバッグするようにした方がいいかと 自分は IE のエラー見てだいたい把握できるようになったけど Firefox 使ってる人より非効率なんだろうなと思う
>>430 IEじゃデバッグできんだろ
Safariの隠し機能のJavascript Consoleが最強
★準備(Macの場合)
Safari Standをインストールしておく
Safari Standで"Debugメニューを表示"にチェックするとDebugメニューが表示されるようになる
★準備(Winの場合)
C:¥Documents and Settings¥USERNAME¥Application Data¥Apple Computer¥Safari¥Preferences.plist を適当なエディタで開く
<dict>の子要素 最後尾(</dict>の直前)に
<key>IncludeDebugMenu</key>
<true/>
を追加して保存する
Safari を再起動する
★使い方
Debugメニュー>Log Javascript Exceptionsにチェック
Debugメニュー>Show Javascript Consoleをクリック
ttp://upload.jpn.ph/img/u08823.gif ↑のような感じでメニューボタンをクリックしたら横から該当ページが飛び出してくるのを
やりたいんですが、このような演出の方法について解説しているサイトはありませんか?
LightwindowやらGrayboxやらで出来る気はするんですが
・ページが出ていてもメニューを押せるようにする(デフォルトだと他の場所はクリックできない)
・特定のフレーム内で出現させる(デフォルトだとブラウザのウィンドウ全体を使ってしまう)
この2つの問題の解決法が分からずです…
上の画像の場合のように、出現させるのは特定の(右の)フレーム内のみ
ページが出た後でも左のメニューはクリックできるようにするという条件を満たすものなら何でも
欲を言えばページの出現が横から出るのではなく
右のフレームの中心から広がっていくようなものが出来れば最高なのですが;
>>434 >特定のフレーム内で出現させる(デフォルトだとブラウザのウィンドウ全体を使ってしまう)
HTMLで左右フレーム分けしたいってことかな…
なら右側に使うページのonLoadに内容が右から出てくる関数割り当てたらどうだろか
左側フレームはJavascriptじゃなくて単なるリンクでおk
右側ページのサンプル(未テスト。バグあったらスマソ) ・HTMLファイル(抜粋) <body onLoad="OpenRightFlame()"> <iframe id="mainframe" height="100%"></iframe> ・CSSファイル #mainframe{ position:absolute; top:0px; right:0px; } ・Javascriptファイル function OpenRightFlame(){ i=0; myIntervalID=setInterval("FlameWidthChange()",100); } function FlameWidthChange(){ document.getElementById('mainframe').style="width:"+i+"%"; i++; if(i==100) clearInterval(myIntervalID); }
437 :
434 :2008/01/26(土) 00:11:35 ID:???
おお!早速試してみます!!
そういやトランジションなんてのがあった気がするな
>>433 デバッガが起動中に落ちた後 IE6 が応答なしになる
×で閉じるとこんなウィンドウが出る
なにか分からないですか?
Just-In-Time Debugging
An exception 'Runtime Erorr' has occured in Script.
However, no debuggers are registred than can debug this exception. Unable to JIT debug.
スクリプトデバッガは糞。デバッガは出さずに IE6のエラーだけ貼って。
IEを捨ててFFxでエラーを見ろ。
いやFFX-2で
443 :
Name_Not_Found :2008/01/26(土) 18:53:29 ID:9OcEo5EA
すいません。ちょっと、教えて下さい。テキストボックス内の日本語変 換が終わった時にある関数を呼び出したいのですが、「日本語変換が終 わった時」はどのように判別すれば良いのでしょうか? <body onkeydown〜>でevent.keyCodeが13(ENTERキーのキーコード)に なる時で判別しようとしたのですが、日本語入力している際は 日本語入力時も 日本語変換中(スペース入力時)も 日本語確定時(Enterキー入力時)も 全て、event.keyCodeは229になっているのです。どうすれば、「日 本語変換が終わった時」を判別することが出来るのでしょうか? 教えて下さい。宜しくお願い致します。
>>443 Safari,Firefox用。IEでは動かない
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
//Safari向け
var _timeout;
var MojiSu=0;
function _focus() {
if(navigator.userAgent.indexOf("AppleWebKit",0) != -1){
if(document.test.txt.value.length>MojiSu){
Kakuteishita();
}
MojiSu=document.test.txt.value.length;
_timeout = setTimeout(_focus, 100);
}
}
function _blur() {
if(navigator.userAgent.indexOf("AppleWebKit",0) != -1){
clearTimeout(_timeout);
}
}
//Firefox向け document.onkeydown = function(e) { if(navigator.userAgent.indexOf("Firefox",0) != -1){ if (e != null) { if (window.event) keycode = window.event.keyCode; else if (e) keycode = e.which; } if( keycode == 13){ Kakuteishita(); } }
} function Kakuteishita(){ alert('確定しました'); } </script> </head> <body> <form name="test"> <textarea name="txt" rows="4" cols="30" onfocus="_focus();" onblur="_blur();"></textarea> </form> </body> </html>
慣れない2chブラウザつかったら別スレのコテハン付けてしまったorz
あんのタン…
インラインフレームを指定の座標から指定の座標まで動かすにはどうすればいいんでしょう? ドラッグや開閉する方法は分かったんですが、単純な移動方法が分かりません…
>>449 document.getElementById('iframe01').style="position:absolute;top:1px;left:1px;";
これでいけたと思う。試してないけど。
人に教える時にそんな省略表記すんなよ
453 :
Name_Not_Found :2008/01/27(日) 09:20:23 ID:Hi2Vdh3/ BE:880446375-2BP(1234)
Ajaxに関する質問 SafariかFirefoxで、リファラを偽装してXMLHttpRequestでPOST送信をすることは可能ですか?
>>451 さすがに試してからモノを言えと言わざるをえない。
styleはDOMStringではなくCSSStyleDeclarationだ。
>>452 それのどこが"AJAX"なのか知らんがsetRequestHeader()
>>454 あ、ごめん
setRequestHeader()でReferer変更試したけど、うまくいかなかったってこと忘れてたorz
457 :
385 :2008/01/27(日) 12:35:39 ID:??? BE:26381344-2BP(2)
>>386 の
>createElement()の引数をIE風
というのがよくわからなかったので、
http://yupotan.sppd.ne.jp/web/xhtml-multimedia.html を参考に<em>タグで要素を作成し、あとでinnerHTML replaceで書き換えてobjectにしたところ、
とりあえず、オブジェクト要素を作成するところまではうまくいきました。
しかし!
div.innerHTML = div.innerHTML.replace(/(<\/?)em/ig,'$1object');
を入れるとなぜかparm要素の内容が化けてしまいます。
これって、IEのバグ!?
>>453 可能。
そもそもクライアント申告なので、一般に偽装という言葉が使われる事自体がおかしい。
>>457 alert(div.innerHTML)とかで置き換え前後の文字列を
表示させてチェックしてみな。自分のアホを安易にソフトの
バグのせいにすな。
domで生成したHTMLのcheckboxにlabelをつけたいんですが、forをsetAttributeしても効きません。。どうしたらいいんでしょう。
>>460 label.htmlFor = checkboxId
>>458 ありがとうございます。可能なんですか。
req[reqname].setRequestHeader('Referer',myReferer);
↑ではうまくいかず…
なにか特殊な方法があるのかなぁ
>>463 これは申し訳ありませんでした。
たしかにうまくいかない。
無理だ。
使えないねえ、こんな風に矮小化されてしまうと。
あ?
うん
の
JavaScriptで開いているウィンドウオブジェクトを列挙して 取得することは可能でしょうか? IE6.0以上限定でよいのですが。セキュリティ的に無理な気もしますが・・・
470 :
Name_Not_Found :2008/01/29(火) 10:12:29 ID:p2QZzgR6
>>469 やはり無理ですよね。
そんなことが出来たら自分が開いたページ以外のページを
操作できてしまいますからね。
ありがとうございました。
472 :
Name_Not_Found :2008/01/29(火) 11:19:09 ID:PXre1xII
英語のプログラム文献にも挑戦しているのですがちょームズイです。 ジェネリックってどういうことですか。教えてください。
単語だけ出されてもわからんがな(´・ω・`)
>>472 直訳は「汎用的」だけど要はさまざまな型に対して使えるという意味。
フォームに記入後、フォームの内容が消えて、 「ありがとうございました。」 という表示に書き換えられるようにしたいのですが、 ajaxで何か簡単にできるようなライブラリってないでしょうか? リロードされないようにしたいのです。 解説サイトがあると助かります。よろしくお願いします。
476 :
Name_Not_Found :2008/01/29(火) 15:01:03 ID:tBAJnmoU
鯖側だと思うよ
>>475 ajaxなんて要らん。フォームをdivで囲んでvisibilityを
hiddenに切り替えて見えなくし、逆に表示の方は見えるように
すればいいじゃん。それで分からないなら勉強すれ。
>>478 レスポンスを確認せずに、ありがとうございました、ですか?w
>>479 それはね、元質問が「記入後」となってるから。
送るのは後でゆっくり、なんでしょ?
>>475 「JavaScriptオフの時は遷移する」とかの分岐もいれないと
JavaScriptオフの人が送れなくなっちゃうけど、
何か理由があってページ遷移をさせたくないの?
>>482 いや、そんなことはない。formのonsubmitでフォームを隠し
遷移させないようにするなら、JavaScript OFFの場合は普通の
フォームとして動作するわけでしょ。
いまどきJavaScript切ってるやつなんて0.000001%
NoScript常用してる俺みたいな凡人がそんなマイナーな数字に含まれてるとは思えんな
486 :
482 :2008/01/29(火) 21:58:23 ID:???
>>483 あー、そうかreturn falseで飛ばさず処理しちゃえばいいのか。
普通のaタグと勘違いした
ってか、それもonclickが聞かないだけだからちゃんと飛ぶのか
でも、結局どんな理由でページ遷移させたくないんだろ?
そんなに重いページなのかな。通信エラー処理をちゃんとやりたいからJavaScript?
俺は8台のWebサーバーを並列で動かしてるくらいのアクセス数の サイトを運営してるがJavaScriptを切っていると思われるアクセスは 実際のところ0.000000001%くらいだ。
俺はやばげなサイト見るときだけ、切ってる
* けーたい * クライアントサイドでのフィルタリング * 回線状態が悪くてリソースが届かない * 別にJS機能を切らなくてもまともに動かないコードばかりという現実 * (前方|後方)互換性を考慮すればどうせフォールバックは必要
今はケータイを主役にしない商業サイトはありえない。 なぜなら、ケータイ厨の痛さは想像を超えていて、収益に大きく貢献してくれるから。
ケータイは専用サイトだろ
ケータイを相手にしてるやつはこのスレ来ないだろw
ケータイフルブラウザのJavaScript対応状況を 詳細にまとてるサイトはないでしょうか?
現状はJavaScriptがONでないと動かないことを表示してないサイトが ほとんど。しかもOFFの場合にOFFの場合は動きませんよ。 なんてのも出ない。 まあ、費用対効果を考えてあえて無視しているのだろう。
んなもの、いちいち書く方がどうかしている。うまく誘導すれば良いだけの話。 費用対効果なんて考えてすらねえだろ。とにかく動いただけで満足な奴ばっかなんだから。
<!--をつけるとか
498 :
Name_Not_Found :2008/01/30(水) 13:39:12 ID:1x3LRbYn
こんにちは。2735764ulというのは何ですか?
>>498 JavaScriptの質問じゃないじゃん! プログラム板へ行け。
500 :
498再 :2008/01/30(水) 15:04:25 ID:HRF3zafN
>>499 さんありがとうございます。
ここはプログラムを研究するところではないのでしょうか?
お分かりでしたらぜひご回答お願いします。
アンタはスレタイを100回読め。プログラムを研究するスレ だなんてどこにも書いてないだろボケ! プログラムならム板。 でも「数値リテラル lu」でぐぐるといいことがあるかもね。
ム板? 刑務所板でもあるのか?
あほか。「プログラム板」→ム板、「プログラマ板」→マ板。 それくらい自分で探せボケ。2度と来るな。
504 :
Name_Not_Found :2008/01/30(水) 17:38:02 ID:WFNdC8ye
Javascriptでaddonを書いています。 このaddon内部から、起動プロファイル名を取得することは可能でしょうか? (firefox -P fuga の fugaを取得) モノはFirefox 2.xです。
じゃ、ここはド板か?
507 :
Name_Not_Found :2008/01/30(水) 21:49:29 ID:nyk6qv6p
変数宣言で、x = 2 + 3 としたときに演算をしないかたちの まま 2 + 3 と表示させる方法はありますか? よろしくお願いします。
>>507 文字列でいいんでね?
x = ' 2 + 3 ';
511 :
Name_Not_Found :2008/01/31(木) 10:11:01 ID:fBZvviY3
IE6でDOM操作にて、 tdNode =document.createElement( 'td' ); tdNode.setAttribute( "rowspan", "2" ); ってしてるんですけど、 縦カラム二つがくっついてくれません・・・。 FireFoxだとちゃんとくっつくんですけど・・・。 なぜなんでしょう? よろしくおねがいします。
"2"をstring型からintegerr型に変えてみては?
513 :
Name_Not_Found :2008/01/31(木) 10:26:39 ID:fBZvviY3
>512 tdNode.setAttribute( "rowspan", 2 ); ん〜・・・。 変わらないです。
514 :
Name_Not_Found :2008/01/31(木) 10:55:09 ID:Y+yKg36A
ちょいと質問です。
TBNって個人のニュースサイトなんですが、
ttp://tbn2.blog50.fc2.com/ タブブラウザのJavaScript実行を切ってても
ページが表示されると勝手に実行に切り替わってしまいます。
というかoffにすることが出来ません。
これってどいゆう仕掛けなんでしょう?
515 :
Name_Not_Found :2008/01/31(木) 11:13:24 ID:fBZvviY3
511です。 自己解決です。 IEの場合、 "colspan" = "colSpan" "rowspan" = "rowSpan" ということでした。
516 :
Name_Not_Found :2008/01/31(木) 11:47:13 ID:UxSeFEUy
>506 TNX.行ってきます
IEのsetAttributeは手抜き実装だから使うなと何度言えば
eval は便利だと何度言えば
(・ω・)....??
520 :
Name_Not_Found :2008/01/31(木) 16:20:40 ID:JgshP3Bp
自分のホムペに天気予報だけとってきて出したいんですが、できますか? IFRAMEを使えばできると自分は聞いたんですが相手の画面全部が入っ てしまいます。焦ってます。JAVAが得意でなんとか出来る方法を知って る方お願いします。
>>520 他鯖のページはそのまま表示できるだけで、部分的に取り出すとか
は絶対できないようになってる。が、取り出す部分の位置(縦横のピクセル
位置と幅と高さのピクセル数)が完全に固定でよければ、そこだけが
見えるような「窓」のdiv要素を作ってその中にiframeをはめるとか
で「切り取る」ことはできるかも知れないね。でもブラウザで文字
サイズ変えたとたんに破綻しそうだけど。このスレでは全部作って
あげるということはしないので、まあ自分で勉強しつつ頑張ってみたら。
スクリプト初心者です。教えてください。 画像(25枚くらい)をページの端のほうに小さくスライドショー でのせたいと思っています。 画像の出方はアクセスするたびランダムで どの画像をクリックしても同じURLへ別windowで飛ぶようにしたいんです。 どうにかスライドショー&リンクまではできましたが どうやっても別windowで開かないんです。 どうすればいいのでしょうか? よろしくお願いします。
525です。 <script language="JavaScript" type="text/javascript"> <!-- num = Math.floor(Math.random() * 25); jumpURL = new Array(); jumpURL[0] = "URL"; jumpURL[1] = "URL"; jumpURL[2] = "URL"; jumpURL[3] = "URL"; ・ ・ news = new Array(24); news[0]='<a href="javascript:jump()"><img src="◎jpg" border="0" name="banner" width="140" height="160"><\/a>'; news[1]='<a href="javascript:jump()"><img src="×jpg" border="0" name="banner" width="140" height="160"><\/a>'; news[2]='<a href="javascript:jump()"><img src="△jpg" border="0" name="banner" width="140" height="160"><\/a>'; ・ ・ <script language="JavaScript" type="text/javascript"> <!-- document.write(news[num]); // --> </script> <noscript> <img src="◎" alt="画像" width="140" height="160"> </noscript> こんなタグです。
jumpが無いせいじゃないか
>>520 ちょっと作ってみた。でもJavaScriptと無関係だな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
#d0 { position: absolute; border: blue 1px solid;
width : 300px; height: 200px; overflow: hidden }
#d1 { position: relative; top: -280px; left: -200px }
#f0 { width: 800px; height: 800px }
</style>
</head><body><div id="d0"><div id="d1">
<iframe id="f0" src="
http://weather.yahoo.co.jp/weather/jp/images/chart.html ">
</iframe></div></div></body></html>
529 :
Name_Not_Found :2008/02/01(金) 10:08:50 ID:1BUm8V3N
お早うございます。関数の中に関数名を使うとエラーになります。 何故ですか。JavaScriptの仕様でしょうか。
Strictでiframe(笑)
こういう何も考えずにDOCTYPE宣言をつける人がいるから MSがX-UA-Compatibleなんてものを出してくるんだよね
テキストフィールドから特定の文字列が表記されていた場合にアラートを出す方法はありますか
>>533 function myKeyDown(){
if(document.test.test.match(/aaa/)){
alert('aaaが含まれています。');
}
}
↓を使うと表記された瞬間にアラートを表示させることも可能
<form name="test"><input onKeyDown="myKeyDown();" onBlur="myKeyDown();" name="test" onBlur></form>
これはなんのギャグだ?
おたちだま
>>534 ごめんミスだらけだたorz
function myKeyDown(){
if(document.test.test.value.match(/aaa/)){←valueが抜けてた
alert('aaaが含まれています。');
}
}
<form name="test"><input onKeyDown="myKeyDown();" onBlur="myKeyDown();" name="test"></form>←onBlurが余計
もうふた声くらいだな。まだ糞コードの域を出ない。
場合によってはブラクラになるのもポイント高し。
540 :
Name_Not_Found :2008/02/01(金) 22:15:49 ID:UUAZU55e
どうブラクラになるんだ? 全くならないと思うぞ
そうか。幸せなんだな。
542 :
Name_Not_Found :2008/02/01(金) 23:02:34 ID:UUAZU55e
逃げないで説明してください
submitの時に注意するだけでいいと思うんだが…
∧_∧ ⊂(#・д・) だから、ブラクラ / ノ∪ って言ってんだろ! し―-J |l| | 人ペシッ!!
545 :
Name_Not_Found :2008/02/02(土) 00:01:30 ID:8JFriqmG
だからなんでブラクラになるんだよw
俺んとこではaaaを入力した時点でalertの無限ループになるな ま、想像力のない奴はフォーカス制御に手を出すなってことだ
ブログパーツや Google Web ガジェットのようなものを 寄せ集めたページを作ったとして,ユーザが各パーツの 位置や大きさを自由に決められるようにするには どうすればいいのでしょうか?
548 :
Name_Not_Found :2008/02/02(土) 08:45:19 ID:LXwFwTwd
画像の上にjavascriptかなにかで線etcを描画するには どうすればいいんでしょうか? たとえば、時計の文字盤画像+JSで針を動かすとか
549 :
Name_Not_Found :2008/02/02(土) 09:41:11 ID:8JFriqmG
>>546 は?
あんたの環境は特殊だろw
無限ループなんてならねぇよw
canvasじゃねーの?
>特定の文字列が表記されていた場合に つまりユーザーによる入力とは限らないし、入力された瞬間とも限らないからタイマーが適切 document.test.test は document.forms['test'].elements['test'] submit するときにゴミを残したくなければ id ふって $('TEST') HTML に関するツッコミはやめとく
アコーディオンについての質問です
本家(
ttp://stickmanlabs.com/accordion/ )で配布されているファイルを弄くって内部コンテンツの一部を
外部ページ(ヤフー)にしてみたんですが、デフォルトだとページを開いた時点で初期状態で見えていない
内部コンテンツを全てロードしてしまうようです。
サンプルファイル(A Vertical Nested->Click me!の内部コンテンツがヤフーになってます)
ttp://upp.sakura.ne.jp/src/upp14581.zip これだと内部コンテンツを外部ページや画像にした場合、ロードするデータが非常に多くなってしまうので
アコーディオンを開いたときに随時読み込みをするという風にしたいのですが、どうすればいいのでしょう?
この場合ならClick me!をクリックしたときから読み込みを開始するというように
555 :
Name_Not_Found :2008/02/02(土) 22:36:10 ID:bG7GS42z
Cookieに関して質問です 有効期限を省略した場合はブラウザを終了した時点で消えるとのことですが、 タブブラウザなどの場合は具体的にどうなのでしょう?
書き込む間に試せるだろ。
557 :
Name_Not_Found :2008/02/02(土) 23:13:41 ID:15gbB553
質問です。 テキストを指定した期間のみ表示させること、 例えばプレゼントの応募に関する記事を応募締め切り日の0:00に 自動的に消すということは可能なのでしょうか? javascriptやCGIの本を買ったり、色んなサイトを調べてみましたが、 答えを見つけられなくて困っています。 可能ならばどういった事をすれば良いのでしょうか? スレ違いでしたらすみません。
>>459 もちろん、alertコマンドで試してますよ。
言われたことに、心当たりが無いこともないですが、
param要素を
params=[['name','value'],[..]]
みたいな感じで指定して、
for(var i=0; i<params.length; i++) {
var param = document.createElement('param');
param.name = params[i][0];
param.value = params[i][1];
object.appendChild(param);
}
という感じでobject要素内に入れています。おそらく、このparmsで指定したデーターの中身に
置き換える文字の<emが含まれているから化けるんだと言いたいんだと思いますが、
この<em>タグに書き換える処理をする前までは、問題なく中身の<param>要素の内容は展開されていました。
ところが、このタグをobjectに書き換える処理を入れると
<param name="url" value="
http://2ch.net/ " />
が
<param name="cx_" value="5800" />
みたいな内容に化けてしまうのです。
<em>タグの変わりに<____>とか<$$$$>みたいな
タグに書き換えるような処理を行っても結果は変わりませんでした。
当然Firefoxでは動いています。
>>557 ・静的な処理ならcronで指定時間にファイルを置き換える。(使ってる鯖でcronの使用が許可されてることが条件)
・ページを動的な生成にして、指定時間以前なら記事を表示させる。
単に表示したいだけ(期間外に見られても支障がない)ならJavascriptでも問題ない。
560 :
Name_Not_Found :2008/02/03(日) 20:59:46 ID:rTyoGLoL
すいません。微妙にスレ違いなんですがJavaScriptエラーと表示され グーグルマップや動画サイト、マカフィーすら表示されなくなりました。 アクティブスクリプトは有効になってます。誰か解決策を教えてください。 WMPも起動しないのはこのせいでしょうか。
板違い
562 :
Name_Not_Found :2008/02/03(日) 22:37:34 ID:GsQaDlrW
よろしくお願いします。 リンクをクリックしたら、そのurlを取得したいのですが、 どうすればいいでしょうか? 次のように使いたいと思っています。 function AlertURL(url){ alert('あなたのクリックしたURL=' + url); }
563 :
Name_Not_Found :2008/02/03(日) 22:51:10 ID:EjgGod7M
>>562 <a href="〜" onclick="AlertURL(this.href)">〜</a>
564 :
562 :2008/02/03(日) 23:17:30 ID:???
>>563 さん
ありがとうございます!大変参考になりました。
この方法ですと、リンク一つ一つにonClickの記述が必要となるわけですが、
もし他の方法もあれば知りたいです。
例えば、<a>タグ内に新たに記述をせず、
window.onbeforeunloadイベント内で、
これから飛ぼうとするURLを得ることはできるでしょうか?
window.onbeforeunload = function(){
var url = 【クリックしたURL】;
alert('あなたのクリックしたURL=' + url);
}
565 :
Name_Not_Found :2008/02/03(日) 23:34:16 ID:I5jHCUmy
無理だろ。
onbeforeunload 自体が動作が微妙なので 自分だったら onload ですべてのアンカーに addEventListener するけんね
567 :
Name_Not_Found :2008/02/03(日) 23:54:20 ID:I5jHCUmy
ああ、クロージャッってやつ?
jQueryでさくっといけんか
なんか回答者層が変わったよな
<script type="text/javascript"> function AlertURL(e) { var sourceObj = e.target || e.srcElement; if (sourceObj.tagName == "A") { alert('あなたのクリックしたURL=' + sourceObj.href); } } if (document.addEventListener) { document.addEventListener("click", AlertURL, false); } else { document.attachEvent("onclick", AlertURL); } </script> <a href="aa">ああ</a> <a href="ii">いい</a>
<a href="aa"><span>ああ</span></a>
<script type="text/javascript"> function AlertURL(e) { var sourceObj = e.target || e.srcElement; while (sourceObj.nodeType != 9) { if (sourceObj.tagName == "A") { alert('あなたのクリックしたURL=' + sourceObj.href); break; } sourceObj = sourceObj.parentNode; } } if (document.addEventListener) { document.addEventListener("click", AlertURL, false); } else { document.attachEvent("onclick", AlertURL); } </script> <a href="aa.html"><span>ああ</span></a> <a href="ii.html">いい</a>
<a href="aa"><span><em>あ</em>あ</span></a>
575 :
Name_Not_Found :2008/02/04(月) 23:48:15 ID:PCYvAwWj
質問です。 画像がたくさんありサムネイルを1ページに数十枚ほど貼り付けていて、 サムネイル表示を次(前)のページにへ切り替えるのにJavaScriptを用いています。 (JavaScriptが無効な環境に対してはPHPで別のページへ移るようにしています。) サムネイルをクリックするとその画像のページに普通にリンクして切り替わります。 ここで問題が起きました。 画像が同じウィンドウ(タブ)で開かれるので、サムネイルに戻るためにブラウザの戻るボタンを押すと サムネイルが1ページ目になってしまいます。これを直前に見ていたサムネイルのページを 表示するようにするにはどうしたらいいのでしょう? Cookieを使う方法を考えているのですが、なかなかまとまりません。 「次のページ」をクリックするとそこのページの番号をクッキーに書き込んで、 画像をクリックして見てからブラウザの戻るを押すとクッキーを読み出して すぐにページを書き換える、というのを考えています。しかしこれだともし 新しいウィンドウでサムネイルを見ようとしたときに1ページ目ではなく クッキーに記録されているページを表示してしまいそうな気がします。 新しいウィンドウでは1ページ目からにしたいです。
cookie には有効期限というのが設定できるのだよ
queryを受け渡し
jqueryできるやついますか
偉そうだな
設定できるって言うか 期限を設定しなければセッションクッキーって言って タブとかブラウザを終了したらそのクッキーは破棄されるってだけの話だよ 検索に必要な語は書いたからあとは自分で調べてください
583 :
Name_Not_Found :2008/02/05(火) 03:23:17 ID:KKx+X9Im
Opera で、MD5 がおかしな値になるんだけど なんで?
ハア???
ファイルのアップロードのフォーム利用して javascriptにファイルデータ渡すとかやっぱ無理ですよね
ん?
やっぱ無理ですか CGI使ってデータ埋込みでやってみます ありがとうございました
589 :
583 :2008/02/05(火) 12:06:25 ID:KKx+X9Im
だから、なぜ、Operaだと、MD5 の MD5_hexhash 関数の戻りが IEやFirefoxと異なる値になるのはどうしてなんだぜ?
590 :
583 :2008/02/05(火) 12:09:09 ID:KKx+X9Im
うそだと思うんならこれやってみな? function display_md5() { src = '1234'; conv = MD5_hexhash(src); alert(src+"\n\n\n"+conv); } Operaだと違う値になるから。
592 :
583 :2008/02/05(火) 12:23:39 ID:KKx+X9Im
なんか、使ってたライブラリに問題があったかも知れん 出直してくる
JavaScript始めたばかりなんだけど、 int main(void) { int p = 17; p = p; p = p; return 0; } は、どんな風に書き換えればいいの? 乞教示。
594 :
Name_Not_Found :2008/02/05(火) 12:50:33 ID:Do/DZ/tO
onload = function main() { var p = 17; p = p; p = p; return 0; }
if ( obj === true ) のような === での比較は 暗黙の型変換しないで厳密な比較をする ということですか?
>>596 ありがとうございました。そこブクマしました
598 :
575 :2008/02/06(水) 00:00:57 ID:???
<script type="text/javascript"> /(?:^|[,;]\s*)pn="?([^",;\s]+)/.exec(document.cookie); pageNum = Number(RegExp.$1) || 1; onload = function() { document.getElementById("ls").innerHTML = pageNum+"ページ目です"; } function prevLs(){ document.getElementById("ls").innerHTML = --pageNum+"ページ目です"; document.cookie = "pn="+pageNum; } function nextLs(){ document.getElementById("ls").innerHTML = ++pageNum+"ページ目です"; document.cookie = "pn="+pageNum; } </script> <span id="ls">1ページ目です</span> <a href="hoge.jpg">画像</a><br> <input type="button" onclick="prevLs()" value="<"> <input type="button" onclick="nextLs()" value=">"> こんな感じですが、ウィンドウ1つだけで使うのであれば殆ど問題なさそうですが、 これををウィンドウ2枚(甲乙)で開き、 甲でページをポチポチいじった後に 乙でブラウザの更新ボタンを押すと甲のページと同じページになってしまいます。 どう対処したらいいのでしょう
599 :
575 :2008/02/06(水) 00:03:50 ID:???
またsleipnirの場合はタブを閉じるだけではクッキーが消えず、 再び開いた後に1ページ目ではなく直前に見ていたページになってしまいます。
cookieじゃなくてinput type hiddenに入れる
601 :
Name_Not_Found :2008/02/06(水) 02:24:36 ID:r58XQo0G
確認ダイアログでOKを押せば処理を続け、キャンセルを押せば処理を続けない というのをjavascriptでやりたいのですが、どうやっても後の処理を実行してしまいます。 どこが間違っているのでしょうか? <script language="JavaScript1.1"> <!-- function formConfirm(type) { switch (type) { case "update": rtn = confirm("ユーザ管理情報を変更します。\nよろしいですか?"); break; case "delete": rtn = confirm("ユーザ管理情報を削除します。\nよろしいですか?"); break; case "password": rtn = confirm("パスワードを変更します。\nよろしいですか?"); break; case "grant": rtn = confirm("管理者権限を与えます。\nよろしいですか?"); break; case "revoket": rtn = confirm("管理者権限を取り消します。\nよろしいですか?"); break; } if (rtn) return true; else return false; } //--> </script>
type に "update" を渡してみればいいんじゃない?
>>601 たぶん情報小出し野郎かと思うけど、エスパーしてみます。
<input type="submit" value="aho" onclick="formConfirm('update');return false;" />
省略〜
switch (type) {
case 'update':
if (confirm('あほですか?')) {
document.forms[0].submit();
}
break;
}
javascriptが使えない人は問答無用でサブミット
それ以外はあほの確認がとれたらサブミット
604 :
562 :2008/02/06(水) 03:40:03 ID:???
>>572 さん、おかげ様でバッチリ動きました。ありがとうございます!
605 :
575 :2008/02/06(水) 20:16:16 ID:???
度数法の角度を保持する変数aの絶対値が180以下になるように正規化するうまい方法はありますか?
(d+180)%360-180
608 :
601 :2008/02/07(木) 02:55:55 ID:dIff8gSi
すみません、情報小出しのつもりではなかったのですが、どう書けばよいのかわかりませんでした。
>>603 さんのように書くと、このような形です。よろしくお願いします。
<script language="JavaScript1.1">
<!--
function formConfirm(type) {
switch (type) {
case "update":
rtn = confirm("ユーザ管理情報を変更します。\nよろしいですか?");
break;
case "delete":
rtn = confirm("ユーザ管理情報を削除します。\nよろしいですか?");
break;
case "password":
rtn = confirm("パスワードを変更します。\nよろしいですか?");
break;
case "grant":
rtn = confirm("管理者権限を与えます。\nよろしいですか?");
break;
case "revoket":
rtn = confirm("管理者権限を取り消します。\nよろしいですか?");
break;
}
if (rtn) return true;
else return false;
}
//-->
</script>
(〜中略〜)
<input type="submit" name="rewrite" value="書き換える" onClick="return formConfirm('update')"><input type="submit" name="delete" value="削除する" onClick="return formConfirm('delete')">
>>608 それって
>>603 のと全く違うと思うが。せっかくアドバイス貰っても
目が節穴だと役に立たないんだね。あと、
>>603 の方式にするなら
<input type="submit" ...> を <input type="button" ...> に
するのが吉。
しかしそもそも「後の処理を続けない」というのは「フォームを
送信しない」ということと本当に同じ意味なの?(確認)
質問です <html> <body> <script type="text/javascript"> var content = document.getElementById("content"); content.innerHTML = "ABC"; </script> <div id="content"></div> </body> </html> div内にABCを表示させようとしてるのですが、上記の記述では上手くいかず、 <div id="content"></div> <script type="text/javascript"> var content = document.getElementById("content"); content.innerHTML = "ABC"; </script> のようにdiv要素の下に設置しないとABCが表示されません。 これは記述に問題があるのでしょうか。また対処方などありましたらよろしくお願いします。
<div id="content"></div>を読み込む前に document.getElementById("content")は実行できないだろ
>>611 よく考えたらそうですね。
ありがとうございました。
数値オブジェクトのvalueOfではプリミティブ値が得られるという ことですが、数値のプリミティブ値ってどういうことですか? 12は12だと思うのですが。
>>613 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var x = 12, y = new Number(12);
document.writeln(typeof(x));
document.writeln(typeof(y));
document.writeln(x + y);
</script></pre>
</body></html>
615 :
613 :2008/02/08(金) 00:20:46 ID:???
FireFox や Operaで <input type="file"> のテキスト入力部分にフォーカスを合わせたり、文字列を選択させたりすることはできますか?(もちろん、JavaScriptで) IE では focus(), select() ともにテキスト入力部分にフォーカスが、 FireFox, Opera では focus(), select() ともにボタン部分にフォーカスが行くようです。
type="file" に対する操作は限定的 できればできるのだし できなければできない
618 :
Name_Not_Found :2008/02/09(土) 20:43:33 ID:wGphGw1q
オンクリックでプルダウン表示されるメニューをJavaScriptで作成したのですが、 ページを切り替える度にメニューの表示/非表示を指定しなければなりません そこで、クッキーを使って表示/非表示の設定を保存しては、と考えたのですが、 同一ページ内にメニューが複数個あるため、それぞれの値を読み込み&書き出しするのと 表示/非表示の切り替え毎にクッキーの値を更新する事になるので、負荷(?)が心配です。 頻繁にクッキーの値を更新する事で、何か問題などはあるのでしょうか?
>>618 ない。つうかそんな長文を書いて見ず知らずの誰かに質問する以前にやってみれば分かるだろ。
620 :
Name_Not_Found :2008/02/09(土) 21:52:27 ID:PuxOidHS
引数を利用して、あるIMG要素のsrc属性を設定するには どうすればいいでしょうか? 以下のような感じです。。。 function A(s){document.s.src = x;}
>>620 document.getElementById(s).src = x とかでいいだろ
622 :
Name_Not_Found :2008/02/09(土) 22:13:47 ID:PuxOidHS
>>621 アドバイスありがとうございます。
うーん・・・やはりdocument.*の形では難しいですか;
そんな腐った書き方はやめた方がいい だいたい document.s なんて書いたら 引数の中身を見てるんじゃなくて id="s" の要素を探すだろう
> 以下のような感じです。。。 > function A(s){document.s.src = x;} function A(s){document[s].src = x;} だろうね
そもそもsには何が入ってんのよ?
それを聞くのは野暮ってもんだぜ
627 :
Name_Not_Found :2008/02/09(土) 23:07:09 ID:u9shj8mt
getElementById()をどうしても書きたくない理由が知りたい。
それを聞くのは野暮ってもんだぜ
>>620 画像に「name」つけて扱う方法はダメか?
document.images[s].src=x;
JavaScriptの記述があるページを読み込むとIEではデフォルト設定だと 警告が出ますが、JavaScriptで実装していると言われる GoogleMapのページでは警告が出ません。 これはどうやって実現しているのでしょうか? JavaScriptを使用しているページでありながら、クライアント側で 警告を出さずに閲覧できるようにする仕組みを教えて下さい。
>>630 俺IE7入れてないんだけど
IE7だとデフォルトで警告出んの?
ローカルのhtmlファイルを開いてるからじゃないの?
>>631 あ、すいません未確認です。IE7だとDefaultでは出ないのかもしれないです。
>>632 確かにローカルで開いています。
最初は、HTMLに埋め込んでいる部分を外部ファイルにしてやれば
警告は出ないのかと思ってましたが、それでは多分無理と言われまして
ではどうやって実現するのかと不思議に思い質問しました。
うざいかと思って伏せてましたが、かなりの初心者です。。。
>>617 回答サンクス。とりあえずFireFoxではvalueでフルパス取れたので、IE7=選択コピー&その他=valueで取りたいと思います。
一応経緯を書いておきます。 DreamWeaverでロールオーバーをしてやったら、汚いコードが 書き込まれたのとIEで警告が出ました。 コードは、リファクタリングして外部ファイルにまとめましたが 警告を出さないで済む方法で詰まりました。 CSSのhoverで実現しろってだけの話かもしれませんが、 JavaScriptだと応用利きそうですから。。。
>>633 Webサーバー上にアップすれば自然と出なくなるぜ
637 :
Name_Not_Found :2008/02/10(日) 01:37:56 ID:84P5tLwb
>>636 本当ですか?ありがとうございます。
でも新たな疑問が。ではあの警告はどういった場合にでるのですか?
JavaScriptを使用していても警告の出ないページと、
出るページの違いがわかりません。。。
>>637 ローカルで開いているファイルで、
警告が出るものと出ないものがあるのかい。
>>637 アフォですか?
警告を出す必要がある(=危険なコードを実行される可能性がある)から警告出してるわけよ。
警告を出なくさせることもできるって話題がこのスレかひとつ前のスレあたりにも出たから同じ話題を繰り返すなニート。
>>637 とりあえずWebサーバーのひとつも立ててみろ
おぬんぬん勃ってきた。
642 :
Name_Not_Found :2008/02/10(日) 17:32:50 ID:Xy3x867K
new Ajax.Autocompleterを使って、オートコンプリートを実装してみたのですが これのOn/Off機能を付けたいと思っているのですが、うまくOffにすることができません。 どうやって通信を切れば良いのでしょうか?
>>642 おれおれライブラリではAjax.Autocompleter(false)で切れるよ
それが何のライブラリかしらんけど。
644 :
642 :2008/02/10(日) 18:19:52 ID:Xy3x867K
>>643 prototype.jpとscript.aculo.usです。
うーん、どうしよう…。できない。
645 :
Name_Not_Found :2008/02/10(日) 20:34:00 ID:84P5tLwb
>>638 >>639 前スレdat落ちして読めない。。。
ん〜と、ローカルで開いたら警告が出るのはわかるのですが、
サーバーにアップして、クライアント側からそのページを閲覧したら
自然と出なくなるってのがわからないんです。
アップしたページもサーバー側ではなく、結局はクライアント側に
ダウンロードされるわけだから、そのページにJavaScriptの記述があれば
警告が出てしかるべきだと思うのですが。。。
今涙目なって調べてたのですが、Ajaxという技術がそうなのですか?
確かに、クライアント側でイベントが発生したら、それをサーバに通知して、
サーバー側でプログラム処理をして結果をクライアントに
返すようにしたら、クライアント側でJavaScriptを使わずに済みますね。
>>640 >とりあえずWebサーバーのひとつも立ててみろ
そうですね。取り合えず置いといて、通信・PHPの学習を進めます。
お騒がせしました。
ローカルファイルに書かれたJavaScriptはローカルのリソースに アクセスできてしまうからだよ。 WebサーバーからダウンロードされたJavaScriptはそのサーバーを 通してリソースにアクセスするしかないからだよ。
ほんとだー、過去スレ全集にvol61がない。誰かおねがい。
648 :
Name_Not_Found :2008/02/10(日) 22:03:33 ID:84P5tLwb
>>646 ふえ〜っ!?
それはつまり、クライアント側にそのページの全てがダウンロードされる
わけではなく、リソースはサーバー側にアクセスしないと取得できない。
具体的には、例えばロールオーバーだったら、ロールオーバーするという
プログラムはクライアント側で出来ても、その置き換える画像は
その都度サーバー側から取得する?
だから、途中でサーバーが落ちるとロールオーバーが出来ない
(置き換える画像を取得できない)ってことですか!?
何か違うっぽい(時間かかるしトラフィックも増大する)じゃなくて
>>3 のFAQにあるように、セキュリティ制約により、Webサーバーから
ダウンロードされたJavaScriptは、ローカルファイルを絶対に
いじれないから、安全だと判断してIE6も警告を発しない。
そういうことですか?
でも、WEBサーバーから取得したJavaScriptの全てが安全なら
警告出す必要もないよな。。。
基本ですいません。Math.random()は1になりますか?
<script language="JavaScript"><!-- function hoge(){ nyuryoku = eval(document.Form.Form1.value); if ( nyuryoku == x ){ y=1; alert(y); }else{ y=y+1; alert(y); } } // --></script> <form name="Form"> <input type="text" size="2" name="Form1"> <input type="button" value="OK" onclick="hoge()"> </p> </form> 入力画面で数字を入力して実行するとエラーになるんですけど、原因は何なんでしょうか?
>>649 調べればすぐわかるものを
0以上1未満
>>648 前半何言ってるかわからないが後半は合ってる
サーバ上のスクリプトは
セキュリティ上の制約でローカルのファイルを扱えないが
ローカルのスクリプトで(JScript や VBScript などで)
ローカルのファイルを扱う処理を書くこともあるだろう
>>650 x ってなんだ?
入力値をいきなり eval() する腐ったスクリプトなんかは書くべきでない
653 :
650 :2008/02/10(日) 22:48:05 ID:???
>>652 すいません、xには7が入っています。
evalをなくして、入力された値を直接使っても同じく結果でした。
ifで真の場合(7を入力した場合)は通るんですが、
elseにいったときにエラーが発生してしまいます。原因わかりませんでしょうあか
else のブロックで右オペランドに y があるけど この時点では y は不定だよね
655 :
Name_Not_Found :2008/02/10(日) 23:05:18 ID:84P5tLwb
>>652 >前半何言ってるかわからないが
すいません。素敵な日本語で。。。
>後半は合ってる
やった。
謎が解けてすっきりしました。
まだ疑問はあります(ネットサーフィンしてた時に、安全なはずの
Webページを閲覧したときにも警告が出たことがある。)が、
後は自分で調べてみます。
どうも、ありがとうございました。
656 :
650 :2008/02/10(日) 23:07:08 ID:???
>>654 なるほど!y=0としてから実行したら成功しました。ありがとうございます
>>650 その前につっこみどころ満載のコードをどうにかしろって言いたい。
本を参考にしているなら買い換えたほうがいいぞ。
658 :
Name_Not_Found :2008/02/11(月) 02:23:12 ID:+zUPusVz
フレームでブラウザ画面を縦に2分割し、左を目次、右を本文エリアとして使用しています。 目次をクリックしたときに、左(目次)フレームが再読み込みされているようなのですが、これを防ぐことはできるのでしょうか? 目次の長いページだと、スクロールして出てきたリンクをクリックした際に そのリンク部分が見えなくなってしまうのが不便に感じています。 ===メインのページ=== <frameset cols="20%,*"> <frame src="menu.html" name="MenuFrame"> <frame src="page0.html" name="MainFrame"> </frameset> ===目次ページのリンク部分=== <a href="#" onclick="SetMain('page0.html#title00')">その1</a> ===JavaScript=== function SetMain(main) { top.MainFrame.location.href = main ; }
659 :
658 :2008/02/11(月) 02:33:39 ID:???
すみません、追記します。 target= ではなくJavaScriptを使用しているのは、 実際にはもう少し別の処理が入るからです。 また、画面の確認は IE6.0 で行なっています。
>>658 できます。
すみません、追記します。
詳細を説明できないのは
実際にはもう少し別の処理が入るからです。
また、画面の確認は IE6.0 で行なっています。
661 :
658 :2008/02/11(月) 04:41:35 ID:???
>>660 ありがとうございます。
できるとのことで、具体的な方法を探しているうちに
リンク元フレームの再読み込みが行なわれていないサイトを発見したので
そちらと同様のリンク方法に変更してみたら無事に解決しました。
もしも私の質問の仕方に気分を害されたなら申し訳ありませんでした。
662 :
Name_Not_Found :2008/02/11(月) 06:44:44 ID:YE2Ovc01
すみません、お聞きしたいのですが フレームで上下にページを分けた状態で下のページのURLを取得してアラートで表示させたいのですが、 下のページが同じディレクトリ内のURLなら問題なく取得できるのですが 下に表示させてるページがまったく別のサイト、たとえばヤフーのトップページを表示させていると window.parent.Frame2.location.hrefで取得できずにエラーになります。 これはそういう仕様なのでしょうか?それとももっと他に原因があるのでしょうか?
【FAQその1】Q1A1 何で読まないかね・・・ 過去何十回と繰り返された質問ダニ
ついでに、
>>658 もFAQにあるよな。スレの無駄遣い。
FAQ読めない奴は2度と来るな。
665 :
Name_Not_Found :2008/02/11(月) 08:20:35 ID:PS77tkwW
時刻によってCSSを切り替えたくて、
http://www.katgal.com/2007/03/time-sensitive-css-switcher-change.htmlの スクリプトを書き換えましたが、CSSが機能しません。
何が間違えているのでしょうか?
リンク先はHTML内に記述しているようですが、外部JSにて使用してみました。
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();
if (thehour > 18)//夜の時間
display = ".././css/night/style.css";
else if (thehour > 6)//昼の時間
display = ".././css/noon/style.css";
else display = ".././css/noon/style.css";
var css = '<'; css+='link rel="stylesheet" href=' + display + ' \/'; css+='>';document.write(css);
}
>>665 「元のサイトのまま」だと動作しているの?それなら自分が
書き換えた部分に問題があることになる。元のままでも動作
しないなら使い方が間違っている。問題を切り分けないとね。
667 :
Name_Not_Found :2008/02/11(月) 09:05:00 ID:PS77tkwW
>>666 はい。元のサイトのものは正常動作を確認した。
こちらの記述に問題があると踏んだのですが、結局、何が違うのか分からなくなりました。
>>665 俺だったらdocument.write使わないで
link要素のhref属性を
setAttributeで書き換える。
>>664 いやだ!
FAQを読むためにもう一度来るんだい!ヽ(`Д´)ノ
なんか突っ込み所の多いスクリプトだけど動作してるよ。 外部ファイルにした過程で何かミスをしてるんじゃないかと。 <script src="???.js">getCSS()</script> 超能力を使ったらこういう風なのが見えた。
ウイジェットってなんですか?ウェブ用語辞典にありません。 お願いします。
ググれカス
javascript内にHTMLを埋め込むにはどうしたらいんでしょうか? 具体的にはjavascript内のaという変数の中身を
すいません途中で書き込んでしまいました・・。 aという変数の中身をHTMLで使いたいんですが、どうすればいいんでしょうか? わかりずらくてすいません
<script> var a = "hoge"; document.write( a ); </script>
>>675 document.writeで表示すると他のがフォームなどが消えてしまうんですが、
フォームなどを消さないで、その下などに表示されるにはどうしたらいいんでしょうか
ページが真っ白になっちゃいました.js
読み込みが完了しています.htm
inputboxに1文字入力してもらったら、 次のinputboxへフォーカスを移す方法を教えてもらえないでしょうか?
>>681 上のほうに上げておいたので確認よろしく。
683 :
Name_Not_Found :2008/02/11(月) 18:21:15 ID:PS77tkwW
>>670 HTML側に<script src="???.js">getCSS()</script>を加えるということでしょうか?
684 :
682 :2008/02/11(月) 18:24:49 ID:???
追記
>>681 の下のほうはエラーが出て上げられなかった
俺だけかな?
>>683 いや、それをやると駄目だという意味。
HTML側はどういう風に書いてるの?
686 :
Name_Not_Found :2008/02/11(月) 19:33:40 ID:PS77tkwW
>>685 </head>
<body>
<script type="text/javascript" src="./js/css_change.js">getCSS();</script>
<noscript>
<link rel="stylesheet" href="./css/night/style.css" type="text/css" />
</noscript>
です。最初は<script type〜/script>をhead内に記述していたのですが、
効果は無かったので上記の用に改変しました。
<script type="text/javascript" src="./js/css_change.js"></script> <script type="text/javascript">getCSS();</script> 仮にこうだとしても getCSS() が実行された時点で css_change.js が読み込まれてる保証はないな
688 :
Name_Not_Found :2008/02/11(月) 19:44:31 ID:PS77tkwW
>>687 どうすれば良いんですか?
もうコレ以上は分からない・・・
検索かけてもHTML内部に記述するタイプや背景や画像の切り替えくらいしか見つからないし。
>>687 deferが無ければ普通は読み込むまで待つんじゃないの?
>>688 <body onload="getCSS()"></body>
onloadじゃダメなわけ?
いやonloadでdocument.writeはいかがなものか
693 :
Name_Not_Found :2008/02/11(月) 20:05:41 ID:PS77tkwW
<body onload="getCSS()"></body> を記述したところ、画面が真っ黒になりました。 ソースを開いたら<link rel〜のみがありました。 JavaScript自体には問題は無く、HTML側の記述が問題なのでしょうか?
>>693 普通は
>>687 のように書いとけばいいんじゃない?
687によると駄目らしいがそこんとは俺にはよくわからん
696 :
Name_Not_Found :2008/02/11(月) 22:16:20 ID:tDLwGEbQ
初期値M、要素数Nの配列を1発で生成するには? イメージとしては、a = new Array(M, N); 関数自作するしかない?
a = new Array(N).map(function(){ return M });
698 :
Name_Not_Found :2008/02/12(火) 01:15:33 ID:scVsXJqk
時間指定で画像が変わるようにしたいのですが、画像が表示されません。
何が原因でしょうか?ソースは
http://www.west-mira.jp/javascript/html/4/9/lib_picture/pic2/から流用しました 。
【JavaScript】
//朝・昼の画像指定
bg_imgae_noon='.././images/blue-fair_noon.jpg';
//夕方・夜の画像指定
bg_imgae_night='.././images/blue-fair_night.jpg';
function time_pic()
{
jikoku=new Date();
jikan=jikoku.getHours();
if(jikan == 0 || jikan > 6 && jikan < 18)
document.images["top-title"].src=bg_imgae_noon;
else
document.images["top-title"].src=bg_imgae_night;
}
【HTML】
<script type="text/javascript" src="./js/img_change.js"></script>
</head>
<body onload="time_pic();">
<script type="text/javascript" src="./js/css_change.js"></script>
<script type="text/javascript">getCSS();</script>
<div id="wrapper">
<h1 id="top"><img src="" id="top-title" /></h1>
最近は、フラッシュの部分に↓みたいに書くのが流行なのか? 普通に<object>やら<embed>やら書くのと、どっちがどういいのか教えてくれる人お願いします <script type="text/javascript" language="JavaScript">includeFlash( 'flash/shit_in_my_pants.swf', 580, 125, 'うんち3個', 'high' );</script>
700 :
Name_Not_Found :2008/02/12(火) 02:45:54 ID:scVsXJqk
700
701 :
Name_Not_Found :2008/02/12(火) 02:55:46 ID:V6gj9S5N
いまひらめいたんだけど、 v = 10; r = 2; v.toString(2); OK v.toString(r); NG 基数に変数おけなくね?
NGって何が
703 :
Name_Not_Found :2008/02/12(火) 08:35:43 ID:HhE4ZOiw
CSS スレからきたのですが、教えてください CSSにてpx単位で指定したwidthの値を取得しようと、以下のようなコードを書き document.defaultView.getComputedStyle(element, null).getPropertyValue('width'); 標準モードでFirefox, Opera, Safariで確認したのですが、 Opera (v9.25) のみ、paddingとborderを含んだ値が返って来ます CSSでいう互換モード時のボックスモデルような感じなのですが (このメソッド自体に標準、互換モードは関係ないと思いますが) こちらのなんらかのミスではなく、これがOperaの動作なのでしょうか?
入力画面.html --> 確認画面.html のような簡単なウェブページで 入力画面.htmlでフォームに文字列を入力してもらい、それを name に格納して、 その後ページを移動して、 確認画面.htmlでnameの内容を画面に表示しようとしたら name が空文字になってしまいました。 ひょっとして、JavaScript では、 ページを跨ぐようなグローバル変数の保持は 出来ないのでしょうか? 入力と確認を1枚のhtmlファイルにまとめるしかないのですか??
>>704 普通はページが移管した時点で終わり
渡すだけならpostかgetで送ってそれを拾う
>>704 これは面白いことをおっしゃる。掲示板とかにリンク貼って
踏ませて自分のページに誘導し、そこで掲示版ユーザの
パスワードとか全部収集できたら恐ろしいことになるとは
思わないのかね。だから別のページは「完全に別物」
>>698 (1)JavaScriptエラーが出ていないか確認する
(2)img src='.././images/blue-fair_noon.jpg' が表示されるか確認
(3)if文の直前にalert(jikan)を入れて内容を確認
>>704 これってCookieの話じゃないのか。
JavaScriptのそれはどうか知らないが、
PHPとかなら同じディレクトリ以下のCookieのみ、ページ変わっても保持出来る。
710 :
Name_Not_Found :2008/02/12(火) 14:28:23 ID:igVTinou
<script type="text/javascript">
<!--
win = window.open("
http://www.yahoo.co.jp/ ","aaa","");
win.scrollBy(500,500);
//-->
</script>
このように子ウィンドウを作成して、それを親ウィンドウから操作することはできないんでしょうか?
IE6とFirefox2で試しましたが上手くいきませんでした。
>>710 FAQ
>>3 の冒頭 Q1/A1に相当すると思われ。つかFAQ読めない奴は帰れ!
質問です。 function push(){ var obj=document.getElementById('formid').value //... } みたいな書き方で関数内にオブジェクトを設定すると関数を呼び出す たびにobjというオブジェクトが生成されてクリックするごとにオブ ジェクトの山ができると思うのですが、実際はどうなんでしょうか。 もっとメモリにやさしい書き方はありますか?お願いします。
>>712 300万回くらいループさせてみれば実際どうなのかわかるでしょ
>>711 FAQを読んでなかったことはすみません。
ですが子ウィンドウに表示するものを
同じパスのものに変更してもスクロールしてくれません。
その他に何か問題と思われるものはありますか?
>>703 Operaのバグだと思う
9.50 Alpha 1の次のスナップショット版以降では
直ってる(paddingとborderを含まないwidth値が返る)みたいだ
716 :
710 :2008/02/12(火) 14:51:58 ID:???
>>711 すいません分かりました。
window.scrollBy(x,y);
このx,y引数が範囲外の場合は機能しないみたいですね。
横スクロールバーがないのにxの値を指定してしまっていました。これではダメみたいです。
どうもすいませんでした。
717 :
703 :2008/02/12(火) 16:38:56 ID:???
718 :
Name_Not_Found :2008/02/13(水) 15:14:24 ID:1Pcr9h+4
コードの書き方について質問いたします。 while(number>=0)とやったらパソコンが固まって大変なこと になりました。どうしてでしょうか。意味がわかりません。 解説のほうよろしくお願いします。
そこだけじゃわからんと言いたい まあ無限ループ入ってるだけじゃないの
while(number<0) こうすれば固まらないお
721 :
718 :2008/02/13(水) 18:43:21 ID:yiJxI7u6
お二人ありがとございました。そうですよね。 がんばります。
tdタグの背景色の取得って出来ましたっけ?
>>722 FAQに書いてあるでしょ。FAQ読めない奴は帰れ。
>>723 FAQのどこに「tdタグの背景色の取得」の回答がある?
答えられないのなら、ロムってて良いですよ。
FAQ読んでそれが読み取れない奴は帰れと言ってるの。じゃあさいなら。
>>725 書いてもないことをどう読み取れと...。
逃げるくらいなら最初から黙ってればよいものをw
馬鹿
switch〜case文の中で、特定の条件の場合はdefaultに飛ばす、なんてことは可能ですか? つまりこういうことです↓↓↓ switch(input){ case "a" : alert("a"); break; case "b" : if ( foo == bar ) { /* ここでdefaultに飛ばす */ } else { alert("b") } break; case "c" : alert("c"); break; default: alert("x"); }
switch(input){ case "a" : alert("a"); break; case "c" : alert("c"); break; case "b" : if ( foo == bar ) { } else { alert("b"); break; } default: alert("x"); } default の内容を function 化してしまうとか まあ switch は複雑な条件分岐に使うもんじゃないと個人的には思ってるけどねえ 通常のアプリケーションなんかではよく使うけれども
730 :
728 :2008/02/14(木) 01:28:05 ID:???
>>728 switch (input) {
case 'a':
break;
case 'c':
break;
case 'b':
if (foo != bar) {
break;
}
default:
alert('afo');
}
なんで同じこと書いたの?
更新確認せず書き込んだだけだろ そのぐらい察してやれよ
10分以上かけないで下さいwwwww
今更言語にgotoを入れるとか、もはや無いだろ。時代錯誤。
736 :
736 :2008/02/15(金) 02:04:39 ID:9qMqMDwX
先ほどスレ立てるまでもない質問スレで質問させてもらったんですが、板違いってことで こちらで再度質問させてくださいまし。 一昨日からずっとこの問題を考えているのですが、基礎知識があまりに不足していて困っています。 プログラムに詳しい方いましたら長いですが答を導き出していただけませんでしょうか? 以下に掲げたおこずかい帳プログラムの説明を書きなさい。ただし、書き方は次の例 を参考にすること。 <form name=f> <input type=text name=i value=""> <input type=button value="偶奇判定" onClick="check()"> </form> <script> function chech(){ var a=Number(document.f.i.value); a=a+1; if(evenp(a)) alert("偶数"); else alert("奇数"); } function evenp(a){return a%2==0} </script>
737 :
736 :2008/02/15(金) 02:04:59 ID:9qMqMDwX
つづき 【説明例】 formタグとinputタグによって、画面にテキスト文字表示窓と偶奇判定用のボタンを 表示。この際、ボタンをクリックした時、関数check()を呼び出すように設定する。 関数checkは、テキスト文字窓から入力された値(document.f.i.value)を関数Number によって数値に変換し、これを変数aに代入する。ついで、aの値を1増やし、関数 evenpによって変数aの値が偶数か、奇数か判別し、偶数の時は"偶数"、奇数の時は" 奇数"とalertウィンドウに表示する。 関数evenpは、与えられた値(a)が偶数かどうか判別(aを2で割った余りが0かどうかで 判定)し、結果(trueかfalse)を返す。 ------------------------
738 :
736 :2008/02/15(金) 02:05:21 ID:9qMqMDwX
<h3>おこずかい帳</h3> <form name=kozukai> 品物<input type=text value="" name=sinamono> 値段<input type=text value="" name=nedan> <input type=button value="記録" onClick="kiroku()"> <input type=button value="並び替え" onClick="sort()"> <input type=button value="修正" onClick="teisei()"> <input type=button value="削除" onClick="sakujo()"> </form> <div id="area"></div> <script> var Table=new Array(); // {good: price:} var count=0; // 登録される品物の個数 function kiroku(){ var good=document.kozukai.sinamono, price=document.kozukai.nedan, pos; if((pos=aruQ(good.value))==-1){ Table[count]={good: good.value, price: Number(price.value)}; count=count+1; } else{ Table[pos].price=Table[pos].price+Number(price.value); } good.value=""; price.value=""; display(); }
739 :
736 :2008/02/15(金) 02:06:03 ID:9qMqMDwX
<h3>おこずかい帳</h3> <form name=kozukai> 品物<input type=text value="" name=sinamono> 値段<input type=text value="" name=nedan> <input type=button value="記録" onClick="kiroku()"> <input type=button value="並び替え" onClick="sort()"> <input type=button value="修正" onClick="teisei()"> <input type=button value="削除" onClick="sakujo()"> </form> <div id="area"></div> <script> var Table=new Array(); // {good: price:} var count=0; // 登録される品物の個数 function kiroku(){ var good=document.kozukai.sinamono, price=document.kozukai.nedan, pos; if((pos=aruQ(good.value))==-1){ Table[count]={good: good.value, price: Number(price.value)}; count=count+1; } else{ Table[pos].price=Table[pos].price+Number(price.value); } good.value=""; price.value=""; display(); }
740 :
736 :2008/02/15(金) 02:06:56 ID:9qMqMDwX
function aruQ(g){ var i; for(i=0; i<Table.length; i=i+1){ if(g==Table[i].good) return i; } return -1; } function sort(){ bsort(Table, lessp); display(); } function bsort(a,cmp){ var i,j,x,size=a.length; for (i=0; i < size; i=i+1){ for (j=size-1; j > i; j=j-1){ if (cmp(a[j],a[j-1])){ x = a[j-1];a[j-1] = a[j]; a[j] = x; } } }} function lessp(a,b){return a.price<b.price; } </script>
741 :
736 :2008/02/15(金) 02:08:04 ID:9qMqMDwX
自分で考えて行き詰ったところは、 formタグにおいて、アクションが指定されていません。 scriptタグにおいて、処理系の宣言がされていません。 inputタグにおいて、関数check()が見つかりません。 です。分かる方お力貸してください。。
いろいろ足らんもんがあるから動きようがないな でも HTML 部分を見るだけで おおよそどんな動作を意図してるのかわかりそうなもんだが
>アクションが指定されていません。 >タグにおいて、処理系の宣言がされていません。 これって何のメッセージ?
744 :
Name_Not_Found :2008/02/15(金) 06:16:27 ID:59oY9aou
for文って案外使えないのな ランダムに動くオブジェクトを自動で数十個生成とかできないから いちいちオブジェごとに定義せんとあかん
>>741 そのエラーメッセージ見て直せるようにならないと。
<form name="kozukai" action="#" onsubmit="return false">
<script type="text/javascript">
そしてcheck()を呼び出しているinputは貼った中にないけど、
関数check()も定義されてないよね。それを定義するのでは。
だいたいが最初から沢山書いて動かそうとしないで、動作を
確認しつつ少しずつ増やして行くようにしないとね。
>>744 あんたの頭が使えないだけでしょ。そんなもん過去スレに
沢山あると思うが。もちろんループで生成するやつね。
ハッ
748 :
736 :2008/02/15(金) 11:48:08 ID:qtH1/FYL
すみません、プログラムを入力するのではなくて、例にならってプログラムの説明を しようと思ったのですがその説明の方法がわからず困っているんです。 737の説明例のようにこの「おこずかい帳」プログラムの説明を文章でしようと思うのです。 宜しくお願いします。
>>736 >>741 を書いてるから組む事についてレスがきたんじゃないかと。
例にならって書くなら同じように書けばいいだけでは。
エラーについてもformでactionがないから〜とか書けばいい。
ところでなんでおこ「ず」かい?
それを言い出したら*並び替え*
JavaScriptかCSSでIEで印刷する際の用紙方向を 設定できますでしょうか?
できんでしょ。いまどきのならプリンタがすんじゃないの。
>>748 地道に勉強する。結局、これが一番良い。
754 :
Name_Not_Found :2008/02/16(土) 06:36:23 ID:9eCM3gQy
ドアラ グッドウィルドームに立つ!
再生:654,421 | コメント:123,256 | マイリスト:20,510
http://www.nicovideo.jp/watch/sm354359 凄い勢いで踊るドアラ
再生:482,525 | コメント:28,129 | マイリスト:17,837
http://www.nicovideo.jp/watch/sm1489303 ドアラが異端になった経緯
再生:424,284 | コメント:36,521 | マイリスト:9,417
http://www.nicovideo.jp/watch/sm378355 ドアラーズブートキャンプ
再生:241,338 | コメント:18,996 | マイリスト:7,229
http://www.nicovideo.jp/watch/sm409082
フレームで割ってないページについては、以下で全フォームを抜き出せると思うのですが、 var i,j; for(i=0;i<document.forms.length;++i){ for(j=0;j<document.forms[i].elements.length;++j){ alert(document.forms[i].elements[j].name); } } フレームで割ってあるページ内の全フォームを抜き出すことは可能でしょうか?
frames
同じページの中に複数のジャバは使えますか。 同時に作動させることは可能でしょうか。混同しないか と不安です。最大何個置けるか教えてもらえると助かります。
>>757 >>1 > ・JavaScriptとJavaの違いを理解する者
JavaでなくJavaScriptね。質問からしてJavaScriptだと思うけどJavaならスレ違い
で、質問内容よくわからないけど、「どのくらい外部ファイル読み込めるか」
って話ならいくらでも。
でも重くなるしグローバル変数汚すだろうから結局試さなきゃわからんよ
>>755 同じドメインであればできるし
異なるのならできない
objにイベントをつけてるんですがonmouseoverだと切り替わ るのにonclickだとだめです。なにかあるんでしょうか。 ご指南お願いいます。
作品の個々のページからメールフォームに飛べるようにJavaScriptでやってみたのですが、
そのメールフォーム(自作設置)の特定のテキストボックスに文字(作品名)を入れたいと
思っているのですが、上手くいきません。
誰かわかりやすく教えてください。_| ̄|○
イメージ的には下のアドレスサイトの名刺画像からの拡大から注文したときに文字が
入るみたいにしたいのですが。
ttp://www.otoko-meishi.com/cool/zoom/nico019.html JavaScript ではないですかねぇ。
お世話になります。右クリ禁止のいちばん短くて強力なのを 教えてください。クロスで使えるものだと理想的なんですが。
JSってPHPより難しくないか?
ていうかコードが醜いんだよ(´・ω・`)
自分は php のが読みづらいと思うなあ
JavaScriptはもっとも進化したオブジェクト指向元号
JavaScriptは弄り甲斐がある
a=a*3; aに3を掛けたい場合、こう書いていました。 右辺にaを使わずに同じ意味にするにはどんな方法で書けばいいですか?
a*=3
b=a; a=b*3;
>>761 簡単には、飛ぶ時のURLの末尾に「?ファイル名」をつけておく。
そして飛んだ側のonloadから呼ぶJavaScriptコード中でlocation.qurey()
を参照して、ファイル名がくっついていてたらそれをフォームを入れる。
774 :
Name_Not_Found :2008/02/16(土) 23:25:49 ID:TanpvHzE
function a(b, c) { return {d:b, e:c}; } この戻り値ってなんなの? f = a(10,20) f.d //10 f.e //20
なんやねん
(´・ω・`)なんなの?
なんやて!
なんですと?
ナイショナイショ( ´・ω・`)(´・ω・` )ネエネエ,ナンナノ
なんでござるか?
なんでありんしょ?
どげんしたとね?
なんだっちゃ?
どげんかせんといかん
なんばしよっとね?
what?
IEにエクスプローラからファイルがドロップされたら input タグにファイル名を表示したいんですけどJavaScriptじゃ無理ですか? できればinputタグだけがドラッグドロップを受け付けるようにしたいんですけど。
790 :
Name_Not_Found :2008/02/17(日) 14:49:50 ID:X8M+5Nxy
ある特定の範囲に マウスポインタが外から中へ入ったことと マウスポインタがそこから出たことを判断するイベントは onclick、onmouseoverで処理出来ますが、 ある瞬間(その範囲をクリックしたあと1秒後など)に、マウスポインタがその範囲に存在するかどうかを調べることは可能でしょうか?
方法はいろいろありそうだけど 入ったことと出たことが判別できているのなら そのフラグをグローバル変数に入れとくのが一番簡単なんじゃない。
793 :
Name_Not_Found :2008/02/17(日) 17:06:13 ID:LgbTEkIQ
JavaScriptって何でもオブジェクトって感じじゃない? 俺はそれが好き。
今時グローバルを汚すようなプログラムはあれやな
テキスト入力もドロップダウンも可能なコンボボックスはどのように作るのでしょうか? (url入力欄みたいな) javascriptのみで行いたいのですが・・・
>>797-798 まず、全然すごくない。1時間あればゼロから作れるから、それ単体では面倒な雑務にしかならない。
そして、使う側からすれば、何のメリットもない。
どちら側から見ても、儲けにつながらない。
選択コントロールが使われる理由は、選択肢から選ばせて、後のデータ処理を機械化すること。
人が何百万ものデータを検証する状況は今でも普通にあるわけだが、
その無駄を切り捨てるための選択肢が、入力できてしまっては、台無しだ。
>>1 もうこのスレで終わりにしようか。
理由は分かるよな。さすがにもう堪えられんわ。
去年くらいでもうJSは浮上不可能なほど隙間に追いやられたし。
>>796 Google Readerで使われてるよな。
入力していくと入力値に応じてドロップダウンの選択肢が消えていくアレ。
大量にフィードがある人にはかなり便利だと思う。
本を見ながら背景色を設定するコードを書いたのですが動作しません 本ではdocument.bgColorを使っていたのですが動作しないので ぐぐったところ廃れた方法なのでdocument.style.backgroundColorを使えとのことでした ですが、動作しません。何か動作に支障の出る部分はありますか? <HTML> <HEAD> <TITLE>js</TITLE> </HEAD> <BODY> <script language="JavaScript> document.style.backgroundColor ="red"; </script> </BODY> </HTML>
document.body.style
もっと分かりやすく教えろ
>>802 ありがとうございます。
document.body.style.backgroundColorに変更して
更に"red"を'red'にしてみたら動きました。
ありがとうございました。
805 :
Name_Not_Found :2008/02/18(月) 11:18:56 ID:xdEckxVk
質問させて下さい
<SCRIPT language="JavaScript">
<!--
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "
http://xxx.xxx.xxx/ ";
jmp[1] = "
http://xxx.yyy.zzz/ ";
jmp[2] = "
http://xxx.abc.com/ ";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img0.jpg";
img[1] = "img/aa.gif";
img[2] = "img/bb.png";
n = Math.floor(Math.random()*jmp.length);
document.write("<A href='"+jmp[n]+"'>");
document.write("<IMG src='"+img[n]+"' border='0'>");
document.write("</A>");
//-->
</SCRIPT>
上記だと画像がランダムに表示されて画像をクリックすると指定したURLに飛びます。
これにもうひとつ記述を付け加えるにはどうですばいいでしょうか?
画像の上か下に各サイト名をつけてあげたいんです。
どのように処理をしたらいいのか教えて下さい
>>799 select だから検証しなくていいとでも思ってるのか?
>>805 同じ書き方で書くと、titleとかにして付けたせばいいだけだから下みたいな感じかな?
htmlの質問のような気がするけど。
<script language="JavaScript">
<!--
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
title = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "
http://www.nifty.com/ ";
jmp[1] = "
http://clip.nifty.com/ ";
jmp[2] = "
http://aplug.nifty.com/ ";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img0.jpg";
img[1] = "img/aa.gif";
img[2] = "img/bb.png"
// タイトル(数字はジャンプ先のアドレスと対応)
title[0] = "ああああ";
title[1] = "いいいい";
title[2] = "うううう";
n = Math.floor(Math.random()*jmp.length);
document.write("<A href='"+jmp[n]+"'>");
document.write("<IMG src='"+img[n]+"' border='0'>");
document.write("<span>"+ title[n]+"</span>");
document.write("</A>");
//-->
</script>
808 :
807 :2008/02/18(月) 12:56:52 ID:???
>>805 ごめん、実際に試しに使ったリンク書いちった。
あと、自分の書き方で書くなら下みたいな感じ。
<script type="text/javascript">
var links = [
{
jmp: '
http://xxx.xxx.xxx/ ',
img: 'img/img0.jpg',
title: 'ああああ'
},
{
jmp: '
http://xxx.yyy.zzz/ ',
img: 'img/aa.jpg',
title: 'いいいい'
},
{
jmp: '
http://xxx.abc.com/ ',
img: 'img/bb.jpg',
title: 'うううう'
}];
var n = Math.floor( Math.random() * links.length );
document.write('<a href="' + links[n].jmp + '">');
document.write('<img src="' + links[n].img + '" style="border:0">');
document.write('<span>' + links[n].title + '</span>');
document.write('</a>');
</script>
810 :
Name_Not_Found :2008/02/18(月) 16:55:00 ID:xdEckxVk
>>807-808 さん
わざわざ動作まで確認してもらいありがとうございますm(_ _"m)ペコリ
感謝しております
textareaから値 ほにゃらら「それは なんで かな」 の、様な改行されている文字列を変数aに入れました ほにゃらら や それはなんでかな の部分は毎回変わりますが、「と」は2か所しか出てきません この変数aから「」の中身を取り出すにはどうしたら良いのでしょうか? alert(/」(.*?)「/m.exec(a)[1]) だとダメでした・・・
それじゃだめでしょね。反対だもん。
813 :
Name_Not_Found :2008/02/18(月) 22:23:18 ID:K0pLsQ4k
質問させてください。 ドキュメントルートより上の階層のjsファイルは読み込むには 何かサーバの設定が必要なのでしょうか? また、それは危険なのでやめた方がいい、などありますか? 検索してみましたが、いい検索ワードが見つからなく悩んでます。
>>811 どこに と が出てくるんだよって悩んだじゃないか
改行消した方が良いね
>>812 がいってる通りカッコも逆だ
/「(.*)」/.exec(a.replace(/\n/g,''))[1]
かな
>>813 jsを取得しないといけないのはページをみているユーザのブラウザ
ってことはブラウザから見えないところはダメ
なのでドキュメントルートより上にjsは置けない
>>815 なるほど、了解しました。
ありがとうございました。
いったん改行をなんかに置換すればいいじゃない
コピペミスって、それはコピペミスじゃないのじゃ?
企画力 ↓ デザインセンス ↓ ソフトウェア操作能力 DreamWeaver ↓ ブラウザ毎の表示の差の知識 高レベルなプログラム能力 HTML→XHTML→CSS→SEO→JavaScript→DOM→AJAX ↓ ↓ ↓ プログラム能力・データベースの知識 ↓ PHP+MYSQL ↓ ↓ ↓ 更なるプログラムへの知識 ↓ PEAR→SMARTY ↓ デザイン能力・色彩能力・ソフトウェア操作能力 フォトショップ・イラストレーター ↓ アニメーション作成能力・プログラム能力・ソフトウェア操作能力 フラッシュ→ActionScript 他、サーバー、ドメイン管理、セキュリティーへの注意能力、最新技術への知識 WEBデザイナーすごすぎ!
キエロ
822 :
Name_Not_Found :2008/02/19(火) 16:53:59 ID:A1IsNfRZ
<script type="text/javascript"><!-- bgImg= new Array(); bgImg[0]="***0.gif"; bgImg[1]="***1.gif"; bgImg[2]="***2.gif"; function bgImgRND(){ if (document.getElementById){ n=Math.floor(Math.random()*bgImg.length); document.getElementById("tb1").style.backgroundImage="url("+bgImg[n]+")"; } } //--></script> <body onLoad="bgImgRND()"> <table border="0" cellspacing="0" cellpadding="0" bgcolor="#ffcc33" align="center" id="tb1"> <tr> <td> </td> </tr> </table> このように書いてテーブル画像をランダムに表示させていますが、画像を右下など任意の場所に固定するには どのように記述してあげればいいでしょうか? アドバイスお願いしますm(_ _"m)ペコリ
var はスコープの一番初めにまとめて行われるんですよね? つまりそれがループの中に書かれていたとしても、速度的に不利になることは無いということでしょうか
コードは?
>>822 そりゃCSSの範疇だろう。
position fixed でググリやれ。
現在時刻をタイトルにリアルタイム表示(1秒間隔)したいのですがうまくいきません。 setTimeout("timer()", 1000);でtimer()関数を1秒ごとに呼び出そうとしているのですが 実際には一度時刻が表示されたらタイトルが更新される事はありません。 どうすればよいのでしょうか? <html> <head> <title></title> <script language="JavaScript"> var nowtime = new Date(); function timer() { time = nowtime.toLocaleString(); document.title = time; setTimeout("timer()", 1000); } </script> </head> <body> <input value="timer" onclick="timer()" type="button"> </body></html>
time = new Date().toLocaleString();
1234 という数値がったとして、これから23の部分だけ抜き出すにはどうしたらいいでしょうか? 1000で割って、その整数値に1000を掛けて、1234から引いて、引いたものを100で割って・・・ などという方法は思いつきましたが、なんかこうポンとできるのはありませんか?
parseInt(String(1234).substring(1,3))
>>831 特定のキーワードに対応したページが表示されるだけの単純なシステム
同じワードには同じことしか返さないし、未設定ワードに関しても然り
基本だけ知ってれば余裕で作れるが、バリエーション増やすのは只の作業だな
自動的にパターン増やしたり、変則的に返すとなると少し面倒だが、
それも基本の応用の範囲内だな。高度なAI作るわけじゃないし
ただ言っておくと、この手のものはつまらないと感じると人がほとんど
コンテンツと生かすにはセンスと技術が要るだろうねぇ
>>832 お早い返信ありがとうございます!
単純なシステムと聞いて一安心です。
もう一度質問してしまいますが、上記のURLサイトのようにボタンを押してリンク先のコメントページに移動するのではなく、
ボタンを押すと同じページ内でコメントが表示、コメント部分だけ切り替わるような設定が理想です。
そういったページを見たことがないのですが、これは可能でしょうか?
また、もし手間がかからないようでしたらある程度のscriptを書いてもらえると非常に助かります。
よろしければお願いします。
834 :
831 :2008/02/20(水) 02:08:22 ID:8d5hqvHy
833=831です。
>>833 可能
ちなみにURL見ればわかると思うが、そこのはJavaScriptじゃなくてCGIだから
使ってんのはPerlやPHPあたりだと思う。その辺考慮するとよろし
>>833 >そういったページを見たことがないのですが、これは可能でしょうか?
うそつき
最近はそんなページを見ない方がめずらしいぞ!
837 :
831 :2008/02/20(水) 03:07:55 ID:8d5hqvHy
>>835 ありがとうございます。
どの言語でもページを作れればと思うのですが、
手ごろにメモ帳でつくれるscriptというのはないでしょうか?
>>836 ネットはよく見る方かと思いますが思い浮かびませんね。
scriptの存在が最近わかったくらいですので注意深く見てないだけかもしれませんが。
ってどうでもいいですね・・
お前もう総合質問スレ池
HTMLからXHTMLへの作り替えをしている最中に、今まで使えていたランダム画像表示のコメントアウト記述が 使えないという事が判明しました。 外部JSファイルに切り替えるのが適切と載っていたので、外部jsファイルの作成は完了しました。 <script language="JavaScript" type="text/JavaScript" src="random.js"></script> ここまでは分かるのですが、実際に画像が表示されるHTML箇所への記述はどうしたらいいのでしょうか? <script type="text/javascript"><!-- imgrandom() //--></script> 色々と検索してみたのですが、見当たらなかったので質問させて頂きました。
cdata xhtml でググれ
841 :
831 :2008/02/20(水) 13:35:11 ID:8d5hqvHy
>>838 ごめんなさい、しつこいようですが必死なんです。
問題を解決する方法が総合スレにあるのかもわかりませんが、
正直今から勉強する手間がかけられない状態です。
いろいろなスレで質問させていただいたところ、このスレが適切だと判断しましたので
こちらで解決できればと思っています。
詳しいことをのせてもらうと、
入力フォームから特定のキーワードを入力してボタンを押すと
そのキーワードに従ってページ内にテキストが表示されるようなスクリプトを教えてもらいたいと思っています。
入力フォームの作り方はわかったのですが特定のキーワードの設定の仕方、
どうやってテキストを表示させるかがわかりません。
皆さんの知識をお貸しください。
* * * ウソです + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
var keyword = ["ほげ", "うんこ", "ぬるぽ"]; var reply = ["ふが", "ちんこ", "ガッ"]; function getReply(input) { for (var i = 0; i < keyword.length; i++) { if (input.indexOf(keyword[i]) != -1) { return reply[i]; } } return "日本語でおk"; } alert(getReply(prompt("何か言え", "っうぇ")));
844 :
Name_Not_Found :2008/02/20(水) 16:16:15 ID:Ph4d1jnU
HTML&CSSの知識しかない者です。 オンラインゲームのファンサイトを運営しており、新しいコンテンツとして、 JavaScrptを利用したゲーム内装備の着せ替えシミュレーションを作りたいと思っています。 JavaScirptの知識はないに等しく、他プログラム言語も全く知らない状態です。 リファレンスや書籍を睨みながらチャレンジし始めましたが、文法からしてよくわかりません…。 このような状態の自分でも理解しやすい、1から始められるお勧めの書籍&リファレンスサイトがありましたら紹介して頂けないでしょうか。 宜しくお願い致します。
オンラインゲームのファンサイトうp
846 :
839 :2008/02/20(水) 16:26:05 ID:???
>>840 対応しているブラウザが少なく非推奨と書いてあったので躊躇していましたが、
結局は<![CDATA[〜//]]>で代用する他ないのでしょうか・・
Imageオブジェクトにローカルのjpgを読み込ませようとしてるのですが IE7だとcompleteがtrueになりません。※IE6だと出来てます おそらくIE7のセキュリティ要件が影響しているような気がするんですが この件についてなにか情報がありましたらご教授願いますでしょうか。 よろしくお願いします。
849 :
Name_Not_Found :2008/02/20(水) 18:29:59 ID:Ph4d1jnU
>845 マイナーゲームの自己満サイトで見所も何もない上 ソースもごっちゃんごっちゃんで恥ずかしい代物ですからうpはご勘弁下さいm(_ _)m >847 自分もFlashの方が手っ取り早いとは思うのですが、現在Flash製作ソフトを持っていないのです。 これを機にJavaScriptも扱えるようになりたいので、 ご紹介頂いたスレを参考に自分に合った書籍を探そうと思います。 ありがとうございました。
850 :
831 :2008/02/20(水) 19:49:14 ID:???
>>843 ありがとうございます!
これを期にスクリプトの勉強をはじめます。
いずれは教える側になれるようになりたいものです。
スレ汚しスイマセンでした。
>>846 対応しているブラウザが少ないんならxhtmlに変えなければいいのに
>>851 整形式の謎XML(XHTML)にしておくだけでも、使用が予想される全ての(と言っても10もない)言語で微妙に楽ができることが保証される。
そもそも、この板で想定するようなブラウザのためにXHTMLにしているわけではない。
じゃあxhtmlならCDATAでええやん。あほか。
わけわからんやつだな・・・
<とか入ってないんならCDATAなくてもいいし…
Javascript無効でアクセスすると「Javascript有効にしてください」という一文だけ表示されてサイト閲覧不能な状態にしたいんですがお助け下さい
表面上だけでいいのならnoscript要素内のなんかをCSSで前面に目一杯広げとくとか もうちょいしっかりさせるなら、XMLHttpRequestとサーバサイドのスクリプト絡めるとか
文字列の中から「/(スラッシュ)」を取り除きたいのですが、どう指定すれば良いのでしょうか? var str = 'aiu/eo'; var ret = str.replace(///,''); 上記だとエラーになってしまいます。 ググってみると、スラッシュはメタ文字じゃないと書いてるのを見つけて混乱してます;;
>>856 元々div要素あたりに「Javascript有効にしてください」って一文のみ表示させといて、
onLoadでinnerHTML使って本来表示させたい全ての項目を挿入したら?
相談なんですが、音の出るホムペは嫌われますか? 自分はすごくリラックスできるので訪問してくれた人にも 聞かせてあげたいとおもったんですが、ひどいことを言われ ました。せっかくジャバスクリプトを組んだのにです。 ホームページ制作の経験のある方、教えてください。 それと、Firefoxとの<EMBED>のクロスブラウザーするには どうすればいいんでしょうか、重ねてお願いします。
音が出るのとこのスレとどんな関係があるんだ?
早急なお返事ありがとうございます。 音はジャバスクリプトで作っています。 あと、Firefoxとの<EMBED>のクロスブラウザーするには の方はどうでしょうか?
変な画像がマウスストーカーしてきたり勝手にBGM流れたりするのはかなりウザイな うん かなりウザイ
早急なお返事ありがとうございます。 やはりうっとうしい感じですか? マウスストーカーというのはどうやるのでしょうか? 女性でも付回すわけではないと思いますが面白そうです。 よろしければ教えてください。
演出の使い方次第では化けるが、闇雲に使ってもうざがられるのがオチ いろんな企業のサイト見てどう印象受けるのか実際にアクセスしてみるといいよ Flash使ってるところが多いけど、参考にはなる マウスストーカーはググれ
>>864 好きな音楽を聴きながらネットする人だって少なくないと思うし、よっぽど心地いいんだが
流すなら最低でも On/Off 出来るようにしとけ
配列のソートに匿名関数を渡したら、Firefox のエラーコンソールで anonymous function does not always return a value と注意されました これは匿名関数が値を返すことに期待するなということですか? また、返さない例はありますか?
861,863,865,866の各皆様 貴重なご意見ありがとうございました。 参考にさせていただき快適なウェブを実現したいと思います。 ON/OFFスイッチを設置してユーザーの意思を尊重するようにした いと思いました。とても役に立ちました。
>>867 その匿名関数を貼ってみ。きっと値を返し損なう場合があるはず。
駄目な例(aとbが等しいとアウト):
function(a, b) { if(a < b) return -1; if(a > b) return 1; }
>>858 str.replace(/\//, '')
メタ文字ではないが、RegExpリテラルの前後を区切る文字ではあるな。
すみません。 Firefix→Firefoxです。
>>869 そういう意味だったんですか!
function(a, b) { if(a < b) return -1; if(a > b) return 1; if(a == b) return 0; }
こうしてたのを
function(a, b) { if(a < b) return -1; if(a > b) return 1; return 0; }
こうしたら注意が出なくなりました
ありがとうございました
>>872 上のバージョンはaやbにundefined、NaNなどが来ると
何も返らないことがあるね。配列中のデータは大丈夫?
フォームであらかじめ数値チェックして数値以外が入力された際の処理をサーバ側でさせないようにするため以下のスクリプトを書いたのですが、 アラートが出た後、サーバにデータが送られてしまいます。 どうすればアラートだけだせるのでしょうか? window.onload = function() { document.getElementById("submit").onclick = function() { var text = document.getElementById("text_form").value; var result = text.match(/[^0-9]/); if( !text || result ) { new Effect.Highlight("text_form"); alert("半角数字を入力してください。"); document.getElementById("text_form").focus(); document.getElementById("text_form").select(); } }
875 :
874 :2008/02/22(金) 12:40:24 ID:???
追記 ブラウザはsleipnir(trident)です。
最近javascriptって書くほうがかっこよく思えてきた
>>875 form の onsubmit で Event#preventDefault
少しくらいの負荷軽減にはなるかもしれないけど、最終的なバリデートは鯖サイドでやるようにね
>>874 一番普通には、そのsubmitにつけたonclickハンドラの関数から
trueを返すかfalseを返すかでsubmitの可否を指定する。
アンタはなーんにも返してないから。たとえばアラートは
出すけどデータは送りたい、というときはどう書くつもりだったの?
ブラウザがESPであなたの脳内を読み取ってくれるとか?
return false; でキャンセル出来るなんて保証されてないけどな
タイマーを作成しているのですが、IEだとエラー、firefoxだと正常です。 どこに問題があるのでしょうか? エラーと出る行は<input value="60minutes timer" onClick="start()" type="button">です <html> <head> <title></title> <script language="JavaScript"> var ot; function start() { ot = new Date(); timer(); return; }
function timer() { var nt = new Date(); rest = (60 * 60 * 1000) - (nt-ot); min = rest/(1000*60); sec = 60 * (min + 1 - Math.ceil(min)); if(min < 0) { window.alert("finish"); return 0; } min = Math.ceil(min-1); sec = Math.ceil(sec-1); if(min < 10) min = "0" + min; if(sec < 10) sec = "0" + sec; document.title = (min+':'+sec) setTimeout("timer()", 100); } </script> </head> <body> <input value="60minutes timer" onClick="start()" type="button"> </body></html>
window['start']() にすれば大丈夫だった気がする
ぷ。お大事に
今度はstartが予約語とほざくやつが現れたか。な、終わってるだろ、JS。ASやろうぜ、ASをよ。もうJSにまともな奴はいない。
891 :
882 :2008/02/22(金) 22:33:30 ID:???
気になったのでいろいろぐぐったらどうやら startという名前の関数をイベントから使用するとIE系でエラーが出る. colorという名前の関数を使用するとエラーが出る. ということらしいです。
予約語のリストはECMAを見れば載ってるよね。予約語とは 何か知らないまま予約語という言葉を使ってみたかったのか。 このスレもそろそろ900だね。テンプレ論議あれば今どうぞ>>皆様
IE 以外で確認しないような奴が質問してきたから便宜上「 IE では」っていう修飾を省いたわけだが そもそも色々と不思議実装な IE なんだから、他より予約語が二、三個多いことにしても違和感ないだろ なんで AS キチガイにまで叩かれなきゃならんのだ
>>893 そいつは以前からJSは終わってる終わってる
言いつづけてる奴だから相手にしない方がいいよ。
「予約語」というのは通常の識別子(変数名等)として使う ことができないように「予約」されている識別子のことだよね。 たとえば「while」という識別子は予約語なので、こういう コードは即構文エラーになる(Mozで確認)。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> </head><body> <script type="text/javascript"> function test() { var while = 1; return while; } </script> </body></html> しかし次のコードはエラーにはならない。IEではエラーに なるっていうこと??(今手もとにIEがないもんで) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> </head><body> <script type="text/javascript"> function test() { var start = 1; return start; } </script> </body></html> 洩れは単にwindow.start というプロパティと干渉するから エラーになるだけで、予約語ではないと思っているが。
>>895 うむ、確かに
>>884 はさすがに断言しすぎたと思ってる
window['start'](); なら問題無いんだが、これは結局なんなんだ?
JSは終わっているのでどんな講釈を垂れても糞なんだが、ここは専用便器だから大丈夫だろう。 いわゆるイベント属性の値として書く時、その値全体が匿名関数の本体となる。 この時、JavaScriptかJScriptかに関わらず、eventという名前でイベントオブジェクトを参照できる。 thisはW3CDOMで言うところのcurrentTargetを参照する。 そして、その匿名関数内では、ローカル変数探索に失敗したら、次にthisのプロパティを探索する。 IEの特殊な仕様が一つある。フォームコントロールにそもそも存在しない属性名(たとえばhogeとする)を探す時、それがそのフォームコントロールに書かれていなければ、先祖要素のFORM要素の属性名から探す。 もし仮にそのFORM要素にhoge属性が書いてあったら、探索に成功する。 IEでは、このイベント属性値としての振る舞いが、FOR属性やEVENT属性があるSCRIPT要素の内容として書いた場合にも当てはまる。 つまりそのSCRIPT要素の内容全体が匿名関数の本体になり、thisはW3CDOM用語で言うcurrentTarget、即ち、FOR属性値をID属性値とする要素(要素オブジェクト)を指す。 このようなthisの扱いはもともとHTML上のJavaScriptに見られていて、IEのものは一つの従順な実装と言える。 HTML以外だと、XBLでも同じようなthisの扱いをする。 XBL即HTCだが、ここではthisをこのようには扱わず、elementという名前の変数が同じような振る舞いをする。
IEのattributeなんですが、getだけ使えないってどういうことなんで しょうか。うっかりペアで使ってえらいことになってます。
>>900 そもそもgetAttribute、setAttribute
を使うとろくなことがないというのがこのスレの常識なんでね。
ろくなことがないとは
財布忘れたり、携帯なくしたり、犬に吠えられたり、PCがフリーズしたり
>>902 setAttributeで過去スレ全集を検索してみれば。
質問です。 var add = new Function("x", "y", "return x + y;"); という式のnewを省略したら、なんか問題ありますか? var add = Function("x", "y", "return x + y;");
IEで、href属性をgetAttributeすると おせっかいにも絶対パスで返してくるのですが、 相対パスのままゲットする方法はないでしょうか?
文字を表示させようとすると、頭にundefinedがついてしまいます。 以下のような数字以外の文字を抜くスクリプトなんですが、 どうすればundefinedつかないでしょうか? var str; var char; //valueを1文字ずつ見ていく for(i=0;i<value.length; i++) { char = value.charAt(i); //charが数字ならstrに追加 if(char.match(/[0-9]/)) { str = str + char; } } //最終的なstrをtextfieldに入れる document.getElementById('TextField').value = str;
909 :
908 :2008/02/24(日) 00:41:25 ID:???
関係ないけど、2chって行の左側にスペースいれられないんでしょうか。
var str="";
>>908 str = str + char;
右オペランドに str があるけど
初めて実行されるときには undefined だよね
>>909 だって html だもの
912 :
908 :2008/02/24(日) 00:47:50 ID:???
test
>>907 outerHTMLから正規表現で取り出す
>>907 IEのことはMSDNライブラリで調べるとよろし
http://msdn2.microsoft.com/en-us/library/ms536429 (VS.85).aspx
> vAttrValue = object.getAttribute(sAttrName [, iFlags])
> iFlags Optional. Integer that specifies one or more of the following flags:
> ...
> 2 Returns the value exactly as it was set in script or in the source document.
ポップアップするページの内容をjavascriptで生成しようと思うんだけど、空のhtmlとか用意しとかないとダメ?
ダメじゃないよ
918 :
905 :2008/02/24(日) 14:42:46 ID:???
919 :
907 :2008/02/24(日) 15:57:16 ID:???
>>914 ,915
xml+xsltでページ作ってるせいか
iFragつけても値が変わらなかったので、
テキスト文字列として取り込んでから
サブマッチで属性値ぶっこ抜くことにしました。
レスありがとうございました。
testmetoo
>>921 window.open('about:blank', ...)
とかがよくあると思うが。
お願いします。 Firefoxで、document.activeElement.sourceIndexと 同じ値を得るにはどうしたらいいんでしょうか?
924 :
Name_Not_Found :2008/02/25(月) 00:42:40 ID:gbJUHLAK
prototype.jsを使ったサイトを作っているのですが、 IE6、FFではデスクトップ上で動くのに、 IE7ではなぜか「読み込み中にエラーが発生しました」とエラーが出ます。 「ブロックされているコンテンツを許可。」もしています。 javascriptのエラーがないか、ファイヤーバグで確認しましたが、ありませんでした。 IE7の方で何か設定しなければならないのでしょうか? よろしくお願いします。
>>924 prototype.js読み込んだだけでそんなことになった覚えがない
prototype.js読み込んだだけでなってるのか、自分のコードでなってるのか
切り分けしたの?
>>925 prototype.jsを読み込んだだけではエラーはでないのですが、
prototype.jsを利用したコード、
(タブをクリックすると、部分的にhtmlが書き換えられる。というものです。)
を実行しようとすると
「読み込み中にエラーが発生しました。」というエラーがでます。
ファイヤーフォックスのツール、「firebug」というツールで
javascriptのエラーが確認できるのですが、エラーは見当たりませんでした。
IE6、FFでは全く問題なく動作しています。
サーバーはまだ借りていないので、以上は全てデスクトップ上での確認です。
>>926 いや、それならサンプルコード晒さないと。
>>2 のテンプレに書いてあるじゃん
>>926 こんな感じです。
javascript部分
function id名()
{
var a = new Ajax.Updater(
"id名",
"呼び出すファイル名.html",
{ "method": "get",
"parameters": "a=b&c=d&e=f",
onSuccess: function(request) {
},
onComplete: function(request) {
},
onFailure: function(request) {alert('読み込みに失敗しました');},
onException: function (request) {alert('読み込み中にエラーが発生しました');}
}
);
html部分
<li id="id名" onclick="id名()">xxxxxxxxx</li>
衝撃的
ちなみに、今確認してみましたが、IE5.5でも動作は可能でした。
931 :
924 :2008/02/25(月) 06:35:27 ID:???
無料レンタルサーバーで動かしてみたら、問題なく動きました。 やっぱりIE7の設定ぽいです。
>>922 ありがと
あとはその開いたページにhtml書き出してやればいいのね
>>928 ajax使ってるって事はlocalhostでwebサーバ立ててるん?
それともhtmlファイルをie7で開いてるだけ?
後者ならエラー出ても仕方ないと思うけど。
x=2;y=3; function f(a,x,y){alert(a+x+y);} f(1); で6を期待したのですが、なぜ?
引数の数が違うだろ。 三つの箱に一つしかない「1」を入れようとしたら失敗するに決まってる。
>>934 引数として指定した変数は、必ずローカル変数になる。
その書き方では、
一行目のxyと二行目のxyは名前は同じでも中身は別物。
937 :
Name_Not_Found :2008/02/25(月) 21:30:28 ID:M2UkKjZA
誘導されてきた 書き込み内容をドキュメントとして取得するにはどうしたらいいですか
>>937 その「書き込み内容をドキュメントとして取得する」の意味が分かりづらい
けど、入力された文字列をDOMツリーに変換したい、という意味だと解釈して。
適当なdiv要素を用意して、書き込み内容をそのdiv要素のinnerHTMLに入れて、
それからそのdivの子要素をDOMで取得すればいいのでは。
この説明で分からないようなら自分で勉強してね。
>>940 document.activeElement.sourceIndex でぐぐったかね。
有名な話ですけど、 document.createElement('html').style.backgroundColor = 'red'; って何が悪いんですか? マイクロソフトが悪いってこと?
有名な話なら一々聞いてんじゃねえよカス
工工エエエエ(´Д`)エエエエ工工
>>946 ぐぐると、「ループで○○する代わりに
document.activeElement.sourceIndexを使えばいいじゃん」
というのが見つかるだろ。で、そのループで○○する方を
使えばいいと思うが。あとは自分で何とかしろ。
おんぶにだっこするつもりはないから。
>>947 FirefoxのJavaScriptにはsourceIndexのようなものは存在しないということですか?
おんぶにだっこ_させる_つもりはないから。 だろな
おんぶとかだっことかどうでもいいんで sourceIndexのようなものがないのか教えてほしいです。
ないでしょ。
952 :
Name_Not_Found :2008/02/26(火) 18:00:03 ID:f1dTv7/I
Operaで<input>をfocus()するときに、カーソルを<input>内文字列の一番後ろに持って いくにはどのようにしたら良いのでしょうか? FirefoxやNetscapeでは最初から文字列の後ろになりますが、IEやSafariでは先頭になる ので以下のように対応しました。 ですが、Operaでは以下の方法でも出来ません。宜しくお願い致します。 <script> setTimeout(function(){ var input = document.getElementById('test'); var val = input.value; input.value = ''; input.focus(); input.value = val; }, 1000); </script> <input type="text" value="aiueo" id="test" />
prototype.jsと、 jquery.js、 jquery.accessible-news-slider.jsというライブラリを使用しているのですが、 > element.dispatchEvent is not a function > fire([Document index.html#], "dom:loaded", undefined)prototype.js (3972 行目) > _methodized()prototype.js (246 行目) > fireContentLoadedEvent()prototype.js (4006 行目) > [Break on this error] element.dispatchEvent(event); というエラーが出てしまいます。 ググってはみたのですが、結局わからずじまいで、 解決方法はないのでしょうか?よろしくお願いします。
954 :
953 :2008/02/27(水) 01:01:00 ID:???
すいません。 自己解決しました。
955 :
Name_Not_Found :2008/02/27(水) 01:47:49 ID:yxWYeOY6
新スレは975超えたら。テンプレ論議は無かったので テンプレは現スレと同一で。
リンク切れのサイトだけでも削除しておいた方が親切だと思います。
過去スレ全集を3つも並べているのはどうして?
var hoge = "hoge"; "g"が何文字目にあるかというのを返すメソッドがあったら 教えてくださいませ
>>958 了解〜。
>>959 過去スレ全集が1箇所だったときにそれが使えなくなったことが
あり、それ以来紛失しないように/使えないことがないように3つ
くらい維持しているのでそれを掲載している。
>>960 indexOf だ! あとは自分で調べろ!
function hoge(){ var a = Array("1","2","3"); return a; } hoge1 = hoge(); この場合、関数hogeの返り値は配列aへの参照になりますよね? で、この配列aは関数hogeのローカル変数なわけですが、 上の書き方だと、hoge1は、それを関数の外から参照していることになりますよね? これでも一応動作するようなんですが、問題ありますか? 問題があるとすれば、同じ動作をして一番適切な解決方法は何ですか? 配列を値渡しにするのは少し面倒なようなので、 変数をグローバルにするのが一番簡単だとは思いますが、 できればグローバル変数は使わないほうがいいですよね。
問題ない
>>963 ありがとうございます。
つまり、
一度定義された変数の値はスクリプトが終了するまで残り続けて、
それへの参照さえ持っていれば、たとえその変数が定義された関数が終わっていても、
いつでも呼び出せるって解釈していいですか?
>>964 JavaScriptはごみ集めを前提とした言語であり、関数内で生成した
オブジェクトでもそれを外部に返したらそのオブジェクトがどこから
か参照されている限りその領域は回収されずに残される。
>>965 ありがとうございます。よくわかりました。
>>967 そのページが表示されている限りいつまででも。
969 :
967 :2008/02/27(水) 16:29:18 ID:???
968<< thanx
970 :
Name_Not_Found :2008/02/27(水) 20:48:11 ID:DTQJHhIy
HTMLのformタグに入力されたものをjsで処理したいんだがどうすればいいんでつか(ヽ´ω`)
>>970 form要素そのものには入力できんだろ
formのノード構造勉強して出直してこい
javascriptでクリック音(ページロード音)を消すのって実装できます?
o=new Fooで括弧は有る無しに拘わらず等価ですか?
javascriptでウェブページの画面キャプチャを作りたいんだが、これは可能なんだろうか。
977 :
972 :2008/02/28(木) 18:45:10 ID:???
できないか; >975さんthx!
canvasのdrawWindow使えばできるよね
canvasか。決して古くはないのに、もう懐かしいな。Flex SDKを使うから、canvasとかSVGとか誰も仕事では使おうとしないわなぁ。JS終了。
980 :
955 :2008/02/28(木) 20:52:02 ID:???
>>956 できませんか・・・ファイル名による処理の振り分けを行おうとしていたんですが
別の方法を考えます。
遅くなりましたが、ありがとうございました。
>>980 それなら/止めの時はindex.htmlって決めちゃえばいいだけじゃね?
>>982 18 :Name_Not_Found:2008/02/29(金) 01:55:42 ID:???
前スレうめてから使えよ糞ども。
とのことです。
なんだか不思議だよね、ローカルルールから前スレがたどれるうちは 前スレから埋まるのが普通なんだけどねー。
それじゃ、ここ見逃したヤシが泣いて悔しがるような すんげぇ質問でもすっか。
どうぞどうぞ
なんと真っ昼間なのにローカルルールのリンク先が新スレに 切り替わった。このスレの残り、どうする?
* * * 埋めます + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
990 :
882 :2008/02/29(金) 16:17:02 ID:???
ハ,,ハ ( ゚ω゚ ) / \ ハ,,ハ ((⊂ ) ノ\つ))( ゚ω゚ ) (_⌒ヽ((⊂ノ ヽつ )) ヽ ヘ } (_⌒ヽ ε≡Ξ ノノ `J ノノ `J
991 :
Name_Not_Found :2008/02/29(金) 18:57:00 ID:ompP6dSA
埋めろっつってんだろカスども。 ageるぞ。
992 :
Name_Not_Found :2008/02/29(金) 18:57:42 ID:ompP6dSA
ほんとおまえら使えねーなクソども。 埋めろっつっても埋めねーでしらねーフリこいて新スレに書き込みかよ。
993 :
Name_Not_Found :2008/02/29(金) 18:58:21 ID:ompP6dSA
文盲か?おまえ、おまえだよ。新スレに書き込みし続けててお前。 お前文盲か?文盲って意味わかるか?
994 :
Name_Not_Found :2008/02/29(金) 18:58:59 ID:ompP6dSA
まったくなんでも人任せでよ〜。 俺が埋めなきゃこのスレいったいどうなってたことか!
995 :
Name_Not_Found :2008/02/29(金) 18:59:20 ID:ompP6dSA
いいか? 次スレではちゃんと埋めろよ? 埋めてから新スレ使えよ?
あいよ!
( ´_J` )
(´し_` )
( ´∪` ) <放置かよ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。