+ JavaScript の質問用スレッド vol.57 +
1 :
Name_Not_Found :
2007/06/11(月) 15:17:38 ID:UHVvomrF
【質問を書く上で】 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ではセキュリティ制約により絶対無理です。できたら恐ろしいことに… A3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが… A3. セミコロンで複数の文を区切られます。onclick="foo();bar();"としましょう。 Q4. document.write(...)でページ内容を追加したいのですが… A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。 Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。 Q6. DOMでtable要素にtr要素を追加しても表示されないのですが… A6. 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. IEはe.currentStyle、Gecko/Safariはwindow.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()。
さて、前スレ 9 の人また貼りにくるかね。××の1つ覚えー。粘着ー。
乙
>>9 逆に俺はお前が粘着気味だと思うんだが
スルーしとけよ
>>4 結局A10は
A10. IEはe.currentStyle、Gecko/Safariはdocument.defaultView.getComputedStyle()使用。
に修正、ということでいいのかな?
ないす情報。またサポートしなきゃいけないブラウザが一つ増えやがった
onClick絡みの質問です。 onClickを仕込んだタグ全文を引数として渡したいのですがどのようにすればよいのでしょうか? 実現したいことをそのまま書くとこんな感じです。 -----js部----- function test(str) { alert(str); // <input onClick="test(this)" value="アラート"> } -----html部 ----- <input onClick="test(this)" value="アラート"> どうぞよろしくお願いします。
var clone = str.cloneNode(true); var div = document.createElement("div"); div.appendChild(clone); alert(div.innerHTML); 試してないけどこんな感じか?
18 :
16 :2007/06/13(水) 00:34:52 ID:???
>>17 うまくいきました!
まったく、自分の辞書にない方法だったのでたいへん勉強になりました。
いやあ、js楽しいです。ありがとうございます!
単なる興味で質問します。 普通のやり方ではドメインをまたでクッキーのやりとりは出来ませんが、googleはこれを実現していると聞いたことがあります。 これは本当なのでしょうか?
何故、ドメインをまたげないのかと言ったらセキュリティ上の理由からなわけで またげてしまったら、それはセキュリティホールのような気が。
>>13 A10. IEはe.currentStyle、Gecko/Opera/Safariはdocument.defaultView.getComputedStyle()使用。
(Gecko/Operaはwindow.getComputedStyle()も可)
が現状に近いんだが、Safari3を試した人でwindow.getComputedStyleを持ってるか確認した人いない?
>>19 <script>うめこみのサービスを使ってくれさえすれば簡単に抜けるわな。
言うまでもないと思うが、純粋にクッキーだけではむりだが、得た情報を送れるのはクッキーだけじゃないから。
ただし、グーグルが嬉々としてやってたらそりゃまじで笑いものなわけで、そうとう痛い人じゃなきゃこんなバレバレなことをしないだろ。
F11キーをJavaScriptでおしたいのですが、どうかけばいいのでしょうか?
>>24 押せないと思うな。または alert('F11キーを押してください');
オブジェクトのプロパティについて質問 以下のオブジェクトがあった場合にnot_propertyはオブジェクトの中でどんな扱いになるの? for in でオブジェクトの中身覗いてもproperty1とmethodしかないから プロパティではないことはわかるのだけど、位置づけがわからない javaで言うところの何になりますか?それともjavaで考えちゃダメ? var obj = function(var1) { this.property1 = var1; var not_property = "プロパティじゃないよ"; this.method = function () { alert(property1); alert(not_property); } }
宿題の質問もおkですか?
>>26 javaで考えちゃだめ。[[Scope]]のプロパティ
Firefox や Opera で ロード時 (あるいは任意のタイミング) に マウスカーソルの位置を取得する方法があったら教えてください。
>>30 イベントオブジェクトから取ったらあかんの?
前スレの<NOSCRIPT>問題を検証してみました。当方はMac。 <noscript><p>test</p></noscript> を getElementsByTagName で取得してみる。 FireFox … NOSCRIPT要素の取得は出来るが、firstChild は TextNode となり、中味は CDATAのように扱われている。(NOSCRIPT要素内部の構文解析はしない) Opera …NOSCRIPT要素の取得は出来るが、firstChild は null で、中味は完全に空。 BODY要素のinnerHTMLを見ても、<noscript></noscript> になっている。 Safari …NOSCRIPT要素自体取得出来ない。BODY要素のinnerHTMLを見ても、 NOSCRIPT要素自体が取り除かれている。 IEでどうなるかは分かりませんが、現実問題としては使えないですね。うーん、 NOSCRIPTにページ内容を書いて、script でその内容を加工して表示とか 考えてましたが、これはダメだ。 しかし、DOMの仕様書には、NOSCRIPT も HTML Element のオブジェクトだと 書いてあって、構文木から取り除けとはどこにも書いてないんだがな。HTMLの 仕様書にも表示しないとあるだけで、取り除けとは書いてないし。
>>28 ありがとう。
そこはスコープで考えるから外から取れないのか。
>>31 カーソル位置を持ったイベントオブジェクトって任意に作れるんでしょうか?
画像を先読みしてキャッシュに入れるには new Image() の src にセットすれば いいようですが、では、HTMLを先読みしてキャッシュに入れるにはどうすれば いいのでしょうか。次のページを先読みして即座に表示出来るようにしておきたい のです。
>>35 document.createElement('iframe')のsrcにセットするのかな。
試してないけど。
>>34 onloadの話だろ?
>>35 36で出来るけど、やらないほうがいいんじゃないかなぁ
>>37 firefox と opera の onload のイベントオブジェクトには clientX とかが無いようなんですが。
onloadで関数を呼べばぁ?
>>40 だからonloadで「何を」呼べばマウス位置が取得できるのさ。
取得する方法、ないでしょ?
マウスイベントが来るまで待つしかないんじゃないの。
待てばいいじゃん
>>42 元質問者の役に立たない投げやりな回答、いくない。
結局、元質問者の要求を満足する方法はない、でFA?
>>43 あるけど自作自演で答えを求めてるのがいやらしいから俺は教えない
マウスイベント待てばいいんじゃねw
45 :
Name_Not_Found :2007/06/14(木) 12:45:12 ID:wbYEaN+7
入力フォームを作っているのですが、必ず入力しなければならない所を 入力してない場合、JavaScriptを使用してそのフィールドのバックグラウンドと テキストフォントを違う色にしたいのですが、バックグラウンドの色を変更するにはどうすれば良いのでしょうか? 今、自分で組んでいるJavaScriptとしてはこんな感じです。 checkLength(field){ if(field.length==0){ //フィールドのバックグラウンドの色を現在とは違う色に変更し、falseを返す return false; } else { //問題ないので、現在のフィールドカラーである白にそのまま設定し、trueを返す return true; }
style.backgroundColor="#FF0";
47 :
Name_Not_Found :2007/06/14(木) 13:08:55 ID:dYrf5482
以下のようなソースで、ラジオボタンを動的に生成した場合、
IEでラジオボタンを選択できません。
FireFoxやOperaでは動くのですが、
バグなのか、ソースに問題があるのかわからず困っています。
調べてみたところ、
ttp://www.gac.jp/article/index.php?stats=question&category=9&id=4474&command=msg と同じ現象だと思うのですが。
どうすればIEでラジオボタンが選択できるようになるのでしょうか。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>無題ドキュメント</title>
<script language="javascript" type="text/javascript">
<!--
var number = 0;
function addItem() {
number ++;
var elem = document.createElement('input');
elem.id = 'radioId' + number;
elem.setAttribute("type", "radio");
elem.setAttribute("name", 'radioName' + number);
elem.setAttribute("value","VALUE");
document.getElementById('thisForm').appendChild(elem);
}
-->
</script>
</head><body>
<form id="thisForm" ><input type="button" value="追加" onclick="addItem()" /></form>
</body></html>
48 :
Name_Not_Found :2007/06/14(木) 13:23:17 ID:XpKBq37J
>>47 >IEでラジオボタンを選択できません
setAttribute() の IE の bug 仕様のせい.
どうしても setAttribute() を使いたいのなら UA 振り分けを迫られる.
しかし, 見たところ使わなくてもうまくいきそうだけど.
49 :
Name_Not_Found :2007/06/14(木) 13:28:11 ID:XpKBq37J
>>47 禁断の "とほほ" でも見てくで ! :
www.tohoho-web.com/js/form.htm#name2
50 :
47 :2007/06/14(木) 13:31:07 ID:???
>>48 ありがとうございます。
バグなんですね。。。
それから、すみません。
見たところうまくいくとはどういうことでしょうか?
クロスブラウザ依存にならない方法あったよ確か defaultSelectedとか、確かそんな名前のプロパティをセットする方法
DOMで位置を指定して表示させたいですがうまくいきません。IE6です。 elem.setAttribute("style", "position:absolute;left:900px;top:0px;"); のようにJavaScriptでノードにstyleで指定しても正しい位置に表示されません。 HTMLで同様の指定をするともちろんうまくいきます。 DOMでどんな風に座標を指定したら良いのでしょうか?
54 :
379 :2007/06/14(木) 18:10:42 ID:XpKBq37J
>>50 >>49 を書いた意味が通じなかったのかな ?
要するに setAttribute()を使わないように工夫すれば良いってこと.
まあ,
>>52 によれば name attribute の設定はできないらしいけど.
となると UA 振り分けで対処するしかないだろうね.
Example (IE) :
elem.setAttribute('name',new Function('radioName'+number))
Example (Moz etc.) :
elem.setAttribute('name','radioName'+number)
これらを UA 振り分け で使い分ける.
UA 振り分けについては色々あるけれど "MSIE" が含まれるかを調べる手もある.
ただし, UA 偽装されれば ただちに動かなくなるのが欠点.
(それと無意味に複雑になるのが最大の問題点) <- M$ のばか〜 !!!
>>53 どうして setAttribute() を使いたがる人が多いのかしらん ?
(かく言うワタクシメも ついさいきんまで... w)
IE で setAttribute() は鬼門なのだ.
対策は 上に書いたのと同様のはず.
>>53 setAttribute()を使うのをやめるのが一番簡単だって。今すぐ忘れろ。
elem.style.position = 'absolute';
elem.style.left = '900px';
elem.style.top = '0px';
を実行すればいいだけでしょ。過去スレ検索すればサンプルが山ほど
ある。何が問題なんだか…
どうせ親要素になんも指定してないんだろ
57 :
379 :2007/06/14(木) 18:59:06 ID:XpKBq37J
>>54 を記述は間違えているかも ? (申し訳ない)
(new Fenction() を使う訳だけど 度忘れ w)
>>53 (get|set)Attributeは属性値を文字列として扱う。
setAttribute('style', '...')はstyle属性の文字列値を変更するだろう。
だが、それがレンダリングエンジンに渡される保証はない。
setAttribute('onclick', '...')はonclick属性の文字列値を変更するだろう。
だが、それがスクリプトエンジンに渡される保証はない。
なぜ上記の属性がDOM-HTMLでHTMLElementのプロパティになっていないのかを考えろ。
スタイルを設定したければDOM-CSSのAPIを通せ。
スクリプトを実行したければDOM-EventsのAPIを通せ。
DOMが嫌いなら昔ながらのelement.style.position=...、element.onclick=...を使え。
http://burstproject.org/tests/testbrowser/style.html
>>58 いや、その論法はおかしいだろ。
それだと極端な話setAttributeは呼び出しても
表示及び動作を変えない、まったくの無意味ってことになるぞ。
これはただ単にIEのsetAttributeがくそで
styleとかonclickとかを設定できないという話だろ。
>>59 > 表示及び動作を変えない
その通り。もう一度言うが、setAttributeは属性内容の文字列値を変更するにすぎない。
属性値の変更に伴う表示や動作の変更は、HTMLDOMやSVGDOMなど個々の言語規定に従う。
そして、DOM-HTMLにはstyleとかonclickに関する規定はない。
# と言うかわざわざ分離させたわけだが。
DOM-Coreによるnode.setAttribute(attr,value)と、DOM-HTMLによるnode.attr=valueは全く別物。
例えば前者は文字列のみだが、後者はそれなりにデータ型に応じた扱いができる。
IEの実装は糞だが、少なくともsetAttribute('style|onclick', ..)に関してはIEに非はない。
>>60 前半はいいが後半の最後、IEのsetAttributeは明らかにおかしくね?
elem.setAttribute('style', 'foo'); elem.getAttribute('style');
で'foo'ではなくCSSStyleDeclarationっぽいオブジェクトが返ってくるんだよ。
elem.setAttribute('onclick', func)
でクリック時にfuncが実行されるんだよ。
どう見てもfuncを文字列化なんてしてないでしょ。
62 :
Name_Not_Found :2007/06/14(木) 22:34:04 ID:XpKBq37J
よのなかに〜 たえて あいい〜 なかりせば〜 よの こころは〜
>>61 そもそもIEのスタイルシート回りのDOM実装は標準から逸脱してて糞。
だからstyleをgetattributeしたものが何だろうとへーそうですか
って感じ。
IEはコアから腐ってて elem.getAttribute("foo") == elem.foo elem.setAttribute("foo", "bar") == (elem.foo = bar) だからなあ(だからonclickとかが動く) styleは設定できない(無視する)ようになってるんじゃないかな
65 :
53 :2007/06/15(金) 09:01:28 ID:???
>>55 他の方々
ありがとうございますです。うまくいきましたです。
>>58 element.style.positionとかはDOM CSS(DOM CSS2)で
定義されてるよ
67 :
Name_Not_Found :2007/06/15(金) 13:52:41 ID:5/+Mv2sM
<a>タグを使ってフォームをPOSTで送信したいのですが、 <form action="a.php" name="hoge" method="post"> <input type="submit" value="a.phpへ"> </form> <a href="b.php" onClick="....">b.phpへ</a> <input>を押すと a.php へPOST <a>を押すと b.php へPOSTっていうのができるのでしょうか?
68 :
Name_Not_Found :2007/06/15(金) 14:00:55 ID:j54CzVg3
質問があります。現在、情報を入力してその情報を送信するフォームの雛型を作っているのですが、
どうもうまくいきません。 赤いフォントで* とある所は必ず入力しなければならない箇所なのですが、
そこを入力していなくても、送信ボタンを押すと普通に次の画面へ進んでしまいます。
後、使用した金額を入力する箇所で交通費、食費、宿泊費を入力した場合、自動的にその右側のフィールドで
合計金額を表示させ、その下にある総合合計金額のフィールドにも表示させたいのですが、どうも上手くいきません。
ttp://www4.50g.com/index.htm 途中まで作ったやつなのですが、ここが悪い、というのがありましたらご教示よろしくお願いします。
69 :
67 :2007/06/15(金) 14:01:13 ID:???
解決しました。 <script language="JavaScript"> function form_submit(task_name){ document.form.action = task_name; document.form.submit(); } </script> で action 先を渡してやればできました。
70 :
68 :2007/06/15(金) 14:04:45 ID:j54CzVg3
後、社員No、所属部署、プロジェクトナンバーは それぞれ、ACT番号、DEPT番号、PROJ番号という風に入力しないと エラーを返すように設定しているのですが、これも上手く動作しません。
71 :
年金返せ :2007/06/15(金) 14:09:49 ID:4rdsrApR
ifで空欄判断。onblurで自動加算。
72 :
68 :2007/06/15(金) 14:41:38 ID:j54CzVg3
>>71 ifで設定もして、onblurで自動加算するようにしてあるのですが、
どうも上手くいきません・・・。
ttp://www4.50g.com/index.htm にどのように動いているのか、
コメントを書いているので、よろしければ見てみてください。
後、実行環境を書き忘れたので書いておきます。
OS:WindowsXP ブラウザ:IE7とFirefox2.0
OS:WindowsMe ブラウザ:IE6
とりあえずエラー出てる alertで値をチェックしたら良いんでは nullチェックは要らない?
74 :
68 :2007/06/15(金) 17:57:36 ID:j54CzVg3
>>73 Webメールの登録欄のように送信ボタンを押して、正しくない箇所がある場合は
そのフィールドの色を変更して修正しなければならない箇所が一発で分かる、
という風にしたいのです。入力する箇所が多いので、値が間違っているたびに
アラートを出していくと、使用者もうざく感じると思ったので。
>>74 ともかくJavaScriptエラーを全部取れ。
根本的な勘違いを指摘してあげよう(親切だな洩れって)。
submitを止めたいのならformのonsubmitにreturnつきで書かないと。
<form ... onsubmit="return validateForm()">
76 :
68 :2007/06/15(金) 18:28:54 ID:j54CzVg3
>>75 ありがとうございます。
return を追加しても同じ結果なので、とりあえずエラーを取り除く所からやってみます。
>>76 勘違いしてそうだから言っておくが
>>73 の「alertで値をチェック」ていうのは
動かないならalertでチェックしたて修正したら?てことで
最終的にalertを出す仕様にと言ってるんじゃないと思うぞ。
とりあえず「}」閉じ忘れ2箇所見つけた。
それ修正しても動かないだろうけど。
そんなチマチマしたチェックは自分でやってくれ。デバッガあるだろ。
>>79 今回の程度のエラーだったら、
FFxのJavaScriptコンソール(エラーコンソール)で十分でしょ。
マジレスするとFireBug
あれ、IEでばけるや・・・orz
85 :
ぼけなす :2007/06/16(土) 12:08:22 ID:P+YI6MXb
さて, これから先の流れは? (ワクワク)
もちろん華麗にスルー(マルチ乙)
87 :
84 :2007/06/16(土) 12:52:51 ID:???
ここの人は馬鹿な人ばかりなんですか。
Dreamweaverで出来れば作りたいので宜しく御願いします。
>>85-86 はもう結構ですので、二度とコメント市内で下さい。
よくそれで恥ずかしくないですね。こんな天気のいい日に
パソコンに向かってるのは友達いないんでしょうね。
>>87 阿呆か。煽って答えさせようたって無駄。過去スレでそれやった
奴が何人いたと思ってるんだ。おとなしく自分で勉強しろボケ。さいなら。
まずテンプレ読めよ低脳
いい天気だなぁ(シミジミ
>>74 ちょっと書いてみた。設計方針次第できれいに書けると思う。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function check_number(fname, ename) {
var e = document.forms[fname].elements[ename];
if(!e.value.match(/^[0-9]+$/)) { e.style.background = 'pink'; return false; }
e.style.background = 'white'; return true;
}
function check_nonempty(fname, ename) {
var e = document.forms[fname].elements[ename];
if(e.value == '') { e.style.background = 'pink'; return false; }
e.style.background = 'white'; return true;
}
function check() {
var result = true;
if(!check_number('f0', 't0')) result = false;
if(!check_nonempty('f0', 't1')) result = false;
return result;
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return check()"><div>
数字のみの欄: <input name="t0" type="text"><br>
空でない欄: <input name="t1" type="text"><br>
<input type="submit"></div></form>
</body></html>
92 :
Name_Not_Found :2007/06/16(土) 14:43:53 ID:P+YI6MXb
今更な疑問なんだけど XMLHttpRequest で /director/ 内の file list を得ることって できるのかしらん ? (これができると面白いと思う半面, security 上の問題が あるような ないような...) 僕が見つけた例では CGI に post していた... (しかし, このやり方では XMLHttpRequest を利用する意味が...)
>>92 xmlhttp以外で出来ないのなら不可能だ
94 :
Name_Not_Found :2007/06/16(土) 15:14:20 ID:P+YI6MXb
僕が見つけたページ: www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter04/001/index.html
95 :
Name_Not_Found :2007/06/16(土) 15:24:33 ID:P+YI6MXb
もう一つの例: homepage3.nifty.com/aokura/jscript/get_file_list.html しかし, これは IE 專
かしらん? オカマ野郎。こういう言い方する男はムカつく。 僕じゃなくて「あたい」だろ。
97 :
db Shi~t !!! :2007/06/16(土) 16:50:19 ID:P+YI6MXb
>>96 みたいな書きこみを見ると茶目っけを出したくなる.
でも... やめといた方が良さそう...
Javascriptで 「かもめかもめかちんかちん」-「か」 はできますか?
>>98 javascript: alert('かもめかもめかちんかちん'.replace('か',''))
>>98-99 javascript: alert('かもめかもめかちんかちん'.replace(/か/g,''))
101 :
68 :2007/06/16(土) 17:55:59 ID:Kkagn9lQ
102 :
Name_Not_Found :2007/06/16(土) 21:39:44 ID:lPJ0IrD6
jQueryについて質問があります。 ------------ <div class="box"> 内容 </div> <script language="JavaScript" type="text/javascript"> $(".box").prepend("<div class='inner'>上部に追加"); $("box").append("下部に追加</div>"); </script> ------------ 上記のスクリプトで ------------ <div class="box"><div class="inner">上部に追加 内容 下部に追加</div></div> ------------ ということをやりたいのですが、 ------------ <div class="box"><div class="inner">上部に追加</div> ←自動的に閉じてる? 内容 下部に追加</div></div> ------------ みたいな動作を引き起こしています。 任意のタグの内側に要素を追加するにはどうしたらいいでしょうか? wrap() の逆があるといいのですが。
103 :
Name_Not_Found :2007/06/16(土) 21:41:11 ID:lPJ0IrD6
>>102 $(".box").append("下部に追加</div>");
「$(".box")」のドットが抜けていました。すいません。
実際のスクリプトではもちろん書かれています。
<div class="box"> 内容 </div> <script type="text/javascript"> value = $(".box").html(); $(".box").html(""); $(".box").prepend("<div class='inner' style='border:1px;' >上部に追加" + value); $(".inner").append("下部に追加"); </script> こういう風にやるのはだめですか?
>>104 なるほど、一時的に保存しておくのですね。
安全のために each使って実現できました。ありがとうございます。
$('.box').each( function(){
var tmp = $(this).html();
$(this).html('<div class="inner">'+tmp+'</div>');
});
AJAXについての質問です。 リンクAをクリックしてAJAX処理中に、他のリンクBやCをクリックすると 期待した場所に結果が表示されなくて困っています。 AJAX処理が始まると他の箇所をクリックできないようにすることは可能でしょうか? 一般的な対応の仕方や、その他の色々な方法を教えてもらえるとうれしいです。 どうぞ宜しくお願いいたします。
AjaxのAはAsynchronous(非同期)だしねー。
108 :
Name_Not_Found :2007/06/17(日) 14:57:39 ID:wyysTZsh
AのリンクをクリックしたときにB、Cのリンクをdisableにして 結果が返ってきたらenableにしれば?
109 :
Name_Not_Found :2007/06/17(日) 14:59:23 ID:d6ePygVI
>>106 Ajax と一言で言っても 使われ方は色々.
通常は "処理中" が そんなに長いことはないと思う.
(言い換えると "他のリンクBやCをクリック" する隙などない)
取り合えず, どういう目的で利用しているのか またはソースを提示...
110 :
106 :2007/06/17(日) 15:56:34 ID:???
>>108 画面内にたくさんのリンクがあるため最終手段として使わせていただきます。 ありがとうございます。
>>109 AJAXでCGIにパラメーターを渡し、スクレイピングさせた結果を表示させようとしています。
こういった処理はAJAXには不向きなのでしょうか?
ttp://www.openspc2.org/reibun/QuickReferenceAjax/chapter02/001/ こちらのAJAX一連の処理を呼び出す関数を自作しており、
引数は(テキスト挿入先ID,パラメーター)となっています。
function getText(id,param){
$id = id; //上記ページのcheck()の "result"部を$idに変えてあります。
xmlhttp = createXMLHttp();
if (xmlhttp) {
xmlhttp.onreadystatechange = check;
xmlhttp.open('POST','test.cgi',true);
xmlhttp.send(param);}}
という流れになっています。グローバル変数の使用がかなり怪しいのですが、
このような形でしかid部を可変にできないためそうしています。
長文失礼しました。
111 :
Name_Not_Found :2007/06/17(日) 16:07:42 ID:d6ePygVI
>>110 普通に text file を読み込みに言ってるだけに見えるけど ?
物のついでだからサンプル作って見るかな ?
それを見て比較してみてはいかが ?
112 :
Name_Not_Found :2007/06/17(日) 16:15:36 ID:d6ePygVI
>>110 訂正:
cgi に post してたのね.
ならば response が返って来るまで時間が掛ることもあり得る.
となると
>>108 のやり方が有力になって来ると思う.
単に text file を読み込みに行くのがもっとも適した使い方じゃないかな ?
113 :
106 :2007/06/17(日) 16:25:22 ID:???
>>112 手間をかけていただきありがとうございます。
responseが返ってくるまで"読み込み中"と表示してなんとかごまかしています^^;
あらかじめサーバー側でテキストを作成しておくような仕様も検討してみます。
レスサンクスでした!
すいません。 初心者ですが、よろしくお願いします。 java scriptで配列を用意して formでそれをCGIに送って テキストファイルに書き出すようにしたのですが、 配列 a[0][0] の [ と ] が %5Bと%5D%に文字化けしてしまいました。 HTMLのmetaでcharset変えたり formのenctype変えたりしてみましたが、 どうにもうまくいきません。 どなたか、解決法ご存知ありませんでしょうか。 どうぞよろしくお願いします。
開いているテキストエディター自体のエンコードはあってる?
レスありがとうございます。 HTMLはdreamweaverで CGIはterapadつかってますが、 ちょっと調べてみます。
117 :
Name_Not_Found :2007/06/17(日) 16:37:38 ID:d6ePygVI
>>144 JavaScript の array をデータにするのではなく,
CSV か TSV に変換して送り出す
(CSV よりも TSV の方が扱いやすい)
>>115 今HTMLのほうをEUC日本語にしてやってみましたが、
結果は同じでした。
他も試してみます。
>>117 レスありがとうございます。
CSVもTSVも知りませんでしたが、
あわせて調べてみます。
もしかしてapatchが悪さしてるような気がしてきた…
null 臭がする また適当なことを言ってやがる
121 :
Name_Not_Found :2007/06/17(日) 18:08:39 ID:NuImnqXC
なんだとおぅ
URLエンコードされてんじゃね?
123 :
Name_Not_Found :2007/06/17(日) 18:36:35 ID:d6ePygVI
>>120 聞き捨て なりませんな.
そもそも どの発言に対して言ってるのか ?
根拠のない当て推量をやってるのは むしろ おめ〜さんだろ ?
124 :
Name_Not_Found :2007/06/17(日) 18:46:16 ID:d6ePygVI
>>122 の言ってる通り.
ただ, JavaScript の array のまま CGI に送っても使い物にならない.
それならば TSV に変換しておけば
server side でも client side でも処理することが可能となる.
125 :
Name_Not_Found :2007/06/17(日) 19:07:47 ID:d6ePygVI
>>120 が どう出て来るかが楽しみ. (くけけけけ)
この際, 荒れようがなんだろうが放置する訳にはいかないぜ !
null ちゃんの恐ろしさを思い知れ !
ちっとも面白くない。ひっこめ。書くなら有意義なことを書け。
>>106 素朴な疑問なんだが、別のリンクをクリックするということは
そのリンクをたどって別のページへ行くわけだろ?だったら
全部中止とかでいいんでないの。もしもそうじゃない
リンクの使い方をしてるんだったらまさかFAQ
>>4 のQ9/A9を
読んでないわけじゃないよな?
>>114 配列を「そのまま」CGIに渡すことなどできない。アンタが
できると勘違いして勝手に四苦八苦してるだけ。実際には
渡せるのは文字列だけ。
>>122 ありがとうございました^^;
それでございました〜!!!orz
>>106 document.addEventListener('click',...)
Event#preventDefault()
addEventListenerはいつになったらIEでも使えるようになるんで ございましょうか。
急に実装されても互換性のために誰も使わない
133 :
Name_Not_Found :2007/06/17(日) 21:24:17 ID:d6ePygVI
>>131 IE の share が劇洛したとき.
言い換えると誰にも見向きされなくなった日.
Web に詳しい人なら IE のダメっプリは身にしみているけれど,
なにぶん OS デフォなので そのまま使い続けなければならない人達も...
(企業だとか, 官公庁だとか, はては漫画喫茶など)
じつは
on***=function(){f(x)}
形式なら IE でも Mozilla でも きちんと動作する.
134 :
Name_Not_Found :2007/06/17(日) 21:32:26 ID:d6ePygVI
訂正: elm.onclick=function(){f(x)} elm.onmouseover=function(){f(x)} elm.onmouseout=function(){f(x)} --- など
プルダウンメニュー(ボタン付)を数個作って、 それを組み合わせることで様々なページを表示させたいんですけど、どうすればいいでしょうか?
>135 マルチ乙
137 :
Name_Not_Found :2007/06/18(月) 00:02:28 ID:Fsxm7vxe
質問です。 「'[string]'に割り当てられません」というエラーは、どういうことが 原因で起こっているのでしょうか?
>>135 プルダウンを組み合わせるとは具体的に? ソースは?
>>136 nullの野郎がヨソで暴れてたんだからさ。
140 :
Name_Not_Found :2007/06/18(月) 03:00:22 ID:al450GnW
<div id="test">てすてすてす</div> これの中心の座標が欲しいからstyleで left + width/2 top + height/2 みたいにしてみた(parseInt済み)んですが、 これだと初期値を設定しておかないとNaNになるわけですが、 設定すると"てすてすてす"ぴったりの大きさにならないので困ってます(確認は背景色を付けてしました)。 ぴったり中心を取得する方法があれば御教示お願いします。
141 :
Name_Not_Found :2007/06/18(月) 03:39:34 ID:25gWeDPo
>>139 "ヨソで暴れてた" たぁ以下のことか ?
429 :Name_Not_Found:2007/06/15(金) 23:56:03 ID:???
プルダウンメニュー(ボタン付)を数個作って、
それを組み合わせることで様々なページを表示させたいんですけど、どうすればいいでしょうか?
433 :Name_Not_Found:2007/06/16(土) 14:30:18 ID:P+YI6MXb
>>429 >プルダウンメニュー(ボタン付)を数個作って
"数個" って ああた !
使う物の身になって考えれば せいぜい 3 段が限度ですよん.
まあ, この手の物は 探せば いくらでも見つかるはず.
なんならサンプル作りますぜ. だんな〜.
------------------------------------------------------
どういうものか返答はなかった.
そして, 同じ内容で こちらに...
これをマルチと言わずになんと呼ぶ ?
>>140 elem.offsetWidth,elem.OffsetHeight,doc.getBoxObjectFor(elem),elem.getBoundingClientRect(),
doc.defaultView.getComputedStyle(elem,s),elem.currentStyle(s)
>>140 ブロック要素の中央と "てすてすてす" の中央とは
一致しないと思うんだが
>>141 だからその言い訳とかウダウダとした役に立たない解説
とか内容のない(有用でない)アドバイスとかが嫌われるんでしょ。
簡潔に的確なアドバイスできるようになったらまたおいでよ。
146 :
Name_Not_Found :2007/06/18(月) 09:36:06 ID:EEdpsv6u
質問です。 同じメソッドが3つ使われるようなとき、まとめて書く方法って ありますか。つまり、 obj1.meso() + obj2.meso() + obj3.meso() ; で、( obj1+ obj2+ obj3 )meso(); みたいに書けないかなと。 宜しくお願いします。
ない。
>>145 特に工夫してない限り,だいたい中心ですらない。CSSのボックスモデル
の勉強してから来い。つかもはやここではスレ違いだからよそ行け。
149 :
106 :2007/06/18(月) 12:00:06 ID:???
>>127 さきほど解決しました!レスありがとうございます!
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(id).innerHTML = text;
}
}
と、できることが分かり、セット先IDが狂わないようになりました。
>>130 ぼくとっては、マニアックすぎです!
>>146 試したことがないからできるのかわからないけど、
複数のオブジェクトを管理するクラスを作ってみてはどうでしょう?
オブジェクトを追加していくメソッドを作って、
あとは全要素に対して処理をする関数をいくつかつくればスッキリしそう。
>>151 外部CSSとか必要なファイルを持ってきてないんじゃない?
153 :
Name_Not_Found :2007/06/18(月) 17:40:52 ID:h7JWkuIm
悪いんだけどちょっと教えて。 外部Javascriptファイルから別のJavascriptファイルをincludeするのってどうやるの? 検索キーワードが思いつかない。 include をキーワードに入れてもダメみたい。
>>153 基本的には出来ない。
動的スクリプトローディングとかで検索したら出てくるかも。
155 :
Name_Not_Found :2007/06/18(月) 17:51:48 ID:h7JWkuIm
>>154 うわ!すごい早い!
ほんとありがとう。すごく助かるよ。
匿名掲示板じゃなかったら御礼送りたいくらいだよ。
157 :
154 :2007/06/18(月) 18:10:07 ID:???
>>155 いいんだよ。悪いな。
東京三菱銀行 池袋支店 普通 2045253 キタノモトフミ
159 :
Name_Not_Found :2007/06/18(月) 19:43:39 ID:h7JWkuIm
160 :
Name_Not_Found :2007/06/19(火) 15:36:50 ID:l9K4kB9E
質問させてください。
クッキーを使うユーザー登録フォームを作っているのですが、
エラー連発でどのようにして良いのかさっぱり分かりません。
とりあえずフィールドに適当な名前(デフォルト名を設定してあります。)を入力して、
送信ボタンを押すと、あなたのユーザー名(email)は: の部分に入力していたメールアドレスを表示させ、
クッキーにそれぞれの情報が記録(日付、名前、苗字、住所、メールアドレス、銀行名、銀行口座、支店番号)され、
クッキーの期限を1年で切れるように設定しているのですが、まったくうまくいきません…。
よろしければご教示お願いします。
製作中のフォームのHTMLです→
ttp://www4.50g.com/index.htm
>>160 ソースをみると、日本語がエンティティ化(?)されてるのはナゼ?
162 :
Name_Not_Found :2007/06/19(火) 16:11:49 ID:l9K4kB9E
>>160 英語版のWindowsで作っているので…
クッキーに口座番号覚えさせるのか…
>>160 まずmerchant.jsをちゃんとインデントして{}の数を合わせるのはどうだろうか?
165 :
Name_Not_Found :2007/06/19(火) 16:40:29 ID:l9K4kB9E
>>163 セキュリティ上はたしかに問題なのですが、実験で作っているので…。
>>164 分かりました。ちょっとやってみます。
166 :
Name_Not_Found :2007/06/19(火) 16:45:06 ID:HshXe65d
質問です。 1 2 3 4 5 6 7 8 9 のように出力させたいん ですがどうloopを組めば よいですか? お願いします。
>>166 for (i=1; i<=9; i++) document.write(i+(i%3?" ":"<br>"));
169 :
Name_Not_Found :2007/06/19(火) 17:05:00 ID:oGe4OuQK
同じ鯖にあるテキストファイルをJavaScriptで読み込んで表示させたいのですが どのようにしたらできますか?
>>169 XMLHttpRequestで読めるよ。(ブラウザで直に開けるとこにある
テキストファイルなら。) XMLHttpRequestの使い方は勉強すれ。
171 :
Name_Not_Found :2007/06/19(火) 17:14:52 ID:oGe4OuQK
172 :
Name_Not_Found :2007/06/19(火) 17:17:00 ID:L0MUUMKY
173 :
Name_Not_Found :2007/06/19(火) 17:27:09 ID:oGe4OuQK
var textload;
textload = new XMLHttpRequest();
textload.open("GET", "test.txt", false);
textload.send(null);
document.write(textload.responseText);
これだけでできました。(一応報告として
>>170 さんありがとう
174 :
160 :2007/06/19(火) 19:32:10 ID:x0fcowHj
日本語版Windowsからです。 とりあえずクッキーの前に、送信ボタンを押したら、 次の画面にメールアドレスが表示されるようにしたいのですが、 どうすれば良いのでしょうか…。 ずっとやっているのですが、まったく表示されずどうしようもない状態に陥っています…。
175 :
Name_Not_Found :2007/06/19(火) 19:42:41 ID:b4dmfCpZ
>>174 メアドをGETで渡して、location.hrefから抜き出すとか
176 :
166 :2007/06/19(火) 19:44:31 ID:???
>>167 さん
ありがとうございました。
>>168 さん
具体的にありがとうございました。
なるほど、勉強になりました。
177 :
Name_Not_Found :2007/06/19(火) 20:07:17 ID:47aKFW3t
document.body.onclick=test; でtestに引数を渡したい場合はどうすればいいのか教えて下さい
180 :
Name_Not_Found :2007/06/19(火) 21:19:45 ID:47aKFW3t
>>178-179 Q14/A14の意味が分からなかったのですが今5回音読したら
ちょっと分かった気がしないでもないのであと10回黙読して弄ってみます。
ありがとうございました。
182 :
Name_Not_Found :2007/06/20(水) 03:50:17 ID:PFdRshW1
<html>
<head>
<script language="JavaScript">
<!--
OpenExtLink = function(el){
var url = el.href;
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
};
-->
</script>
</head>
<body>
<a onClick="return OpenExtLink(this)" href="
http://URL " target="_blank">
extra link </a>
</body>
</html>
hrefをjavascript:void(0);にして、onClickの中にURLを書くことはできませんか?
ちなみに↑のスクリプトは
ttp://qootas.org/blog/archives/2004/11/referrer.htmlのやつです
>>182 こんなのはどうでしょうか
<a href="test.html?
http://google.com/,0 ">てst</a>
test.html? URL , 飛ぶまでの時間
-
test.html
<html>
<head>
<script type="text/javascript">
str = location.search;
url = str.substring(1,str.length).split(",");
document.write('<meta http-equiv="refresh" content="'+url[1]+';url='+url[0]+'">');
</script>
</head>
<body>
test
</body>
</html>
>>181 それを書くプログラムが過去ログにあったな
調べたらVol.54の161だ。ちょっと感動したから覚えてる
>>181 書いてみた
>>184 げげあったのね。でもそれ読めないじゃん。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function hsb2rgb(hue, sat, bright) {
var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue;
if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min;
else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min;
else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min;
else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min;
else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min;
else b = max - (deg-300)*(max-min)/60, r = max, g = min;
return 'rgb('+ Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')';
}
function show() {
for(var h = 0; h < 1; h += 0.01)
for(var b = 0; b < 1; b += 0.05) {
var x=250+200*b*Math.cos(2*Math.PI*h), y=250+200*b*Math.sin(2*Math.PI*h);
var e = document.createElement('div');
e.style.position = 'absolute'; e.style.width = e.style.height = '5px';
e.style.top = y + 'px'; e.style.left = x + 'px';
e.style.backgroundColor = hsb2rgb(h, 1, b); document.body.appendChild(e);
}
}
</script>
</head><body onload="show()"></body></html>
>>185 車輪の再発明した上に品質劣化、しかも負け犬の遠吠え付ですか。
あと一つで満貫ですね。
(´・ω・`)
188 :
Name_Not_Found :2007/06/20(水) 12:38:47 ID:Q1DJsotc
すみません。 なぜ、とほほのJavaScript入門(正規表現)にはsearchメソッドが ないのでしょうか。お分かりの方よろしくお願いします。
とほほのことなんか知らん。内容古かったりするだけじゃないの?
String#searchじゃなかったっけ
searchなんてECMAにないだろ?
193 :
188 :2007/06/20(水) 14:13:04 ID:???
>>189 JavaScript 1.2 って何年発効ですか?あってもおかしくないと
思うんですけど。ECMA-262にもありますし。
194 :
とおりすがり :2007/06/20(水) 14:19:26 ID:jFe7iLdK
ここの奴らってたいしたことねえなぁ
>>190 ,191
こんなレヴェルかww
1.2ってNetscape 3のころ?10年前くらいじゃないの。
どーしてもとほほが好きなら勝手にすればいいけど、
その内容をここに持ち込むのは時間の無駄だからやめてくれ。
テンプレの
>>7 にも書いてあるだろ?
テンプレ読めない奴はここに来ないで欲しい。
1.2はNetscape 4.0
>>184 >>185 ありがとうございます。
僕にはまだ難しいようです…。
アルゴリズム的にはどんな感じなんでしょうか?
マウスの座標から色を生成したいのですが、色の並べ方というか計算方法がさっぱりで…。
>>198 お前は>181で「グラデーションを作りたい」と言ってるだろ
なんで「マウスの座標から色を生成したい」に変わってるんだよクズ
要件が曖昧だったとはいえ、カラーピッカーに使うためにグラデーションって言ってるんだから 普通に考えてグラデーションから色をとりたいんだなってことぐらい想像付くだろう。
描画メソッドのグラデーションでそういうの出来たっけ やったこと無いからわからん
>>201 普通は「カラッピーカーに使うためのグラデーションを〜」と言われたらグラデーションの作り方を教えて欲しいのだと思う。
「ケーキを作るために生クリームが欲しい」と言われてケーキの作り方を教える奴は居ないだろう?
×:ために ○:ための ケーキのための生クリームと、スパゲティのための生クリームは違うと思うぞ まあ、どうでもいいことでスレ埋めてもあれだがな
209 :
208 :2007/06/20(水) 20:45:25 ID:???
×:ために ○:ための は間違いだスマン
>>202 まあ、確かに。
エスパーですら回答困難な質問も少なくないしね。
とは言え、無駄に煽りすぎだろうと思ったからレスした。
>>207 普通はそうだろうけど、ここはJavaScriptスレだしさ。
まさかカラーピッカー用の画像が作りたいだけでJavaScriptは使わないだろうと。
逆に画像を作りたいだけなら十中八九スレ違いだし。
しかしカラーピッカー用の画像を作る猛者が二人もいたのだがw ま、PrintScreenでもして切り取って使えばいいさ
カラーピッカに直して見ました。今IEが手元ないんでIEは未テスト。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function hsb2rgb(hue, sat, bright) { var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue; if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min; else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min; else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min; else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min; else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min; else b = max - (deg-300)*(max-min)/60, r = max, g = min; return 'rgb('+ Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')'; } function init() { for(var h = 0; h < 1; h += 0.01) for(var b = 0; b < 1; b += 0.05) { var x = 250 + (50+200*b)*Math.cos(2*Math.PI*h); var y = 250 + (50+200*b)*Math.sin(2*Math.PI*h); var e = document.createElement('div'); e.style.position = 'absolute'; e.style.width = e.style.height = '10px'; e.style.top = (y-5) + 'px'; e.style.left = (x-5) + 'px'; e.style.backgroundColor = hsb2rgb(h, 1, b); document.body.appendChild(e); } if(window.captureEvents) { window.captureEvents(Event.MOUSEMOVE|Event.MOUEDOWN|Event.MOUSEUP, true); window.onmousedown = function(e) { pick(e.pageX, e.pageY); } } else { var b = document.documentElement || document.body; b.onmousedown = function() { pick(event.clientX, event.clientY); } } }
function pick(x, y) { var t=Math.atan2(y-250,x-250), l=Math.sqrt((y-250)*(y-250)+(x-250)*(x-250)); l = (Math.max(Math.min(l, 250), 50) - 50) / 200; t = (t/(Math.PI*2)+1)%1; var rgb = hsb2rgb(t, 1, l), elt = document.getElementById('h1'); elt.innerHTML = rgb; elt.style.backgroundColor = rgb; } </script> </head><body onload="init()"> <h1 id="h1" style="position:absolute; top:520px">Color Picker</h1> </body></html>
214 :
Name_Not_Found :2007/06/21(木) 12:26:18 ID:8fqJq2Uu
>>213 >今IEが手元ないんでIEは未テスト
> function pick(x, y)
x, y 供にエラーになるはず.
(Mozilla と IE では event の挙動が微妙に違う)
"よくぞ ここまで ! " と思う半面, 劇重 !!!
>>214 今IE6で動かして見たけど動くみたいだけど…何が問題か教えてくれます?
MozでcaptureEventは古いんで警告出るね、addEventListenerに変更します。
さらに採度も変更できるようにしてみましたー。劇重だけど。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function hsb2rgb(hue, sat, bright) { var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue; if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min; else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min; else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min; else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min; else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min; else b = max - (deg-300)*(max-min)/60, r = max, g = min; return 'rgb('+Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')'; } var sat = 1.0, hue = 0.0, bri = 1.0, box = {}; function show1() { for(var h = 0; h < 1; h += 0.01) for(var b = 0; b < 1; b += 0.05) { var x = 250 + (50+200*b)*Math.cos(2*Math.PI*h); var y = 250 + (50+200*b)*Math.sin(2*Math.PI*h); var e = box[h*100+b]; if(!e) { e = box[h*100+b] = document.createElement('div'); e.style.position = 'absolute'; e.style.width = e.style.height = '10px'; e.style.top = (y-5) + 'px'; e.style.left = (x-5) + 'px'; document.body.appendChild(e); } e.style.backgroundColor = hsb2rgb(h, sat, b); } }
function show2() { for(var s = 0; s < 20; ++s) for(var h = 0; h < 12; ++h) { var e = box[-12*s-h-1]; if(!e) { e = box[-12*s-h-1] = document.createElement('div'); e.style.position = 'absolute'; e.style.width = e.style.height = '25px'; e.style.left = (550+25*h)+'px'; e.style.top = (s*25)+'px'; document.body.appendChild(e); } e.style.background = hsb2rgb(h/12, 0.05*s, bri); } } function init() { show1(); show2(); pick(500, 250); if(window.addEventListener) window.addEventListener('mousedown', function(e){pick(e.pageX,e.pageY);}, true); else document.body.onmousedown = function() { pick(event.clientX, event.clientY); }; } function pick(x, y) { if(x >= 550) { hue=(Math.min(x,850)-550)/300; sat=Math.min(Math.max(y,0),500)/500; show1(); } else { hue=Math.atan2(y-250,x-250); bri=Math.sqrt((y-250)*(y-250)+(x-250)*(x-250)); hue=(hue/(Math.PI*2)+1)%1; bri=(Math.max(Math.min(bri,250),50)-50)/200; show2(); } var rgb = hsb2rgb(hue, sat, bri), elt = document.getElementById('h1'); elt.style.backgroundColor = rgb; elt.innerHTML = rgb+' H='+hue+' S='+sat+' B='+bri; } </script> </head><body onload="init()"> <h1 id="h1" style="position:absolute; top:520px">Color Picker</h1></body></html>
218 :
Name_Not_Found :2007/06/21(木) 14:45:25 ID:o8mdcrrt
変数を展開させたいんですが、どうすれば良いのでしょうか? 例えば、以下のようなファンクションで inputNameとして渡されたname属性を持つ要素をカウントしたいのです。 function sampleFunction (inputName) { var ElementsCount = document.form.inputName.length; } よろしくお願いします。
質問ですが、HTMLから外部Javascriptにパラメータを渡すことは出来るでしょうか? <script type="text/javascipt" src="hoge.js?XXXXXX"></script> みたいなことをやってみましたが、Javascript側でこの「XXXXX」をどうやって 取得すればいいのか分からなかったです。「?」で付ける形式でなくても、 外部Javascriptに値が渡せればいいのですが。
>>218 document.getElementsByName(inputName).length
>>218 テンプレを読め。FAQに書いてあることを質問すな。テンプレが読めない
藻前は2度と来るな。
>>219 srcのURIは取れないから無理。グローバル変数に何か入れておき
呼ばれた方でそれを取るとかはどう?
<script type="text/javascript">
window.myparam = 'XXXXXX'
</script>
<script type="text/javascript" src="hoge.js"></script>
hoge.jsの中でwindow.myparamを読めば'XXXXXX'が入ってるでしょ。
222 :
218 :2007/06/21(木) 15:08:27 ID:???
223 :
218 :2007/06/21(木) 15:19:10 ID:???
>>221 失礼しました。見落としてました・・・。
>>219 正規表現とかよくわからないけどこんなのは?
それか、なんかのライブラリでそんなことしてるのあったよね?
Dojoだっけ?その中身見てみるとか。
var self = "script.js"; // jsのファイル名
regObj = new RegExp(self, "g"); // 正規表現
var script = document.getElementsByTagName('script'); // scriptタグとってくる
for (var i=script.length-1; i>=0; i--) { // scriptタグ分回す
var result = script[i].src.match(regObj); // jsのファイル名に一致するか判定
if ( (result) && (result.length > 0 ) ) { // 一致したら
alert(script[i].src.split("?")[1]); // 「?」以降がクエリ文字列
}
}
225 :
Name_Not_Found :2007/06/21(木) 18:01:28 ID:8fqJq2Uu
>>215 >window.onmousedown = function(e) { pick(e.pageX, e.pageY); }
早とちりで申し訳ありません.
振り分けされているのを見逃していました.
でも IE 5.17(on MacOS9.1) では onmousudown での動作は無視されている模様.
IE 6 での動作確認は取りようがありません.
おわびと言っちゃなんですが.
window.onload=function(){
document.getElementById('btn').onclick=function(ev){exam(ev)}
}
function exam(_ev){
var ev=_ev?_ev:event; //ev:event
confirm(ev.clientX);
}
以上の記述で簡潔に できるかと...
IE 6 での動作確認を取っていただけると嬉しいっす.
function viewpos(evt){ if(window.createPopup){// IE5.5以降 pos_x=event.x+document.body.scrollLeft; pos_y=event.x+document.body.scrollTop; }else{ pos_x=evt.pageX; pos_y=evt.pageY; } }
訂正 function viewpos(evt){ if(window.createPopup){// IE5.5以降 pos_x=event.x+document.body.scrollLeft; pos_y=event.y+document.body.scrollTop; }else{ pos_x=evt.pageX; pos_y=evt.pageY; } }
>>224 おおっ、すごい。そういう手があったか。どうもです。
チャレンジしてみようと思ったんだけど、円のは難しいね。 四角のやつでやってみたよ。 明度無視だが、こんな感じでいいのかな。 ちなみにJavascriptは拾ってきたの使うレベル。 ピッカーサイズ:p カーソルの位置:x 1つの範囲のピクセル数:ap = Math.floor(p/6) x座標が属する範囲:a = Math.ceil(x/ap) x座標の範囲内での位置:ax = x-(ap*a) 増減させる値:as = Math.round(ax*ap/255色*x) あとはaの条件で分岐 x座標が1番目の範囲内ならRが255で、Gが0から255まで増える x座標が2番目の範囲内ならGが255で、Rが255から0までが減る x座標が3番目の範囲内ならGが255で、Bが0から255まで増える x座標が4番目の範囲内ならBが255で、Gが255から0まで減る x座標が5番目の範囲内ならBが255で、Rが0から255まで増える x座標が6番目の範囲内ならRが255で、Bが255から0まで減る
230 :
229 :2007/06/21(木) 18:48:38 ID:???
間違い x座標の範囲内での位置:ax = x-(ap*a) 正しい x座標の範囲内での位置:ax = x-(ap*(a-1)) でもこれだと、座標0の時に色0にならんから、ifかなんかでやるしかないか。
231 :
Name_Not_Found :2007/06/21(木) 19:41:08 ID:rOEcBZgr
基本的な質問ですいません。 他の言語(例えばCとかRubyとか)も日付関数のミリ秒の起点はJavaScriptと 同じなのでしょうか?
カラーピッカーはFLASHで作るのが正解。
正解(笑)
正解なんて無い
模範解答
画像用意してマウスポインタを適当にいじればいいのに
透明度使えばいいじゃん
色相、彩度は画像にして、明度のみ生成するって手もある。
成分値は全部数値で入力させる
241 :
Name_Not_Found :2007/06/22(金) 00:52:59 ID:uKykU1oi
>>91 さんのを応用して以下のようにしたいのですが、<style>〜</style>が
反映されません。<head>内に続けて書くことは無理なのでしょうか?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title></title>
<script type="text/javascript">
function check_nonempty(fname, ename) {
var e = document.forms[fname].elements[ename];
if(e.value == '') { e.style.background = 'red'; return false; }
e.style.background = 'white'; return true;
}
function check() {
var result = true;
if(!check_nonempty('f0', 't1')) result = false;
return result;
}
</script>
<style>
<!--
body{
scrollbar-arrow-color:#2f231e;
scrollbar-base-color:#ffffff;
scrollbar-darkshadow-color:#2f231e;
scrollbar-highlight-color:#2f231e;
scrollbar-shadow-color:#2f231e;
scrollbar-track-color:#ffffff;
}
-->
</style>
</head>
<body>
>>241 JavaScriptの問題じゃない。
scrollbar-*は、標準モードではhtml要素に適用する。
両方指定しておけば無難かと。
ところで、Operaもこれに対応していたんだな。知らなかった。
>>242 ありがとうございます。
いまいち区別がついていませんでした。
スレ違いとは思いますが、>両方指定しておけば無難かと
とは具体的にどのように指定すればよいのでしょうか?
無知ですみません。
html, body { スレ違い
で、カラーピッカーは誰も答えれないと
>>245 いくつかコードが出てたみたいだけど
まだ解決してないの?
カラーピッカーなんて腐る程作られたやつあるんだし そのまま使うなり読むなりすりゃいいのに。
カラーピッカーの元質問者が何を求めているのか未だに 分からないんだが。
251 :
Name_Not_Found :2007/06/22(金) 12:29:56 ID:hXia+qYZ
質問ですが、JavaScriptって文字列変数がそのまま配列格納に なったりするんですか?気持ち悪い言語だとは聞いていました が、なんかバギーは現象は大丈夫ですか?
>>251 JavaScriptは変数には型がない。配列等はすべてオブジェクト。
RubyもPythonもPHPもおんなじでしょ。でそれが何か。
「文字列変数」という言い方にカビの生えたBASIC臭がするんですが。
言語仕様と実装のバグは無関係。 バギーいいたいだけちゃうんかと。
255 :
251 :2007/06/22(金) 15:49:49 ID:???
>>252 さんくす。2行目がないと満点なんだが、周りから一言多いって
言われてない?
>>255 悪いけどアンタに満点もらうのは却ってうれしくない気がするわ(笑)。
257 :
Name_Not_Found :2007/06/23(土) 00:25:16 ID:pf5WOtYh
質問です。 ifで分けるとき、 if(A){.....} if(B){.....} if(C){.....} のように羅列する書き方を見ますが、これは、 elseを使わなくてもこの書き方でも良いので しょうか。基本なのでしっかり知りたいです。
>>257 その場合だと3回評価するじゃん
else付いてたら始めのAを評価した時点でBとCを評価せずに抜けるでしょ
って、このくらいならどの本でも書いてありそうだけど何が聞きたいの?
259 :
257 :2007/06/23(土) 00:38:16 ID:pf5WOtYh
>>258 >何が聞きたいの?
正しい書き方です。でもご説明だとどっちでも良いということですか?
おけがでスッキリしました。ありがとうございました。
/::::)(:::)(:::::::::::)(::::::^::::::::::\ (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\ /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::) (::::::::::/ ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ (:::::::::/ 彡 ノ ノ :: 彡:/)) ::::::::::) (::::::::::/彡彡彡彡彡 ミミミミミミミ :::::::::::) ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::) | =ロ -=・=- ‖ ‖ -=・=- ロ=== |:/ ‖ / /ノ ヽ \ ‖ ヽ|ヽ _________ |/ ヽ`======/ .⌒ ` ========ノ. ..| | / .( 。 ・:・‘。c .(● ●) ;”・u。*@・:、‘)ノ / ( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) <世界で一番、標準規格を捻じ曲げている企業に「W3Cに準拠した」とか言われてもなぁ(苦笑) (; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.) \ .\。・:%,: )::::|.  ̄ ̄ ̄ ̄ | ::::(: o`*:c /.. \_________ \ ::: o :::::::::\____/ :::::::::: / (ヽ ヽ:::: _- ::::: ⌒:: :::::::: -_ ノ \丶\_::_:::::_:::: :::::_/:::: / | \ \ ::::::::::: :::::::::: ::: ::__/ |  ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄ ̄
>>257 たとえば配列aに入っているデータで正のものと奇数のものとを
数えたいとする。
var pluscount = 0, oddcount = 0;
for(var i = 0; i < a.length; ++i) {
if(a[i] > 0) ++pluscount;
if(a[i] % 2 == 0) ++oddcount;
}
別の例として、正のものと、正でない奇数との数を数えたいものとする。
for(var i = 0; i < a.length; ++i) {
if(a[i] > 0) ++pluscount;
else if(a[i] % 2 == 0) ++oddcount;
}
ね、どちらが必要な場合もあるでしょ。∴正解は「適切な方を使う」だね。
素人っぽい質問で申し訳ないんですが、例のカラーピッカー
>>151 のやつって
javascriptで作ったものなのなのでしょうか?
もしそうであれば、似たような感じでマウスのポインタを画面の◎部分に当て
て座標値を移動する、それに連動する感じでグラフ(曲線)も動くみたいな
ことをjavascriptでweb上で表示することは可能ですか?
264 :
Name_Not_Found :2007/06/23(土) 06:48:52 ID:R24aA9AM
>>263 >マウスのポインタを画面の◎部分に当てて座標値を移動する
"◎部分" とは ?
"座標値を移動する" とは日本語として変じゃない ?
やろうと思えばできる あまりスマートではないが
266 :
Name_Not_Found :2007/06/23(土) 07:46:03 ID:ogCAOMaX
>>266 とりあえず init() がどこからも呼ばれていない
また行き詰まったらおいで
269 :
Name_Not_Found :2007/06/23(土) 08:45:19 ID:ogCAOMaX
>>267 レス、直そうとしてくれてありがとうございます。
昨日の23時位からずっと製作していて、エラーは発生しなくなったのですが
相変わらず求めている結果にはなりません。
alert()を含めてもう一度チェックしつつ、丸投げの方もしてみます。
>>268 今、修正しました。痛恨のミスですorz
bodyから呼び出すようにしたのですが、相変わらず変化なしです。
>>269 変化はあるはずなんだが…
IE なら黄色の三角が出てるでしょう
271 :
Name_Not_Found :2007/06/23(土) 09:20:37 ID:R24aA9AM
>>267 正直, "面倒だ" と思ったけど, 逃げられそうにないなぁ.
先回りして それらしいものを作っとく.
272 :
Name_Not_Found :2007/06/23(土) 09:21:48 ID:1kPbY9Pe
データの受け渡し方、受け取り方ってどうしたらいいですか? 具体的には、 リンクがいくつかあって、どれをクリックしても飛び先は同じ ただ、押したリンクによって、表示される画像が違う、というものが作りたいんですが、 受け取ったメソッドをif構文で処理して画像を、というのはわかるんですが、渡し方、受け取り方がわかりません。 教えて下さいますようお願いします。
273 :
Name_Not_Found :2007/06/23(土) 09:23:32 ID:ogCAOMaX
274 :
Name_Not_Found :2007/06/23(土) 09:24:50 ID:ogCAOMaX
>>271 ありがとうございます…orz 本当に感謝します。
275 :
Name_Not_Found :2007/06/23(土) 09:37:50 ID:1kPbY9Pe
>>272 > 受け取ったメソッドをif構文で処理して
処理を処理して、っておかしいですね
perlのgetとか$ENV{'QUERY_STRING'}にあたる処理が知りたいんです
このスレで「手取り足取り」するのやめてくれないかな。 そういうスレじゃないでしょ。「手取り足取り」が落ちる のならそれは製作板がそういうものだということで、この スレを「手取り足取り」にしたらこれも落ちるだけだろ。
>>275 Perlのgetって何するの。$ENV{'QUERY_STRING'}だったら
location.queryだけど。
278 :
Name_Not_Found :2007/06/23(土) 10:00:53 ID:1kPbY9Pe
>>277 <a href="index.cgi?data=one">1です</a>
<a href="index.cgi?data=two">2です</a>
みたいなHTMLがあって、2ですをクリックすると、
index.cgiで$ENV{'QUERY_STRING'}に「data=two」が送られます
a要素かなにかでなんらかの情報を付与させて送って、
受け取ったhtnl側で「aをもらってるからこっちの画像に」「bだからこっちの画像に」みたいにしたいんです
できない仕様なんでしょうか?
jsでcssを指定したデータって別のページでも継承してた記憶があるので、それを探してみることにします
279 :
Name_Not_Found :2007/06/23(土) 10:18:07 ID:1kPbY9Pe
>>277 locationで調べたら、location.searchが出てきました
これが一番ほしいものに近いみたいです
有難う御座いました
281 :
Name_Not_Found :2007/06/23(土) 10:36:29 ID:1kPbY9Pe
>>280 いえとんでもないです
そのお答えがいただけてなかったらlocationに気付くことはなかったです
感謝しています
href="sample.html?active">で?activeが渡せるようになったので、
次はそれで<img src="active.jpg">にもっていけるように勉強してみます
有難う御座いました
282 :
Name_Not_Found :2007/06/23(土) 12:06:43 ID:fEmCbeMN
function closeElements(source, otherids) { var arr_other_elements = otherids.split(","); for(i=0; i<arr_other_elements.length; i++) { if(document.getElementById('img' + arr_other_elements[i]).name == 'close') { document.getElementById('element' + arr_other_elements[i]).style.display = 'none'; document.getElementById('img' + arr_other_elements[i]).name = 'open' document.getElementById('img' + arr_other_elements[i]).src = source + 'plus.gif'; } } } ある要素をクリックするとチェックボックスが二つ表示され もう一度クリックするとチェックボックスが非表示になるスクリプトなのだが document.getElementById('img' + arr_other_elements[i]) has no propertiesというエラーが発生 無知な上他人のスクリプトを使っているから助けてほしい
>>282 その要素に正しくIDが振ってないとかじゃねの?
alert('img'+arr_other_elements[i]);
をループ内に入れて実行してみては。しかしなんでそんな
面倒なことしてるのかよく分からんけど。
<a onClick=alert(this.innerText) href="javascript(0);">TEST</a> というようなリンクを動的に作り、クリックすると"undefined"が表示されます。 オブジェクトであるthisを取れない原因としては何があるのでしょうか? どうぞよろしくお願い致します。
285 :
Name_Not_Found :2007/06/23(土) 12:21:21 ID:fEmCbeMN
>>283 HTML要素にはimg1しかない上、そのFunctionを読み込まなければ一見正常なのだが
そのFunctionが何をするのか分からないためエラーを直したい
ちなみにスクリプト全体としてはそのFunctionの上にもう一つ。
function changeVisibility(displayid, source, otherids) {
var displayelement = document.getElementById('element' + displayid);
var imgelement = document.getElementById('img' + displayid);
if(imgelement.name == 'open') {
displayelement.style.display = 'block';
document.getElementById('img' + displayid).name = 'close';
document.getElementById('img' + displayid).src = source + 'minus.gif';
if(otherids.length)
closeElements(source, otherids);
}
else {
displayelement.style.display = 'none';
document.getElementById('img' + displayid).name = 'open';
document.getElementById('img' + displayid).src = source + 'plus.gif';
}
}
さあ… innerHTMLだと取れるけどなあ。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> </script> </head><body> <p><a href="#" onclick="alert(this.innerHTML)">test</a></p> </body></html>
>>285 言ってることが分からないのか?getElementByIdの引数で
指定しているID名とHTML側のID名が一致してないから出るエラー
だろ。だからHTML側も貼らないとチェックできない。もっとも
そんなの自分でチェックすりゃいいじゃん。
>>284 普通に動くが。
どうやって動的に作っているかという方が問題かな。
そっちのスクリプトを出してもらわないと。
てか、IE以外のブラウザを使っているっていうオチじゃないよな?
289 :
284 :2007/06/23(土) 13:12:25 ID:???
レスありがとうございます。あいまいな質問でしたので補足です。 使用ブラウザはIEとIEベースのタブブラウザです。 動的に出力した部分のソースは間違いなく <a onClick=def(this) href="javascript(0);" value="test">TEST</a> となっています。自作関数def()の中で、 obj.value, obj.innerText, obj.hrefを表示させようとするとinnerTextのみが表示されないので クリックされたタグ全体をアラートしたところ、 "<a onClick=def(this) href="javascript(0);" value="test"></a>" と、innerTextが消えてしまいます。
290 :
Name_Not_Found :2007/06/23(土) 13:22:27 ID:fEmCbeMN
>>287 そのことは
>>285 の最初に書いてあるとして、今Javascript側のIDをimg1にして合わせたのだが
今度は何故か要素をクリックしてもCheckboxが現れない
やはりcloseElementの関数を読み込まなければ一見正常なので、
可能ならcloseElementがどういった関数なのか教えてくれ
291 :
266 :2007/06/23(土) 13:38:46 ID:ogCAOMaX
>>289 だから作っているところを出さないとどうしようもないって。
>クリックされたタグ全体をアラートしたところ、
>"<a onClick=def(this) href="javascript(0);" value="test"></a>"
これって、innerHTMLかouterHTMLを出したんだろ?
動的に出力した部分にテキストが入っていないことだけは確実なはずで、
どうして「間違いなく〜となっている」と自信持っていえるのかが分からない。
293 :
284 :2007/06/23(土) 14:09:12 ID:???
>>292 それは、画面に出力された後に、選択された部分のみのソースを見る機能にて確認しました。
あと、AJAXにて動的に出力直前の文字列をテキストに書き出したのを見ても期待通りなんです。
ホント謎です。。
>>293 だからスクリプトを出せと・・・あ、分かった。
どっかで
if (obj.innerHTML = '')
なんてif文書いてないか?
295 :
◆.PT9876/4U :2007/06/23(土) 14:44:23 ID:R24aA9AM
>>291 移動するのか, ここに居続けるのかはっきりしてくれ〜.
ここに居続けるのなら僕は関与しない.
そもそも "何をやろうとしているのか" が はっきりしないので気が向かないのだ.
(とりあえず, 条件に合わない row を隠そうとしているのだけは解った)
一応上記の目的の script は書いた.
しかし, "yes" "no" の cell が 2 つ並んでいるため bug 発生.
これを直そうとすると根本的に書き直さなければならない.
正直, 投げ出したい気持ちだ.
296 :
266 :2007/06/23(土) 15:35:20 ID:rKv4NEsu
違うPCからです。
>>295 すいません。Web Page Work Shopの方に移動します。
297 :
◆.PT9876/4U :2007/06/23(土) 15:41:20 ID:R24aA9AM
>>296 了解,
取り合えず, "条件で row の display を切り替える script" の完動するものを作る.
その他詳細は先方で...
298 :
284 :2007/06/23(土) 15:45:43 ID:???
>>294 色々スクラップ&スクラップしていたら解決しました!
ID指定で放り込む前に、
fuction loading(id){
document.getElementById(id).innerHTML = "Loading...";
}
という小細工関数を外したらthisをちゃんと扱えるようになりました。
このloading()関数を実行したことにより、引数で渡したthisが変わってしまったのでしょうか、、?
もしかすると前にも意見を頂いた方のような気がします。ホントに感謝です!
299 :
266 :2007/06/23(土) 17:00:29 ID:rKv4NEsu
>>297 本当にありがとうございます。
あちらの方にレス返しておいたのでチェックよろしくお願いします。
質問です あるノードが持つイベントリスナの一覧を取得する方法(メソッドなど)はないでしょうか? あれば方法を教えてください DOM2 Eventsにはそういったようなものはないようなので ベンダ拡張のものでも構いません(ラッパーを作成してそれに取り入れたいと思っています)
>>300 そのノードのすべてのイベントをチェックしてfunctionが返ってきたら…っていう方法はどう?
302 :
Name_Not_Found :2007/06/23(土) 17:29:27 ID:8ibfAcbw
<FORM>(略) <INPUT TYPE=SUBMIT VALUE=投稿する onClick=seigyo();'> </FORM> でSUBMITボタンを押した後に前回投稿より30秒しか立ってなかったら ダイアログを出すようにしているのですが、ダイアログが出たあとOKを押したら そのまま投稿してしまいます。どうやって投稿を中止させたらよいのでしょうか? よろしくお願いします。
304 :
Name_Not_Found :2007/06/23(土) 18:06:52 ID:8ibfAcbw
>>303 動いてしまいました^^;
return;を関数の中に入れたのですが間違ってますか?
IEならretur false
>>301 ありがとうございます
イベントハンドラとしてしか関数を追加できない環境の場合はそれでいいと思うのですが、
DOM Eventsを実装している環境に対してはaddEventListenerを使用したいのです
やはりprototype.jsのようにすべて自分で管理する以外ないのでしょうか?
>>306 ないだろうな
addEventListenerに[[ReadOnly]]が付いていないブラウザだったら
onloadで強制的に書き換えてしまうというのも手だけど
>>307 ありがとうございます。ないですか…
イベントリスナ一覧が取得できるようなメソッド
(あるとすればEventTarget#getEventListeners(type)のような…
getEventListenersByEventTypeでしょうか?)が
独自の実装としてでもあっていいような気がするんですけどね
>onloadで強制的に書き換え
これは具体的にどのようになるのでしょうか?
JavaScriptのパスワードを教えてほしいです。 サイトに書いてあるのはよく分からんので、この天才の集い2chに聞こうと思いました。 よろしくおねがいします。
右に2左に4
三回まわってワンと吼える
イロイッカイヅツ
おまえらのはパスワードじゃないだろw 真のパスワードはこれだ、 ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺ…
いや, 真のパスワードはこれだ. 16t{Qen+s|G2P8oj9[OFQbxR;[ClPU[N3mjSV}2hB}DkF[Az[AbE)[D[K l[N(IL3B(a38[B7ROag[Mp[Lr-[CrG6-E[B7dNxVGlSy[Fko2Rd=1[G.=m dGPe:w9[C8[FsEuB[FyQDy[Jz;[BJUq~[MavF[L~xTjV9PUc=[Lu/mM[I-J 6^Jv%Gi[O[N+yi0+_C7o[K[I8[F-Fcd[AVI%jE2/-eD[KOF9ez[CM1f3|1 0eu8EEk[IZcfXX[LwAjRcG9m_P$8[J[L[K2d[GT[O=Df-$ykQ5Gmb9g7r 5z[E|Lm[G2*LiZ^Y[CFe^;T2YK0tf4nuTp`jMfe[FNzfbWQM+lMu:o b;K`ozaaAnjFZLOb45zgBC_a~xSrL9x%j8,dBz2c0jh;,8%3`. B(`|Lh_w:wdm[H[N%1ggbHFYNhMyPU+r1R0d^l[I{:934[E[LFp[O_AN o$/7[Fp[H|sFh%[C#vGKp`qd%d.oyXvONG5qoFA?([Ide[N_lOy`p6x ki[F`YoCmEux~c!MqL[Ko(6j![KOfpV|fG[H[MfHC:`^co9^ZiE[O[L[A[G 3q(,%EgnP[Fk[N%X[O6tU1Dau3{EG:y[M_j;dpcpc[C-* @v2:,@3|m|g8y(CPd+I|[G*p[KY[M
>>306 >イベントハンドラとしてしか関数を追加できない
それは追加じゃないだろ。書き換えだろ。
そして、関数式や関数名を右辺に書いてイベントプロパティに代入するしかないブラウザは、IE4、Opera6、NN4、などに限られる。
今のインターネット人口の何マイクロパーセントが、果たしてこれらを実使用したことがあるかなw
1マイクロパーセント=1億分の1。 いくらなんでも少なく見積もりすぎだろ。 今使っている人でも1パーミルくらいはいるんじゃないか?
317 :
Name_Not_Found :2007/06/24(日) 15:10:32 ID:eWafetu7
質問です。 z-index=0の<TD>要素AとBがあって | A | --- | B | そこにz-index=5の<DIV>要素Cを重ねます。 | C | | | このとき、Cの上側にマウスを持っていったらAのonMouseOver Cの下側にマウスを持っていったらBのonMouseOverを起こしたいのですが マウスをCの上側にしても下側にしても必ずAのonMouseOverが起こってしまいます。 うまくA,Bのonmouseoverイベントを取得するにはどうしたらいいでしょうか? よろしくお願いします。
>>317 やってみたら問題なくできるんだが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<table border="2" sumary="test"><tbody>
<tr><th onmouseover="alert('A')">AAAAA<br>AAAAA<br>AAAAA<br>AAAAA</th></tr>
<tr><th onmouseover="alert('B')">BBBBB<br>BBBBB<br>BBBBB<br>BBBBB</th></tr>
</tbody></table>
<div style="position:absolute; z-index: 5; top:40px; width: 200px; background: y\
ellow">
CCC<br>CCC<br>CCC<br>CCC<br>CCC</div>
</body></html>
>>317 marginとかpaddingの問題は?
>>317 AとBは重なっていないのにB上でAのイベントが発生するってこと?
HTMLを見直したほうがいいかも
ある変数の値を100〜0〜100という風に往復させる スマートな方法を教えて下さい。
>>321 スマートっていうのが何を求めているのかわからないけど、
ある変数を往復させるとき100ずつ変化させたらスマートじゃない?
var a = 100;
a -= 100;
a += 100;
スマート?
>>322 すみません、説明不足でした
setIntervalの中で100→99→98……0→1→2…
という風にしたいのです
なるべく増加中・減少中のフラグ無しでやりたいのですが…
>>323 function (){
var i = 100;
while(i > 0){
i--;
}
while(i < 100){
i++;
}
}
あんまスマートじゃないかもしれないけどこれをひたすらsetIntervalでまわしてくれ!
100→99→98……0→1→2…ってなるから。
やりようはいくらでもあるだろうけど スマートなやり方があるなら私も知りたいな 私が考えたのはこれ for(var i = 1000; i < 2000; i++){ var j = i.toString().match(/(\d+)(\d{2})/); j[2] = (j[1] % 2) ? 100 - j[2] : j[2] - 0; document.write(j[2] + "<br>"); }
326 :
Name_Not_Found :2007/06/24(日) 18:40:14 ID:yEcW/1/6
イベントがどうもよくわからないので質問させてください
ここにあるような感じでオブジェクト指向をもちいて、URLからXMLを取得するクラスをつくりました
ttp://ishikawa.arielworks.com/memo/2005/07/24/031449 http_obj.onreadystatechangeのイベントが一回しか呼ばれず
http_obj.statusの値が「1」にしかなっていません
URLにアクセスして読み込みが終了して、http_obj.statusが「4」になったときもイベントが起こりそうなのですが
起こらない状態です
どういうことなのでしょうか?
[html側]
<script type="text/javascript">
var xml_request = new GetXML();
function PrintXML(xml){
alert(xml);
}
function Test(){
var url = 'XMLを取得するURL';
var query = 'XMLを取得するときのクエリ';
xml_request.ConnectURL(PrintXML, function(){xml_request.CallBack();}, url, query, 'GET');
}
</script>
327 :
326 :2007/06/24(日) 18:41:18 ID:yEcW/1/6
[JavaScript側] function GetXML(){ this.http_obj = new XMLHttpRequest(); } GetXML.prototype.http_obj; GetXML.prototype.KeepFunction; GetXML.prototype.ConnectURL = function ConnectURL(FuncSuccess, FuncCallBack, url, query, method){ this.KeepFunction = FuncSuccess; this.http_obj.open(method, url, true); this.http_obj.onreadystatechange = FuncCallBack; this.http_obj.send(query); } GetXML.prototype.CallBack = function(){ if(this.http_obj.readyState == 4){ if(this.http_obj.status == 200){ this.KeepFunction(this.http_obj.responseXML); }else{ alert("URL接続失敗"); } } }
var i = 100, d = -1; setInterval(function(){ document.getElementById('count').innerHTML = i; i += d; if (i == 0 || i == 100) d = -d; }, 100);
>>321 普通にやっちゃだめなん?
var a = 100;
var d = -1;
function () {
<何か処理>
a += d;
if (a == 0 || a == 100) d = -d;
}
>>324 ならないだろ。常に100。
330 :
329 :2007/06/24(日) 18:51:33 ID:???
考えることは同じだな。まあ普通か
331 :
328 :2007/06/24(日) 18:51:57 ID:???
>>329 結婚を前提としてお付き合いさせてください!
332 :
321 :2007/06/24(日) 18:56:01 ID:???
皆さんありがとうございます。
全部試しましたが、やはり
>>328-329 でいきます。
ありがとうございました
n個の数値から重複しない順列 たとえば n = 3 のとき 012 021 102 120 201 210 のように 全て列挙(配列に格納でもOK)するとして この n の値をできるだけ大きくしたいのです。 何か良いアルゴリズムはありませんか。
たまにアルゴリズムの話になるんだけど、どっかにアルゴリズムスレはないの? JavaScript特有の書き方の話までいけば「へぇ」って思うことはあるんだけど、 完璧にアルゴリズムだけの話になるとスレ違いな気がする
>>335 主張は分かるけど頻繁じゃないし追い返す程でもないでしょ。
>>333 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function perm(elts, seq, pos) {
if(pos >= elts.length) { seq.push(elts.join('')); return; }
perm(elts, seq, pos+1);
for(var i = pos+1; i < elts.length; ++i) {
var z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
perm(elts, seq, pos+1);
}
}
var elts = [0,1,2,3,4,5], seq = [];
perm(elts, seq, 0);
document.writeln('<p>' + seq.join(' ') + '</p>');
</script>
</body></html>
でも、このスレでそんな質問するようなレベルのやつは アルゴリズムがわかってもjavascriptで書けないんじゃないかな
>>336 げげっ! 全然間違っている、少々お待ちを…
>>336-338 1行抜けていた…
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function perm(elts, seq, pos) {
if(pos >= elts.length) { seq.push(elts.join('')); return; }
perm(elts, seq, pos+1);
for(var i = pos+1; i < elts.length; ++i) {
var z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
perm(elts, seq, pos+1);
z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
}
}
var elts = [0,1,2,3,4,5], seq = [];
perm(elts, seq, 0);
document.writeln('<p>' + seq.join(' ') + '</p>');
</script>
</body></html>
>>335-337 言葉足らずですみません。
JavaScriptで書くことを前提としての質問です。
たとえば
>>336 のプログラムでも n = 8 程で
かなりの時間がかかってしまいます。
これをできれば n = 10 以上でもすぐ列挙を
できるようにしたいのです。
繰り返し処理がメインなので書き方次第で
速度もかなり違ってくるのではと思いましたが
JavaScriptでは速度的に難しいのでしょうか・・・
>>340 あのさあ、n = 10 だと全部配列に生成したら3628800通り
だからその要素数の配列が必要になるわけだよ。そんなのC
だって遅いだろ。全部要るわけじゃなくて最初からちょっとだけ
使うとかなわけ?
342 :
335 :2007/06/24(日) 23:30:50 ID:???
>>340 >>336 見て、「優しい人がいるもんだなぁ」と思ってたが見事な台無しの仕方だな
まずjavascript前提の質問だったら何でそんなことが必要なのよ?
CGIでやらせるんじゃダメなわけ?遷移するのが嫌ならAjax使うとかでもいいだろうし。
目的がわからないと答える方も二度手間になるよ?
>>335 みたいにヒントも与えられず
答えもしないのに文句だけ言う奴が最近多いな
>>333 根本的に無理。
そこまでいくとアルゴリズムでどうにかできる範囲じゃない
洩れも
>>335 すっこめと思った。CGIでやったって400万の配列
生成してどーすんのよ? ピント外れも甚だしい。
これって完全にnullのパターンだよな…
実は、nullでした。バレました?
null は意地でも 気持ち悪い半角句読点を使うから 別人でしょ
347 :
333 :2007/06/25(月) 00:12:56 ID:???
>>341-344 どうやら大きい数の列挙は無理そうですね。
諦めます。ありがとうございました。
>>336 ,338-339さん
せっかく組んで頂いたのに申し訳ありません。
ありがとうございました。
>>343 ,344
不快な気持ちにさせてしまったのか申し訳ない。
最近やけに多くなってレスが埋まるなって思ってしまいつい。
CGIって言ったのは、javascript側でやるよかCGIでやる方が速いだろって思ったんだよ。
>>347 何か個人攻撃っぽくなってしまったごめん
ホレ氏乙
結局何がしたいのかわからんかったな
function p(n) { if (n < 2) { yield [0]; } else { let N = n - 1; let g = p(N); while (true) { let u = g.next(); for (let [v, i] = [, 0]; i < n; i++) { (v = u.slice(0)).splice(i, 0, N); yield v; } } } } js> let g = p(30); js> g.next() 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 js> g.next() 28,29,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 js> g.next() 28,27,29,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
>>321 出遅れたけど思いついたんで書いとく。
var v = -1 ;
function vibration() {
v = (v + 1) % 200 ;
return Math.abs(v-100) ;
}
353 :
Name_Not_Found :2007/06/25(月) 12:56:40 ID:aSAdCUdR
質問です。 ●●.htmlから○○.htmlをiframeで読み込んで、 ○○.html内の画像のスワップイメージで●●.html上の画像を変える事は できないんですかね? やり方を教えてください。
354 :
321 :2007/06/25(月) 12:58:55 ID:???
>>352 これです!!絶対値までは思いついていたんですが、あと一歩が出なかったんです!!
最高にスマートです!!ありがとうございました!!!
355 :
Name_Not_Found :2007/06/25(月) 13:02:31 ID:yjW/+9fS
しっかりこちらに漂着. さて, 回答する人はいるのか ? (わくわく)
null がすりゃいいダロ
>>353 2つのHTMLが同一鯖ならできるが別鯖なら絶対不可能。
frames.IFRAMEの名前.document.images.IMGの名前.src = '画像のURI';
359 :
Name_Not_Found :2007/06/25(月) 17:19:39 ID:u7Jcm1wx
<input type="text" name="hoge" id="piyo" onFocus="〜">と同じ動作を document.getElementById("piyo")で処理させたいのですが、 var aaa = document.getElementById("piyo"); aaa.onfocus = function(){〜} とすると動いてくれません…。どうすればいいのでしょうか?
>>359 そのdocument.getElementById()は「当該要素piyoが読み込まれた後で」
実行されるようになってるんだろうな?
361 :
Name_Not_Found :2007/06/25(月) 17:31:38 ID:yjW/+9fS
>>356 我が辞書に "frame" の文字なし
>>355 WebProg 板にも出没.
結局, 誰にも相手にされず...
>>359 window.onload=function(){
document.getElementById('piyo').onfocus=function(){〜}
}
>>362 典型的な OOP 記述.
function CallBack() は いわゆる constructor と呼ばれるもの
364 :
362 :2007/06/25(月) 23:02:00 ID:???
OOP関係ですか。知りませんでした。 少し調べたのですが、ちょっとすぐには理解できなさそうです。 勉強し直します。ありがとうございました。
365 :
Name_Not_Found :2007/06/26(火) 00:35:25 ID:3/vkJzX1
あの、javascriptで2chとまったく同じデザイン、機能や仕様の掲示板って 作れるのでしょうか?
はい?
367 :
Name_Not_Found :2007/06/26(火) 01:22:12 ID:rDYL9hqk
>>367 そのエラーメッセージはコピペしたんだよな?
だったら、getElmentByIdというメソッドが存在しないから。
369 :
Name_Not_Found :2007/06/26(火) 01:36:20 ID:3/vkJzX1
javascriptでwebの掲示板作りって可能なんですよね?では2ちゃんねるの ようなデザインに掲示板を作れるのですか?
はい?
371 :
Name_Not_Found :2007/06/26(火) 06:46:05 ID:/5OlroJP
>>367 "要求された id の element を探したけど見つからなかったぜ ゴルァ"
と言ってるのだと意訳しましょう.
getElementById() method では ありがちなエラーなのだ.
>>369 >javascriptでwebの掲示板作りって可能なんですよね?
ダウト
>>371 newDoc も document.getElementById('newDoc') みたいに getElementById で取得する実装になっているなら
まさに "要求された id の element を探したけど見つからなかったぜ ゴルァ" だが、
>367 の URL を見る限り、newDoc は document.createDocumentFragment() で生成されるようだから、見当違いだな。
>>367 http://q.hatena.ne.jp/1156425849 ここにある
> var TargetDiv = document.getElementById("Unique2");
> var newDoc;
> newDoc = document.createDocumentFragment();
> newDoc.appendChild(TargetDiv.cloneNode(true));
> alert(newDoc.getElementById("NotUnique").innerHTML);
> newDoc = null;
これを実行したものと仮定するが、ここで newDoc には DocumentFragment が入っている。
名前が紛らわしいが DocumentFragment は Document インタフェースを継承しないので
Document#getElementById メソッドは持っていない。だからエラーが出る。
直接は関係無いが、この URL に書いてあるような
同じ ID が何度も出てくる XML 文書を使うのはやめたほうがいい。理由は面倒なので書かない。
>>371 元質問を良く見ろ。大嘘な解説偉そうにしてんじゃないよ半可通。
>>369 javascriptではサーバ内に何か保存することは原理的に不可能。
だからアンタのブラウザ上だけで動作し、アンタ一人が書き込む
という掲示板しか作れないがそれでいいなら見た目は2ちゃんに
似せることもできるだろう。終了。
対応するCGIプログラムをサーバ側に置けばかなり使いやすい物が出来るでしょう。 当然全員JavaScript有効が前提条件になるけど。 しかし2ch型2ch型と、いったいこれのどこが使いやすいのかね。 最低最悪のデザインと低スキル丸出しなバグの山と下痢便のようなファイル構成。 まだblogを掲示板代わりに使った方が便利だと思う。
そうだね、お家帰ろうね
おじいちゃん、こんなとこにいたんですね。 お薬の時間ですよ。さ、行きましょう。
379 :
Name_Not_Found :2007/06/26(火) 11:50:23 ID:3JjgAU5G
質問です。 toSourceメソッドってIEでも動きますか。異環境なのでチップスお願いします。
380 :
Name_Not_Found :2007/06/26(火) 12:11:50 ID:IQXeVWkY
みなさん返事ありがとうございます。では2ちゃんねるの管理人 ひろゆき氏はどのwebプログラミング言語でこの掲示板を作った のですか?質問ばかりで申し訳ございません。
perlじゃね? ちなみに2chのクローンなんてのは沢山有るから、今更作っても全然需要無いよ
最初はPerlだったかな
384 :
379 :2007/06/26(火) 17:05:27 ID:o0Xsq1qy
>>383 ありがとうございます。やっぱ動きませんか。
実装予定はいつごろですかね?
ついでにsetAttributeとaddEventListnerもお願い
します。
誰にいってんの?
386 :
379 :2007/06/26(火) 18:59:42 ID:???
>>385 あ、すいませんでした言葉足らずで。
ビルゲイツがいたもんですから。
そのバスに乗ってた人はもうみんな死んだんですけど。
388 :
367 :2007/06/26(火) 22:26:15 ID:???
389 :
Name_Not_Found :2007/06/27(水) 02:25:14 ID:lkiXFTix
*script内の処理 function erase() { document.test.file_name.value = ""; } *body内の処理 <form name="test"> <input type="file" name="file_name"> <input type="button" value="削除" onClick="erase()"> </form> input type="file"で入力したファイル名を、ボタンを押すことによって テキストエリアから削除ができるようにしたいんですけど、削除できなくて困っております。 input type="text"時は上記のやり方で削除出来たんですけど… どなたか方法を教えて下さい。お願いいたします。
name使わないで><
document.test.file_name ↓ document.forms['test'].elements['file_name'] だよな?
392 :
Name_Not_Found :2007/06/27(水) 02:44:21 ID:lkiXFTix
レスありがとうございます。しかしまだ解決dきていません。無知で申し訳ありません。
>>390 name使ったらダメなんですか?
>>391 document.forms['test'].elements['file_name'] = "";
で出来るわけじゃないんですよね?
>>392 いやそれは知らん。
まあ.valueが抜けてるけど関係ないだろう。
ググったら直ぐに出ると思うけどなあ
>>389-393 なんで皆こんなに無知なの? <input type="file">のvalue
はscriptからは*絶対に*書き換えられない。書き換えられたら
パスの分かっている重要なファイルとか取られ放題になるだろ。
空にするだけなら、その<input type="file">を独立した
formの中に入れてそのformをreset()することでできるが、
formが分かれるとまずいということだと難しいよね。
>>388 documentFragmentに対してdocument.getElementById()が使える
という「標準外の機能を持った」ブラウザがその時使われて
いたとかじゃないですかね。だからその書き込みは嘘じゃない
けどあなたには役に立たないとか。
上のやり取りを見て質問です。 フォーム部品を指定するとき、どの書式が望ましいですか? 1 document.test.id.value 2 document.forms['test'].elements['id'].value 3 document.getElementById('id').value 3>2>1?
>>395 嬉しそうだなぁ。。
質問者がいきなり自演して自分にウソを教えればこのバカバカしい習性を利用できる。
>>367 l の後ろの e が抜けている、つまり getElmentById じゃなくて getElementById
ということではないだろうか。
368 も同じことを言っているように見えるが。
>>398 なるほどね、注意します ^_^; でもtype="file"の質問は
よく出るからFAQに入れてもいいかも。
>>397 1はIE専。その代替として
document.forms.test.elements.id.value
を勧めますが2でも3でも1よりマシでしょ。
ダウト>javascriptではサーバ内に何か保存することは原理的に不可能 不可能なのはクライアントPCのファイルを操作すること
>>402 だからさ、CGIとかと連携すればできるけど、そうじゃなかったら
ブラウザ上のJavaScriptでサーバ上の操作はできないでしょ。
CGIとの連携の話?それともサーバ上のJavaScriptの操作の話をしているわけ?
クライアントPCのファイル操作だってActiveXとかWSHとか言い出したら
話が別なわけで、前提をはっきりさせようよ。
>>401 1はIE専ってわけじゃないだろ
他ブラウザでも動くことは動く
>>402 jsで鯖のファイルが弄れたら、やりたい放題無法地帯じゃねーかw
何その夢の技術ww
ばかばっか
オマエモナー
質問させてください。 同ページ内に複数の<a>があるとして、 現在focusされている<a>が document.getElementsByTagName('a')の配列の何番目なのか 取得する事って出来ないでしょうか。 よろしくお願いします。
>>409 a element で focus と言う表現はおかしいと思わないか ?
それと getElementsByTagName('a') で得られるものは
"配列" ではなく, a element collection.
よろしくお願いされても答えようがない.
>>409 forcus event で取得した、event 発火 element と、getElementsByTagName で取得した nodeList(配列)の要素を逐次比較。
めんどくさいな。
何故 <a>で? って疑問があるが、
<input>でもフォーカスされているかどうか調べること出来たっけ?
あったらそれで、無けりゃイベントに何か仕込んで、
for (n in anchorElements)
でループしたらn番目って判断できそうだけど。
>>410 言いたいことはわかるが、
>>409 でも十分通じるんじゃね。
>>412 煽り口調になってしまったけど,
"リンクの何番目" と言うことに重要性があるとは思えない.
もしかすると onmouseover で逆引きをやりたいのかも知れない.
"どうしても" というのなら index 用の array を用意して
onload で Index[A[i]]=i; (A: a element collection) てな感じで
ついでだけど, for(i in A) 形式は A が element collection の場合は使えない. それに対して A が array ならば OK.
prototype.js使ってたら使えないけどね
>>414 for(i in getElementsByTagName('TAG'))
でも動いてるんですけど...?
ダメなの?
>>409 XPathを使えるなら『現在focusされている<a>』のpreceding::Aの個数を求めるのがおそらく最速。
>>414 element collectionなる造語はどこからでてきた。
for..inはDontEnum属性を持たないプロパティを列挙する。
ECMAScript実装上のNodeList[n]、HTMLCollection[n]が列挙不可かどうかはホスト依存。
少なくともGeckoは可能。Opera、Safariは不可。
まぁ配列を回すときはfor..inではなくindexを数えろというなら同意しなくもないが、
JavaScriptのArrayはindexが飛ぶこともある。
NodeListはindexが飛ぶことはないが生きている。
また変なのが居着きそうだな
>JavaScriptのArrayはindexが飛ぶこともある ソースがわからんのだが
>>419 ソースって情報元?ならECMA。
プログラムコードが見たいなら以下でどうぞ
var a = [];
a[1181542658] = "hello";
// コメント外したらブラクラ for(var i = 0; i < a.length; i++) { alert(a[i]); }
for(var i in a) { alert(a[i]); }
421 :
Name_Not_Found :2007/06/28(木) 18:16:17 ID:meL89RVE
特定のブラウザでのみHTMLの一部を改変して表示させたいのですが、具体的にどういった方法でできるのでしょうか?
改変するのと表示するのでは全く別のこと
>>420 配列の中の定義された値だけを走査する、という状況なら index が飛ぶこともあるだろうが
配列を走査する、という状況なら 0 .. a.length - 1 まで全ての添え字で処理されるべき。
その点後者は、undefined も含めた全ての値にアクセスするわけではないので処理が“飛んでいる”と言えるな。
そもそもそういう使い方なら Array でする意味はないってことはわかって書いてるんだろ?
>>421 1.サーバ側でブラウザ別に違うソースを書き出す
2.クライアント側でブラウザ別に違うソースを読み込む
のどっちかだね
このスレ的には2だから、あじゃあじゃ
framesすべてに何かしたい時は for(i in frames)でおk? なんで試してみないのかというと、これでを使って 何かをしようというわけでもないから
はい、次のかたどうぞ〜
>>425 だからそういうのは「保証されない」ってば。たまたま
手元のブラウザで動いたからそれでいいとか思わない方が
いいよ。保証されてない動作は他のブラウザやそのブラウザの
次のバージョンでどうなるか分からないんだから。
429 :
Name_Not_Found :2007/06/28(木) 23:19:12 ID:QOlzUv6n
質問です。 Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい ますか?
ま、Array#forEachを使っとけってこった。
フォームに 00_00 などの文字列を貼って、submitしたら 00_00 01_01 02_02 03_03 04_04 05_05 06_06 07_07 08_08 09_09 10_10 10_0a と貼ったら 11_0b 12_0c 13_0d 14_0e と展開してくれるスクリプトを書きたいのですが、どうやればいいでしょうか?
432 :
Name_Not_Found :2007/06/28(木) 23:54:18 ID:IUjf0PIi
質問です。 二つのセレクトメニューで、現在の日付を初期値(phpで制御)として設定しています。 セレクトメニュー1 セレクトメニュー2 【2007年6月】 【28日】 2007年7月 2007年8月 ・ ・ それでセレクトメニュー1の値によってセレクトメニュー2の項目を メニュー1が1月ならメニュー2に1〜31日、2月なら1〜28日といった感じに 変更したいのですが、メニュー1の値をどう指定すればいいかわかりません。 ご教授お願いします。
ここでは教授はしない。
>>434 rubyのString#succやInteger#succで作ってやれば納得するだろ、おそらく。
>>432 本当に微妙な差だが、表形式のカレンダーを出力するのは、PHPの方が易しい。
だから、誰から見ても使いにくいというか使えない分割された糞セレクトコントロールじゃなくて、カレンダーを出力してもらえ。
どうせ、別の月へのリクエストはほとんど使われないんだから、わざわざJSに分散させる必要は全く無い。
>>435 カレンダーにするかどうかは製作者の設計によるよね。画面の当該
領域が小さいものならカレンダーじゃなくselectというのは普通に
あるでしょ。
>>432 PHP側で「1番目のselectの何番目なら日付は何日まで」という情報を
適当な配列に生成しておいてもらい、それを参照するのが楽かと。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var days = [30, 31, 31];
function chg() {
var ind = document.forms.f0.elements.s0.selectedIndex;
var sel = document.forms.f0.elements.s1;
sel.options.length = 0;
for(var i = 0; i < days[ind]; ++i) {
sel.options[i] = new Option(String(i+1));
}
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><div>
<select name="s0" onchange="chg()"><option>2007.6</option>
<option>2007.7</option><option>2007.8</option></select>
<select name="s1"><option>X</option></select>
</div></form></body></html>
>>430 だからframesはArrayじゃないんですけど。
>>428 for(var i = 0; i < frames.length; ++i) ... が無難。
>>431 同好の士みたいだし、オレのスクリプト分けてやるよ
439 :
432 :2007/06/29(金) 10:55:16 ID:???
>>435 >>436 丁寧な回答本当にありがとうございます!
おかげさまでうまくできました。
あともう一つ聞きたいのですが、javascriptでの変数や関数をphpで使用すること
は可能ですか?
var ind = document.forms.f0.elements.s0.selectedIndex;
で取得した値をphpに渡す等
普通に代入しようとしたらエラーになってしまったんですが・・・
>>439 JavaScriptはブラウザ上で動作し、PHPはサーバ上で動作してる
でしょ。だから普通に代入なんてできるわけがない。渡したければ
formの適当な要素(hiddenとか)の値としてセットしてそのformを
送信するとかでしょ。
>>439 そんなときこそAJAXですよ。
まあ、渡せるのはデータであって、変数や関数じゃありませんが。
>>437 Array.forEach(frames, function(f){ ... })
Array.prototype.forEach.call(frames, function(f){ ... })
MDCにあるArray#forEachの代替コードは
for (var i = 0; i < len; i++) { if (i in this) ...
添字の抜けも考慮してある
443 :
Name_Not_Found :2007/06/29(金) 14:48:53 ID:LDupVtZA
質問です。 Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい ますか?
>>443 どんな文字列なら解析してくれるのかよく分からないんだよね。
だから実用に使うページの場合は自分で正規表現とかで解析するよな。
でないと「どういう文字列を与えればいいのか」と言われた時に答えられない。
445 :
443 :2007/06/29(金) 15:53:05 ID:???
>>444 やはりそうですか。自分できっちり設定します。
ありがとうございました。
446 :
Name_Not_Found :2007/06/29(金) 19:15:33 ID:vOAzjufZ
質問させてください。 JavaScriptを利用して、一つのウィンドウを使い、内容を表示して確認、次の内容を表示して確認というようにしたいと思い、つぎようなコードを作ってみました。 実行すると、一つ目と二つ目の画面は表示できますが、二つ目の画面のボタンは動作しません。何がまずいのでしょうか? <html><head><meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <script type="text/javascript"> function q1() { document.open(); document.write("1.ABCD"); document.write("<form><input type='button' value='2へ進む' onclick=q2();></form>"); document.close(); } function q2() { document.open(); document.write("2.EFGH"); document.write("<form><input type='button' value='1へ戻る' onclick=window.q1();> "); document.write("<input type='button' value='3へ進む' onclick=q3();></form>"); document.close(); } function q3() { document.open(); document.write("3.IJKL"); document.write("<form><input type='button' value='1へ戻る' onclick=q1(); >"); document.write("<input type='button' value='2へ戻る' onclick=q2();></form>"); document.close(); } // --> </script><title></title></head> <body> <p><script type="text/javascript"><!-- q1(); // --></script></p> </body> </html>
なにがまずいって? // --> んなものつけてるからだろ
>>446-447 どっちかというと <!-- がまずいんでしょ。そんなもん
書かないのが吉だと思うね。ところで FAQ
>>3 のQ4-A4は
読んだかね?
449 :
Name_Not_Found :2007/06/29(金) 20:07:29 ID:vOAzjufZ
<!-- // --> は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策 >448 やはり、あの方法のどれかを使うしかないようですね。
>>449 > !--
> // -->
> は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策
一体、何年前から来た人ですか?
異次元だね
もし仮にだな、閲覧したヤシのパソコンの画面いっぱいに コードが大解放されたとして、別にそれでいいよ。
そんなのを書いとくともっと深刻な事態になるんだから。
>>449 HTML4.0が勧告されてから、そろそろ10年。
今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。
対応ブラウザのJavaScriptをOFFにしたってscript内を表示したりはしないし、
対応していないLynxなんかも勿論、表示しない。
だいたい、それだけスクリプトに依存したページを作っておいて対策もなにも無いでしょう。
それと普通は<!--で始まってる行は無視されるから、そのコードが動くとは思えないんだけど。
>今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。 えーと、今時の携帯でもふつうに垂れ流すけど。 そして、今では携帯コンテンツのプログラムが俺の仕事の半分を余裕で超えたよ。 スクリプトをコメントアウトせずにじかに出力するとかありえないからw
>>452 だから、あなたは何年前から来た人ですか?
>>455 え?
最近の携帯ってJSに対応してるの?
JS使ってるって事は対応してる機種があるって事だよね?
JavaScriptの話題じゃないぜ。
JapanSe・だろ
>>455 ごめんね。携帯のはHTMLブラウザだと思ってないから勘定に入れてなかった。
特にi-modeとか独自路線過ぎる。
でも、なんで携帯コンテンツにscriptを?
そりゃ携帯サイトにJavaScript入れるならコメントアウト するかも知れないけどね… 入れないよなふつー。
嘘だよ 垂れ流す携帯の機種言ってみろよ
>>448 <!-- から行末までが無視され、// から行末までが無視されるから、
単に <!-- と //--> は別の行に書けば済むだけ。書かない方が吉ってことはない。
書き方が悪いのが問題なだけだ。
XHTMLでは書いちゃだめですよ。スレ違いながら。
どう見てもXHTMLじゃないし
だからトラブるでしょ。現に。書いたっていいことない。まあ どーしても書きたいというのなら止める権利はないよなー。
書いちゃだめというなら 何故だめなのか理由を説明してあげたら? そのほうが為になるよ
そんなことよりソース垂れ流す携帯の機種が気になって眠れない
各キャリアに問い合わせれば?
ばーかばーか
オマエモナー
473 :
Name_Not_Found :2007/06/30(土) 08:31:22 ID:fnkN5MWo
JavaScriptで所定のノードの中にある派生ノードの数を数えるにはどのようなコードを書けば良いのでしょうか?
HTMLなら書く。 XHTMLなら書かない(っつーか、外部に出す)。 これでいいだろ。 何で一緒にしちゃうんだか
475 :
Name_Not_Found :2007/06/30(土) 08:33:04 ID:fnkN5MWo
今現在、 function countNodes(){ count=0; for (n=n.firstChild; n!=null; n=n.nextSibling){ count++; } } と書いているのですが、うまく動作しません…
うまく動作しないってどういうこと? まあ、そのコードは単に n.childNodes.length でいいと思うけど
477 :
Name_Not_Found :2007/06/30(土) 08:57:06 ID:fnkN5MWo
>>476 function countNodes(){
count = 0;
for (i=0; i<this.childNodes.length; i++){
count++;
}
こういう事でしょうか?
>>468 いや別に駄目なんて言ってないよ。でも現にそれ書いた
ために動かないというのが今回の質問者のトラブルなんでしょ。
過去スレでも同様のトラブルは何回も出ている。それでも書きたい
なら本人の勝手ということでは。
いや、こういうこと。ループにするとか、複雑にする必要はない。 function countNodes(){ count = n.childNodes.length; }
>>477 「派生」という言葉をどういう意味で使っているのかが
分からないんで説明してみて。あるノードの内側にある要素の
数ということなら次のような感じだと思うけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function count(node) {
var c = 1;
for(var i = 0; i < node.childNodes.length; ++i) {
var n = node.childNodes[i];
if(n.nodeType == 1) c += count(n);
}
return c;
}
</script>
</head><body onload="alert(count(document.getElementById('d0')))">
<div id="d0"><p>xxx<span>yyy</span>zzz</p><div>aaa</div></div>
</body></html>
>>480 おいw
1から始めるから1個多くカウントされてるぞ。
こんなバグを混入させないためにもなるべく簡単に書くのがいい。
この
>>480 の場合でも一行で終わる。
node.getElementsByTagName('*').length
>>481 あ〜、「あるノードの内側」を「あるノード以下」に読み直して
ください ^_^;; だって1にしないと内側をカウントする役に
立たないでしょ。しかし getElementsByTagName('*') ですか、
勉強になりますた。
また偉そうなバカだな。
>>481 それ、見当違いだと思うけど。
<div>なんとか<span>かんとか</span></div>
divの子孫ノードは何個有る?
>>484 484のdivの子孫ノードの数は通常は3つ。
480は「あるノードの内側にある要素の数」であって、
「子孫ノードの数」ではないのだけれど、それを分かって質問しているんだよね?
子孫ノードを数えるように直してみた。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function count(node) { var c = 0; for(var i = 0; i < node.childNodes.length; ++i) { var n = node.childNodes[i]; if(n.nodeType == 1) c += count(n) + 1; else c += 1; } return c; } </script> </head><body onload="alert(count(document.getElementById('d0')))"> <div id="d0">なんとか<span>かんとか</span></div> </body></html>
再帰処理キャ━(゚∀゚)━!!
>>488 481の元は480だろ。475のことを言ってるのなら476で終わってる。
それが違うのなら言ってきてもよさそうだが477以降出てきていないみたいだしな。
結局476、480の言うようにちゃんと要求を言ってもらわないと
475のしたかったことなんて分からないだろ。
innerHTMLのタグの数数えたりして。
うーん、なんか
>>486 じゃまずい気が… attributeなんかも数えて
しまうよな…それともそれもノードということでいいのかな…
>>491 属性ノードは要素の子ノードではない。
つまり、
>>486 では属性の数など数えてはいない。
質問させてください。 2次方程式x*x-10*x+20=0 の2つの根のうち、6<=x<=8にある根を計算するプログラムを作ろうと思ってるんですが、"実行しましたが、ページでエラーが発生しました”とでてきてうまくいきません。 ライン:22 文字:19 エラー:':'がありません。 コード:0 らしいです。どこが間違っていますか教えてください>< <html><head> <meta http-equiv="Content=Script-Type" content=text/javascript"> <tittle></tittle> <script language="JavaScript" type="text/javascript"> function f(x){ return x*x-10*x+20;}; function g(x){ return 2*x+10;}; </script></head><body> <script language="JavaScript" type="text/javascript"> var xx=10; var eps=1.e-8; for(i=0,i<100,i++){ x2=xx; xx=xx-f(xx)/g(xx); r=Math.abs(x2-xx); if(r<eps){ document.write("x="+xx); break; }; }; </script></body></html>
根ってなんだよ 因数?それとも解?
解だと思います。因数ってよく分からないですが。 ただ、解決しました。ありがとうござます。
>>493 Firefoxのエラー表示でも本田美奈子.
> missing ; after for-loop initializer
> ソースファイル: .../test.html
行: 14, 列: 17
> ソースコード:
for(i=0,i<100,i++){
二次方程式なら解の公式を使えば簡単かつ精度が上がるんだけど、そういう課題なの? (x = 5±√5 のうち範囲内にあるものをとる) それと、片方の解(初期値のとり方で変わる)を出してるだけで 「6<=x<=8にある」という条件が抜けているのが気になる。 おそらくg(x)は微分なんだろうけど、2*x-10じゃないし。
まあ要するにJavaScript以前の問題だな レスからも滲み出てる
ニュートン法だから、g(x)はたしかにまちがっている。 しかし、そんなことよりも、回答者がここまで底辺になってしまったことのほうが問題だろうな。 たとえば、一般式を使えば精度が上がるとか、ひどい寝言だ。 いよいよJSは再び暗黒時代に突入だな。
>>499 意味が分からん。
二次方程式の解の公式に誤差があるとでも思ってるの?
>>499 は意味が分かってないか、近似値のことを言ってるんだと思う
>>500-501 これはニュートン法という計算方法だ。理系なら大学1年ぐらいで習うと思う。
確かに2次方程式には解の公式があるからニュートン法を使う意味はないが、
プログラムを作っておけば、もっと難しい(解の公式がない)方程式にも
応用出来るから、そのテストとして2次方程式を解いてみたってところだろう。
>>499 は、みんながニュートン法を知らずに的外れなことを言ってることを
言ってるんだと思う。まあ、この程度で底辺と言う方もどうかと思ったが、
意味が分かってない人が分かってる人に対して分かってないと言うのもなぁ。
大二病。
で、どれとどれが質問者だ? そこまで分かってるならあとはコードにするだけじゃないか。頑張れ
506 :
Name_Not_Found :2007/07/01(日) 10:07:18 ID:2f5hHirb
document.formName.inputName.valueの、 inputNameの部分を変数にしたいのですが、 どのように書けばよいのでしょうか?
>>506 document.forms['formName'].elements[inputName].value
508 :
506 :2007/07/01(日) 12:45:24 ID:???
>>507 すみません。どういうことでしょうか?
簡単な例をあげると、
function funcA(a, b) {
var sum = a + b;
document.forms.elementsA.value = sum;
}
function funcB(a, b) {
var sum = a + b;
document.forms.elementsB.value = sum;
}
<form name="forms">
<input type="button" onClick="funcA(1, 2); funcB(2, 3)">
<input type="text" name="elementsA">
<input type="text" name="elementsB">
</form>
こういうことをやりたいのですが、関数の中身は同じなので、
function func(name, a, b) {
var sum = a + b;
//elementsのところに引数のnameを入れたい
document.forms.elements.value = sum;
}
としたいのですが、ただ単にelementsの場所にnameと書いただけではname="name"を探しにいくので、
引数の値を入れるにはどうしたらよいのでしょうか?
511 :
Name_Not_Found :2007/07/01(日) 14:09:53 ID:e3Q1EZ72
こんにちは。質問させてください。 ブックマークレットを作っています。 formの中にhiddenとtextの2種類のinputがある場合、 テキストフィールドのみを処理する方法はありますか? または、テキストフィールドのみにxxx_6桁の連番という 共通のnameがついているのでelementの指定の中に正規表現を 使いテキストフィールドのみ処理する方法も考えられるのですが document.forms[0].xxx_\d{6}.value; このようにしてもうまくいきません。 この場合はどのように書けばよいでしょうか? 教えてください。
>ふざけんな! 失礼な!
>>508 もしかして、いやもしかしなくても、FAQ
>>3 のQ8/A8を読んでないでしょ。
テンプレが読めない奴は2度と来るなって。
517 :
508 :2007/07/01(日) 16:23:06 ID:???
>>516 見落としてました。どうもありがとう。
それにしても低脳使用者言語ほど回答者が偉そうと聞くけどまさにその通りですね(笑
>>511 下記のtest()の内容をbookmarklet化すりゃいいんじゃないの。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.forms.f0.elements;
for(var i = 0; i < a.length; ++i) {
if(a[i].type == 'text') { a[i].value = 'text...'; }
else if(a[i].type == 'hidden') { a[i].value = 'hidden...'; }
}
}
</script>
</head><body>
<form name="f0" action="#"><div>
<button type="button" onclick="test()">TEST</button>
<button type="submit">SUBMIT</button>
<input name="a" type="text"><input name="b" type="text">
<input name="c" type="hidden"><input name="d" type="hidden">
<textarea name="e">test</textarea>
</div></form></body></html>
>>517 低脳使用者言語って言葉をどこで聞いたかわかんないけど
捨て台詞はかっこ悪いからやめた方がいいよ
多重配列ですが hoge[0,0]とhoge[0][0]とはどう違うのでしょうか? html_list = new Array(); html_list[0][0]="aaaa" はエラー出て html_list = new Array(); html_list[0,0]="aaaa" はエラーが出ない と微妙に動作が違うんですよ
>>521 html_list = new Array();
html_list[0] = new Array();;
html_list[0][0] = "aaaa";
で、どぞ。
html_list[0,0] ってのは完全に間違い。
>>522 うーむ、一気にhoge[0][0]は使えないで
hoge[0]でまた配列に定義して…って繰り返さなきゃならんのか
遅くなりそうで心配だな
hoge[0,0]は動くことが幸運なのか。VBだったか他の言語と混ざりまくり
ありがとう
hoge['a', 'b', 'c', 'd', 'e', ..., 'z'] == hoge['z']
>>517 低能使用者言語ですら質問しなければわからない人乙。
>>523 一気に定義するならこんな風に書ける
hoge = [["aaaa","bbbb"],["cccc","dddd"]];
これは以下の文と同じ
hoge = new Array();
hoge[0] = new Array();
hoge[1] = new Array();
hoge[0][0] = "aaaa";
hoge[0][1] = "bbbb";
hoge[1][0] = "cccc";
hoge[1][1] = "dddd";
527 :
508 :2007/07/01(日) 22:06:20 ID:2f5hHirb
>>517 は僕じゃないです。
どうも答えてくださった方ありがとうございました。
おかげでなんとかできました。
>>523 むしろ洩れは2次元配列は
var hoge = new Object();
...
hoge[x + ',' + y] = ...
hoge['0,0'] = ...
みたいに全部ハッシュ表でやるけど。大きい表だったら
考えるけど100かける100なんかならこれで十分。
また多重配列ですが、AをBにコピーするにはどうしたらよいのですか? B = A だけじゃダメみたいなのですが、これも順番にループ回す必要があるのですか?
530 :
529 :2007/07/01(日) 22:52:10 ID:???
失礼。前言撤回。できてました 今回は順調にプログラミング中... 今度こそ完成しますように
embedにsrcをセット(もしくはセットしてcreate)→読み込み→ →完了したらautostartしてhogeにnew Date().getTime()を代入 というのをやりたいんですが、いい方法を教えて下さい。
>>529 コピーしたいならループ回す必要がある。
a="a\ni" a = a.replace(/\n/,"") alert(a) は当然aiと改行が消されるのですが HTAでXMLHttpRequestを使って任意のページのソースを取得していると稀にこれでも消えない事があります \n以外に改行を表すにはどうしたらよいのですか?
>>534 replace(/(\n|\r)/,"")でも消えませんでした
html_a[i] = html_a[i].split("\n");
html_a[i] = html_a[i].join("")
だと消えたけど…分らないままなのは不安
もしかして /\n/g
見事それでした スッキリ
538 :
Name_Not_Found :2007/07/02(月) 02:49:34 ID:hbQsdqdg
form()でユーザーに入力してもらった値を、textinput(str)で受け取り、Texthyouji(str) で値を表示させるスクリプトを書きました。 Firefox2で検証したのですが、ブラウザの右下のページを読み込んでるときに出る青いバーが止まりません。 キーボードのEscを押さない限りずっとバーが表示されつづけてページを読み込んでるようなんですが、 エラーコンソールやFireBugではエラーを確認できませんでした。IEとOPERAでは問題ありませんでした。 どこかおかしなところがありましたらご指摘お願いいたします。 function textinput(str) {texthyouji(str); } form(); function form() { document.write("<form action=\"\" method=\"post\">"); document.write("<input type=\"text\" name=\"inputInt\">"); document.write("<input type=\"button\" value=\"送信\" onClick=\"textinput(inputInt.value)\">"); document.write("</form>"); } function texthyouji(str) {document.write(str); }
541 :
Name_Not_Found :2007/07/02(月) 07:01:05 ID:N024WrJz
複数のチェックを付けると、 それに該当する内容を表示させるJSを探しています。 ご存知の方いらしたら教えてください。 イメージはこんな感じです。 ↓ 例1. [選択肢]↓ラジオボタンとかプルダウンメニュー ●赤 ●大きい ●丸い ○青 ○ふつう ○四角 ○黄 ○小さい ○三角 -------------------------- [表示フィールド] 太陽についての説明文 例2. [選択肢] ●赤 ○大きい ●丸い ○青 ○ふつう ○四角 ○黄 ○小さい ○三角 -------------------------- [表示フィールド] 太陽についての説明文 と リンゴについての説明文
外部jsから外部jsを呼び出したいのですが可能ですか? Javaでいうimport、Cでいうinclude、Perlでいうrequireみたいなものはないでしょうか?
>>542 このスレの上の方にあったような気がする…
つかこのスレくらいひととおり目を通してないのかよ!
>>541 各ボタンのonchangeで関数を呼び出し、その関数では
各ボタンのON/OFFを全部収集してそれに対応する処理を
すればいいんじゃないの。全部そのまんま同じなんて
できあいのコードがあるような気はしないから、自分で
勉強して書くしかないんじゃないの。
>>542 多重importやrequireをした事ありますか?あなた。
それにしても低脳使用者言語ほど回答者が偉そうと聞くけどまさにその通りですね(笑
546 :
538 :2007/07/02(月) 13:33:54 ID:hbQsdqdg
>>539-540 お陰様で解決しました。今回はdocument.close()を指定するやり方をとりました。
ありがとうございました。
>>545 それは理由があると思う。普通のプログラミング言語だとそれなりの
覚悟があって勉強する人が来るわけで、勉強したくない全部書けとかの
厨房は相対的に少ない。これに対し、JavaScriptの場合はHTMLだけ
勉強したけどそれでJavaScriptもすぐできると勘違いした奴が沢山
流れて来る。だからそんな甘いもんじゃないと言ってあげないと本人
のためにならない。型検査はないしプロトタイプオブジェクト指向
だしDOMとかAjaxとか言語仕様と別のことを沢山勉強する必要があるし
実は非常に大変なんだよね。だからこれからも甘ちゃんには厳しく
行きたいと思っていまつ。甘ちゃんにつけ上がらせたらロクなことない。
もちろんまっとうな質問はまっとうに回答してるとも。過去スレを
見れば証明されているよな。
>>547 質問者を馬鹿にしても許される JavaScript (笑)
PHPとPerlはできるけどJavaScriptはわからない
'false''という文字列を真偽値に型変換できますか? 現在、str == 'true':true:false;みたいな感じでやってるんですが他にスマートな方法があれば教えてください。
>>547-548 JavaScriptは釣りでいへば、フナだ。
鮒に始まって鮒に終わる。
雑草の如く生涯を貫くJavaScripterでありたい。
>>550 str == 'true' だけでいい
そもそも真偽値を文字列で管理しなきゃいけない場合って何なのか、個人的に気になる
>>552 文字列で出力したものを読むこともあるんじゃないかな
cookieとか
HTAで setTimeout httpoj.onreadystatechange = function(){ if(httpoj.readyState==4){on_loaded(httpoj);} } httpoj.send( "" ); といったあとから来る命令を使っているスクリプト書いているんですが、こういう命令を使うスクリプトってウィンドウのクローズボタンでいきなり終了してもいいもんなんですか? 先程httpoj.sendの結果が全然帰ってこなくなり、タスクマネージャー開いてみたら mshta.exe Microsoft(R) HTMLアプリケーション ホスト がズラーッと20個くらい起動しっぱなしでした。ログオフしたら治ったのですがこれを防ぐにはどうしたらよいのですか? クローズボタンじゃなくて、きちんと「終了する」を命令しないといけないもんなのでしょうか?
>>554 それってイベントハンドラとその要素との間に循環参照があると
メモリリークするって IE のバグじゃないかしら
最近の Update で治ったと思っていたのだけれど、まだ治ってないみたいね
this とか使うのをオススメするわ
>>555 そういうのはリークとは言わないよな。タスクが終了するような
手当は絶対に必要。だかHTAなんて知らんもんね、HTAのスレが
どっかにあったと思う。
HTAってちょっとしたアプリケーション風味なコントロールができるただのHTMLでしょ。 HTMLの拡張子をHTAにしただけで動くものなんだから。
htaとかhtmlは1つのファイルで完結するからいい Visual C++ 2005 Express Editionとかなんでフォルダ作ってそん中にあちこちファイルつくんねん しかもフォルダの位置変えたらなんかエラー出るし その辺詳しく、詳しく開設したHPないんかな
>>558 > htaとかhtmlは1つのファイルで完結するからいい
それはただの書き捨て・使い捨てスクリプトだからだろ。
作りこめば一月もすれば何であろうともファイルは増える、数十数百とな。
一つの機能のCRUDを分けた瞬間に最低でも4つのファイルが増える。
まあ、無職の日曜プログラマアに突っ込んでもしゃあないけどなw
560 :
Name_Not_Found :2007/07/03(火) 00:06:49 ID:M6emMvwG
javascriptとactionscriptってどちらがゲームなどを作るのに向いているのでしょうか?
アクション仮面
ほほほーーい
select要素内の特定のoption要素を選択不可または非表示にしたいのですが、可能でしょうか? IE6を対象ブラウザとしていますが、options[3].disabled = trueや.style.display = "none" は効き目なしでした。
>>563 このスレにselectの選択肢を全部消して作り直す例があるだろ。
このスレすら目を通すことができないのかね。
566 :
Name_Not_Found :2007/07/03(火) 04:25:15 ID:L/mfD9ph
JavaScriptもPHPみたいに専用の関数ってあるのでしょうか? これからJavaScriptを覚えたいのですがイメージがわきません。 たとえば、PHPでしたら文法と関数を覚えればたいていのことはできるのですが、 JavaScriptの場合は文法のほかに何を覚えていいのかイメージがわかりません。 どなたか教えてください
あなたはPHPもろくに理解していないのではないでしょうか? 言っていることが支離滅裂です。
>>566 >567 のような構ってチャンはシカトして良いですよ(笑)
JavaScript で何をしたいのかがよく分からないので
とりあえず幾つか例を挙げるだけになりますが……。
画面にウィンドウを表示させるなど、視覚効果に使いたい
→ DOM, CSS, Math
画面遷移をせずにデータを取ってきて表示させたい
→ XMLHttpRequest, DOM, RegExp
カレンダー
→ Date
その他いろいろ
→各種ライブラリ
最近ではライブラリも色々出ているので、
「JavaScript ライブラリ」などで検索してサンプルを見るのも手っ取り早いです。
いや理解してないだろ。 >JavaScriptもPHPみたいに専用の関数ってあるのでしょうか? 普通こんな質問しない。 PHPでOOPやってないならまずはそちらを勉強したほうがイメージわきやすいと思う。 PHPよりOOPはJavaのほうがいいけど。(PHPとJavaのOOPは比較的近いからわかると思う) できることやることは基本的にどの言語でも一緒。 違う点はサーバサイドとクライアントサイドでできることが違ってくるという点。 そこがイメージわかないと言ってるんだとは思うが、 そこらへんはプログラムやってれば体でどういうことができないのかわかってくる。 まずは難しく考えず、クライアント側でもサーバ側でもできるスクリプトから書いていけばいい。 (例えば文字表示するだけのプログラムや計算して結果表示するプログラムとか)
570 :
Name_Not_Found :2007/07/03(火) 05:36:58 ID:L/mfD9ph
なんか必死だね
571 :
Name_Not_Found :2007/07/03(火) 05:39:05 ID:L/mfD9ph
>>568 ありがとうございます。
文法からはじめてみます。
お前が必死だよwwwwwwwwwww
573 :
Name_Not_Found :2007/07/03(火) 05:49:21 ID:Irggis4z
function method(arg) { if (arg == 1) { var str = "a"; } else if (arg == 2) { var str = "b"; } return str; } こんなのをJsLintにつっこんだところ、 エラーが出るのですが、なんでですか?
575 :
573 :2007/07/03(火) 05:58:30 ID:Irggis4z
var strがブロック内に宣言できないのと、 2つめの(elseifのところ)var strが既に宣言されると言われます。 ブロック内ってなんのことやらわからず・・・orz
576 :
Name_Not_Found :2007/07/03(火) 06:09:11 ID:10uVhSb2
>>575 Mozilla で JavaScript console を使えば良く判る.
この場合は str が 2度宣言されていることになるので
Error には上がらないけれど, Warnings でリストアップされる.
577 :
Name_Not_Found :2007/07/03(火) 06:17:33 ID:Irggis4z
>>576 どうもありがとうございます。
同じ変数があった場合、後者のものに上書きされないのですね。
教えていただいたとおりMozillaを使ってみてみたいと思います。
されるよ
579 :
Name_Not_Found :2007/07/03(火) 06:28:58 ID:10uVhSb2
>>577 何か誤解されているような...
添削:
function method(arg) {
var str;
if (arg == 1) {
str = "a";
} else if (arg == 2) {
str = "b";
}
return str;
}
580 :
575 :2007/07/03(火) 06:31:55 ID:Irggis4z
>>579 あぁなるほど。
functionの外にvar strと書いてみたのですが、それでもエラーがでたので・・・
functionないのifブロックの前に宣言しとけってことだったのですね。
スコープの範囲を勘違いしていました。
581 :
Name_Not_Found :2007/07/03(火) 06:50:01 ID:10uVhSb2
>>579 まだ話が伝わってない...
function 内での "var str" 記述は 1回 だけで良いという意味で,
2回目からは "無駄なことだ" と指摘される.
JavaScript の scope は非常に単純で function の中で使われるかどうかが重要.
function 中の どこで使われようが意味が変わることはない.
582 :
575 :2007/07/03(火) 06:54:39 ID:Irggis4z
頭悪くてすみません・・・ ようやく理解しました。2回目以降はstrでいいということですね。 JavaScript難しい(´ω`;)
hoge1()//0 function hoge1(){ //1 hoge2() } function hoge2(){ //2 hoge3() } みたいに、今どんだけfunctionで潜ってる(?)かを調べるにはどうしたや良いのですか?
>>583 自作の関数だけなら、グローバル変数を1つ用意して各関数の入口で
1増やし出口で1減らすとかで数えるんじゃないの。
>>584 windowのonkeydownイベントハンドラで各キーが押されたら対応する
ボタンと同じ動作をするように手直しすればいいんじゃないの。
まあがんばって(全部は書かないけど個別に分からないところが
あれば質問どぞ)。
ボタンが押されるなどのイベントが起きると、全体ではなくひとつの画像だけ更新されるようにするにはどのようにしたらいいのでしょうか?
>>586 その画像がキャッシュされないようにするには、後ろに乱数をつけるとか?
document.images.画像の名前.src = '画像のURI' + '?' + Math.random();
画像ファイルは変わらず画像のURIが変わるとかなら、
後ろに何かつけたりする必要はない。
>>585 >
>>583 > 自作の関数だけなら、グローバル変数を1つ用意して各関数の入口で
> 1増やし出口で1減らすとかで数えるんじゃないの。
なるほど・・・
text= "ab12cd"; reg_a="1[0-9]"; re = new RegExp(reg_a); if(re.test(text)){alert("ok")} これや reg_a="\d"; ではok出るのに reg_a="1\d"; や reg_a="\d+"; でokが出ないのは何故なのでしょうか?
>>589 ブラウザのURL欄に「javascript: alert("\d");void(0)」入れて
実行してみ。
>>590 "d"となります
うーむ、正直alert("\d")が"d"を表示される事と、正規表現で\dがどのように動作するのかの関連性を理解できませんが…
これは対応していない ってことですか?
>>591 だから「new RegExp("\d")」は「new RegExp("d")」と同等なの。
そしてアンタのテストデータには「d」が入っているよね。おめでとう。
「alert("\\d")」とかも試すと幸せになれるかもね。
>>592 あああなーるへそ
A="\d"は内部的には"d"となっちゃうのね
A="\\d"だと内部的にも"\d"となって云々
ありがとう
バカさらけ出す前にとほほでも読んで来い、ヴォケ
読んだけど忘れていました^^;
配列を使おうとおもうのですが、 リファレンスにかいてある、配列リテラルと、配列オブジェクト どちらを使えばいいのでしょうか?
好きなほう使えばいいと思います
new Array(...)は「...」が1個でしかも数の時は その要素数の配列ができてしまうという仕様。 [...] はそのような変わったことが起きない。 だから [...] の方を勧めるね。
[...]だと「新たに配列を作る」ってことを言葉として書いてないから奨めかねる
どちらも使わなければいいと思います
ばか
リンゴ 赤 100円 オレンジ オレンジ 70円 メロン 緑 300円 という多次元配列を作りたいのですが、 array(
603 :
602 :2007/07/03(火) 22:13:09 ID:???
途中で送信してしまった。。。すみません。 var arrayFruits = array(array("リンゴ", "赤", 100), array("オレンジ", "オレンジ", 70), array("メロン", "緑", 300); こんな書き方はだめなんでしょうか? ちなみにオレンジの70円 arrayFruits["オレンジ"][2](PHP風に…)をとりたいのですが、 オブジェクトを指定してくださいと言われます。
array() ?
605 :
602 :2007/07/03(火) 22:16:49 ID:???
あれ・・・ちょっとおかしいですね。 PHP風だと $arrayFruits = array( array("リンゴ" => array("color" => "赤", "price" => 100), array("オレンジ => array("color" => "オレンジ", "price" => 70), array("メロン" => array("color" => "緑", "price" => 300) ); で、 $arrayFruits["オレンジ"]["price"]ですね・・・
>>603 JSONそのものだから、らくにできるだろ。
607 :
602 :2007/07/03(火) 22:22:03 ID:???
>>606 Wikipediaで調べてきました。どうもありがとうございます。
しかし不完全でみっともないPHPのコードなんて晒してすみませんでした・・・
>>605 も変だ・・・しばらくやってなかったのでリハビリからはじめないと・・・
リハビリというか、そろそろ4なんか捨てて5を使おうな。すれ違いだが、JSにも同じ風潮があって、このスレでもJS1.7が全く普及しない。たとえば、1.7を使えば順列列挙なんてあっさりできるのに、先月も延々と痛い議論が続いてたし。
>>608 このスレで古いJavaScriptが捨てられないのならPHP4を捨てろなんて事言える立場にないだろ
Web制作板である以上、IEが対応してなければどうにもならん。 Array拡張程度なら何とかなるが。 IEでgeneratorやdestructuring assignmentを行う方法があるならぜひ聞きたい。
使ってほしかったらさっさと日本語ドキュメントを書け
IE の独自拡張にさんざ文句言って置きながら Mozilla の独自拡張は諸手で喜ぶメンタリティが本気で分からない。
まーた脳内で敵を作り出してるのか
>>613 使うと文句言われるIE独自拡張の例を挙げてくれ
洩れもECMAが対応するまではJS1.7の機能を使う気はないな。 リファレンスチェックするときECMAでチェックしてるし。
617 :
584 :2007/07/04(水) 10:12:53 ID:???
618 :
◆OVNYPzgZN2 :2007/07/04(水) 11:14:47 ID:d2uLlG6A
質問ですが、 document writeで出力する文字にHTML特殊文字があった場合にそのまま表示させるのは危険性があると思うので HTML特殊文字のエスケープ処理を行いたいのですが、そのような関数はjavascriptにはありますでしょうか? いろいろ調べた限り、javascriptの出力をエスケープをしているコード自体がなく困っています。
>>618 ないね。もっともHTML的にトラブルになるのは「<」と「>」
だけだと思うけど。
str.replace(/</g, '<').replace(/>/g, '>')
じゃ不十分かな。
>>619 あと半角の「&」もだよ。
半角「&」は真っ先に変換しないと < や > が二重に変換されるので注意。
>>620 おお、すっかり忘れていた。アドバイス感謝。
'はしなくてもいいの? あ、sqlじゃなければいらねえかな
質問です。Javascriptに排他制御は無いんですか?
無いんですよ
わかった、自分で実装してみる
>>626 大学で習ったばかりだから、それを使う予定
>>623-627 ブラウザ上のJavaScriptはシングルスレッドだから。
排他制御いらないでしょ。
使いたいから使うわけで、必要か不要かはおまえ一人がきめることじゃない
>>629 そりゃ結構だけど不要なのに排他制御のコードつけるって何の意味も
ないと思うよ。ま、ヘタ打って動かないもの(ブラクラ)作らないようにね。
>>618 Attr の &, ', "
Text の <, &, ]]>
Comment の --, 末尾の -
CDATASection の ]]>
ProcessingInstruction の ?>
JavaScript リテラル内の ETAGO, 入れ子の文字列リテラル
CSS の url(), expression()
>>630 setTimeoutがあるけどこれは処理割り込まないの?
>>632 割り込まない。
というか、全体的な処理がfunctionをatomとして処理スタックにつんでいくイメージ。
再描画もたいていそのタイミング(functionの切れ目)で行われることが多い。
>>634 どーにでもなるでしょ。idを指定してその要素の位置をoffsetTopで
取得、現在のscrollTopとの差で移動量を計算し、window.scrollBy()
で好きなように移動してけばいいじゃん。書くスキルがないのなら
勉強してね。
>>635 技術的に可能という事が解りました
勉強します
ありがとうございました
637 :
Name_Not_Found :2007/07/04(水) 23:33:26 ID:2HLrSMHH
質問です。 関数の中でreturnは2つ書けませんか?変数xがあるとして、 function test(){ return x; //..... //..... return y } で、xとyを並べて表示させたいのですが。 ご教示ください。
>>637 C言語でインラインアセンブラの勉強をしてみよう!
return x; の時点で、関数抜けちゃうよ return x,y; じゃだめなの?
>>639 コンマ演算子は前を捨てるから、それだと y しか返らないよ。
return [x, y]; と配列にして返せば?
受け取り側が a = test(); なら、a[0] と a[1] で取り出せるだろう。
>>637 普通の言語のスレでは遭遇しなさそうな質問だなあ。
function test1() {
if(Math.random() < 0.5) { return 'A'; }
return 'B';
}
では半々の確率で 'B' だけが返ったり 'A'と'B'とが
返ったりするわけか。
function test2() {
for(var i = 0; i < 10000; ++i) return 'A';
return 'B';
}
では 'A'が1万個と 'B'が1個返ったりするわけか。
あんたの脳内では。ちょっとすごいね。
returnが呼び出されると関数は実行が即座に停止される。 つまり複数の値を返したい場合は配列を使う。
644 :
637 :2007/07/05(木) 06:52:10 ID:???
みなさんありがとうございました。納得です。
>>633 じゃあyieldが実装されてしまった今は
関数単位でみればその前提は無くなるわけだね
>>645 setTimeout()登録関数の途中でyieldするとどうなるわけ?
(あなたの勝手な期待ではなくどのように動作するのが仕様
かということだけど。)
オブジェクト化してアクセスすりゃいいじゃん
>>645 なにをいっているのかよくわからんな。
yield入りfunctionはジェネレータだから何もかわらんよ。
649 :
Name_Not_Found :2007/07/05(木) 14:59:15 ID:vgqMaeo7
質問です。 function foo(){ this.myfoo=goo; return this; } というコンストラクタのとき、return thisは必須ですか?
コンストラクタの中で object を return すると prototype やら何やら関係なくその object が返ってきちゃうんだよな だから return this ってやると this っていう object がそのまま返っちゃうんだけど これは結果としてコンストラクタとやってることは同じだから何も変わらないっていう、 中途半端な処理。あんまりオススメしない。
652 :
Name_Not_Found :2007/07/05(木) 18:39:59 ID:bhyUg2pC
質問です。DOMの定義が今ひとつわからないんです。 DOMというのはブラウザごとにオブジェクトモデルはことなるので、 W3Cがブラウザごとに異なるオブジェクトモデルを統一するために作った インターフェイスと言うことなのでしょうか?
他言語で扱えるかどうかは聞いてない
IDどうしたの?
>>649 foo.call({}) のように使う事はよくあるだろう。
10年以上前なら意味がないと言ってもよかった。
しかし、apply()/call() 以降のここ約10年では、意味がある。
特にJScript5.5以降でこれらが採用され、それが普及したここ何年かは、意識して書き分けなければならないだろう。
>>652 主にプログラミング言語からXML/HTMLを操作するためのデータモデルおよびAPI。
各インターフェイスが何を抽象化したものなのか
自分でパーサー書いてDOMツリーを構築してみれば嫌でも理解できる。
同時に標準APIの有難さと面倒くささもな。
DOMとは異なるデータモデル(XMLInfoset, XQuery/XPath等)と比べてみてもいい。
658 :
Name_Not_Found :2007/07/06(金) 04:42:12 ID:IYjKoD5h
>>653 >>657 有難うございました。javascriptのdocumentオブジェクトとDOMのdocument interface
においてdocument.bgColorはどっちのアプローチになるのでしょうか?初歩的な質問
で申し訳ないです。
660 :
Name_Not_Found :2007/07/06(金) 16:34:25 ID:jlW8Jylo
質問です。 var a = new Object() ; として、aのオブジェクトを使って色々やった後に var a = new Object() ; としたとします。 このとき、2つのインスタンスはどういう関係なのでしょうか。 aというオブジェクトと同じものがもう1個できたのか、 aというオブジェクトを上書きしたのか、 その辺のところがよく分かりません。ご教示ください。
>>660 無関係。変数aに前に格納されていたオブジェクトへの参照は
どっかよそに保管されていない限り失われ、そのオブジェクトは
ごみ集めにより回収される。
662 :
Name_Not_Found :2007/07/06(金) 17:10:13 ID:1Uvx8xRW
prototype.jsだと。継承って ko.prototype = Object.extend(new oya, {}); になってるじゃないですか。 ko.prototype = new oya; JavaScriptの継承ってこれですよね。 何が違うの?extendで明示してるだけ?
>>662 prototype=new .. +αのことがしたいからでしょ。ソース読んでみては?
>>663 ソース読むと、第2引数のプロパティを第1引数のプロパティにfor-inで渡して、
第一引数をリターン。つう感じです。
ふと思ったけど、継承でも
ko.prototype = Object.extend(new oya, {
hoge : function(){
},
hogehoge : function(){
}
});
みたいな作法が使えるのが良いのかな?
665 :
660 :2007/07/06(金) 19:45:23 ID:???
属性値の変更についての質問です。 ボタンを押すとテキストボックス(input type="text")を 非表示(type="hidden")にするということをしたいのです がブラウザがIE(ver6,7で確認)だとうまくいきません。 以下ソースです。 <html> <head> <script> function setattr() { //document.getElementById('test').setAttribute("type", "hidden"); document.getElementById('test').type = "hidden"; } </script> </head> <body> <input type="text" name="test" id="test"/> <input type="button" onclick="setattr();" value="click" /> </body> </html> ※コメントアウトしている方法でも試してみましたがうまくいきませんでした。 何か対策がありましたら教えてください。よろしくお願いします。
その辺はブラウザの実装依存になりそうな気がする remove して hidden のを append するんじゃいかんの?
できないっぽいお CSS で適当に対処したお
ノードを消してから追加するのが無難かな
671 :
667 :2007/07/06(金) 22:12:31 ID:???
>>668 〜670さん
返信ありがとうございます!
削除して追加という手順がよさそうですね。
とくにその方法でも問題なく実装できそうなのでやってみます。
ありがとうございました!
>>658 語弊はあるが、階層構造を持つデータをテキスト的に(タグ等で)表現したのが XML であり、
オブジェクト的に表現したのが DOM、関数と軸と述語で表現したのが XPath だと思っている。
よく考えてみろ。HTML では BODY 要素型に属する bgcolor 属性が、
DOM では HTMLDocument インターフェイスに属するなんて、いかにも変だろ?
やはり bgColor は HTMLBodyElement インターフェイスのアトリビュートであるべきだ。
XML/HTML 自体が階層構造を持つデータであることを認識していれば、DOM はすぐ理解できると思うがな。
まあしかし、今更 bgColor なんてのが出てくる時点で HTML の理解も怪しそうだが。
673 :
Name_Not_Found :2007/07/07(土) 10:45:17 ID:uorwyi/H
どこで質問していいのか分からないので間違っていたら誘導願いたいんですが
↓以下のサイトが自動更新プログラム(?)を用いて更新しているみたいなんですが、
http://yourvideo.hot-jp.com/index.php 自分のブログも巡回先に入れられてるみたいです。
それを阻止するにはどうしたら良いんでしょうか?
<object>〜</object>までと記事タイトルだけ引き抜いて自動更新してるみたいなんですが
その気になれば自分が書いた文章丸々ぱくって更新されることもあるんでしょうか?
(コピペならまだしも自動で全ての記事をぱくられて更新されまくると不快なので)
もしよろしかったら解答お願いします。
質問スレッドが間違ってたらすいません。
すれちがい
676 :
673 :2007/07/07(土) 11:14:45 ID:uorwyi/H
どこで質問すれば良いんでしょうか? web制作板以外で分かる人がいるとは思えないんです・・・
直接相手に言えば?
踏んでしまった…
メール先、連絡先が分かりません
似たようなサイトがたくさん出てきた場合は対処に困るし
一発で回避できるような方法があればいいと思って
>>677 質問スレは制作初心者とcss、htacceseぐらいだと思うんですが
もしよろしかったらどこが適当なのか教えてもらえないでしょうか?
ああもうこりゃ釣り決定だな 以降スルーで
682 :
680 :2007/07/07(土) 11:27:31 ID:uorwyi/H
なにがどう釣りなんでしょうか・・・
スパム報告しておいたよ
JavaScriptで画像を回転させられますか? 場所ではなく向きをです。
質問偽装か
onload = func('hoge'); ってやったらIEに怒られた(´・ω・`)
質問です。Javascript で「画像表示OFF」にしているかどうかを取得することは 出来るでしょうか?
JavaScriptでページ内のflashだけリロードさせるにはどうしたらよいでしょうか。 「JavaScript」「flash」「リロード」で30分ぐらい検索したのですが、見つかりませんでした。 ヒントだけいただけたら自分で調べますので、よろしくお願いします。
function adoLoadText(filename, charset) { var stream, text; stream = new ActiveXObject("ADODB.Stream"); stream.type = 2; stream.charset = charset; stream.open(); stream.loadFromFile(filename); text = stream.readText(-1); stream.close(); return text; } で5000kのutf-8のhtml読み込んでるんですが、とにかく遅い 10秒近くかかるんですが、他にutf-8が読み込める軽い方法ってありませんか? ちなみにそのhtmlはテキストで1000行あるんですが、それをループとmatchするのは1秒かかるかかからないか って感じです
>>690 swf innerHTML div object
ディスクから読むのとメモリ内で処理するのと1〜2桁違うのは普通でわ。
694 :
690 :2007/07/08(日) 00:17:49 ID:???
>>692 innerHTMLで書き換えですね!
それらのキーワードで参考になるサイトも見つかりました。
ほんとありがとう!
695 :
Name_Not_Found :2007/07/08(日) 19:25:00 ID:U7RXFIOP
文字列1x2x3x4x5xから最後のxを取り除く簡単な方法ありますか?
>>695 str = "1x2x3x4x5x";
str.replace(/x$/,"");
697 :
Name_Not_Found :2007/07/08(日) 20:29:02 ID:Hs9Jb1xa
ページロード時にフォームの初期化を行いたいのですが、BODYタグのOnLoadを使った場合、 例えば下のようにBODYタグの後に読み込まれるフォームの オブジェクトを使ったJavaScriptの場合でもオブジェクトエラーにならないんですけど、 これはブラウザが自動的に読み込み中なのかどうか判定しているんでしょうか? それともたまたまBODYタグを読み込むと同時にFORMまで読み込まれているからなのでしょうか? <HTML 〜〜> 〜〜 <BODY OnLoad="javascript:document.forms[0].F1.value='XXX';"> <FORM 〜〜> <INPUT TYPE="hidden" NAME="F1"> 〜〜〜 もし、たまたまエラーが起きていないんであれば、エラーが発生することの無いように フォームがすべて読み込まれた後に、その初期化スクリプトを実行したいんですけど、 その場合はどこにどのように書けばいいのか、知っていたら教えてください。 (ブラウザはIE限定で構いません。)
>>697 onloadハンドラはページ内容が全部読み込まれた後で実行されるから。
普通はonloadハンドラに初期化関数の呼び出しを書いて、その初期化
関数で初期化を行う。どのブラウザでもそれで動く。つかこのスレにも
そういう使い方はいくつも載っている。つかそれすら読めない奴には
2度と来て欲しくないね。カエレ。
getElementById以外のgetElementBy〜がよく分かりません。 たとえばgetElementByNameでいくつか集めてきて、それら全てに何かしたいときは forをどういう風に書いたらいいんでしょうか
>>699 getElementByNameならそもそもforなど無縁のはずだが
そういう考えだとあと20年はかかるだろうな
>>700 なるほど・・・
いろいろ弄って覚えます
getElementByNameってなに?
みんないじわるだな。w Element か Elements かの違いは非常に重要な意味があるからそこを見落とすな。
704 :
Name_Not_Found :2007/07/09(月) 02:05:05 ID:if4RxLWH
iframeに表示されている内容を取得したいのですが、どうすればいいでしょうか?
おれも知りたい↑ だれかおしえて
706 :
704 :2007/07/09(月) 06:06:51 ID:if4RxLWH
補足です。 iframeのform内の情報ではなく、iframe内のHTML自体を取得したいのです。 よろしくお願いします。
>>704-706 frames.IFRAMEの名前.document.body.innerHTML
ただしIFRAMEの中身が他鯖なら絶対不可能。
708 :
699 :2007/07/09(月) 14:17:22 ID:06tSfGZX
例えばgetElementsByNameで集めてきたDIVを全て右に10px動かすというのはどういうコードになるんでしょうか。
>>708 それぞれのdivがposition:absoluteやposition:relativeに
指定されていないのなら、position:relativeに指定して
leftに10pxを設定すればいいんじゃないの。あとは勉強すれば
できるだろ。全部書けというのは断るから。そうか、for文が
書けない?
for(var i = 0; i < a.length; ++i) { ...a[i]を操作... }
これでいいかな。
710 :
699 :2007/07/09(月) 15:05:46 ID:06tSfGZX
>>709 for(var i = 0; i < (a=getElementsByName('test')).length; ++i) { ...a[i]を操作... }
案外配列っぽいんですね;
ありがとうございました。
>>710 ループの中で々getElementsByName()を呼ぶのはちょっと
重そうだけどね。ふつう
for(var i = 0, a = ...; i < a.length; ++i) ...
とかじゃないですかね。
712 :
Name_Not_Found :2007/07/09(月) 15:49:54 ID:PSX0xquK
/動的に関数を作るときに変数に入った値をそのまま関数に埋め込むのってどうすればいいんですか? たとえば var value = 1; var testalert = function(){ alert(value);}; value = 2; testalert(); これだとアラートウインドで表示される値は 2 ですが、1を表示するようにしたいのです。
>>712 ヒント:ローカル変数
ダウト:アラートウインドって?
rnode=document.getElementById('palette').getElementsByTagName('TR'); <table width="88" border="1" id="palette"> <tr><td colspan="2" align="center" style="width:72px; height:20px;"> <div id="box"></div> <div id="subbox"></div> </td></tr> <tr><td style="background-color:#ff0000; width:36px; height:36px"> <br></td> <td style="background-color:#ffff00; width:36px; height:36px"><br> </td></tr> <tr><td style="background-color:#00ffff; width:36px; height:36px"><br> </td><td style="background-color:#0000ff; width:36px; height:36px"><br> </td></tr> <tr><td align="center" style="background-color:#ffffff; width:36px; height:41px"> <img src="eraser.gif" alt="eraser"></td> <td align="center" style="background-color:#ffffff; width:36px; height:41px"> <img src="pen.gif" alt="pen"></td></tr> </table> の場合rnodeには何が代入されるんですか?
>>713 本当に分かってるんならソース書いてみなよ
>>712 FAQ
>>3-4 のQ14/A14 をよく読め。読んで応用できないなら向いてない。
>>714 tableの中にある4つのtr要素を含んだHTMLCollectionオブジェクトでは。
ことあるごとにダウトって言ってる奴はなんなの?
ダウトって普通に言わないか? 俺も良く使うんだが
createしてから名付けたエレメントはgetElementsByNameに引っ掛からないんですね・・・徒労・・
721 :
Name_Not_Found :2007/07/09(月) 22:29:24 ID:TFz/71e5
質問させていただきますm(__)m <input class="term" type="text" name="term" value="○○を入力汁" size="17" /> というフォームを設置しているのですが,このフォームにフォーカスされたときに valueの文字列が全部選択状態,あるいは消去されるようにしたいのですが, どうすればよいでしょうか?
722 :
704 :2007/07/09(月) 22:40:09 ID:if4RxLWH
>>707 レスありがとうございます。
それと、説明が足らずすみません。ご回答いただいた内容で方向性はあっているのですが、
BODY内部だけではなく、HTMLソース全体を取得したいのです。
やりたかったこととしては、iframeにテキストファイル表示させて、
その内容を文字列として取得したかったのです。
外部ファイルの読み込みをしたかったということなのですが、
何かいい方法はないでしょうか?
document.documentElement.innerHTMLで<head>部分も取得できるようですが、
<html>タグの部分が取得できないのと、実際に<head>が書いてあるかどうかに関係なく、
必ず戻り値に<head>が含まれてしまいます。
純粋にファイルの内容だけをとりたいのですが、方法ご存知でしたら教えてください。
724 :
704 :2007/07/09(月) 22:50:24 ID:if4RxLWH
>>723 必ずしも使う必要はないです。それが簡単そうかなと思ったので。
>>721 <input ... onfocus="this.value=''" ...>
ただし「この入力欄にフォーカスされたとき」になってる。
727 :
704 :2007/07/10(火) 00:35:41 ID:???
>>725 自分でモジュール集めたりとかもっとめんどくさいものだと思って逃げてたのですが、
そうでもないのですね。せっかくなのでこの機に勉強してみます。
ありがとうございました。
728 :
Name_Not_Found :2007/07/10(火) 04:02:35 ID:nRpMLYBd
ajaxの話なんだが、丁度合うスレが無くて。誘導歓迎。 xmlhttprequestで通信中にabortしたときの動作が不定なんだが、 ・IE6:status=0 ・Gecko:停止するのみ ・FF:イベントは発生するが、statusを参照するとエラーを吐く このFFの動作が厄介なんだけど、対処法って無いのかな?
→手動タイムアウト
730 :
Name_Not_Found :2007/07/10(火) 11:33:10 ID:k8aUrE3A
perseIntするときは第二引数を書いておいたほうがいいですか?
>>730 書いておかないと「'012'」をparseIntしたら8進数扱いで
結果は10になったりする。
>>731 それ、逆だろ…。
8進表記されたものを、正しく、8進として解釈してるだけ。
むしろ、8進表記を、むりやり10進と解釈させたいなら、と言うのが、本筋。
>>732 なるほど、考え方次第だね。ただ、parseInt()を使う人で
8進数扱いの機能が欲しいと思ってる人はすごく少ないんじゃ
ないかと思うんだよね。そしてWebページの向こうにいるユーザ
にとっては「0で始まると8進数」だなんてちっとも真ではないよね。
だってコンピュータ屋じゃないんだから。
>>733 で、結局ユーザーってのはみんなバカだと?
自分を利口に見せるのに人を悪く言うヤシっているよね。
>>734 いやべつに、反論あるなら普通に反論してよ。もっかい書くと
「JavaScriptにおけるparseInt()の1引数での使用の大部分は
第2引数として10を指定する方が適切なケースに相当する」
さあ反論どうぞ。
>>735 いや全然。コンピュータ屋さんじゃない人が「0で始まると
8進数だなんて知らない」のはバカかどうかと全く無関係。
だってその人の知る必要のないことなんだし。みんな知ってる
べきだと思うのならそれこそコンピュータ屋の思い上がり。
730の気持ちを他所に、オナニー議論してるお前らキモスギ クライアントを無意味に責めたり馬鹿にしたり そして、出来上がるオナニーサイト お疲れ様でしたwwwwwwwwwwwwwwwwwww
./ / i i; ;; ; ,,,,; ;ッ=~"゛~ ̄“゛"==、_,,、.i ii;;... ,i;; i ii ;;;// ii ;;./ ̄ ̄~"゛~ヽ,、.\、,;;... |;; ;; ;;i;;,i ii i // ,,;-''゛゜ \、、ヾ、ヾ ゞ,,;; ,i,;ii:i i i i i;' ,.;"_,;。、;- ヾ, 、ヾ i.. il i i !!;;i i; ii .i' "゛ッ'r゛ィ’ .i i ii'ヾ, ii;; ...:::i i ii l ,,..,,,、.. "’ |i l l l'i .i ; ; ;;i i;;;;;;:::'“_。、-;,.';::. i,,、从);; ‘ヽ,,iヽ,;; ;;;;;;ッ“;ィ' ::;;.. ,.、 i ,i ,‐,i__i、;;;;:ii;;” :::;;;.... ." ゛ .;i してないなぁ i'`i-゛,ヾ;;;;;.ヽ,:::... ::::"゛,.,,、,,'';~' .i'ヾ_,、 i い_,i~;);;;;;...ヽ.;::.... “て_,; ゜ ./ \;;l\,_ ! ゛..“`;;;;`l;;;;;;:゜.`;‐、, "゛ / ;/ \_ ヽ、 '' ';;l 'lllll!!'"";;;;;..゛"'';;::-‐'" .;/ ゛`;、_ 〉 l l,/ / ''ヾ;;;;;;::::... . i i、 ̄゛~゛'ヽ、_ /'i i l '' /-,- i;;;'' i ,_,,、-‐-、,,\ / .l ' i i' く, |`.. .:" ;i \ ~" 〈 ノ .ノ `"‐、,i `@" i ,/ i ;;./ /" 'ii ;| ,/
>>737 「一般人は8進数を知らない」 ということを知っている必要がある。
>>740 次の10進法の数を2進法で表わしなさい
a) 5
b) 7
という問題は中学でしっかりやってるわけだが。応用でN進数の論理も
習う。 国民を愚弄しているのか?
正規表現文字列(//)内で変数を使用するにはどのようにすればよいのでしょうか? 宜しくお願いします。
>>742 Perlじゃないんだから直には使えない。正規表現を表す
文字列を(変数とリテラルの文字列連結などを使って)組み立てて
new RegExp(...) で正規表現オブジェクトに変換する。この説明で
解らなければ勉強してね。
だからさー、8進数を知ってるかどうかという問題じゃないん だってば。「0で始まると8進数を表す」ってのはどこの知識だよ。 プログラミング言語やらない人にはまったく縁がない知識だろ? 言語たってC以降だよなCで始めたんだから。
>>745 innerHTMLでname属性まで指定した要素を一気に作り出すとかはどうかな。
>>741 10年近く英語勉強してたのに一向に喋れないお前は何者だよ
>>746 ( ゚д゚)おおぉ・・・
なんだかコードも短くなりそう。ありがとう
749 :
742 :2007/07/10(火) 16:31:25 ID:???
>>743 理解しました!
jsでは当たり前のことなのか
どこにも変数の扱い方について書いていなかったので助かりました!
750 :
741 :2007/07/10(火) 17:12:53 ID:???
>>747 言っておくがおれは英語ペラペラだよ。英国にいたこともある。
自分を基準にしてものごとを判断しない方がいいな。あんたの
ために言っておく。
おいおい、スルー力なさすぎ。2ちゃんでは何とでも言えるんだから 無意味な書き込みはやめてくれって。恥ずかしい奴だな…
24進数と60進数は小学校で習うよね?
そんなこといったら、2進数だって17進数だって習うだろ
17進数ってなんだ?
そのまんまだろ
24進数の17だったら31だが。
752は時分秒って意味? 753は帯分数なら何でもありって感じかな いきなり良スレになったな
今日の昼前に、perseIntするときは第二引数を、の質問をした者です。 今戻って来て楽しみに見に来てみたんですが、私がバカでした。 お騒がせいたしました。
0で始まれば8進数か。9年前までのかなりレガシーな仕様だな。 実装は互換のために解釈し続けるだろうが、今更書くもんじゃないだろ。 仕様では付録扱いなんだから。 しかし2007年にもなってまだ話題にするJS部外者がなんでこのスレに大量に発生してんだ? 誰か止めてやれよ。 つうかもう誰もいないんだろうな。 こりゃもう完全にJS終了だわ。
前から思ってたんだけど、なんで16進数は0〜Fなのに、 60進数(と言われてるもの)は0〜59(桁上がり)なの?
中身は普通に十進数だって事だろ
60種類もあったら覚えるの大変やん
0-9は普通の数字だからあと50でわ。
おまえらつくづくばかだな。おれってこんなにばかですという見本のレス群。
前から思ってたんだけど、なんで一十百千万の次が十万なの?
1 10 100 1000 10000 10000
どんでもなく差があることを、桁違いっていうだろ 桁違いの大きさ 桁違いのやわらかさ 1万の次が2万だったら大して差がなくてションボリだから
>>765 日本語は大きい数は1万進数。
10000×10000=1億、1億×10000=1兆、京、垓、…
英語は大きい数は千進数。
1000×1000=milion、million×1000=bilion、billion×1000=trillion、…
いい加減にしろ。なんて程度が低いんだ、ここは。
程度が低いのは >732 だけです><
2ちゃんだから全く煽るなとは言わないが、ケナすだけで 何も貢献しない書き込みしかできない奴は嫌われるよ。 なぜ一、十、百、千、万と固有の名前があるのに万の10倍 を表す固有の名前がないのか説明してみ。
>>771 おれは小学5年のとき知ってたよ。まったくばかは自分を基準にするからど
うしようもない。ちなみにおれは英語ペラペラだ。英国にも居たことがある。
だから「知ってた」というだけでなく説明書いてみ。説明文が ちゃんと書けるかどうかで分かるからさ。その知能を見せつけて みてはいかが。今のままだとアホまるだしー。
無知を、自分の武器だと勘違いしてる人間ほど、たちの悪いものは無い。
抽象論でなく、具体的に実力をお見せください。
英語力なんかも見せてもらったら我々の勉強になるんじゃね? (w
「ペラペラ」とか書いてくれたりしてね(w
| ̄ ̄|| | ̄ ̄|i | ̄ ̄|| | ̄ ̄|l || ̄ ̄| ̄ ̄l ̄ ̄| ̄ ̄! ̄ ̄| ̄ ̄| ̄|| l| ̄| ̄ ̄i ̄ ̄| ̄ ̄l ̄ ̄| ̄ ̄! ̄ ̄|l | ̄ ̄|l | ̄ ̄|| || ̄ ̄| ̄ ̄| ̄ ̄i ̄ ̄| ̄ ̄| ̄ ̄| ̄|| | ̄ ̄|| | ̄ ̄|i  ̄i ̄ ̄|゙ '' ̄i ̄ ̄|| ̄! ̄ ̄;/  ̄ ̄ ̄ ̄ ̄ ゙̄ヾ ̄| ̄ ̄|i ̄| ̄`~|i ̄ ̄| ̄ ̄  ̄ ̄| ̄ ̄i`~ ̄| ̄i| ̄ ̄| ̄|: : : : : : : : : : : : : : : | ̄ ̄| ̄|| ̄ ̄i ̄″| ̄ ̄|i ̄  ̄| ̄;゙|i ̄ ̄l! ̄ ̄|| ̄| ̄ ̄|: : : : : : : : : : : : : : : | ̄i ̄ ̄|| ̄i ̄ ̄| ̄ ̄i ̄~`l  ̄ ̄i ̄ ̄| ̄ ̄i、 ;|| ̄ ̄| ̄|: : : : : : : : : : : : : : : | ̄ ̄| ̄|l ̄ ̄| ̄`~|i ̄″| ̄  ̄i ̄`~| ̄ヾl; ̄ ̄l| ̄| ̄ ̄|: : : : : : : : : : : : : : : | ̄| ̄ ̄|| ̄| ̄ ̄i| ̄ ̄| ̄ ̄ `、 ̄| ̄ ̄i ̄ ̄| ̄|| ̄ ̄| ̄|: : : : : : : : : : : : : : : | ̄ ̄! ̄|| ゙̄ ゙i ̄ ̄| ̄ヾi| ̄ ″| ̄ ̄i| ̄!,,| ̄ ̄i| ̄! ̄ ; :|: : : : : : : : : : : : : : : i ̄| ̄ ̄|| ̄i ̄ ̄| ̄ ̄i ̄ ̄l | ̄~~i ̄ ̄| ̄ i ; ̄|| ̄ ̄| ̄|: : : : : : : : : : : : : : : | ̄ ̄| ̄|| ̄゛| ̄ ̄|i ̄ ̄| ̄_ ''- .._ ~""''' ‐- ...,,__ _,,..-‐''~""''' ‐- ...,,___,,.-‐' 春日飯大砲台【かすがいいたいほうだい】 (国指定史跡:埼玉県春日部市)
780 :
773 :2007/07/11(水) 15:54:05 ID:???
>>775 Yes. You are light.
これでペラペラ話したつもりなのかよ・・・なんてこった・・・
さすがに釣りでしょ… You are collect. ってか。 (collect → 集められる → 釣られる、のつもり、 本当はcollectの過去分詞はcollectedだけど。 :-)
ALL YOUR BASE IS BELONG TO US
この
>>783 は何だろう、英語の文法としては全く間違っているし、
1行だから縦読みでもなく、ローマ字読みか発音のひっかけか
と思ったが分からん。分かった人おしえて。
ググレカス
>>784 有名な「Engrish」。調べれば分かる。
>>786 有名なのは
「ALL YOUR BASE ARE BELONG TO US」
You is a big fool man. ってのもあったねぇ
なるほど。有名なフレーズのAREをISにしてさらにひねってるわけ? これでひねったことになるのかどうか…
790 :
Name_Not_Found :2007/07/12(木) 00:24:06 ID:tahgxL7b
phpのfile関数の代わりになるものはありませんか? (特定の外部ファイルから、中身を配列で取り出す) あるなら教えてください。
>>789 うろ覚えで書いたら間違って書いたんだよww
記憶力悪くて悪かったなww
792 :
Name_Not_Found :2007/07/12(木) 08:04:23 ID:Ic1XdUUU
FireFoxのJavaScriptではeval()に第2引数を指定することでSandboxのようなものを実現できますが、IEではできないでしょうか。 これがあると大変便利なのですが。
webページの背景色をJavaScriptのdocument.bgColorで変える場合に、 CSSの方で背景色を指定していたら変更できず、 直接htmlの方でbgcolorを指定していたら変更できました。 これって優先順位がCSSの指定>JavaScriptの指定>htmlの指定 って決まっているのでしょうか?
>>795 両者を混ぜること自体問題あり(ブラウザによって何が
起こるか分からないと思う)。JavaScript側もDOM CSSを
使うように直すのがいいのでは。
alertのタイトル部(Microsoft Internet Explorer)やアイコン(△の中に!)を なんらかの手段を用いて変更する事は可能なのでしょうか。
http://www1.plala.or.jp/ayatohiroka/javascript/random.html ここのスクリプトの中身を変えた物を複数同一のページに設置したいのですが、
その内の一つだけしか表示させることが出来ません
例えば
<script src="./rtex1.js" type="text/javascript"></script>
<script src="./rtex2.js" type="text/javascript"></script>
〜〜〜
<script type="text/javascript">
<!--
random_msg();
//-->
</script>
<script type="text/javascript">
<!--
random_msg();
//-->
</script>
とHTMLファイルに記述しても、表示されるのは二つともrtex1.jsのみです
この場合にrtex1.jsとrtex2.jsを共存させる方法はありますでしょうか?
>>800 ここのスクリプトの中身を変えてください。
外部のJavaScriptファイルをhtmlから呼び出すときに、 ページのソースを表示されて <script type="text/javascript"src="./hoge.js"></script> この部分を見られて、./hoge.jsにアクセスされると スクリプトでどういう処理をしているのか分かってしまいますが、 こういう風に読み込んでいるJavaScriptファイルを読ませずに 外部から読み込む方法ってありますか?
ファイル名変える
いずれにせよクライアント側にダウンロードされるんだから無理
>>795 document.bgColor はHTMLの <body bgcolor> の記述を書き換える。
document.body.style.backgroundColor は CSS の body style を書き換える。
両者は別ものだから、どちらの記述を書き換えたいのかに合わせなきゃならん。
>>804 やっぱり無理ですかorz
jsファイルで
with(document){
write("<form name='myform'>");
write("<input type='text'value=''name='mytext'");
write("<br><br>");
}
function hoge()
{
if(document.myform.mytext.value=="hoge")
open("./success.html");
else open("./err.html");
}
こういう記述して、htmlで
<A HREF="JavaScript:hoge()">分岐</A>
こうやったらpassを知っている人だけがsuccess.html
に飛べるように出来ないかな、と思ったのですが、jsファイルを見られると
>if(document.myform.mytext.value=="hoge")
ここを見て誰でもアクセスできるようになっちゃうからどうしたものかと><;
これって何か良い方法ないでしょうか?
アクセス制御をJavaScriptでやるのがそもそもの間違い。 .htaccessを使うべきでしょう。
>>808 そういうのはサーバ側で振り分けないと駄目なので
javascriptでは無理です。できたら逆にやばい
>>809-810 助言ありがとうございます><
.htaccessというのを使えば可能ということが分かっただけでも大きな収穫でした。
ここさえ何とか出来れば理想の動作が出来る!><
という所だったので結構くやしいですが、もっとJavaScriptを勉強した後
.htaccessについて勉強してみます。
>>808 パスワード入力失敗=404ページになってしまうけど、
ファイル名を [パスワード].htmlにする方法は?
function hoge()
{
location.href=document.myform.mytext.value+".html";
}
>>812 うわわ、ありがとうございます!出来ました!!><
こういう方法もあるとは、、勉強になりました!
おかげさまでずっとやりたかった仕様に出来て本当に嬉しいです!
もっと勉強して.htaccessというのもやって精進します!
重ね重ねですが本当にありがとうございました!><
>>800 その呼び出し側、1個目のrandom_msg()がrtex1.jsのを、
2個目のrandom_msg()がrtex2.jsのを呼んでるつもりなの、
それとも1個目のrandom_msg()がrtex2.jsのを、
2個目のrandom_msg()がrtex1.jsのを呼んでるつもりなの?
両者の違いはどこに現れると思うの?
>>814 1個目のrandom_msg()がrtex1.js
2個目のrandom_msg()がrtex2.js
を呼び出しているつもりですが、
呼び出し文が同じなので、当然、先に書いたrtex1.jsが呼び出されるのは解っているのです。
しかし、rtex2.jsも呼び出したいのです。
どうすれば実現可能なのでしょうか?
関数名を変える
>>816 出来ました!
ありがとうございました。
まじかよ… 自分で思い付かないもんかねえ…
最近レベルが急降下してるね。万の上の位がなんで十万なんだと喰ってかかる ヤシとか、基本的な発想もできないボケとか・・・ このスレはこのままいいとこなしな。vol57s中でも3本の指に入る低迷スレ決定。
実は「同じようなファイルを2回取り込んで関数名が衝突」 なんて何回も何回も現れている質問。過去スレ調べれば分かる。 レベルが低い質問者がいるのだって最初からずっと同じこと。 ただ、エラそーに見当違いな解説して悦に入ってる奴は最近の現象だな。
>>819 に「十の十倍は百、百の十倍は千、千の十倍は万なのに
なぜ万の十倍は新しい名前でなく十万なのか」論理的に解説してほしいな。
「そう決まってるからだボケ」なんていう非論理的なんじゃなくて。
元質問だって食ってかかってるんじゃなく「素朴な疑問」でしょ。
自分の都合いいようにスレの流れをでっちあげないでほしいね。
すれ違いだ いいかげんにしろ
>>819 が逃げるのに都合のいい言葉だな >>すれ違い
>>822 ここで正規表現の質問をする質問者にスレちがいだっといって追い返す
のはあんたのようなヤシだろ。そのくせこんなケタ糞わるい質問には自
らご執心か。笑わせる。JavaScriptと何の関係がある。そんなに不思議
ならマジ丁寧に説明してやってもいいんだが、洩れは正規表現に答えて
やりたい。
そのすれ違いな言い訳書く行数で答えたらよかったのにね。
ば か ば っ か
ば っ か ば っ か ・・・・・ええいっ、控えおろう。頭が高い!
829 :
Name_Not_Found :2007/07/14(土) 01:06:29 ID:6wcEdMVu
<html>
<title>file_1</title>
<script>
function click(){
window.open("
http://www.yahoo.co.jp/ ");
}
</script>
<body>
<input type="button" value="ボタン" onClick="click()">
</body>
</html>
これボタン押しても反応ないんだけどなんで?
click って名前がいかにもダメそうだよね
いつも思うが、この板では、サーバーの設定は、必ずユーザーレベル(しかも何だか権限が削られてて初期テスト用サーバーかよみたいなのw)でしかやれない事に決まっていて、必ずじかに編集する設定ファイルが存在して、その名前は必ず.htaccessだよなw
実際そんな状態で運用されてるレンサバがほとんどだからしょうがないんじゃね? 自分で鯖運用してる人がこのスレで質問するとも思えないし
>>831 そりゃ製作板だからでしょ。そういうことを詰めたい人は
webprog板に行くんだと思う。うまく分けたもんだと洩れは思う。
と言うか.htaccess自体が 「ユーザーレベルでサーバーの設定をじかに編集する設定ファイル」 だから、それの何が面白いのかという感じ。
つまらんスクリプト一個書くたびにhttpd.conf書き直してrestartしてる糞管理者なんじゃね。
>>835 うちはAllowOverride切ってまさにそうやって運用してるけど、.htaccessを有効にすると
アクセス毎に上位ディレクトリをシークするのが気分的にイヤだからで、決してテスト用
というわけじゃないし、いったい何が「w」なのやら。
ば か ば っ か
いったい何がどう「ばかばっか」なのか不明だが、最近の子供は問い詰めると逃亡する。
ただし無知無能が2chで付け焼き刃的な知識を得ようとする場合、
>>832 や
>>837 のような
スタンスは正しい。誰かが鬱陶しく感じて間違いを正してくれるまで他人に迷惑をかけ続ける。
これはゴキブリが体内に毒を持ったのと同様、彼らが叩かれ放置され続けたあげくに学び得た
生存のための手段なんだろうな。
840 :
839 :2007/07/14(土) 14:21:21 ID:???
すいません。変なことうかがいますが、 Text = Text.replace('\n', '<br>'); という感じで改行コードを変換したいのですが、同時に改行以外のタグは Text = Text.replace(/</g, "<").replace(/>/g, ">"); てなかんじで実体参照化したいんですが、 Text = Text.replace(/</g, "<").replace(/>/g, ">").replace('\n', '<br>'); とすると改行コードまで実体参照化されちゃいますよね。 これを<br>だけタグとして機能させるにはどうしたらいいか教えて下さい。 分かりにくくてすいません…
順番変えれば?
.replace(/<br>/g, "<br>") とか
>>841 問題なくあなたの要望通りに処理できてるようだけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div><script type="text/javascript">
var str = 'あいうx>yえおa<bかきく\nけこ';
str = str.replace(/</g, '<').replace(/>/g, '>').replace('\n', '<br>\
');
document.write(str);
</script></div>
</body></html>
文字列から指定した文字数だけ取り出すにはどうしたらいいのでしょうか。 たとえば"1234567"から5文字取り出すと12345と返すような
>>845 Stringオブジェクトのメソッドsubstringを使えばできる。
それ以上教える気はないので分からないとこは自分で勉強してね。
おれはslice派
おれはmatch派
こまめな俺はcharAt
(`・ω・´)
852 :
841 :2007/07/14(土) 16:12:55 ID:???
レトロなおれはsubstr派
>>854 onclick属性の途中で改行してたりしないよな…
そのあたりでエラーがある場合、環境によって動作が
どうなるかなんて分かったもんじゃないから。
解決策は、event.returnValue = false か event.preventDefault() を使うということになっている。 return false;なんて、IEからしてみれば、干支が一回りするほど昔の仕様・実装だぞ。いつまで使ってんだ。
>>856 で、それをクロスブラウザで書く場合はどうするわけ。
858 :
Name_Not_Found :2007/07/14(土) 23:54:04 ID:Otaac/I2
質問です。 コードの中でJavaScriptのバージョン依存の分岐をさ せるときにはどうすればよいのでしょうか。 if(JavaScript-version==1.6) { //ver1.6で有効な処理 } のようにしたいのですが。ご教示ください。
>>858 一般的に言えば、ブラウザ判別してブラウザごとのJavaScrpit
バージョン対応で調べるんだろうけど、面倒。だからおすすめは
JavaScript 1.6なら1.6にしかない標準プロパティの存在をチェック
とかかな。ただし、その「1.6で有効な処理」の中にJavaScript 1.6
固有の構文は書けないことに注意。実行する前に構文チェックする
ので、1.5にない構文だと構文エラーになって1.5の処理系では
そもそも実行できなくなる。だから一般に言えば
<script type="text/javascript" language="javascript1.6">...</script>
とかで分けて記述する方が無難なんだろうと思う。
やったことないんだけど、script要素の中身の書き換えって出来る?
>>859 type属性を指定するならtype="text/javascript; version=1.6"で。
>>860 うーん、ファイル単位で差し替えるなら scriptのsrcを
取り換えるとか。または関数単位で差し替えるなら
差し替える関数名のグローバル変数に差し替える関数を
入れればできるとか。どういう書き換えを想定してるの?
>>861 ああそうでした、ご指摘感謝。
863 :
854 :2007/07/15(日) 01:35:05 ID:???
>>855 改行せずに1行で書いています。
>>856 Movable Typeで画像アップロードの時ポップアップ表示にすると
return false;使われる上記のような構文になるんです。
>>862 要素って言ってるからinnerHTMLじゃないか?
・メニュー1 ・メニュー2 ・メニュー3 こんな感じで文字列リンクがあって、このリンクにマウスを乗せると 横に矢印が出るようにするにはどうするべきでしょうか? <img src = ""><A HREF="">メニュー1</A> こんな感じで真っ白画像と矢印画像を入れ替えるようかなと思うのですが、 画像にポインタを合わせると画像が入れ替わるのは出来るのですが、 リンクに乗せた時画像が入れ替わるようにするのが出来ないですorz
>>865 画像にID振ってリンクのonmouseover/onmouseoutで
document.getElementById('ID名').src = '画像URI'
で切替えるのでは。
867 :
865 :2007/07/15(日) 08:37:10 ID:???
すいません、朝っぱらから何言ってんだろ…。 何かコードを勘違いして書いてました。 自己解決しました、スレ汚しすいませんorz
>>863 その問題が発生する最小限のソースを作って貼る。
MTが生成したソースを保存して削りまくればいいでしょ。
869 :
Name_Not_Found :2007/07/15(日) 08:55:03 ID:wec7EcZP
870 :
Name_Not_Found :2007/07/15(日) 09:34:06 ID:+J8umNPj
質問です。 var replaced = txt.replace(regexp,'%20'); で、左辺のreplacedを使って右辺を表示させることはできますか。 できれば、その方法を教えてください。
質問です。 cgiへPOSTでデータを投げて、画像を表示する新しいウインドウで開きたいのです。 かつ、ウインドウの大きさは、画像サイズ大で、メニューバーなどを非表示にしたいため、window.openで新しいウインドウを開くことにしました。 <form method="post" action="./hogehoge.cgi" target="hogehoge"> <input type="hidden" name="photo_no" value="123"> <input type="submit" class="submit" value="画像を見る" onClick="window.open('photo.cgi','hogehoge','width=975,height=540,menubar=no,toolbar=no, status=no,resizable=yes,scrollbars=yes,left=0,top=0,directories=no,location=no')";> </form> このような感じで書いたのですが、これで動作はするものの、どうやらcgiを2回叩いているようなのです。 hogehoge.cgiは、POST以外(つまりはGET)のメソッドをはじく設定にしているのですが、 余計な1回がGETでデータを渡しているようで、その分がエラーになってしまいます。 cgiを正しくPOSTで1回だけ叩きたいのですが、どこが不味いのでしょうか?
>>871 openするときはブランクでいいんじゃ?
>>871 window.open('photo.cgi', ...) って書いたら当然photo.cgiをGET
で取ろうとするに決まってるじゃん。'about:blank'に取り替えるとか。
>>870 情報を落してしまってるはずだから一般には無理。
ただし、「空白を%20に変換し、元のテキストには
%20は存在していない」という条件が成り立つなら
もっかい%20を空白に置き換えることで元のテキスト
になるとは言えるね。ごく特別な場合として。
ブラウザ画面へのフォーカスについて質問です いま、あるページ(target)の滞在時間を計測しようとして window.onfocusとwindow.onblurを使って間の時間を 計測すればよいかと思ったのですがtarget内にある AタグやBUTTONタグをクリックするとwindow.onblurが 呼ばれてしまい計測できませんでした 下のような場合BUTTONタグをクリックしても計測を 継続できるような手法を知りませんでしょうか? <HTML> <HEAD> <TITLE>滞在時間計測テスト</TITLE> <SCRIPT Language="JavaScript"> <!-- function winEventIn(theEvent){ alert("フォーカスされました");} function winEventOut(theEvent){ alert("フォーカスが外れました");} window.onfocus = winEventIn; window.onblur = winEventOut; // --> </SCRIPT> </HEAD> <BODY> ■ここはフォーカスされるし、このページの滞在時間を計測したい。 <BUTTON >ここを押してもフォーカス外れないでー(切実) </BUTTON> </BODY></HTML>
>>876 自己レスです。
onload,unloadだと別のタブに飛んだことが検知できないため使用を断念しています。
タブの変化は検知できてBUTTONには反応しないなんて都合良すぎ?
下のようなhtmlで、clickボタンを押す前にtestをクリックすると問題なくLightbox+で画像が表示されますが
一度clickを押してhtmlを書き換えた後はtestをクリックしてもLightbox+ではなく通常の画像へのリンクになってしまいます。
onclickイベント等でhtmlを書き換えた後でもLightbox+を使うにはどうすればよいでしょうか?
prototype.js
ttp://prototypejs.org/assets/2007/1/18/prototype.js Lightbox+ (spica.js、lightbox_plus.js)
ttp://serennz.sakura.ne.jp/toybox/lightbox/?ja --HTML---
<script type="text/javascript" src="spica.js"></script>
<script type="text/javascript" src="lightbox_plus.js"></script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript"><!--
function test(){
$(target).innerHTML = '<a href="test.jpg" rel="lightbox" title="test">AAA</a>';
}
// --></script>
<div onclick="test()";>click</div>
<br>
<div id="target"><a href="test.jpg" rel="lightbox" title="test">test</a></div>
---HTML---
879 :
870 :2007/07/15(日) 20:07:39 ID:???
>>875 確かに結果を格納していますのでおっしゃる通りではありますね。
他の方法勉強になりました。どうもありがとうございました。
880 :
Name_Not_Found :2007/07/15(日) 21:54:05 ID:R0ctjlkj
正規表現なんですが、RegExp.$`というのはJScriptのものですか? はっきり書いてあるWebpageがなかったので教えてください。
>>880 昔そういう属性をサポートしていたことがあったが、問題あり
なのでとっくに廃止された。今更その問題ありなのを使わない
方がいいよ。
>>878 新たにinnerHTML設定で置き換えられた画像をlightboxが
認識していないためだと思うよ。lightboxの中にその画像を
認識させるためのAPIがあってinnerHTML設定のあとそのAPIを
呼べばいいんだろうと思うが具体的にlightboxを知らないので。
>>876 BUTTON等フォーカスを取るものについてもそれぞれ滞在時間を
計測すれば外側ページがonblurされても合計は合ってるから
いいんじゃないの。
>>878 lightboxは読み込み時にrel=lightboxのa要素にonclick属性を設定しているみたい。
なのでhtml書き換えたら、onclick="showLightbox(this); return false;"を指定する
(この場合はrel=lightboxはたぶん不要?)か、lightboxの初期化関数initLightbox()
を再度呼ぶ必要があると思う。
以下lightbox.jsより
function initLightbox()
{
if (!document.getElementsByTagName){ return; }
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++){
var anchor = anchors[i];
if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
anchor.onclick = function () {showLightbox(this); return false;}
}
}
べつに
>>882 を個人攻撃するわけじゃないが、バランスが悪すぎるだろ。
getAttribute() とかを理解するブラウザ相手、
しかも<A href>要素、
しかも clickイベントタイプ(伝播する)
なのに、
どうせ一つしか使わないのに load時にforで回してみたり、
いまだに return false; でpreventDefault(); してみたり、
どうかしてるんじゃないか?
さらにメモリリーク
>>881 RegExp.$って
if( str.match(/a(.+)b(.+)c(.+)d/) ) {
st1 = RegExp.$1;
st2 = RegExp.$2;
st3 = RegExp.$3;
}
のようにマッチした部分から欲しいとこだけ細かく拾うのに便利なんだけど、
良い代替手段ってありますかね?
>>885 代替もなにも書き方を勉強してから来い
>>880 が言っているRegExp.$`はそれとは関係ない
887 :
880 :2007/07/16(月) 21:47:06 ID:???
>>881 さん
ありがとうございます。そういうことがあったんですか。
勉強になりました。
質問です。 リンク集のようなサイトがあったとして、登録されているサイトのみからキーワード検索する方法ってありますか? サイトのタイトルだけを検索するのではなく、通常のWEB検索の様にページ内を検索する方法です。 例えばgoogleだと特定ドメイン検索は出来ますが、それを複数に出来たら良いのですが…
プルダウンメニューを作るのに、 CSSで最初にdisplay:none;として、 function PullDown(id){ if(document.getElementById(id).style.display == 'none') document.getElementById(id).style.display='block'; else document.getElementById(id).style.display='none'; } このようにjsファイルを書いて読み込んでいるのですが、 IEでは動くのにfirefoxだと動作してくれません。 これってどの部分が問題になっているのでしょうか?orz
>>889 良く判らないけど
='block'じゃなくて=''にしてみたら?
あとHeightが0になっていないかも確認。IEだと勝手に伸ばすけどFxは自重してしまう。
>>890 自分もググったら''を指定するようなことが記述があったので
やってみたのですが、'none'と''での入れ替えにしようとすると
なぜかIE(verは7)でも動かなくなりますorz
css
----------------------------------
DIV#ID1,DIV#ID2{
display: none;
}
-----------------------------------
html
-----------------------------------
<A HREF="JavaScript:PullDown('ID1')">目次1</A> <br>
<div id="ID1">
・・・</div>
<A HREF="JavaScript:PullDown('ID2')">目次2</A> <br>
<div id="ID2">
・・・</div>
-------------------------------------
全体の記述はこんな感じになっていて、htmlの<div>…</div>には
<ul>,<li>が書いてあって目次をクリックでリストが出るように書いてあります。
>>888 ブラウザ上のJavaScriptでは不可能。他鯖のページを
読ませることはできてもその内容にアクセスできないから。
>>889 FAQ
>>4 のQ10/A10が問題になってるのでは。初期化のときに
とりあえず 'none' をJSで入れるようにすれば動くかも。
FAQくらい全部読め!!
>>891 Element.style (ElementCSSInlineStyle.style) はstyle属性を表す。
あと=''は未規定。Gecko等ならremoveProperty('display')しとけ。
まぁde facto standardだからDOM3CSSで明文化されるとは思うがな。
>>889 のJSと
>>891 のHTML/CSSそのままコピーして試してみたけど
Firefoxでも動いたよ?
条件式変えないと2回クリックしないと表示されないけど(IEでも)
だから、style属性がないから一回目は'none'、二回目で'block'になるんだろ。 IEだろうとFirefoxだろうと同じ。質問者は何を動作確認したんだか。
896 :
Name_Not_Found :2007/07/17(火) 15:48:19 ID:/1JA7AAh
objectタグのparamタグの中の値をスクリプトで読み出すにはどうすればいい?
JavaScriptを、XPでシェルスクリプトとして使いたいんだけど、良い、解説サイトしらない?
>>897 WSHスレで聞いた方がいいと思う。
>>896 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.getElementById('o0').getElementsByTagName('param');
for(var i = 0; i < a.length; ++i) { alert(a[i].name + ':' + a[i].value); }
}
</script>
</head><body>
<div><object id="o0" data="t0.png" type="image/png">
<param name="a" value="AAA"><param name="b" value="BBB">
</object></div>
<div><button onclick="test()">Test</button></div>
</body></html>
899 :
897 :2007/07/17(火) 17:36:01 ID:???
<input type="file">でファイルのアップロードがしたいのですが その際、ファイルの指定をエクスプローラからのドラッグ&ドロップも 受け入れられたらと思います。 IE6.0以上限定でよいのですが、何か方法がありますでしょうか? よろしくお願いいたします。
>>900 JavaScriptからはtype=fileの内容は*絶対に*書き換えられない。
JavaScriptを使わない方法については知らん(本スレと無関係)。終了。
var abc=["a","b","c"]; var abc=new Array("a","b","c"); どっち使ってる?
>>904 はいはい、お前は前者ってことだな。いちいち煽るなよ
俺はただマジョリティーに合わせたいだけだよ
>>4 のA10はwindow.defaultViewではなくdocument.defaultViewだな。
面倒くさいからwindow.getComputedStyle()に戻していいと思う。
WindowはViewCSSの実装がMUSTになりそうだしSafari3もそうなったみたいだから。
A10. IEはe.currentStyle、Gecko/Opera/Safariはwindow.getComputedStyle(e, pseudo).style使用。
(document.defaultView.getComputedStyle(e, pseudo).styleも可。)
適当に直してくれ。
わり、なぜか.styleなんて変なもの付けてしまった。削除。
>>906 いちいち注釈増やすのもなんだし、window.getComputedStyleはなしで
document.defaultView.getComputedStyleだけでいいんじゃね。
910 :
888 :2007/07/17(火) 23:38:16 ID:???
911 :
1/2 :2007/07/18(水) 00:49:58 ID:???
夜分遅くすみません、質問させてください。 現在、リストボックスで選択したものを、インラインフレームで タイトル・内容をインラインフレーム内に「 日 」のようにわけて 表示するプログラムを作成しています。 複数のフレームを同時に変更させるのはjavascript使用だと調べてわかったのですが、 リストボックスからの切り替えがうまくいきません。 テキストリンクで<a href= "javascript: Link1">題名A</a>としたら動くので 切り替えまでは上手くいっていると思うのですが・・・。 よろしくお願いします。
912 :
2/2 :2007/07/18(水) 00:51:45 ID:???
<script language="javascript"> <!-- function Link1(){ iframebody.itop.location.href='titleA.html'; iframebody.ibottom.location.href='bodyA.html'; } function Link2(){ iframebody.itop.location.href='titleB.html'; iframebody.ibottom.location.href='bodyB.html'; } --> </script> (略) <select size = "5" name = "LIST" multiple> <option>題名A</option> <option>題名B</option> </select> <!-- <a href= "javascript: Link1">題名A</a> のようなものを、どういれたらいいか?--> <iframe name = "iframebody" scr = "naiyou.html" width = "600px;" height = "400px;" frameborder = "0" marginwidth = "0" scrolling = "no"> <!-- ここで、iframeで「 日 」のように、上(itop)にタイトル、下(ibottom)に内容を呼び出す --> </iframe>
<a href="javascript:Link1()"> がうまくいったのなら、 <form action="javascript:Link1()"> を試すのが順当かもな。
>>911 HTMLにリストボックスというのは存在しないんで。
select要素のことかな。その場合、select要素の
selectedIndexプロパティに「何番目が選ばれているか」
が入っているからそれを参照して対応するものを設定すれば
いいんじゃないの。この説明で分からないなら自分で勉強すれ。
916 :
Name_Not_Found :2007/07/18(水) 12:59:06 ID:efCQihIP
917 :
916 :2007/07/18(水) 13:00:13 ID:???
補足です。 「全てにチェック」を選択した場合に、6項目選択していることにしたいという意味です。
918 :
916 :2007/07/18(水) 14:03:43 ID:???
ミスに気づきました。削除します。
919 :
891 :2007/07/18(水) 14:10:57 ID:???
今頃自己解決しました。
動かなかったのは大学でWIn、自宅でLinuxで書いてたことが原因で
ファイルの文字コードが違っていたことが原因だったようです…。
スクリプトそのものに問題があると思い込んでいたため盲点で気付かなかった…。
>>895 ごめんね、スクリプトの動作確認はしたんだけど、
そういうレベルじゃない問題だった。
920 :
Name_Not_Found :2007/07/18(水) 14:32:15 ID:K8NubW3R
getElementsByTagName(tag1)とgetElementsByTagName(tag2)で 取得したそれぞれのノードリストを連結するにはどうすればいいですか?
>>920 連結はできない。配列を別に用意して両方から順次内容を
コピーしてきてくるとかじゃないの。
923 :
920 :2007/07/18(水) 16:23:47 ID:???
>>921 やはり無理ですか…
>>922 エラーが出ます
具体的にはロールオーバーのscriptで、imgタグ以外にinputにも
対応させたいだけなんです。
function initRollovers() {
if (!document.getElementById) return
var aPreLoad = new Array();
var sTempSrc;
var aImages = document.getElementsByTagName('img');
for (var i = 0; i < aImages.length; i++) {
if (aImages[i].className == 'rollover') {
var src = aImages[i].getAttribute('src');
var ftype = src.substring(src.lastIndexOf('.'), src.length);
var hsrc = src.replace(ftype, '_on'+ftype);
//snip//
何とかシンプルに実装できないでしょうか?
>>923 Geckoのみ、つまりIEで動かなくていいのなら、XPathで
「imgまたはinput type="image"」というずばりな指定で検索できるけどね。
>>920 tag = Array.prototype.slice.call( document.getElementsByTagName( tagname ) );
としてオブジェクトでなく配列で受け取れば連結できるよ
>>925 おおすごい技だ。知らなかった。どこに載ってるの?
<form name="frmTest"> <input type="hidden" name="myItem[]" value="1"> <input type="hidden" name="myItem[]" value="2"> <input type="hidden" name="myItem[]" value="3"> ・・・ と記述できると思うんですが、下記のように書いてもアクセス出来ません alert(document.frmTest.myItem.length); 俺は何をどう勘違いしてるんでしょうか・・・
929 :
Name_Not_Found :2007/07/18(水) 18:40:52 ID:YM+T9swA
function google(){
document.body.innerHTML=document.body.innerHTML.replace(/<b>([^|<|>|&|a-z|A-Z|0-9|\?|\!|_].*?)<\/b>/,'<b><a href="
http://www.google.com/search?hl=ja&q=$1 ">$1</a></b>');
}
window.onload=function(){google();}
太字部分にGoogle検索リンクをはりたいのですがうまくいきません
どうすればいいでしょうか?
自分だったら document.getElementsByTagName('b') をぶん回す
>>928 ありがとうございます。しかしよくわかりません
>>927 の書き方でPOSTで送信してみるとmyItemの配列として受け取れます。
(phpであれば、「$_POST["myItem"][0]」みたいに)
<input type="hidden" name="myItem" value="1">
こうすると
document.frmTest.myItem.value
でアクセス出来ました。(Q8では出来ないことになっている?)
「myItem01」のように連番つければ回避は出来そうなのですが今一ふにおちません・・・
>>931 だからPHP用にnameに[]の入った名前を使ってしまうとJavaScript側では
documnent.forms.frmTest.elements['myItem[]'].length
のような書き方にしないとできないんだってば。過去スレにも
何回か出てる質問だと思うぞ!!
933 :
Name_Not_Found :2007/07/18(水) 20:34:49 ID:XZta0cj4
JSからブラウザのオンライン・オフラインを切り替え事は可能でしょうか? VBS、WSHを使用しても構いません。よろしくお願いします。
>>931 myItem で探して myItem[] を拾ってくれたら逆に困るでしょ
[] 付きのを配列に格納するのは
php がそういう風に作られてるからであって
JavaScript とは関係のない話
>>933 WSHとかならWSHスレへ。通常のJavaScriptでは無理でしょ。
やっぱりJSでは無理ですか… WSHスレに行ってきます。ありがとうございました。
937 :
929 :2007/07/18(水) 21:35:40 ID:YM+T9swA
>>930 ありがとうございます。
ぶん回すというのはどういう事でしょうか?
>>933 どっちでも無理。プラウザからアクセス手段があれば可能。
現状ではぷにると改造Fxくらいじゃない?
>>937 単純に置換してしまうといろいろ怪しそうだから
b 要素を拾い出して for 文でそれぞれに処理をすると言う意味
DOM のごくごく基本だからもうちょっとどこかで勉強しておいで
bを180度回転するとqになるだろ。それでまた180度回転するとbだな。 だからbqbqbqbq… <<ぶん回す
941 :
933 :2007/07/18(水) 22:13:39 ID:???
>>938 わかりました、残念ですが諦めます。ありがとうございました。
<table><tr><td>こんにちは</td></tr></table> これで画面には「こんにちは」と表示されますが、その「こんにちは」をクリックするとそこが「こんにちは」が入力されたテキストボックスに変わる…ということをしたいと思います。 調べたところ、「こんにちは」が表示されているセルとは別の場所にhideenのテキストボックスを用意しておき、「こんにちは」がonclickになったときに「こんにちは」を非表示しテキストボックスを表示にする、というものしか見つかりませんでした。 最初にあげた目的のような、クリックした箇所自体をテキストからテキストボックスに変化させる(または一見そうなったように見せる)というのは、不可能でしょうか。
tableの中で置き換えたいなら、tdのinnerHTMLを書き換えるか、 displayをnoneにしたtdを隣接して置いて、onclickでblockにすればいいと思います。
>>942 両者を隣接させておきvisibility:hiddenとvisibleを使う変わりに
display:noneとinlineを切替えるようにすれば「同じ場所で」
入れ替わるようにできるんでは。
946 :
942 :2007/07/19(木) 09:13:39 ID:???
>>943 いえ、942の方法だと「こんにちは」の場所とテキストボックスが表示される位置が別なんです。
触ったところがそのままテキストからテキストボックスに変わってほしいのですが・・・
947 :
942 :2007/07/19(木) 09:17:45 ID:???
>>944-945 アドバイスありがとうございます。
displayを使って試行錯誤してみます。
948 :
944 :2007/07/19(木) 09:32:19 ID:???
tdの中でinlineとnoneを切り替えたほうがよいみたいです。 tdのdisplayを変えるとレイアウトがずれることがあるようなので。
次スレは975超えたら。 A10はdocument.defaultView.getComputedStyleだけでいいよね。
950 :
Name_Not_Found :2007/07/19(木) 11:00:46 ID:GLV5BvLn
にこにこ動画みたいに、動画の上に文字を表示するのってどうやるんですか? ヒントだけ頂ければ自分で調べます
952 :
Name_Not_Found :2007/07/19(木) 12:04:46 ID:GLV5BvLn
それも考えたのですが、javascriptだけではできませんか? CSSを使わないとできないのでしょうか??
zIndex
>>952 JavaScriptでCSSのほぼすべてのプロパティは実行時に設定できる。
逆に言えばCSSのプロパティを設定する以外の方法ではできないね。
あとは自分で勉強すれば。過去スレに山のように例があるだろ。
よくわからんけど、CSSを使わないJavaScriptって何だ?DOM操作だけ?
>>955 いくらでもあるでしょ。フォームのチェックでも画像の差し替えでも
ローカルな計算でもドキュメントの変更でもinnerHTMLの書き換えでも。
e~~~~~~~~~~~
Opera9でimgタグのsrcを書き換えても画像が更新されないことがあるんだけど、対処法ない? Operaを最小化してから元に戻すと更新されるんだけど、リアルタイムに切り替えたい。
javascriptの変数の値をphpの変数に代入するにはどうすれば良いのですか?
962 :
Name_Not_Found :2007/07/19(木) 20:09:45 ID:iHHyVM0w
よろしくお願いします。 var kyo=new Date(); kyo="2007/10/19" alert(kyo.getDate) 日付の日にちがでません。どこも悪くないとおもうのですが、 何かまちがっているでしょうか。
なにで確認した?IE?firefox?