+ JavaScript の質問用スレッド vol.55 +
【質問を書く上で】
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. IEでは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']」は同じ意味です。
例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
【FAQその2】
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. IEではe.currentStyle、Geckoではwindow.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()。
>>10 そういう指摘は前スレ終わりに言って欲しかったんだけど。
せっかくだからテンプレ論議あればまず今しておくのがいいんでは。
関連スレに手取り足取りやブックマークレットスレを入れるべきでは?
14 :
Name_Not_Found:2007/03/03(土) 23:19:27 ID:ev0Dl3Jg
アジャックスってすげぇな。
エイジャックス……。
えいじぇっくす
私たちwebデザイナーで、Ajaxの読み方で
「エイジャックス」「アジャックス」の論争で殺人事件が起きてしまいました。
まず、なにから解決すればいいでしょうか?
密室殺人の謎
まず、Ajaxの読み方を何にするか、から解決してみましょう by金田二
>>19 どうでもいいことだ「アヤックス」派もいること追加しておいてくれ
Linuxを「リナックス」「リヌクス」「ペンギン」と呼称するようなものか。
ロボジョックスって映画あったよなw
Airsex:エアセックス
つうか、俺より遥かに低学歴で低スキルの外人が作った呼び名を使う気にはならんな。今まで一度もその洗剤名を口にした事は無い。
(苦笑)
あげます
30 :
Name_Not_Found:2007/03/06(火) 00:08:26 ID:26qNk/D4
constが認識されないのですがどうすれば良いでしょうか?
耐え忍んでください。
>>30 そんなmodifierはJavaScriptにはない! 終了だボケ。
けど予約語って事にはなってるね
実装されないけどね
そうか、constの機能が使いたいんじゃなくて単に変数名を
"const"にしたと。そりゃ別の名前にしろという他ないねえ。
36 :
Name_Not_Found:2007/03/06(火) 15:40:16 ID:/v+368Kp
正規表現パターンの中で変数を使う方法を教えてください。
キーワードだけでも結構です。
38 :
Name_Not_Found:2007/03/06(火) 16:14:17 ID:/v+368Kp
39
39 :
Name_Not_Found:2007/03/06(火) 16:42:34 ID:v6AYRejg
"label"って予約語?
指定したURLからhtmlソースを取得して、
その中から指定した文字列を含むlength個の文字列を抽出し
取得順に配列str[i]に格納しWScript.Echoで出力するプログラムを
今日中に作らないと卒業できなくなるんですが
友達いないボクには無理です神様タスケテクダサイ
41 :
Name_Not_Found:2007/03/06(火) 19:02:44 ID:LTqJFHVQ
>>40 ここはWeb板であくまでもブラウザ上のJavaScriptのスレ。
で、君の言ってることはブラウザ上ではセキュリティの問題できないからスレ違い
WSHかJScriptスレへ行ってきなさい
今日中に作れないレベルなら、まだ卒業は早いってことになりますね
ヲタクにありがちな偉そうな態度
48 :
Name_Not_Found:2007/03/06(火) 23:24:09 ID:Feomk/bJ
49 :
Name_Not_Found:2007/03/06(火) 23:38:24 ID:LTqJFHVQ
51 :
Name_Not_Found:2007/03/07(水) 00:30:20 ID:wFJRnYtX
IE6でなんですが!!
SELECTで選択されているものをっ!
JavaScriptから変更する方法がっ!
わっかりっませんっ!!!
セレクトのバリューはリードオンリーみたいなので!!
これをどうにか変更っするっ方法をぃ!!!
ヒントでいいので!! くっだっさっいっ!!!!
52 :
Name_Not_Found:2007/03/07(水) 01:19:36 ID:PedOUW1W
質問です。
index.htmlと言うメインのファイルに
div要素にDOMでinnerHTMLで
index2.htmlの内容をロードして表示します。
この時index2.htmlに記述されたJavaScriptのコードや、<body>タグに関連付けたイベントが全く無効になってしまうのですが
これをなんとかする方法はありませんか?もちろんindex2.htmlのJavaScriptのコードをindex.htmlに記述したり、DOMを止めればいいのですが…。
あと、index.htmlに記述する事でJavaScirptのコードは何とか出来ても<body>タグはやはり削られるのでイベントをつけれません。特に読み込み時に何かイベントを起こしたいときに致命的です。
>>50 CSSスレは要らないとしても初心者スレとDHTMLバグ辞典は必要じゃないかなあ?
>>51 そのselectにIDを振ってっ!!!
次のようにっ!!!
document.getElementById('ID名').selectedIndex = 番号;
>>52 divに入れるんではなくiframeにdocument.writeで書き込むようにしたらどう?
セキュリティ的に無理そうだけどJavascriptからCPUの種類とVGAカードの種類って判別する方法ある?
>>54 JavaScriptじゃなくても無理だろう…
x64/x68/alpha/の区別くらいなら、IE使ってりゃわかる。
処理が終わるまでかかった時間とか
>>53 selectedIndex!!!
あっりがっとーーーー!
59 :
Name_Not_Found:2007/03/07(水) 21:39:44 ID:BtZfl5Sq BE:21727542-2BP(1380)
javascript:void(q=prompt('キーワードを入れてください。',''));if(q){hn=document.location.hostname.split('.');hn.shift();l=hn.join('.');void(location.href='
http://www.google.com/search?num=100&q='+encodeURIComponent(q)+'&as_sitesearch='+escape(l));}
ドメイン検索だけでサブドメインの検索がこれじゃ出来ないんだけど
サブドメインでの検索に改造はどこをどうすればできるの?
>4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
1.formのoptionを選択中、特定の画像を任意の場所に表示させたい。
2.LIタグのテキストのhover中に特定の画像を任意の場所に表示させたい。
これらはJavaScriptで可能な動作でしょうか?
可能
1はfocus
2はonmouse
でいけますか?
やってみれ
ちょっと質問。
IE6にてリンクにマウスオーバーした際、タスクバーにリンク先URLを表示させたくないのでありますが、
onMouseOverだけだとクリック中にリンク先が表示されてしまうので、onMouseDownで対処しようとしたが
先に処理されてしまうようで、やっぱりリンク先が表示されてしまうという状況。
ここはやはりsetTimeoutでも使ってonMouseOver時にでもスイッチ入れてonMouseOut時にスイッチを切る、
みたいな処理しかないんですかね?もう少し何か効率のよい方法ってありますかね?
ちなみにワンクリック詐欺サイトとか作ってるわけではありません。
>>65 たとえあんたが詐欺サイトを作ってなくてもそれは迷惑。
回答書いたら誰かそれを見てる奴が悪用することだってあるしね。
>>66 いや、そんな倫理的な説教を聞きにきたんじゃなくて効率的な方法を知ってる人は
いないか聞きにきたんだ。だいたいすでにこの非効率と思われる方法では完成してるので。
リンクはやめて、リンクっぽくして、
onclickでlocation変えるようにすればおk
69 :
Name_Not_Found:2007/03/08(木) 13:16:57 ID:NH3J4f9C
ローカルで便利なHTMLってのを作ってて、
設定をCookieに保存しようと思ったのですが、保存する値で迷ってます。
色々と設定項目があるので、汎用性を考え連想配列(ハッシュ)の形で保存したいのですが
バリューの参照方法は分かりますが、キーの参照方法が分かりません。
PHPでの foreach ($array as $key => $value) のような処理はどうすればイイでしょうか?
または良い方法ありましたら御教示お願いします。
// idには'news'などの文字列、flagには0|1
setting[id] = flag;
// ↑上記のような設定値を↓で保存できれば簡単なのですが・・・
document.cookie = "setting="setting + ";expires=Tue, 1-Jan-2030 00:00:00 GMT;";
// こういう感じ setting={ key:value, key:value }
>>68 なるほど。でもそれだとクリックのキャンセルができず微妙に挙動が変わってしまいますね。
あ、onclickじゃなくてonMouseUpでlocation変えればいいのかな。
71 :
68:2007/03/08(木) 13:21:49 ID:???
>>70 かわんねーよ
クリックのキャンセルしたらクリックは成立しねーよ
バーカバーカ
がんばれ
>>71 ああそうかー、onClickの時点でまたステータスバーが書き換えられてしまうね。
74 :
Name_Not_Found:2007/03/08(木) 13:24:50 ID:NH3J4f9C
>>69 んーと、キー自体を取得できりゃいいの? for inで取れるっしょ
var test={ a:1, b:2, c:3 }
for (var index in test){
document.getElementById("output").innerHTML+= index+"/"+test[index] +"<br>" ;
}
//↓出力結果
a/1
b/2
c/3
参考になるかな、なんか見当違い言ってたらスマソ
Cookieは決め打ち固めちまうほうが良いと思うけど、まあ用法良く判らんから参考になれば幸い程度で
76 :
Name_Not_Found:2007/03/08(木) 14:41:47 ID:NH3J4f9C
おおお、for in なんてあったのですか。ありがとうございます。
IEのホームをローカルHTMLにしてて、WSH等も駆使して色んな機能を付けてるので
カスタマイズすることも多く、Cookieも汎用性のある値で保持したかったのです。
あのお、Cookieの話題が出ているのでついでにお聞きしたい者ですが、
javascriptでcookie(自サイト発行:掲示板での名前やパスワード保持)を読み込んで
フォームのvalueの初期値に入れるのですが、この時なぜかtype=passwordの値だけ入れることができません。
type=textにすると代入することができます。
type=passwordになんらかがあるとは思いますが、これはなぜなのでしょうかご教授ください。
次からテンプレに「NGワード : 教授」って入れてくれ
教授でも間違いじゃないよ
"間違いではない"のでは無くて、専門性の高い事を尋ねるのには、"教示"よりも、"指南""教授"の方が正しい。
ようするに、「教示」より、より強く根掘り葉掘り教えやがれって事だろ。
気軽に発する言葉ではないが…
最近人様に物を聞く時は、より重く大げさに言うのが一種の礼儀で、相手を持ち上げる行為と勘違いしてる連中がやってるんだと思うが…。
それは単なる「嫌味」だよ
葉掘りってどういう事だッ!
また、ネットの与太話を信じる馬鹿が湧いてるのか…
>>77 セキュリティの問題。
パスワードとアップロードをスクリプトから操作することはできない。
>>85 パスワードはできるからw
>>77がソースなど情報をちゃんと出さないから判断しようがないだけで、どうせとんでもないミスをしてるだけだろ。
87 :
77:2007/03/09(金) 18:15:54 ID:???
>>86 フォーム自体をdocument.writeしているのです。
例えば
document.write('<input type="password" name="pwd" value="' + pw + '">')
という感じで、変数pwにはcookieから取得したパスワードデータが入っています。この状態でpwが何故か空扱いになるのです。
これが
document.write('<input type="text" name="pwd" value="' + pw + '">')
だとpwにちゃんと入っています。
都合上HTMLでフォームを書き出したくなく、createするのも面倒なので、できるならdocument.writeで済ましたいのです。
何処に問題があるのでしょう。
「77の頭に問題がある」という発言は結構ですので、宜しく御教示の程お願いいたしますー
fa!
77の頭に問題がある
>>87 前に同じ事したけど確かにパスだけ空になったな。
仕方がないから、 document.write したあとvalueに代入
で出来たと思う。
selectのoptionでonmouseoverを使おうと思ったんですけど
Firefox以外イベントを受け取ってくれないみたい
これは当たり前?
やろうと思ったらdivで擬似セレクトボックスを作るしかないですかね?
<select>
<option value="a" onmouseover="alert('');">a</option>
</select>
こんな感じの実行しました。
>>90 返信ありがとうございます。それではその方法を試させていただきます。
どうもありがとうございました。
93 :
Name_Not_Found:2007/03/11(日) 23:50:37 ID:3otDZY2A
現在選択されているラジオボタンのvalueを取得したいのですが、
<form name="myform">
<input type="radio" name="my" value="0" checked="checked">
<input type="radio" name="my" value="1">
<input type="radio" name="my" value="2">
</form>
として、
document.myform.my.value
としてもundefinedが返ってくるだけです。
'0'とか'1'とか、そういったものは取得できませんか?
ちなみにradioが1つだけならそのvalueを正常に取得できます。
document.myform.myは配列のようなオブジェクトなので、valueプロパティで値を取得できない。
以下のようにリスト内の全要素のcheckedプロパティを調べる必要がある。
var radiogroup = document.myform.my;
for (var i = 0; i < radiogroup.length; i++) {
alert(radiogroup[i].checked + "\n" + radiogroup[i].value);
}
ありがとうございました。
<select>の方が楽かも
>>96 選択肢が数個程度ならselectとラジオボタンではユーザには
ラジオボタンの方がずっと使いやすい。プログラマの都合で
使いにくくすな。スレ違いご勘弁。
下記のようになっているとき、DHTMLで「メインビー」のところだけ
内容を変えるにはどのように記述すればいいのですか?
<div id="main">
<div class="a">メインエー</div>
<div class="b">メインビー</div>
</div>
<div id="sub">
<div class="a">サブエー</div>
<div class="b">サブビー</div>
</div>
>>97 ここでユーザビリティ論はスレ違いだぜ。
96が「JavaScriptでは<select>の方が楽かも」って意味だったとしたら、
このスレでは96が正しくなっちまう
>>98 mainのlastChild.innerHTML
document.getElementById('main').getElementsByTagName('div')[1]
102 :
Name_Not_Found:2007/03/12(月) 20:28:40 ID:wkPsxdw3
ちょっとスレ違いかも知れないけれど。
Aという名前のウィンドウがあって、それをBという名前に
変更した後に、Bウィンドウ内の下記のようなアンカーを
クリックして別窓を開くと
<a href="別窓を開く関数">別窓</a>
Bというウィンドウ名がAに戻ってしまいます。これは
なんでか分かる人いませんか?アンカーを
<a href="void(0)" onclick="別窓を開く関数;return false;">別窓</a>
とすると、ウィンドウ名はBのままなんだけれども。
分かり辛いかな。。。
親ウィンドウ→子ウィンドウA開く→子ウィンドウ名をBに変更
→子ウィンドウB内の<a href="別窓を開く関数">クリックで
孫ウィンドウCを開く
ってすると、子ウィンドウをBと変更したのにAという名前に戻って
しまうんです。
>>102 なにか勘違いしてたり齟齬があるとわけわかになるので、
「ウィンドウの名前を変える」というのをどのような手順でどのようにしてやったのか
具体的に詳しく。
>>103 親ウィンドウから
window.open("a.html", "A"); // 子ウィンドウを開く
で子ウィンドウを開きます。この子ウィンドウ内にあるボタンを
押すと子ウィンドウ名をwindow.name='B'で'B'に変更します。
ウィンドウ名を変更後に下記をクリックすると
<a href="c.htmlを開く関数">Cを開く</a>
孫ウィンドウのc.htmlが開くわけですが、このaタグを
クリックすると子ウィンドウ名がAに戻ってしまうんです。
ちなみにIE6(2K/XP)で起きます。
>>102でも書いた通り
<a href="void(0)" onclick="別窓を開く関数;return false;">
とすればこうはならないのでいいんですが、修正の際に原因を
報告しなければならないので、どうしてこのようにウィンドウ名が
最初の状態に戻ってしまうのかを知りたいのです。
お心当たりが何か少しでもあればご教示お願い致します。
> 修正の際に原因を
> 報告しなければならない
誰に?
>>105 上長にです。
>>106 自宅がIE7で再現できないので明日会社からテストに
作った簡易版を持ってきてうpします。すみません。
とりあえず別窓を開く関数は
window.open('c.html','C');
だけです。本当に特別な事は何もしてないんです。
IEがメモリを大量に消費する脆弱性
<body onload="if('AB'.match(/(.*?)*?B/)){alert(RegExp.lastMatch);}">
↑この脆弱性はいつになったら直るのですか?
>>109 1. それを「脆弱性」と呼ぶのか?
2. 正規表現の仕組みを知っていれば、その質問は
「for(;;);とするとブラウザがフリーズする脆弱性はいつになったら直るのですか」
といってるのと同じだ。
脆弱性とは言わんだろうけど、無限ループになる処理はできるだけ警告で対処してほしいもんですな
for(;;);も
>>109のもFxでは警告ダイアログで回避できる
>>111 本当に無限ループになるかどうかの判定は難しい。
ゆえにブラウザが判定するなら、所詮ある程度処理の状態から
無限ループっぽいかな判定をするしかない。
でも、それが本当に無限ループか否かの判定は難しい。
よってそんなのはブラウザの仕事ではない。
>>111-112 「プログラムが停止するか否か」というのは決定不能であることが
証明されている問題なんだけどね。まあ明らかに止まらないパターン
だけでも警告するというのはありだけど。
114 :
Name_Not_Found:2007/03/13(火) 19:31:14 ID:4Uo5KC1N
<SCRIPT language=javascript>
if(window.yzq_d==null)window.yzq_d=new Object();
window.yzq_d['khWOAMpdWCU-']='&U=125v5apkd%2fN%3dkhWOAMpdWCU-%2fC%3d-2%2fD%3dZ%2fB%3d-2';
</SCRIPT>
の意味が良く分かりません。だれか教えてくだされば本当に助かります・・・
何かのパスワードだろうか
>>114 意味って・・・変数に値を代入してるだけだろ。
値はURLパラメータっぽくて、デコードすると
&U=125v5apkd/N=khWOAMpdWCU-/C=-2/D=Z/B=-2
U、N、C、D、Bがそれぞれ何かなんて本人以外分かるわけ無い。
IFRAME内でFRAMESETを使っているんですが、
FRAMESET内からIFRAME外のオブジェクトは参照可能なのでしょうか?
ヒントでいいのでよろしくお願いいたします
119 :
117:2007/03/13(火) 21:55:05 ID:???
なるほど・・windowプロパティ周りでググッて見ます
ありがとうございました
120 :
Name_Not_Found:2007/03/13(火) 22:50:50 ID:odmimMKe
すいません教えてください
現在 aタグに下記のようにJavaScriptを書いて新規windowで
開くようにしているのですがこれだとreferer情報が出ません
<a href="hogehoge.html" onclick="window.open(this.href, '');return false;"
onkeypress="window.open(this.href, '');return false;">hogehoge.html</a>
referer情報を付加することは可能なのでしょうか?
代わりにターゲット=乳じゃいかんの?
代わりにオープナーじゃいかんの?
122 :
102:2007/03/13(火) 23:08:51 ID:2/iHuz2u
123 :
102:2007/03/13(火) 23:11:18 ID:???
追記です。
以前にも書きましたがWin2k/XPのIE6でこの現象が起きています。
winIEはwindow.openでreferrerを吐かないとどこかで読んだ気がする。
125 :
Name_Not_Found:2007/03/13(火) 23:35:19 ID:4J2wtRSg
3層プルダウンのChained Select MenuというDHTMLスクリプトを
下のサイトからもらってきました。
ttp://www.dynamicdrive.com/dynamicindex1/chainedmenu/index.htm IFRAMEの中に開くようにしたいのですが、
色々探してみた所
configファイルの
var newwindow=0 //Open links in new window or not? 1=yes, 0=no.
という記述では、フレーム越しに開けないことはわかりました。
が、chainemenuファイルを書き換えるのがわかりません。
具体的にどのように書き換えればよいか
よろしくお願いします。
127 :
Name_Not_Found:2007/03/14(水) 00:30:59 ID:8WOc5CUl
114ですがデコードって何でしょうか?
130 :
120:2007/03/14(水) 01:41:07 ID:co34ik0q
>>124 OperaとFirefoxで試したところreferer出てました
IEの問題だったのですね
強制的に付加するようなことはできないということでしょうか
window.opener.document.URLとかは?
<LABEL for=fKeywords>ってどういうこと?
らべるたぐをぐぐるといいよ
>>125 フレーム越しに開くためには一定の改造が必要。
勉強して頑張るのもあきらめるのもあなた次第。
ここでやってくれと言うのは無理でしょ。方針としては
メニューと同サイズのiframeを下に「土台」として配置し
その上にメニューを開くようにするらしい(実践したことない)。
135 :
125:2007/03/14(水) 08:30:52 ID:iStfeR7Q
>>126さん
ありがとうございます。
粘ってそれでもだめならそちらへ行きます。
>>134さん
メニューと同サイズのiframeを下に「土台」として配置・・・
土台のiframeに画像を背景のように表示させて
その上に上(メニュー)と下(メイン)ふたつのiframeを作って
上のふたつは透過しててみたのですが
これはおっしゃってるイメージとあってますか?
ヒントをありがとうございます!
136 :
120:2007/03/14(水) 08:48:03 ID:co34ik0q
>>131 調べてみましたがサブウインドウ側から元windowのURLを取得して
それをrefererの代替とするという意味でいいのでしょうか
なんとか送り出す側だけで実現したいのですがIE特有の問題を
JavaScriptで解決しろというのは普通に考えて無理でしょうか
>>136 window.open()でまず自分と同じURLを開かせ、続いてその
窓の中でlocation.href = ... で本来の行き先に移動させる
とかはどうかな。試してないけど。
二つの配列の中身が同じかどうか調べるのに、
一番エレガントで効率がいいのはどんな方法でしょう?
// ["foo", "bar"] == ["foo", "bar"] は当然falseです。
["foo", "bar"].join() == ["foo", "bar"].join()
141 :
Name_Not_Found:2007/03/14(水) 19:57:14 ID:Y7B9CEvH
<input type='file' name='UserFile'/>
で参照し、ファイルの選択が終了したと同時に関数を呼びたいのですが
どのような方法が考えられるでしょうか?
教えていただけたらと思います。
>>140 ["foo,ba", "r"].join() == ["foo", "ba,r"].join() // true
145 :
141:2007/03/14(水) 21:15:40 ID:???
>>143 ありがとうございます。
目する動作が出来ました。
146 :
139:2007/03/14(水) 21:24:14 ID:???
>>140, 142, 144
どうもです。やはり真面目に、こうしました。
Array.prototype.isEqual = function(x){
if(this.length != x.length){ return false;}
for(var i=0; i<x.length; i++){
if(this[i] != x[i]){ return false;}
}
return true;
}
["foo", "bar"].isEqual(["foo", "bar"]) //true
>>146 経験が浅いのでよくわからないんですけど、
それだと["foo","bar"]isEqual(["bar","foo"])がfalseになりませんか?
["a","b"].isEqual("ab")でtrueになったりならなかったり
>>120 むかしながらのたーげっと
<a href="hoge.html" target="hoge" onclick="window.open('', 'hoge')">
function isEquel(a, b) {
if (typeof a == "object" && typeof b == "object") {
for (var i in a) if (!isEquel(a[i], b[i])) return false;
} else if (a !== b) return false;
return true;
}
js> isEquel(["foo", "bar"],["foo", "bar"]);
True
js> isEquel([["foo", "bar"], [["foo", "bar"], "bar"]],[["foo", "bar"], [["foo", "bar"], "bar"]]);
True
js> isEquel(["foo", "bar"],["foo", "ba"]);
False
js>
これって何?
コマンドプロンプトでJavaScript実行するとき
コマンドプロンプトで、JavaScript実行するときー
155 :
152:2007/03/15(木) 00:06:03 ID:???
なるほど、サンクス。
初耳だ…orz
Equel
Equal
本題とはずれるけどisEqualよりequalsのほうが好み。Javaもそうだし。
好みっつうか isEqual なんて名前は変だからw
isEqualToなら変じゃなくね?
ってかisEqualでもis+形容詞と考えればそれほど変じゃなくね?
function isEqual(a, b) これは変とも思わないが、
Array.prototype.isEqual(b) これはちょっと変かな。
変だと思ってたら恋だった
"ABCDEFGCD".LastIndexOf("CD",9)
は文字列"ABCDEFGCD"から"CD"の文字を右側から検索するのは分かるのですが、
9という数字が具体的にどういうことを示しているのかがわかりません。
教えていただければ本当に助かります
A B C D E F G C D
↑↑ ↑
0 1 9
target=blank と target=_new は同じ意味でよろしいでしょうか?
何かこのスレには!をつかう変な人が住み着いてるみたいだな。
スレ違いだボケ!=
170 :
Name_Not_Found:2007/03/18(日) 08:02:05 ID:wWIO52f1
<NOSCRIPT>
<DIV style="POSITION: absolute"><IMG height=1 alt=""
src="ファイル名.files/b.gif"
width=1></DIV></NOSCRIPT>
このSCRIPTの意味が全く理解できません。
ヤフー系列のサイトで多く使用されております。
スクリプトではないのでお帰り下さい
痔が痛みます。
お食事券 != 汚職事件
ご苦情 != 極上
うでん
キュイジーヌ
177 :
Name_Not_Found:2007/03/19(月) 00:38:04 ID:/O4mAJuT
JavaScriptで相対パスを取得する方法って無いのでしょうか?
フレームを使ったHPで、
pageという名前のフレームに表示されているページの
相対パスが取得したいのですが、
parent.page.location.pathname
の中には /F:/〜/5.html
のようなパスが格納されているようで。
取得方法ご存知でしたらよろしくお願いします。
>>178 リンク先サイト名も一緒にdocument.write()すればいいんでねの?
JavaScript有効にしないと進入できないページを作りたいんですけど、どのように記述すべきでしょうか
181 :
178:2007/03/19(月) 13:13:45 ID:???
出来ました。Javascriptって面白いね
182 :
Name_Not_Found:2007/03/20(火) 16:56:59 ID:lgrCFAdF
window.focus();
submitFlag = 0;
function submit_action(command_name) {
if(submitFlag == 0) {
submitFlag = 1;
document.INPUT_FORM.COMMAND.value=command_name;
document.INPUT_FORM.submit();
}
}の意味教えてくれ
フォームのデータを送信するスクリプト
>>182 そのスクリプトだけでは何もしない。
まあsubmit_action呼ばれてないからな
185 :
Name_Not_Found:2007/03/21(水) 01:26:40 ID:zr/97QZI
リストボックスAとBがあり、
Aの選択が、「大阪」だと
Bに「大阪市」「豊中市」「東大阪市」が表示され、
Aの選択が、「東京」だと
Bに「目黒区」「渋谷区」「秋葉原」が表示さるように、
Aの選択した項目で、更にBで選択するようなのは、どのように作れば良いのでしょうか?
>>185 「プルダウンメニュー 連動」とかでヒットするやん。
AのonchangeでBの内容をクリアして入れ直せばいいのでは。
それで分からないなら勉強してね。
質問スレで「勉強してね」ってwwwwwwwwwwwwww
配列の中に配列を入れたいんだが
ListArray[0][0] = "あああ";
ListArray[0][1] = "www";
ListArray[0][2] = "zzz";
こんな感じにしたいのですが何か方法ありませんか?
ListArray[0] = new Array
で解決しました
191 :
Name_Not_Found:2007/03/21(水) 03:11:38 ID:zr/97QZI
function change(){
item_date = form.cat1.selectedIndex;
item_value= form.cat1.options[item_date].value;
var i;
switch(item_value) {
case "1":
listArray = new Array();
listArray[0] = new Option("aaa","縺ゅ≠縺?");
listArray[1] = new Option("sss","www");
break;
case "2":
listArray = new Array();
listArray[0] = new Option("222","333");
listArray[1] = new Option("333","333");
listArray[2] = new Option("444","444");
listArray[3] = new Option("555","444");
break;
}
for(i=0;i < listArray.length;i++){
document.form.cat2.options[i] = listArray[i];
}
}
このようにしてみたのですが、
2を選択してから1を選択すると、2で選択した「444」と「555」が残ってしまいます。
一度消してしまおうとしたのですが、document.form.cat2.reset();ではエラーが出てしまいます。(オブジェクトが選択されていない)
どのようにしてクリアすれば良いのでしょうか?
>>191 ....options.length = 0;
>>188 ここは自分で努力する人にアドバイスするだけ。
ぜんぶ教えろとかいう奴は「手取り足取りスレ」へどぞ。
スルーしてたみなさんに申し訳ないが、188を見てもう春休みかと感じた
1年中休みですがなにか?
197 :
Name_Not_Found:2007/03/21(水) 16:32:18 ID:9gDDWAiW
ここに質問でいいのかわかりませんが教えて下さい!
ThickBoxを使おうと悪戦苦闘している最中です。
HTMLを表示したいのですが、safariでは表示され、IE6では空白で表示されてしまいます。また、safariでもtopからのリンクは○ですが、その他下の階層では、リンクしている画像がリンク切れを起こします。これは、リンクしている階層及びフォルダ名などが原因でしょうか?
お分かりになる方ご教授下さい!
現在開いているウィンドウを1つ前のページに戻すにはどうすればいいですか?
ヒストリーバック
質問です。
「数秒後に自動的に移動する」で移動先を全画面または別窓にしたいです。どうすればいいでしょうか。
・refreshで移動した先HTMLのオンロードでウインドウオープンしてヒストリーバック
・ウインドウオープンされたHTMLのオンロードで最大化
でどうだい
でもそれウゼーな まあ私見なのでスルーでおk
>>201 setTimeout(function() { window.open('行き先', '_blank'); }, 5000);
ぉぅぃぇ、そのほうがいいな
俺低能
202は顔洗ってエロビデオ借りて来るとしますスマソ
>>202>>204 ありがとうございます。助かりました!
ついでにもう1つ聞いても宜しいでしょうか?
二分割フレームページが「5秒後」に、“全画面” (無理なら“新しいウインドウ”)に
「自動」でURLを表示させたいのですが…。
_blank → _top
208 :
Name_Not_Found:2007/03/22(木) 15:01:28 ID:aIS7DJkP
すいません質問です
textフォームに文字を入力したあとにボタンを押すと 別ウインドウで一覧表が出
て そのどれかをクリックすると元のウインドウにクリックしたものが表示される
スクリプトを作っています(郵便番号→住所表示スクリプトみたいなものです)
一通り作り終わって 非SSL環境でデバックも終了し 本格的に両ウインドウとも
SSL環境にして試してみたのですが SSL環境だと 別ウインドウからクリックして
元のウインドウに情報を埋め込もうとする時に FireBugが
uncaught exception: Permission denied to get property HTMLDocument.…
と言うエラーを出します
どうも埋め込み先の名前をキャッチできないようなのです
元のウインドウの指定方法がgetElementByIdだったので 他の指定方法を模索し
てみたんですが 上記のエラーは消えません
別の郵便番号→住所スクリプトでは SSL環境でもうまく行ってるんですが…
SSLとjavascriptなどでググって見ても原因がよくわかりませんでした
何か解決策をご存知の方 ご教示いただけたら幸いです
つか原因は明らかで、エラーメッセージはおろかFAQにも書いてあるのに
質問者は英語も日本語も読めないんじゃ助言のしようが無い
質問です。
var をつけるとローカル変数、つけないとグローバル変数になるのは分かるのですが、
FireFoxでグローバル変数を用いるとエラーコンソールで
assignment to undeclared variable
というエラーを吐いてしまいます。
正常動作しているので問題はないと思うのですが、
出ないようにする方法はないのでしょうか?
正常動作してねーよw
213 :
211:2007/03/22(木) 18:27:21 ID:???
確認してみたところ、IEでは正常動作でしたがFireFoxでは動作していませんでした。
回避する方法はないのでしょうか?
>>213 strictなんじゃないかね
トップレベルでグローバル変数をvarつけて定義しておけば良いんじゃないの
215 :
211:2007/03/22(木) 18:35:25 ID:???
>>214 トップレベルでグローバル変数にvarをつけて定義した場合、
関数から直接参照できるという意味でしょうか?
それだとvarをつけるとローカル変数になるというのと矛盾するのでは?
>>215 ローカル変数も宣言したレベル以下では参照できるから
トップレベルで宣言された変数はvarをつけてもグローバルに参照可能
var num=0;
function add(){alert(num++)}
217 :
211:2007/03/22(木) 18:49:01 ID:???
>>216 マジですか・・・知らなかった
これはJavaScript独自の仕様ですよね?
C言語とかだと無理だった気がします
218 :
208:2007/03/22(木) 19:20:45 ID:???
>>209 すいませんでした 簡単なソースを作ってUPしてみました
ttp://ccfa.info/cgi-bin/up/src/up1237.lzh 上記の2ファイルをPHPが使えてSSL 非SSL両環境でアクセスできる同じディレクトリ
にアップロードし Firefox1.5.0.11で試してみました
非SSLで接続した場合は問題なくできるのですが test.phpへのリンクを
https://〜
にすると 「元のウインドウに挿入」ボタンを押したあとにエラーが返ります
エラー内容は以下の通りです
uncaught exception: Permission denied to get property HTMLDocument.getElementById
解決策はあるのでしょうか…??
>>210 本当にアホですいません 語学不足なため頑張って読んでいるつもりなのですが
いまだに理解できません 本当にすいません
>>217 $ cat test.c
#include <stdio.h>
int num = 0;
int main(void) {
printf("%d\n", num++);
return 0;
}
$ cc test.c
$ ./a.out
0
>>217 激しくスレ違いだが、普通に参照できる
第一、C言語は宣言した位置でスコープは変わるだろ
#include <stdio.h>
#include <conio.h>
int num=0;
void add(){
printf("num=%d\n",num++);
}
void main(){
int key=1;
printf("0を入力で終了、それ以外ならカウント続行\n");
while(key!='0'){
add();
key=getch();
}
}
>>218 idは数字から始まらない
質問です。
if( inputListTab_h[n].match(/[\n\r]/i) == true )
{
n = 1000;
}
配列inputListTab_h[n]に改行コードが含まれている場合にnを1000にしたいのですが、うまく行きません。
エラーコンソールではinputListTab_h[n].match is not a functionと表示されています。
関数と誤認されているのでしょうか?
223 :
おばあちゃん:2007/03/23(金) 04:48:45 ID:tu0W/8nf
>>222 nが範囲外だな
inputListTab_h[n]は文字列どころかオブジェクトですらない
>>222-223 文字列じゃないオブジェクトっていう場合もあるよね。
そういう場合は
if(String(...).match(...)) ...
のように文字列に強制変換してからmatchを呼べば動作する。
質問です。
ウィンドウ全体から見た、インラインフレームの左上座標を取りたいのですが、
window.screenLeft、window.screenTopだと、
ウィンドウ全体の左上座標が出てきます。
何かうまく取れる方法はないでしょうか?
226 :
222:2007/03/23(金) 15:44:03 ID:???
回答ありがとう御座います。
>>224の方法でうまく行きました
227 :
225:2007/03/23(金) 16:31:41 ID:???
自己解決しました。失礼しました。
>>226 そうかな?
if( "foo\r\nbar".match(/[\n\r]/i) == true )
{
alert("うまく行きました");
}
else
{
alert("アッー!");
}
>>228 おっしゃる通りでした。
エラーは出なくなったものの、実際に検出はできていないようです・・・
>>229 ようするに
== true
を消せばおk
232 :
Name_Not_Found:2007/03/24(土) 01:05:40 ID:o6UAt8LC
フォームでonload=resetPage
とはリセットしてどういう意味があるのでしょうか??
ふつうにリロードだと、ブラウザが前の入力状態を覚えてる。
Shiftつきなら初期状態になるけど。
234 :
Name_Not_Found:2007/03/24(土) 02:31:35 ID:o6UAt8LC
onmouseover="this.src='/shared/img/hdr/btn/btn_search_01_b.gif'"
で、置き換えられる画像はどこからリンクされるのでしょうか?
伝わりずらいと思いますが、サイトを取り込んだフォルダ内に画像がなく、不思議と思ったので質問した次第です。
>>234 相対パスの位置にあるに決まってる
JavaScriptはダウンローダーが解析しないからDLできてないだけじゃないの?
だがしかし
/ から始まるのは絶対パスだという罠
>>234 file:///shared/img/hdr/btn/btn_search_01_b.gif
>>236 /foldername/filename
って
./foldername/filename
と同等だろ・・・常識的に考えて
じゃあお前は
cd /usr
と
cd ./usr
が同一というのかw
folder/test.txt
./folder/test.txt
は同じように使えるけどな。
これも厳密には別物
>>239 真に受ける人がいると困るので
ネタ回答は止していただきたい
243 :
Name_Not_Found:2007/03/24(土) 22:40:44 ID:o6UAt8LC
閲覧者のブラウザ等の情報を取得してそれに応じた表示方法をするjavascriptがありますが、
実際ブラウザによって表示されなかったら、レイアウトが崩れたりすることってあるのでしょうか?
どのサイトも備えているので質問した次第です。
>どのサイトも備えているので質問した次第です
へ? またまたご冗談を。
>>243 ブラウザによって表示が異なる場合はもちろんあるでしょ。
それが何か。
>>241 folder/test.txt
./folder/text.txt
って一緒じゃなかったの?
>>246 びみょ〜〜〜 に違う
ほんとどうでもいいくらい
test
質問です。
ECMAを読んでいてどうもよく分からないところがあるのですが、
英語でaccessといっているところは我々のことばで言うところ
の参照で良いのでしょうか?
>>249 8.6.2 の get と put に関する文を見よ。
CFpなんてどこにもないじゃん。絵の方が正しいんだろうな。
すいません、継承について教えてください。
F,Gはコンストラクタとして、
F.prototype=new G();
とするとこの時点で何が起こってるんでしょうか。
概念がいまいちわかりません。
ちょい電気が消耗される
255 :
Name_Not_Found:2007/03/27(火) 23:42:21 ID:bjlrzfWD
質問です。
IE6なのですが、DOMでHTMLの<table border="1">と同じ効果を
実現するにはどう書いたらいいのでしょうか。
tblObj.setAttribute('border',1)
が使えないのですが。どなたかよろしくお願いします。
>>256さん
FAQに書いてくれてるんですね(なんて親切なんだ)。
予習不測ですいませんでした(汗
thx
window.navigator.platformの値は100%信じてもいいですか?
あるいはuserAgentの値のように容易に偽装可能ですか?
258は何言っているんだと思ったら普通にできるな
>>259 偽装可能だから100%信用できる値ではない
初歩的な質問ですがよろしくお願いします
document.allのallとは、documentオブジェクトのallプロパティという
意味なのでしょうか?
プログラミングでFFFってのは、何の略(です|だと思います)か?
>>261 江無江洲と月光だけの過去の遺物。忘れろ。
なにげに Opera でも動くけどね
265 :
Name_Not_Found:2007/03/29(木) 12:48:13 ID:/rzIyn1o
質問です。
プロパティを数字で設定して参照することは許されますか?
>>264 Operaの開発者がM$から引き抜かれたのでそうしているという
のはホント?
>>265 その質問は少なくとも2通りに取れるね。
(1)プロパティ名として数字が使用できるか→できる。x[1]とか配列記法する。
(2)名前のプロパティを番号で順番に参照できるか→できない。全部の
プロパティを順に処理するなら「for(name in x) { x[name]を参照/設定; }」
>>265 もしかして、Operaと聞いて、数値と数字の自動変換におけるOpera8のバグを思い出したのか?
function t(o) {//var alert = print;
alert(o.hasOwnProperty(0) + ' // o.hasOwnProperty(0)');
alert(o.propertyIsEnumerable(0) + ' // o.propertyIsEnumerable(0)');
alert(o.hasOwnProperty("0") + ' // o.hasOwnProperty("0")');
alert(o.propertyIsEnumerable("0") + ' // o.propertyIsEnumerable("0")');
}
js> t({0:0});
true // o.hasOwnProperty(0)
true // o.propertyIsEnumerable(0)
true // o.hasOwnProperty("0")
true // o.propertyIsEnumerable("0")
js> t({"0":0});
true // o.hasOwnProperty(0)
true // o.propertyIsEnumerable(0)
true // o.hasOwnProperty("0")
true // o.propertyIsEnumerable("0")
js> t([0]);
true // o.hasOwnProperty(0)
true // o.propertyIsEnumerable(0)
true // o.hasOwnProperty("0")
true // o.propertyIsEnumerable("0")
Opera8はいずれの場合でも true, true, false, false になる(w
269 :
265:2007/03/29(木) 18:13:40 ID:???
>>268 おっ、ありがとうございます。
#なんて鋭い人なんだ…
初心者です。くだらない質問かもしれませんが、教えてください。
array中に含まれているかを調べたいんですが、下記の方法しか思いつきません。
もっとシンプルにできないものでしょうか?
A = new Array(1,2,3,4);
for(B in A){
if(C == B){
……;
break;
}
}
>>270 回さずにpinpointでどうやって評価するのかこっちが訊きたい。
>>271 すいません、専門用語とかあまりわからないです。
回す、っていうのは何ですか?
>>270 Array.prototype.isContain = function(value) {
for (var i=0; i<this.length; i++) if (this[i] === value) return true; return false;
};
a = new Array("あ","い","う","え");
a.isContain("う"); //true
a.isContain("つ"); //false
>>271 >>273 ありがとうございます。
なるほど、forを使う方法しかないんですね。
回すっていうのはそういうことなんですね
理解力なくてすいません。ありがとうございました。
回す=並乃日本語
for文=専門用語?
276 :
Name_Not_Found:2007/03/30(金) 02:08:35 ID:IqIN69zt
はじめまして。
インラインフレームとして埋め込んだページのJavascriptで、
インラインフレームを埋め込んでいるページのパスを取得することは不可能でしょうか?
?
普通に取れるだろ?
何かの引っ掛け問題?
>>276-277 「中と外で鯖が違えば不可能、同じならできる」
同じならparent.location.hrefを参照するだけ。終了。
>>273 何でもかんでもisつけるんじゃなくて
動詞の場合はその動詞に三単現のsつけたほうがいいと思うよ。
Array.prototype.contains = ...といった具合にさ。
英語の知ったかなら他でやってくれ。
そこは何でも好きなのかきゃいいんだよ。
文法違反で動作に支障が出るものなら相談に乗ろう。
281 :
276:2007/03/30(金) 13:59:01 ID:???
ブログに埋め込みたいので、インラインフレームは別サーバーです。
やはり、サーバーが異なると不可能ですか…。
関係ない話で悪いが、ネット事情変わったねー。
ブログって初心者が余計な知識なくても色々できるように
設計されてるんだろ?テキストを↑するだけでいいとか。
webサイト設計者が自由になんでもやっていい時代には
辛辣なこと言われてたjavascriptが、サイトの構成にほぼ
手を加えられないブログになってからむしろjavscriptを
いじろうってのが増えたね?
>>282 そうね。さらに、ブログで表示されたものを後からちょい加工するには
javascriptしかないんだから重宝されるんだろうと思う。
>>282 そうだね。素人なのにいきなりこここうしたいなんて言い出すから
質問サイトは素人の要求だらけだ。いい世の中だね。
DOM操作について質問です。
<div id='test'>これ</div>
「これ」と言う文字を<span>で囲って
<div id='test'><span>これ</span></div>
という風にしたい。
$('test').innerHTML = '<span>'+$('test').innerHTML+'</span>';
※めんどいのprototype使ってる書き方で。
もっとスマートなやり方はないでしょうか?
>>284 windowsはPCを使えない輩のためのOSだ。
20年も前からそういう時代なんだよ。
ビルゲイツを見てみろ。素人相手にぼったくって稼いでるだろ?
20年も前からそういう時代なんだよ。
>>286 その使えない奴が自分はWindows使えているから使える奴なんだと
勘違いするのが迷惑なんだよな…
>>285 その「スマート」の定義がよく分からん。innerHTMLを使わずに
DOM操作だけでやるとか?ただしその方がコードは長くなるよー。
(よく考えたらinnerHTMLだけなのにどこがDOM操作なんだろうね?)
>>285 innerHTMLがDOMだと? 逝ってよし。ヴォケ。
>>285 >>288 スマートというのは変な言い方でした。
DOMの手法の中で理にかなった方法を知りたい、というべきでした。
firstChild.nodeValueを取得して、spanのノードを作ってそれに取得しておいたテキストを入れて、#test直下のテキストを消してから、生成したspanを置く、みたいな。
確かにコードは長くなりそうですね。
質問しといてなんですが、appendChildしてなんたらよりinnerHTMLの方が速いなんてベンチ結果をどこかでみかけたなーなんてことを思い出した。
>>287 「ぷろぐらまー」って知ってる?
彼らは使えない奴の尻拭いをして働いている奴隷さ。
>>289 それならこうでしょ。
var d = document.getElementById('test');
var s = document.createElement('span');
var t = d.firstChild; d.removeChild(t);
s.appendChlid(t); d.appendChild(s);
>>290 それを職業にして言われたことやってたら奴隷だけど。
趣味で書きたいもんだけ書いたら楽しいよー。
>>289 innerHTML使えばいいと思うけど
W3C DOMで「理にかなった方法」はRangeのsurroundContentsかな
あとコア機能だけでもwhileで$("test")のfirstChildを新しいspanにappendChildし続ければ
3〜4行くらいですむよ。子ノード多かったら遅いけど
プルダウンメニューを作りたいのですが、
複数の画像のvisible、hiddenを一括で切り替えするにはどうすればいいですか?
function swImg(iName,str)
{document.images(iName).src = str;}
function shImgOn(iName2)
{document.images(iName2).style.visibility="visible";}
function shImgOff(iName3)
{document.images(iName3).style.visibility="visible";}
<table>
<tr><th><img src="../a.gif"onMouseover=shImgOn('IMG1');shImgOn('IMG2')" onMouseout="shImgOff('IMG1');shImgOff('IMG2')"</th></tr>
<tr><td><img src="../bOff.gif" name="IMG1" border="0" style="visibility:hidden" onMouseover="swImg('IMG1','bOn.gif');shImgOn('IMG1');shImgOn('IMG2')"
onMouseout="swImg('IMG1','bOff.gif');shImgOff('IMG1');shImgOff('IMG2')"></td></tr>
<tr><td><img src="../cOff.gif" name="IMG2" border="0" style="visibility:hidden" onMouseover="swImg('IMG2','bOff.gif');shImgOn('IMG1');shImgOn('IMG2')"
onMouseout="swImg('IMG2','cOff.gif');shImgOff('IMG1');shImgOff('IMG2')"></td></tr>
</table>
こういう風に作ると、プルダウンの項目が増えるたびにshIMG()を
それぞれの項目に記述しなければいけないので何かスマートな
方法を教えていただけませんか。
制御したいやつらにおなじclassつけて、headにstyleをほーりこむ。
しらんがな
>>295 <img src="...">ができる以上直リンになる。直リン禁止な
画像ではやらないようにしないと。
>>297 やっぱりそうですか(´-`)ありがとうございました。
亀だが
>>270,273
var array = ["hoge", "fuga", "piyo"];
var value = "foo";
value in array; //false
亀だが負けた。
mjd!!!そんなことが…
っていつtrueになることやら
Array#indexOfでいけるんじゃないか?
結局、Array.prototype.indexOfがないときは拡張するしかないが
質問です。
JavaScriptでスタイルを変更するときなんですが、
『border-top』のみを変更する場合はどうしたらいいんでしょう?
下のように、『border』全体の変更の仕方は分かるのですが…。
<span
style="border:2px solid #ff0000"
onmouseover="this.style.border='2px dotted #0000ff'"
onmouseout="this.style.border='2px solid #ff0000'">
練習
</span>
なるほど、style.borderTop=と記述すればいいんですね。
ありがとうございました。
こんにちは。
prototype.jsでClass.create()のところを普通のDOM風に書く
ことはできませんか?
よろしくお願いします。
もうちょっと具体的に
普通のDOM風
じゃあ普通じゃないDOM風ってどんなのだ?
風速30m以上
312 :
307:2007/04/01(日) 22:15:40 ID:???
そうやってぼくをオチョクルなら、帰ります。もう来ません。
後悔しても遅いですよ。すごいこと教えてあげようと思ったのに。
さようなら。
だがちょっとまってほしい
>>307 アンタが考えている「普通のDOM風」は漏れもマッタク分からん。
自分の質問がいかにいい加減か認識した方がいいと思うけど。
ま、来なくなるのも勝手だけど。
いやいやどう見ても騙りwww
スクリプトを途中で強制終了したいのですが、方法があったら教えてください。
exit();
exit;
と試したんですが出来ませんでした。
>>317 ヤマカンで試してうまく行くようなもんじゃないんでそのつもりで。
どの部分に書いたものかによるけど、return;でできるんじゃないの。
319 :
317:2007/04/02(月) 17:33:52 ID:???
すいません。説明不足でした。こんな感じです。
function a() {
var ret = b(10);
}
function b(i) {
if (i == 0) {
alert('error');
// exit; ← ここで処理を終わらせてしまいたい。
}
return i / 2;
}
やりたい事としては、エラー発生時にその場でalertして終了したいんです。
エラーだよとreturnして呼び元で処理するのが正しいのでしょうが、
既存コードの修正で量が多いため、こういった手法を取りたいのです。
>>319 function hoge(){
alert("処理だよ2");
throw new Error("あいうえおー");
}
try{
alert("処理だよ1");
hoge();
alert("処理だよ3");
} catch(e) {
alert(e.message)
}
これで処理3は実行されない
321 :
317:2007/04/02(月) 18:32:07 ID:???
>>320 その方法ですと、呼び元の修正が発生してしまうため、
>>319に書いた理由によりその方法は取れません。すいません。
やっぱり多言語でのdieやexitのようにその場で処理を終了するような事は出来ないんですかね・・・。
関数の引数の扱い方について?の質問です。
1年分のカレンダーを表示するJavaScriptを作成しています。
<html>
<head>
function calendar(year,month){
1月分のカレンダーを表示する処理(変数year,monthを使用)
}
<body>
var year=2007;
var month=1;
<table>
for(var i=0; i<3; i++) {
<tr>
for(var j=0; j<4; j++) {
<td>
calendar(year,month);
month++:
}
}
</table>
</html>
body側からheadにあるfunctionを呼び出しているのですが、
いずれでも同じ名前の変数year,monthを使っています。(宣言はbody側でのみ)
こういう場合変数の名前はそれぞれで変えた方がいいでしょうか?
自分の頭の中では同じものを指しているので、同じ名前を使いたくなるのですが…
漠然とした質問で申し訳ありませんがよろしくお願いします。
心配ならローカルにしておく。
>>321 for(var i in open){}
window.onloadで実行する場合画像が多かったりすると遅くなるので
ページ最下部の'foot'ってIDのDIVがあったら読み込み終わってると判定して実行させてるんですが
htmlに意識してこういうの置かなくても判定できる方法無いでしょうか
>>325 何がやりたいんだか分からないんだけど。
(1)すべての画像等を読み終わってから実行したい→onloadハンドラは
すべての画像を読み終わってから後に呼ばれるので何もする必要なし
(2)画像を全部読み終わるのを待たずHTMLの末尾まで読めたところで
実行したい→その末尾に<script>...</script>を入れればよい。
328 :
322:2007/04/03(火) 00:19:49 ID:???
>>323 文法上あるいは作法上、間違っているわけではないのですね。
ローカル変数について調べてみました。
関数の中で var year,month; と宣言しておけばローカル変数になり、
そうやって同じ名前の変数を使うことは問題がないのですね。
変数の宣言は一回のみ有効と思い込んでいました。
教えていただいたとおり、関数の中ではローカル変数にして使おうと思います。
どうもありがとうございました。
329 :
325:2007/04/03(火) 00:31:01 ID:???
下の方にわざわざなんか書くの面倒だからhead内で呼び出したscriptだけで全部済まそうと思ってタイマー掛けといてfootが出現したら関数実行しようと思ったんです
でもfootなくてもonloadで実行されるようにしとけば別に問題なかったね
寝ます
>>328 というか、関数の引数自体がそもそもローカル変数
JavaScriptとはあまり関係ないのですがidについての質問です。
var person = Components.classes["@nanto.asablo.jp/jsperson;1"]
.createInstance(Components.interfaces.nntIPerson);
function setAge()
{
person.age = parseInt(document.getElementById("text-age").value);
}
function sayAge()
{
alert(person.say());
}
]]>
</script>
<vbox>
<textbox id="text-age" value="5" />
<hbox>
<button label="Set age" oncommand="setAge();" />
<button label="Say age" oncommand="sayAge();" />
</hbox>
</vbox>
</page>
textbox id="text-age" value="5" のtextbox idと言う部分が
person.age = parseInt(document.getElementById("text-age").value);
と関係合ってvalue="5"は引数だとわかるのですが、
text-ageの部分はコレによってperson.age = parseInt(document.getElementById("text-age").value);
が実行されるのでしょうか?
document.getElementByIdで検索したまえ
有り難うございます。
質問です。
2つのkeyを持つobjAが次のように定義されているときに
コンストラクタから引数を取って任意のkeyでアクセスす
るにはどうすればいいのでしょうか。
いろいろやってみたんですが、取得できません。こんな
感じでです。取得の仕方を教えてください。
var objA = { 'foo' :'foge', 'bar' : 'bage' };
function F(p){ alert(this.p); }
objA = F('foo');
objA() ;
>>334 めちゃくちゃ。
テンプレ
>>7 Core JavaScript 1.5 Guide オブジェクトの使用
リンクは自分で
>>7 からたどれ。たどる過程で、あなたが読むべき他の項目も見つけられるだろう。というか全部読め。
336 :
334:2007/04/03(火) 16:48:39 ID:???
>>335 ありがとうございます。
どう書けばよいのかご教示いただけないでしょうか。
最終的には、引数をメソッドで指定して呼び出したいのですが、
objA('foo')というように。よろしくお願いします。
>>334 ここまでひどいコードは初めて。10文字に1個くらいずつ
突っ込みどころがある。
・オブジェクトリテラルのフィールド名が名前のときは''は不要。
なんでわざわざ読みにくくしてるの?
・F()の中のthisって何を指してるか分かってるのか?
・this.pにどこで値を入れているのか?
・関数のパラメタ名とオブジェクトのプロパティとは別のものだぞ!
・関数F()を読んでも何も値を返してないだろ!
・もしかして「new F(...)」とコンストラクタとして使いたい?
それにしても、そのコンストラクタで何も初期設定してないが。
・objAには関数が入ることはないだろ。関数呼び出しなんてできんぞ。
そして質問文も意味不明だな。アンタJavaScriptやめた方がいいよ。
分かる日本語で質問できるならまだ教える気にもなるんだが…
>>337 言葉は厳しいが優しいな
突っ込みどころ辿ってったら自分では気づかないところにも気づけた
>>336 その訳の分からない日本語をやめてくれ。「引数をメソッドで指定」?
引数: f(...)のように関数呼び出しで渡すもの。
メソッド: オブジェクトが持つ操作。obj.x(...)のように呼べる。
で、引数をメソッドで指定するというのは
「f(obj.x(...))」のようにあるオブジェクトのメソッドを呼び出して
返って来たものを引数として渡すということかね?違うような気がする…
340 :
334:2007/04/03(火) 18:50:31 ID:???
みなさん、ありがとうございます。
自分では一生懸命に書いてるつもりなんですが、ツッコミ満載のよう
ですね。問題は、objA('foo')という形ですね。いま愚かさに気づきま
した。だったら、objAにプロパティを追加すれば取得できますよね。
その場合の書き方を教えてくださいませんか。いろいろやってみたん
ですが、行き詰まってしまいまして。
342 :
335:2007/04/03(火) 19:01:16 ID:???
>>340 だから、Guide読めって。読めって書いてから3時間も経ってるだろ。読めと指定した部分以外にも、十分Guide全部読めるだけの時間だ。
>>340 アンタの理解も用語づかいもめちゃくちゃで、このスレで質問しても
何も得られるところは無いと思うよ。初歩から勉強し直せ。おしまい。
344 :
335:2007/04/03(火) 19:04:57 ID:???
投稿しちまった…
続き、あなたのコードモドキを見て、ここで回答してどうなるという水準じゃないのは、回答する方はすぐに判る。
だから、基礎から本格的にリファレンス読んで学ぶのが、あなたにとって一番の近道だ。
そこまで考えて、Guide読めって言ってる。
そか、今は春休みか。
>>340 いっとくけど
>>7 に出てる Guide はちゃんと日本語で読めるから。
このスレは自力で勉強する気のない奴には厳しいぞ〜。
347 :
Name_Not_Found:2007/04/03(火) 20:50:39 ID:rfNBNoXn
Webサイト制作初心者用質問スレ Part 181では回答が得られなかったのですが、
VistaのIE7でJavaScriptのcreatePopup()は動作するでしょうか?
Vista持ってないから知らな〜い。IE専やめてクロスブラウザが吉。
やってみりゃいいだけの話。
親切な人多いなココ
>>347 UAC OFF (保護モード:無効) UAC ON (保護モード:有効)共に動作した。
createPopup() だけの動作確認。
それに付随する処理の動作可否は知らん。
352 :
347:2007/04/03(火) 22:22:40 ID:???
>>351 おおおおおおおおお、ありがとうございます。
やっぱ業務系の人はVista機持ってるのですかね?
WindowsVistaって、マとかの人しか持ってないんじゃないかって思ってる
354 :
347:2007/04/03(火) 22:43:11 ID:???
自分もマ板住人だけど、WEB系でLAMPとかが多いから実機まだ必要ないんですよね
マだけどVistaどころかWindows自体持ってない
356 :
322:2007/04/04(水) 00:06:19 ID:???
>>330 すみません、もっと勉強します。
不具合が再現できたのであらためて質問させてください。
<html>
<body>
<script type="text/javascript">
var date=new Date();
date.setFullYear(2007); //2007年
date.setMonth(3); //4月
date.setDate(1); //1日
var startDay=date.getDay();//その日の曜日を取得
alert(startDay);
</script>
</body>
alertで返ってくる数字は0のはずです。実際そうなります。
しかしシステムの日付を2007年3月31日にして実行すると、2が返ってきます。
スクリプト中での月の設定値を6,9,11月にしたときも不正な値が返ってきます。
システムの日付が2007年3月31日で小の月を表示しようとしたときのみ、
翌月の値が返ってきている!? とも思ったのですが、
スクリプト中の年の設定値とシステムの日付をそれぞれ変えながら試してみると、
単純にそれだけでもないようです。
また、var date=new Date("Apr 1, 2007"); とDateオブジェクトに直接設定したら、
正しい値が返ってきました。等々
どうしてこうなるのでしょうか。何が悪いのでしょうか。
ヒントだけでもいただけると幸いです。よろしくお願いします。
>>356 >システムの日付を2007年3月31日にして実行
これを例に説明すれば、
date.setMonth(3); //4月
この時点でdateオブジェクトの中身は
「2007年4月31日」になる。
「31日」は存在しないから繰り上がって5月になっちゃってるって事じゃないかな。
5月1日の曜日は2ですね。
Dateオブジェクトについてはよく知らなかったが
調べてみるとsetMonthには日を同時に設定するための第二引数があるじゃないか。
どうしてもその書き方をしたいならこのように。
var date=new Date();
date.setFullYear(2007); //2007年
date.setDate(1); //1日
date.setMonth(3); //4月
setMonthをsetDateより先に書くと357の通りになります。
分かっていると思いますが上から実行していくので下記の通り
date = new Date(); // 2007.3.31
date.setFullYear(2007); //変わらず
date.setMonth(3); //2007.4.31→2007.5.1
date.setDate(1); //変わらず
date.getDay(); // 2007.5.1は火曜日だから2
var date=new Date("Apr 1, 2007");の場合はこの時点で
下で使うdateにシステム日付が関係なくなります。
と、大した知識ないけどこたえてみる。
359 :
356:2007/04/04(水) 22:32:47 ID:???
>>357,
>>356 なるほど、それで31日のときだけ小の月の表示がおかしくなったんですね。
また2月だけ他の小の月とは不具合の様相が違ったのも、そういうことだったのかと
納得がいきました。(システムの日付を30日にすると2月だけ表示がおかしくなっていたのです。)
date.setMonth(3); とした時点でDateオブジェクトの日付が5月1日になってしまうこと、また、
>>357 さんの date.setMonth(3,1); という方法と、
>>358 さん(同じ方でしょうか)の date.setDate(1); を先に持ってくる方法、
いずれでも正しい値が返ってくることも確認しました。
私はDateオブジェクトを単なる入れ物としてしかイメージしていなかったため、
プロパティの値を確認するという発想が出てこなかったようです。
(いや、もし確認していたとしても、なぜそういう値になったか思い至ったかどうか…)
丁寧にお答えいただいて大変勉強になりました。
どうもありがとうございました。
360 :
359:2007/04/04(水) 22:36:14 ID:???
Dojo Offline Toolkit は Dojo の API をオフラインでも使えるようにしたモノですよね?
これをデスクトップに保存して、
tests/widget/test_Button.html なんかを開くとエラーになるのですが、どうしてでしょうか?
(Dojo を使うことの是非はおいといて)
手取り足取り教えるJavaScriptスレpart4
http://pc11.2ch.net/test/read.cgi/hp/1155954169/931 931 名前:Name_Not_Found[age] 投稿日:2007/04/05(木) 14:24:07 ID:???
Dojo Offline Toolkit は Dojo の API をオフラインでも使えるようにしたモノですよね?
これをデスクトップに保存して、
tests/widget/test_Button.html なんかを開くとエラーになるのですが、どうしてでしょうか?
(Dojo を使うことの是非はおいといて)
テンプレも読まないごみはくずかごに
春ですなー
ここにJavaScriptで子画面の出し方が分かる方いらっしゃいますか?
できれば、画面の大きさも指定したいです。
>>365 初歩中の初歩だ! 自分で調べれ!!
ま、「JavaScript 小窓」とかでぐぐれば何か出るだろ。
そういえばwindow.openの第3引数ってアレだよな。
369 :
365:2007/04/05(木) 19:43:52 ID:???
Objectで指定できたら楽なのに。
371 :
365:2007/04/05(木) 20:32:07 ID:???
第3引数をクォートすると誤動作するんですよね。アレってW3Cに反して
ませんか?
>>371 JavaScriptそのものはW3Cとは何の関係もないが。
アンタのそのへっぽこなコード(最少限ね)を貼ったら見てもいいよ。
ママー、この人へっぽこだって。いってる人がへっぽこなんだよね。
>>373 へっぽこっていってる人がへっぽこ っていってる人がへっぽこばぼ¥¥¥
ママ!
春ですねー
377 :
Name_Not_Found:2007/04/06(金) 00:32:45 ID:jTlxKnPP
このvolの53と54を見たいんですが、どこで見られますか?
過去ログ倉庫にもありません。
誤作動だか何だか知らないが動かないでいいんならほっとけ。
380 :
Name_Not_Found:2007/04/06(金) 09:29:21 ID:s8jsFugh
ここにLispの分かる人はいますか?
いますけど、どうしました?
入門ならとほほのJavaScriptで足ります。
>>383 それは絶対にやめた方がいい。ねじ曲がった理解は知らないより悪いぞ。
とほほのヤバさが分からない人間がJavaScriptをドウタラこうたら
言ってるのは怖いよね。評価する能力のない人間は人に勧めるな。
つまりおまえら初心者どもが評価できるような判り易いコードやドキュメントを書くとほほには一読の価値があるということだな。
まあ、動きゃいいんだから気にするな
質問です。シングルトンて何ですか?
>>388 あるクラスのインスタンスが、1つだけで有る事を担保する仕組み。
ちまたに溢れているクラス-インスタンスベースのシングルトンサンプルコードはJavaScriptでは、あまり参考にならない。
>>387 このスレには,2派があるよね。動けばそれでよし派,と,いわば,ECMA探求派。
前者は,長生きする。
動けばいいなんて言ってる奴はそのうちどーやっても動かせない
壁に当たって苦しむと思うな。つまり長生きもできないと(w
最後は理詰めで考えないと原因の分からない込み入ったバグは
常に存在してる。
別にECMAを探求してるわけじゃないが、理詰めでチェックしようと
すると言語の仕様はちゃんと理解しないとどうにもならないから。
長生きだが、微妙・・・
足して2で割ったぐらいがちょうどいい
理詰めで考えなくても動くものは動く。
きちんと理解していれば、「動けばよし」でもかまわないよ
一時期のW3C信者と非信者の論争みたいになるからやめない?
どっちでもいいが
「動けばいい」でずっとやってきた奴が
適当な知識のまま初心者に教えたりするのを見るのだけは
とほほな気分になる
宗教戦争への発展は望まないが、HTMLのレンダリングのように
いい加減な書き方で動いてしまうのがいけないよね。
M$のようにいきなりnameに追加で動くようなのがあるんで、素
人はわけも分からずコピペで喜んで使ってる。
openspc2.org/なんぞはこれの元凶。ひどいコードのオンパレードだし。
駄コードの氾濫をグチるスレ。
番組の途中すいません。ちょっとわからないもので質問です。
javaScriptは今月からはじめた者です。えっと、継承ぽい感じ
のものなんですが、objがあるStringクラスのインスタンスとして、
obj.prop=new Array()
としたら、propは自動的に型変換されるものですか?
>>397 >HTMLのレンダリングのようにいい加減な書き方で動いてしまう
JSでも、とんでもない文法違反 (出現順序や入れ子など、構造的違反) までてきとうに解釈してくれているとでも?
>M$のようにいきなりnameに追加で動くようなのがあるんで
DOM勧告の方が後出で、しかもほとんどがIE4からのインスパイアなんだがw
>openspc2.org/なんぞはこれの元凶。ひどいコードのオンパレードだし。
ひどくても実害は発生しにくいわな。
まさか、数時間も動かせば実害が出る今時の循環しまくりの痛いコードにあこがれてる?w
>>398 いい加減に書いても動く ってのはものすごいメリットだと思う
いい加減に書いて動いたのでそれでいい、と言っているヤシは
そのいい加減な部分が試行錯誤のまぐれ当たりということだろ。
ロジックもなければ解析する能力もないので、それしか手がない
だけ。
406 :
Name_Not_Found:2007/04/06(金) 23:12:42 ID:qqapwHOr
>>402 > しかもほとんどがIE4からのインスパイアなんだがw
さすがにこれはビックリな嘘。
学校の課題で問題を出してそれに対する正解率を出すページを作ってるのですが
結果用ページがうまく表示されませんアドバイスお願いします。
selans = new Array();
answer = new Array("1","2","3","4");
quesno = 3
function show(){
chk1=true;
for(i=0;i<=quesno;i++){ //Cheaking the all ansewrs are selected
selans[i]=document.fm1.ques[i].selectedIndex;
if (selans[i]==0) chk1=false;
}
if (chk1==false){ //this case, there is any non-selected answer
alert("Please answer all questions.");
}
else{ //this case, all selected
document.location="project2.htm" ←結果用ページ;
document.fm1.txt1.value="test";
}
}
project.htm内のテキストボックスにtestが表示したいんですが
どうすればいいですかね?
ie はネスケにインスパイアされたってことかね
>>407 うまく表示されないというか、別ページにデータを渡す方法分かってる?
>>400 それ継承も型変換も関係ないんじゃないの
>409
その方法教えていただきますか?
>>407 locationに代入して新しいページを表示したら現在のページの
スクリプトは直ちに強制停止させられる。だから次のページが
表示された後で入力欄に何か入れようというのは無理なわけ。
ページをまたがってデータを渡すには、クッキーに入れるか
新しいページのURLの末尾に「?」に続けてデータを書いておき
新しいページ側でlocation.queryからこのデータを取り出すのが定石。
まあ頑張って(このスレでは全部書いてやることはないから)。
>>408 そりゃ現在あるようなブラウザ作り始めたのもJavaScript発明
したのもNetscapeだよなー。
>412
ありがとうございます。
ググった感じ、ひとつの変数を送るのは何とかわかったのですが、
配列や複数の変数を送るにはどすればいいでしょう?
get なら
?key1=val1&key2=val2&key3=val3
とかやるわね
検索エンジンの結果ページの URL のやつです
>415
&で区切ればいいのか。
ありがとうございます。
後、データの受け渡しで調べてたところ
データを結合して、受信側で分割する方法があったので
配列のデータが大きくなった時の為に
それでやってみます。
みなさん、ありがとうございました。
>>417 GJ! だれかvol.54 持ってない?
419 :
417:2007/04/07(土) 12:26:02 ID:???
>418
追加更新しました。ご指摘感謝。
420 :
377:2007/04/07(土) 14:07:40 ID:???
GJ = Good Job, thx!! 417
421 :
Name_Not_Found:2007/04/07(土) 19:38:40 ID:9VXWDYPz
質問です。
こんな時代になってもまだ<!-- //-->は付けるんですか?
最近は<![CDATA[ ]]>
xhtmlなら422にしないといけないけど
面倒なら外部ファイルにすればOK
正直今の時代に<!-- //-->つけてるやつは、意味わかってないでやってると思う。
マウスオーバーで画像を変えたいのですが、マウスを画像に乗せるとエラーが出てしまいます。
どこか間違っていたら教えて下さい。
<script type="text/javascript"><!--
function imginit(){
altimg=new Array;
altimg[0]=image(570,200);
altimg[0].src="./sozai/datebase2.jpg";
altimg[1]=image(570,200);
altimg[1].src="./sozai/kisotisiki2.jpg";
}
function alternate(ID,num){
if(ID=="alti"){
document.getElementById(ID).
src=altimg[num].src;
}
}
--></script>
<body onLoad="imginit()">
<img id="alti" src="./sozai/datebase2.jpg" onmouseover="alternate(this.id,1)" onmouseout="alternate(this.id,0)">
なんでマルチするの?
答えようと思ったらマルチなのね
>>426 申し訳ありません。出来ればjavaを覚えたいと思ったからです。
とりあえず自分で頑張ってみます。
Java≠JavaScript
>407で質問をした者なんですが、
データの受け渡しには問題なく出来たのですが
project2.htm側のアドレスバーに転送したデータがくっついてて
見栄えが悪いのですがこれを隠す方法はありますか?
受け渡しに get を使う限りしょうがない
cookie を使う方法もあるけど
cookie は off にしている人も結構いるので
あとは
ページを遷移しないようにするとか
(textarea に書き出すとか DOM でゴリゴリやるか)
>432
出来ないっぽいんですね。
とりあえず使う変数も一緒のことですし
ページを遷移しない方向で行きたいと思います。
レスありがとうです。
JavaScriptを禁止するブックマークレット を作りたいんだけど
禁止方法がわかんない。
なにかうまい方法はないかな
"JavaScriptを禁止するブックマークレット" ってのが
どんなものなのかどんなときに役に立つのか想像もつかないんだが。
>>435 それを実行すると、それ以降JavaScriptが動作できなくなるという
ブックマークレットです。
素のIE使ってて、ほんの一時的にJavaScriptを無効にしたいときに
手軽に使いたいと思ったりしたのだよ諸君。
イベントハンドラとか面倒だな
JSにこだわらず、IEの設定いじる方法考えたほうがいいんじゃない?
いったん死んだJavaScriptをどうやって復活させる気だ。
手動なら、最初から手で切れってことで。
>>438 復活など考えてはおらんよ。 死して屍拾うもの無し
手で切るには、IEだと設定しなければならないじゃないですか。
それが面倒なのでブックマークレットで出来ればなぁ、と。
とりあえず一筋縄ではいかないことがわかりましたので、あえて
JavaScriptでの方法にこだわり、茨の道を進もうと思います。
ありがとうございました。
茨の道というか
JavaScript からブラウザの設定変更を行う API が提供されてなければ
やりようもないんだが。
フレーム内の別ドメインのページのinnerHTMLを参照することは出来ますか?
できません
ではブックマークレットでは出来ますか?
できません
ではサーブレットでは?
できません
旧機7番がオレ最強
つーかこれ以外ではヴェリーハードはクリアできない
だけどハイスコアはこれでは無理なんだろうな・・・
できません
449 :
447:2007/04/08(日) 23:22:59 ID:???
超誤爆御免
>>440 それでもIEならActiveXでぶち破りそうな気がして怖い。
>>452 XMLHttpRequestでcontent-typeをtext/xmlとして送るんじゃないの。
XMLHttpRequestの使い方は自力で勉強してね。
ニコニコ動画って何だ?
test
>>454 思わずニコニコしてしまうほほえましい動画のこと
選択ボックスで項目を選んで検索語入力、サーチのようなフォームで
前回の検索時に選択した項目を記憶させときたい時には
どうやればいいんでしょうか?
use cookie but it wont work for visitors who is cutting off it.
cookie必須なんですか。即レスどうもです。
>>458-459 前に検索した時の設定を覚えておいて次にフォーム生成する
ときその設定に合わせるのはCGIとかでもできるでしょ。
そういうのを求めているのかどうか知らないけど。
>>460 >CGIとかでもできるでしょ。
どういう仕組のことを言ってるのかしらんが、どうせクッキー使うだろ。
認証などで利用者を特定しない限り。
>>461 もはやスレ違いだが(1)クッキー(2)hiddenでIDをつなぐ(3)URIの末尾に
IDを入れてつなぐの3つが標準的だね。PHPとかもこれらが備わってるでしょ。
質問です。
var hoge = function() {
/*たとえばalertなど...*/
};
というhogeクラスがあった場合、
var instanceA = new hoge;
var instanceB = new hoge();
これって全く同じ動作になりますが、なぜでしょう?
new hoge()の方はhogeを実行した結果で、
new hogeの場合は単純にhogeを新しく作っていると思っていたのですが…。
仕様書のどこを参照すればいいかだけでもいいので、
なぜこうなるか教えてもらえますか?
>new hoge()の方はhogeを実行した結果で、
どこでそんなこと覚えてきたの?
www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.2.2
//ただしtypoあり
>>463 : new hoge()の方はhogeを実行した結果で、
: new hogeの場合は単純にhogeを新しく作っていると思っていたのですが…。
そう見えるという気持ちは分からないでもないが、とんでもない
俺様解釈なんだよな。がんばって仕様書の
>>465 のとこ読んでね。
最初こことインターネット質問スレで迷って後者で質問したのですが、
どうもわからないようでかなり流されてしまったのでここで質問させてください。
お願いします。それともいかなる理由でもマルチはダメでしょうか…。
自分の環境:WindousXP Professional SP2/Internet Explorer6 SP2です
Internet Explorer5.5+/JavaScript3.0の環境に対応するというサイト(管理人曰く)を見たいのですが、
JavaScript3.0にするにはどうしたらいいのでしょうか?(見ようとするとチカチカして表示されません)
いまいち自分のPCがバージョンいくつかもわからないのですが…
検索してみましたが、引っかかったのに詳しく書いていなかったり、
他はほとんど英語のページでよくわかりませんでした。
諦めきれないページがあるんです。そのサイトは必要があれば晒します。
よろしくお願いします。
>>467 そのチカチカするサイト晒して。JavaScript3.0なんて存在しないと
思うけどなー。今ブラウザに載ってるのが1.xで、一部使われ出して
いるのが2.0とかでしょ?
>>465 まさにその情報が欲しかったんだよ、
俺様の代わりに調べてくれてありがとうw
>>469 あれを読めたのであれば聞いてみるか。
hoge 内で return null した場合、new hoge() で何が返る?
勘違いしているコードをたまに見かける。
472 :
467:2007/04/11(水) 00:54:03 ID:???
473 :
467:2007/04/11(水) 00:57:16 ID:???
すみません、付け足し忘れました。
チカチカしていたのがとまって0という表示をするページがありますが、
本当は0ではなくて、中身はあるはずなんです。
>>472 ひたすらdocument.write()してるだけのようなんだけど、チカチカ
するっていうのは謎ですねえ。FFxとか入れて表示するのが一番
簡単なんじゃないですか?そこの作者が達人のようには全然思えない
んで用語遣いは信用できない感じ。
チカチカしないし普通に見れるが…
黒地に赤文字、いずれも原色。
正気ですか?
476 :
Name_Not_Found:2007/04/11(水) 01:42:24 ID:T7c+s7SY
javascriptのtimerを使って、自動更新するアプリケーションを作っています。
中にはxmlのリストを埋め込んでいます。
その画面を、最小化した場合、サーバーからの応答の後、画面が最前面に来てしまいます。
JSPをデバッグしたところ、Xmlを書いたところで最前面になることがわかりました。
来週、客先検証があるので、とりあえず、画面が最小化中はサーバーにアクションを起こさないように改造しようと思います。
そこで、画面が最小化中であると判断するには、どういう方法がありますか?
Win/IEならwindowのonblurにイベントを仕込む
>>472 症状を確認してもらいたいページがあるなら、情報を
小出しにせず直接誘導しなよ。回答者は手間がかかって
相手にしなくなる恐れがあるし、質問者としてもハズレの
回答をもらうのは時間の無駄だよね?もしステータスバーの
ところにエラーが出てたら、それも一緒に報告すれば
目指す答えが出てきやすい。
ソース経由で中身を見てみたけど枯れた機能しか使って
ないから、恐らく「JavaScript3.0」ではなくIE4以降に相当
する「JScript3.0」が必要だと言いたかったのだと思う。
見られないページへのリンクの上で右クリックして新しい
ウィンドウで開くか、ショートカット(リンク先のURL)を
コピーして別のブラウザから開けば結果が違ってくるかも。
479 :
Name_Not_Found:2007/04/11(水) 13:53:16 ID:M1ZY5rB+
はじめまして。質問があります。というか助けてください・・・。
・現状
フレームによって左右に分かれた画面の左フレーム内で、ある文字に対してマウスオーバー時、
visibility:hiddenにしてあったspanタグをjavascriptでvisibility:visible、position:absoluteにして表示する(=ポップアップ)処理をしています。
・現状の問題点
ポップアップがフレーム幅より大きくなる場合、フレームの境目を超えない様に変形されてしまう。
●やりたこと
ポップアップをフレームの境目を超えて表示させたい。
・やったこと
1.ポップアップ(spanタグ)の大きさを固定する
→ 左フレームがスクロールしてしまう(フレームを超えない)
2.左フレームのマウスオーバー時、親フレームのheadにjavascriptを埋め込んでポップアップ(spanタグ)を作り出す
→ フレームのページではspanタグを表示出来ない様子
アドバイスや解決の糸口だけでも構わないので、
どなたか良い案をご存知の方はいませんでしょうか?
フレーム=ウィンドウだ。単にウィンドウが2個並んでると思え。
HTMLを使ってブラウザウィンドウの領域外に何か描画なんてできない。
質問です。
プログラマ志望の高校生です。普通idなんかだと、同じものを2つ作
ろうとすると警告が出て作れません。でも、JavaScriptで同じ名前の
オブジェクトは2つ作れます。これって、2つのオブジェクトはどう
なっているのでしょうか?別々に存在するんですか?それとも書き換
えられてしまってるんですか?
あと、プロパティの名前はオブジェクトが違っていてれば、同じもの
を使ってもユニークになりますか。自分が考えたところでは、やはり、
for-inなんかで列挙するときにマズいですよね。でも、それさえやら
なければ、大丈夫でしょうか。ちょっとモヤっとした感じがあるんで
教えてください。
>>480 基本そう思ったんですが、親フレームを何とかして出来ないかな?って所を考えてるんです。
例えば「親フレーム」を<frameset>ではな<iframe>で実現すれば
HTMLが書けるので何とかなりそう、とか。
その他アイデアがある方は引き続きコメントお願いしますm(_ _)m
>>481 >>2 (2)
テスト書いてソース貼れ。
DOMのid属性(JS風に言えばidプロパティ、HTML風に言えばID属性)の値の重複に関しては、
MSDNのgetElementById() のページのRemarksが今時の実装では事実上の標準だ。
xhtmlで以下の文を書く場合、
document.write('<img src="\/hoge\/hoge.cgi' />');
最後の方にある/>の前にも\は必要でしょうか?
485 :
Name_Not_Found:2007/04/11(水) 15:14:47 ID:AhQ0gH/R
すいません、よくオールタナティブって言葉をJavaScriptのプログラミング
で使いますが、どういう意味ですか。辞書を引いてもピンときません。
IDが重複してたらvalidなHTMLじゃない。それでよければ好きにしたら
いいが、自分で設計するときはわざわざ重複さす気にはならないけどね。
>>481 データベースの勉強でもしたらどうかな。idはキーだと思うかどうかで。
>>482 もちろんiframeにすれば何とかなるでしょ。このスレの前の方に書いたけど。
(それくらい読めって)
>>484 つけるなら全部につければ? 洩れは「<」の直後以外はつけてない(w
>>484 JavaScriptが「/」をどう解釈するかを知っていれば愚問だと思うが。
>>485 そんなの使うかなあ。alternative: 代替案、代替手段、とにかく代替。
>>486 >IDが重複してたらvalidなHTMLじゃない。
誰もHTMLの話をしてないだろ。DOMの話。
別にいいけど、ValidでないHTMLでDOMって危ういと思ってるんでね。
491 :
485:2007/04/11(水) 15:32:58 ID:???
>>488 ありがとうございます。なるほど、代替手段ってのがありそうです。
まだピンときませんが。
もう一ついいでしょうか。「staticallにオブジェクトを作る」っていう
のは、どういう意味にとらえたらよいでしょうか。辞書を引くと「静的な」
くらいの意味しかないです。でも、わけわかりません。
>>491 staticallyに「静的に」それってJSとあんまり関係ないような。
C++で
static OBJ x;
とするとOBJ型オブジェクトxが最初から(静的に)存在するが
static OBJ *x;
... (実行中に…) ... x = new OBJ(); ...
とするとそれを実行した時点で(動的に)存在するようになるとか。
>>491 双恋代替手段。
グローバル変数にオブジェクトnewしとけというお話です。
>>486 >IDが重複してたらvalidなHTMLじゃない。
MSなら大いにvalidだが
MS専ならそう断ってね。まあご自由に。
>>490,
>>495 論点ずらしされても困るよ。
DOM操作によるID重複についてしっかり頭を整理してからレスした方がいい。
結論はID重複は許可されるということだ。
何だか
*id属性とID型属性
*DOM1のHTMLDocument#getElementByIdと、DOM2のDocument#getElementById
がごっちゃだな。
>>494,496
さすがにそれだけでは意味が分からない。
結論だけ言われてもアレなので、ソース希望。
>>484 そんな出鱈目どこで習った?
498 :
Name_Not_Found:2007/04/11(水) 16:27:20 ID:9ZW2fOF3
DOM2 CoreのIDL定義が
Element getElementById(in DOMString elementId);
となっている件
499 :
498:2007/04/11(水) 16:30:05 ID:???
497と同じ事書いた上に上げちゃった。ごめん。
W3C DOM2 Coreの仕様には
getElementById introduced in DOM Level 2
Returns the Element whose ID is given by elementId.
If no such element exists, returns null. Behavior is
not defined if more than one element has this ID.
と書いてあるね。ID重複だと動作は未定義つまり使えないね。
いや、MS専で使いたい奴のことはべつに知らんけどね。
>>500 動作は未定義だよ。
だから、DOM操作結果のid重複なんて今更感満開の質問だけど
知らないから質問してるのだろうと思うから、事実上の標準がどうなっているか
>>483で示しただろ。
IE専?いつの時代だよ。8年前にタイムスリップか?innerHTMLの2年前くらいに足並み揃ってたんだがw
>>484 その場合は全て必要ない。
まず、何に対してのエスケープなのかをはっきりさせておくと、SCRIPT要素を知っているUAに対してだ。
(SCRIPT要素を知らないUAは#PCDATAとして処理するだろうから影響を受けるが、そもそも、
SCRIPT要素を知らないUAを気遣うなら、内容全体をコメントアウトするわな。)
そのUAはそのスクリプト言語を知っている必要まではない。
SCRIPT要素を知っているから、その内容をCDATA区間と判断する。
知らなければ、#PCDATAとしてレンダリングするだろう。
CDATA区間の終了を知らせるために、HTML仕様では、「</」を使えとされている。
実際に、「</」も終了の候補として使用されているが、これだけで判断していない。
話は思いっきり飛ぶが、実際どんな時に問題が起こるかと言えば、SCRIPT要素を書き出す時に限られる。
HTML仕様の注意書きだけだと、どんな要素を書き出そうとも問題が起こる可能性はあるが、
実際にはもっと賢い判定をしているから、SCRIPT要素以外で問題を起こすのは困難というか見かけない。
PerlScriptの例。
<script type="text/perlscript">
my $s = <<"S";
<script type="text/javascript">alert('foo')<\/script>
S
$window->document->write($s);
</script>
これ、エスケープしなかったら、たとえば、SCRIPT要素の内容が#PCDATAライクな扱いを受けて途中までレンダリングされる、みたいな例外時の姑息な処理がされるかもしれないな。
>>503 重複したIDにも対応しておけばマルチブラウザ対応になるよね
つまりIE専ではなくむしろ逆の話になるよね
>>504 うん、ライブラリとか作るんならそういうのもいいんじゃね?
自分は重複しないで普通にgetElementById()使いたいから。
各自の選択でいいと思うよ。
整理しておくと
HTMLでIDを重複させずID重複の機能を使わないJSコードを書く
→IEでもID重複に対応していないブラウザでも動く
HTMLでIDを重複させてID重複の機能を使ったJSコードを書く
→IEおよびID重複に対応したブラウザのみで動く(W3Cの仕様外)
何か間違いあれば指摘よろ。
>>500 そこを出すんなら、
> Note: DOM 実装は、ID 型の属性を示す情報を持たなければならない。
> 名前が "ID" の属性は、そう定義されない限りは ID 型ではない。
> 属性が ID 型か否か知らない実装は、null を返すことを期待する。
ここまで引かないと。
X/HTMLのスキーマを知らない実装にとって「id属性」の重複は問題にならない。
実際、Node#cloneNodeで簡単に重複するし。
id重複が問題になりうるのは、validateするとき。
だから、スキーマがないのに「MSではvalid」とか意味不明だし、
どの時点まで「許可される」のか線引きしないと、話が混乱するだけ。
>>502 > CDATA区間の終了を知らせるために、HTML仕様では、「</」を使えとされている。
スレ違いだが、そんなことは書かれていない。
SGML仕様上、要素内容は開始タグ直後からETAGO("</")までなので、
SGMLパーサが混乱しないよう、要素内容に現れる"</"をエスケープしとけ
と注意があるだけ。
>>507 質問なんだけど、document.getElementById()がnullでない
値を返す実装は「属性がID型か否かを知っている」と理解していいの?
もちろんDOM2 Coreに準拠しているという前提でだけど。
innerHTMLとかXMLHtppRequestとかスルーするのに
idの重複で騒ぐ奴らっていったいなんなの?
一貫しろよ
つまらない質問かもしれませんが、お願いします。
function createXMLHttpRequest(CallbackFunc){
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = CallbackFunc;
return XMLhttpObject;
}
function Add(e){
HttpObj = createXMLHttpRequest(Set);
HttpObj.tmpdata=e;
}
上記のように、HttpObjにプロパティ(tmpdata)を追加しようとすると、IEでエラーがでてしまいます。
どこが悪いのでしょうか?
IEの場合、HttpObjの元となるnative objectに[[set]]が無いんじゃないの?
すいません初心者スレから来ました。
質問です。
JavaScriptで「別窓を開く」を1ページに2箇所付けることは可能でしょうか。
もちろん開くウィンドウも別です。
その方法をご存じの方お教えください。よろしくお願いします。
>>513 とりあえずわからないなりにも「ここまではやりました」ってサンプルは出した方がいいよ
「1つまではこれでできました。同じように2つでやったらこうなってダメでした」
ってやつ
過去ログ嫁って言われるかもだけどとりあえずサンプルは出さないと。
質問です。
工場関数ってなんですか?
高階関数の間違いじゃないのか。
ああそうか! factory methodかと思った。
荒城関数
519 :
515:2007/04/11(水) 21:50:06 ID:???
あ、すいません。517さんので気がつきました。英語だと、
factory関数というようです。どんなことなのでしょうか。
521 :
515:2007/04/11(水) 22:52:20 ID:???
>>516-520のみなさん
ありがとうございました。とくに520さん。
Javaはよく分からないのですが、自分なりに解読しました。なんだか
やっていることはcreateElementして最後にappendChildでJavaScriptと
同じような工程ですが、Javaはクラスの拘束があるのであのようになる
のでしょうか。JavaScriptは自由ですよね、その点。
522 :
Name_Not_Found:2007/04/11(水) 23:27:08 ID:RGqAaNEn
梅ちゃん堂氏のサイトでJavaを用いたパスワード制限の仕方が書いてあったが、htmlじゃなくてhtmじゃなきゃダメだんでしょうか?
それともcaution.htmを新たに作らなきゃダイアログボックスは出ないんでしょうか?
<HTML>から</HTML>まで正しいタグを書いていただけるとありがたい。
ソースを見破られないタイプのアクセス制限なので重宝したいが。
何を言っているんだねチミは
質問です。
同一ページで複数の別窓を開く場合の設定の仕方を教えて下さい。
以下のスクリブトを使おうと思っています。(解説本を使いました)
●HEAD内
<SCRIPT language="JavaScript">
<!--
function OpenWin(){
win=window.open("window.htm","new","width=200,height=300");
}
// -->
</SCRIPT>
●BODY内
<A href="javascript:OpenWin()">ウィンドウを開く</A><BR><BR>
これで、前者の方に開く側のファイル名を入れただけでは、1つの別窓しか
開きませんが、これを複数貼り込みたいのです。
どこをどう書き直せば良いのでしょうか。
どなたかご教示いただきたく、よろしくお願いいたします。
>>525 窓名を変えると別の窓になるから。関数作らずに
<a href="javascript:win=window.open('開くURI','窓名')">
というのを好きなだけ用意したらいいんでないの。変数win
が1つでいいのかそれも変えるのかは必要に応じて。
ウィンドウサイズが変更されたときのイベントって何でしょうか・
528 :
Name_Not_Found:2007/04/12(木) 10:43:32 ID:nqMvtby3
alert(document.getElementById('hoge').style.width);
とやっても幅が取得できないのですがなぜでしょうか?
531 :
522:2007/04/12(木) 11:27:42 ID:???
>>528 何故かといわれてもねえ。JavaScriptエンジンが間違っているか、
アンタの頭がパァなのか、どっちかだろ。断然後者だと思うが。
アホちゃいまんねん
あいかわらず心を病んでる人が多いな
このスレは
いろいろとやってみたんですが、どうしてもできませんでした。
<p id="hoge">あ<span>い</span>う<span>え</span>お</p>
document.getElementById('hoge').「う」を参照したい.nodeValue = huge
「う」を参照するにはどうすればいいのでしょうか?
firstChild, lastChild, nextSibling, previousSiblingを使っていろいろやってみましたが、
どうしてもできませんでした。
よろしくお願いします。
>>535 document.getElementById('hoge').childNodes[2].nodeValue
document.getElementById('hoge').document.childNodes[2].nodeValue = huge
539 :
537:2007/04/12(木) 12:46:23 ID:???
どきゅめんとワロタw
>>535 DOMツリーの構造を絵に描けるようにならないと駄目だよ。
P+(textNode あ)
|
+SPAN−−−−−−−−−(textNode い)
|
+(textNode う)
|
+SPAN−−−−−−−−−(textNode え)
|
+(textNode お)
質問です。
ヘッダ、メニュー、フッタなど、全ページ共通の部品を
.jsの外部ファイルとして保存し、各ページを読み込むときに
そのつど参照するという方法は邪道でしょうか?
PHPでやるべきでしょうか?
SEOは考えに入れてません。
メニュー項目名を変更するときなどの作業が
楽になればいいなあと考えてるんですけど。
>>542 JS OFFでそういう部品が何もなくなっていいのなら。
普通はPHPでそういうものを生成するサブルーチンを用意し
各ページでそれを呼ぶとかだろうけどね。
544 :
Name_Not_Found:2007/04/12(木) 13:52:27 ID:SgzdBG+O
あるページにいくつかの商品があり
ユーザーがその一つをクリックすると、
新しいウィンドウを開き、テキストエリアに商品の番号を
代入するにはどうすればいいですか?
とりあえず、親ページにidをふって、子ページに渡す方法があるのは
分かったのですがテキストエリアに代入する方法がわかりません。
親ページ
<div id="0412">商品1</div>
子ページ
parent.document.getElementById('0412').innerHTML
↑これをどう使うのか、どうやって代入するのか教えてください
>>543 ありがとうございます。やっぱりPHPですね…。
>>545 まず数字だけから成るIDはHTMLとして正しくないから何か先頭に
英字をつけとくことを勧めるよ。自分とこのテキストエリアにも
IDを振って
document.getElementById('TEXTAREAのID').value =
parent.document.getElementById('x0412').innerHTML;
とかでいいんではないの。それとも求めていることが違うか?
テキストエリアも親ウィンドウ側にあるのなら「parent.」をつける。
548 :
544:2007/04/12(木) 14:36:26 ID:SgzdBG+O
>>546さんレスありがとうございます。
自分でやってみましたが今のところできていません。。
どこがおかしいのかわからないので
JavaScriptのソースを見てください。
<親ページ>
<script type="text/javascript"><!--
function OpenWin(){
win=window.open("form.html","new","width=670,height=700");
}
// --></script>
<body>
<div id="x0412">商品番号1</div>
<子ページ>
function getBangou(){
document.getElementById('deru').value = parent.document.getElementById('x0412').innerHTML;
}
<body onload="getBangou()">
<input type="text" id="deru" size="30" border="0">
よろしくお願いします!
549 :
472:2007/04/12(木) 14:57:22 ID:???
>>548 ごめん統一的にparentじゃなくopenerだった…動作確認しました。
---t0.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div id="x0412">商品1</div>
<div><button onclick="window.open('t1.html', '_blank')">Open</button></div>
</body></html>
---t1.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
document.getElementById('t0').value =
opener.document.getElementById('x0412').innerHTML;
}
</script>
</head><body onload="test()">
<div><input type="text" id="t0"></div>
</body></html>
げげ、Transitionalじゃないよな。iframe入れて実験した時の残骸が…
553 :
544:2007/04/12(木) 15:26:03 ID:SgzdBG+O
>>551さん
ありがとうございます!できました!
超感謝です!
554 :
544:2007/04/12(木) 15:54:19 ID:SgzdBG+O
すみません、初めから書けばよかったのですが
商品は親ページに100個あるので、
それぞれの番号を子ページのテキストエリアに
代入したいのですがその場合ってもしかして100個関数書かないとだめですか?
何かいい方法ないでしょうか?
質問を小出しにするアホか。窓を100個作るわけ?
窓は1個でそこに100個ぶんの番号を入れるわけ?
窓は1個でそこに「100個の商品のどれに対応するリンク
ないしボタンで開いたか」によってその商品番号を入れるわけ?
いい加減な日本語で曖昧に質問されても答えようがないだろ。
日本語の修行をして出直せ。洩れは当分回答する気をなくした。
じゃあ黙ってろクズ。
なぜこのスレにはただ質問者を馬鹿にしたいだけのやつしかいないの?
洩れもバカにされた。イジメ?死んだらニュースになるぞ。
<html><head><script>
function toiawase( obj ){
var item = obj.parentElement;
var name = item.document.getElementById(item.id + '_name').innerText;
window.open("test2.html?name="+name,"_blank");
return false;
}
</script></head><body>
<div id="x0001" class="item">
<div id="x0001_name" class="name">商品名1</div>
<a href="#" onclick="return toiawase(this);">問合せ</a>
</div>
<div id="x0002" class="item">
<div id="x0002_name" class="name">商品名2</div>
<a href="#" onclick="return toiawase(this);">問合せ</a>
</div>
</body></html>
<html><head><script>
function queryParser(){
var query = new String(window.location.search).substr(1);
var tmp = query.split('&');
var result = new Array();
var len = tmp.length;
for(var i = 0 ; i< len ; i++){
var value = tmp[i].split('=',2);
result[ value[0] ] = value[1];
}
return result;
}
var query = queryParser();
</script></head><body onload="startup()">
<input type='text' name="item_name"><script>item_name.value = query['name'];</script></body></html>
561 :
559-560:2007/04/12(木) 19:19:23 ID:S6jJJ+6B
>>554 親のHTMLが書きかえれるならこれでいけないかな?
解説は・・・いらないよね?
substrかよ・・・
バカにしてるのではなく優しくアドバイスしてるでしょ。
質問の仕様が曖昧だということを。字面が罵倒だからといって
頭に血が上ってるようじゃ2ちゃんなんかやってられないよ。
ん?思いつくまま書いたんだけどsubstrだとなんかまずかった?
そういえばJavaScriptのsplitと
Perlのsplitとでは動作が若干違うんだよね。
JavaScriptで "A|B|C|D".split("|",2); ってすると、"A","B"って配列返るけど、
Perlでは split("A|B|C|D",/|/,2); で "A","B|C|D" ってなる
質問です。
たとえば、o={}としないで、単に{p:q}と投げ込まれた(?)オブジェクト
だけから、qを求めることってできますか?constructorをfor-inで一致
させるとか色々ためしたんですが、成功しませんでした。とっぴな質問
ですいません。
日本語でおk
文字列を数値に変換するにはどうすればいいですか?
めざせエスパー!
function TestObject(){//コンストラクタで…
alert(arguments[0]['p']);//o=とかしないで…
}
var test = new TestObject({p:'q'});//単に{p:q}と投げ込まれた(?)オブジェクト
普通に動作するわけだが・・・570は何がしたいの?
572 :
570:2007/04/12(木) 20:26:46 ID:???
573 :
570:2007/04/12(木) 20:30:37 ID:???
>>569 最近javascriptなんか書いてなかったもんで・・・
sliceにでも置き換えればいいのかな
>>573 現在の標準では部分文字列はsubstrじゃなくsubstringなんだヨ!
指摘する方もひとことそう言ってやる方がいいんじゃないの?
エスパー発動。
({p:q})["p"]
Ojbect.q
577 :
Name_Not_Found:2007/04/12(木) 21:56:26 ID:wdqLMmgO
medianet(無料のほう)ではJavaを使ったパスワード制限ってできないんでしょうか?
ダイアログを出したまではよかったが、パスワードを入れても内部へジャンプしない。
>>577 Javaはこのスレでは扱わない。終了。(お約束)
Javaと教授は檎要虔外の姻嫉なり。
質問です。
半角文字列がn回以上続いたら<br />を入れるにはどのように書けば
良いでしょうか?
たとえば下記のような感じです。
aaaaaaa
↓2個おきに<br>
aa<br>aa<br>aa<br>a
replaceを使えばいい
もしくはsplitして<br>でjoin
いずれも正規表現が使えるから柔軟に処理できるはず
>>580 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var s = 'あいabcdefgうえabcおかきcdefくけこabcdefgさし。';
alert(s.replace(/([\u0000-\u007f]{2})/g, '$1<br>'));
</script>
</body></html>
>>582 >>580 どっちかといえばこうかも。元質問者の仕様が曖昧なので分からんが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var s = 'あいabcdefgうえabcおかきcdefくけこabcdefgさし。';
alert(s.replace(/([\u0000-\u007f]{2}(?=[\u0000-\u007f]))/g, '$1<br>'));
</script>
</body></html>
>>581 splitを使う方法というのは考えたけど分からなかった。例示キボン。
(何かにあてはめてしまうとその部分はsplit後のデータからは失われるので
先読みとか使うのかなと思ったが半角2文字先読みでは駄目だし…)
同じWindows上のIE6でもPC毎の設定でスクロールバーの幅が変わりますが、
画面のプロパティ>デザイン>詳細設定>スクロールバー>サイズに設定してある数値を取得
もしくはそれと同じ数値を導き出す方法はありませんか?
>>584 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() { window.resizeTo(500, 200); setTimeout(test1, 1000); }
function test1() { alert(500 - document.body.clientWidth); }
</script>
</head><body>
<div><button onclick="test()">Test</button></div>
<p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p>
</body></html>
>>585 OSではサイズ22に設定しているのですがIE6で開くと結果は54と出てきてしまいます。
あとウィンドウサイズは維持したいです。
>>586 そのサイズ22をきっちり取るなんて無理でしょ。スクロールバー類の幅
を取ってるだけだから。窓の大きさは最初覚えておいて元に戻すことは
できるとは思うけどね。ま、アンタの注文通りのものを出してくれる人が
現れるといいね〜、洩れはこれで打ち止めにするわ。
スクロールバーの幅が取れないのは正直欠陥だと思う。
offsetWidth - clientWidthあたりでどうにかなりそうな気もする。
>>589 なるほど! 標準準拠モードならdocumentElementについて
両者の差を取るとよさげだね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var d = document.documentElement;
alert(d.clientWidth + ':' + d.offsetWidth);
}
</script>
</head><body>
<div><button onclick="test()">Test</button></div>
<p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p>
</body></html>
>>590 が、IE専のようだ… Mozilla(Seamonkey)では両方の値が一緒。
>>590 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var d = document.documentElement;
alert(d.offsetWidth-d.clientWidth-4);
}
</script>
</head><body>
<div><button onclick="test()">Test</button></div>
<p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p><p>x</p>
</body></html>
なぜか-4を付けたらスクロールバーサイズと同じになりました。
OSでスクロールバーサイズの設定を変えてもこれならピッタリになります。
とりあえずこれで使ってみます。ありがとうございました
昔FirefoxのバグでclientWidthとoffsetWidthが同じになる問題があったが…
多分方法はあるけど、絶対に汚い方法だろうな
ぱっと思いついたのはdiv overflow:autoに対して1ピクセルずつ狭くしていって、
scrollHeightが変化しなくなった値をスクロールバーの値とするとか…
ああ、試すまでも無く無理そうだ
>>592 そのマイナス4はFirefoxではアウト
WSH使えるなら(HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\ScrollWidth / -15)
とかでいけるかな・・・
でた、IEの謎の2ピクセル。
document.getElementsByTagName("html")[0].style.border = "0"
とすると消える、非常にふざけたIE専スタイルだろうな
流れ無視ですまん
「"」と「'」ってどっちを内側にしたほうが綺麗?
ケースバイケース
>>593 そんな風なことをしてスクロールバーの出ないぴったりの最小幅/高さを求めるとか
やってみようとしてるが、けっこう難しい。iframeは鬼門だ。
BUTTONのonLoadからcsv.phpに飛ばして、画面遷移せずに
ファイルダウンロードのダイアログを出してます。
phpで出力しているためにダイアログが表示されるまで少し時間がかかるのですが
その間にBUTTONをクリックされるのを防ぐ方法ってありますか?
>>601 飛ばす動作の前に「this.disabled = true;」を入れる。
あれーJavaScriptでPOSTされたデータって取得できなかったっけ?
GETで送るしかないのかーむー
なにをいってるんだきみは
>>604 GETならlocation.hrefでもなんでも取得出来るじゃん?
でもPOSTだとそーはいかねーよなー
GETとPOSTの区別もつかんヤシが来るところではない。さよなら。
ESP発動。
前のページでPOSTしたデータを、遷移後のページで取得したいんじゃないのか?
>>607 そう、ユーのアンサーでライトです。
バット、それはインポッシブルだということは
アンダスタンドしてるよ
実は不可能ではないんだが、すごいむかついてきたから別の奴答えて
ESP発動させるんじゃなかった
>>609 いや、不可能だね。絶対無理だよ。100%できません。 駄目。
無理無理無理無理かたつむりってヤツだ。
うちの妹の風呂上り写真を賭けてもいいが、まずありえないな。
>>610 モザイクでもいいからあげてくれ。そうしたら教えてやる。いやまじでお願いします
他所でやれ
質問です。
海外のサイトでお勉強してたんですが、用語がよくわかりません。
resolving propertyってどういうことなんでしょうか。
ご教示ください。
>>613 そのサイトを晒してくれないと文脈が分からん。
615 :
580:2007/04/14(土) 00:16:54 ID:???
Cometってどのライブラリを使えばいいのでしょうか
>>615 何も考えずにstr.split("").join("<wbr>")しときゃいい。
URLに限るならstr.replace(/([\/\?%])/g,"<wbr>$1");あたりでも十分実用的。
ペニス。
仕様書を読んでいて疑問に思ったんだけど、
8.6章で紹介されているnative objectの[[Put]]メソッドは具体的にどこで設定されるの?
Objectの初期化の部分(15.2.2.1)をみても、[[Prototype]]と[[Class]]しか定義していないし…
>>619 それは最初からあることになってる気がするけど…
8.6.2 内部プロパティとメソッド
各オブジェクトは [[Class]] プロパティと、[[Get]], [[Put]],
[[HasProperty]], [[Delete]], [[DefaultValue]] メソッドを
実装しなければならない。Host オブジェクトであっても同様である。
>>620 俺は和訳を読んでないけど、もしその引用が正確なら抜けがあるね。
[[Class]]以外にも[[Prototype]]も必須だと仕様書には書いてある。
もし読めるなら出来るだけ英語の仕様書読んだほうがいいよ。
しかし、最初からあることになっているのか。それはそれでありかもね。
どうせ必須の項目だし。
>>621 和訳でも引用した箇所より前に次のように書いてあるよ
(英語版にももちろんある)。getとputの話だと思って貼らな
かっただけで。
Native ECMAScript オブジェクトは [[Prototype]] と呼ばれる
内部プロパティを持つ。 このプロパティの値は null や オブ
ジェクトであり、継承の実装に使用される。 [[Prototype]]
オブジェクトのプロパティは、子オブジェクトのプロパティの
取得には露出するが、設定には露出しない。
621じゃないけど、そうじゃなくて
[[Prototype]]を実装しなければならない
ってことが書いてないってことだよ
簡単でいいから英語嫁、しっかり書いてある
そこは明らかに和訳のミスだよ
誰か伝えてあげれば?
ああ、訳の時抜けたんだね。で、誰か伝えてあげれば? (w
明日伝えるよ・・・
A、B、C、Dというスイッチを作ってonclickで特定の領域に表示させる画像を切り替えたいです。
この際、どの画像を表示するかだけでなく順序も制御したいのですがどうすれば良いでしょうか?
例
A→B→C→Dの順でクリックし画像を表示させた状態で
1:DをオフにするとCが表示され、そこからBをオフにしてもCが表示されたままであり、さらにCをオフにするとAが表示される。
2:CをオフにしてもDが表示されたままで、そこからDをオフにするとBが表示される。
で、現在思いついているのが変数xで制御する方法です。
xの中には文字A,B,C,Dがクリックした順番に代入されたり引かれたりします。
x=A Aを表示
x=AB Aを表示
x=ABCD Aを表示
x=ACBD Aを表示
x=ADCB Aを(ry
x=B Bを表示
x=BACD Bを(ry
というように全パターンを予め定義しておく方法です。
ですが、これだとアナログすぎて変だと思い、何か他に方法があるような気がしてます。
なにか良い方法があったら教えて下さい。
先頭の1文字で判断できるんじゃねえの?
Operaでセレクトボックスの選択肢を
selectObject.selectedIndex = i や
selectObject.options[i].selected
で変更すると、セレクトボックス内に無駄な空欄ができてしまうのですが
空欄を発生させずに選択肢を変更する方法はありませんか?
innerHTMLでoptionを再出力
JavaScriptで擬似Captcha認証できるもの作ったんだけど需要無いよね。。
入力した文字のMD5ハッシュを求めて〜 の間違いね。
>>633 画像が固定だったら意味ないのでは?
それに画像のファイル名とパスワードが一対一対応だから
ファイル名調べればパスワードわかっちゃわない?
>>633 >>635 の言う通りで、あらかじめファイル名の入った配列を
なめて下調べしておき、乱数で出た現在の名前と比べる
という手法で機械的に楽に通過されて、効果が薄い。
根本的に「JS/Flashが無効だと…」みたいな問題もあるけど、
画像(入力させる内容)と1対1でFlashを用意するのではなく
単体のFlashに引数として渡してそっち側で処理させれば、
実用性は高まりそう。
どうでもいいけど、権利表記消すならリンクくらいつけて
おかないと印象悪くね?
>>630 できました!ありがとうございます。
innerHTMLでの再出力は盲点でした。
>>636 そうすね。表記つけるべきでしたね。
フラッシュのプログラムはまだやったことが無いのですが出来たらもっとよくなりそうですね
表記入れました。あとはFlashの勉強っと
640 :
452:2007/04/16(月) 03:20:51 ID:???
確立されているなら仕方ないな
642 :
452:2007/04/16(月) 08:08:49 ID:???
はいはい確率の間違いでした
× はいはい確率の間違いでした
○ サーセン 確率ッス
FireFoxで以下のコードでカーソルの位置が取れないのですが
どこを直したらいいでしょうか?
function getTextPoint(txtCtrl)
{
var rng = document.selection.createRange();
rng.moveEnd("textedit");
return txtCtrl.value.length - rng.text.length;
}
この質問は毎スレのように出てくるね。
IEってtest()ないんだね。どうしてんの、みんな?
indexじゃなくてマッチ文字列返してほしいんだけど。
教えてください。
JScriptにRegExp#test()はあるし、そもそも、RegExp#test()は真偽値を返すだけでマッチした文字列を保持したりしない。
>>647 Regexp#exec()でもString#match()でもできるぞ。
ドキュメンを読め。
650 :
647:2007/04/16(月) 14:21:14 ID:???
質問です。
function F(){ } と function F(){ ; } とではどうちがうんですか?
なぜ、後者は「;」をつけているのですか?
お答えよろしくお願いします。
……。
>>651 言語仕様上、関数定義は
function 名前 ( パラメタリスト ) { 関数本体 }
関数本体はSourceElements
SourceElementsは関数定義または文の並び
文は色々あるけど何もしない文は空文「;」
以上をあてはめると
function F() { ; }
ただしJavaScriptでは「;」は省略可能なので省略すると
funciton F() { }
どっちかは好みだと思う(洩れは「;」を書かない方)
654 :
651:2007/04/16(月) 15:10:38 ID:???
>>653さん
なるほど納得です。お答えありがとうございました。
すいません、ちょっと教えてください。
createElementメソッドをappendChildするときに、
document.bodyにappendChildするスクリプトをよく見るんですが、
自分でやると一度も再現したことないんです。仕方なく、オブジェクト
にIDつけてそこにappendするんですが、document.bodyにappendChildする
というのは、できるのでしょうか。ページのどこら辺にobjectが表示
されるのですか。くだらない質問ですいません。
> ページのどこら辺
bodyの最後
CreateTextFileでパスが見つかりませんとなるのは何故?
ファイルが無いから作ろうとしているのに、パスが見つからないってなんだよ
>>653 ECMAScriptでもJavaScriptでも空文の「;」は省略できない。
関数本体が空でいいのはJavaScript/JScriptのECMAScriptに対する拡張機能。
セミコロンは省略できないが、右中括弧前の自動セミコロン補完により
function() {}
は仕様に適っているぞ。仕様書p22、7.9.1読んでみて
>>661 ちゃんと7.9.1全部読めよ。
追加条件として、挿入したセミコロンが空文として
解釈されるような挿入は行われないって書いてあるだろ。
後付けの仕様書って大変だなwww
質問です。
コンストラクタの値をセットするとき、よく
Con.getName=function(){.....}
Con.setName=function(){.....}
という書き方がありますが、いつも思うのは、なぜgetが先に
来ているのだろうと。set,getの方が理にかなっていませんか?
それとも、何かこの並びには理由があるんでしょうか。
ご教示ください。
>>664 そのsetが先というセンスはついて行けない感じ。
(1) abc順
(2) getだけでsetがないものは普通にあるので
(3) setの方が呼ぶ回数が少ないのが普通
ajaxで外部HTMLを呼び出すと日本語が文字化けしてしまうのですが仕様ですか?
また文字化けを解消する方法はないでしょうか?
UTF-8じゃないからじゃないか
>>662 確かに。これはもはや仕様書のミスだな。
質問なのです。
今DOMをいじっていて発見したのですが、
IEとFirefoxに差異が生じました。
<div id="hoge">
<p>あいうえお</p>
</div>
alert(document.getElementById('hoge').lastChild.nodeName);
上記を実行した場合、IEではアラートで「P」と出ますが、
Firefoxではアラートで「#text」と出ます。
これは仕様でしょうか?
IEとFirefoxで同じように最後の要素が「P」であることを調べるにはどうすればいいでしょうか?
よろしくお願いします。
改行しなければいいんじゃない
>>670 あ、そういうことでしたか。
ありがとうございます。
会社の同僚がnullのことをナルだっていうんです。
ずっとぼくはヌルって言ってたんですが。同僚が正しいですか?
なるぽ
675 :
672:2007/04/17(火) 19:21:26 ID:???
>>673さん ありがとうございます!
そうなんだぁ。同僚とはソフトランディングできそうです。多謝。
つーかそんな程度でギクシャクする関係かよ。
sage
age
679 :
Name_Not_Found:2007/04/18(水) 17:43:35 ID:9i+codGK
今どこが.focus() 状態(<input>などが)にあるかを JavaScript で知りたいのですがどのように行えばいいのでしょうか?
>>680 全てのinputのonfocusハンドラに何か埋めこんでおけば?
>>680 今はそんなことするの?
アクティブエレメント見れば一発だと思ってた。
>>681 それIE専だよね。質問者がIE専でよければということで。
>>682 ネットスケープにもあったけど、ほかのには無いのか
IEがデファクトなんだからあわせとけよなぁ
684 :
679:2007/04/18(水) 22:11:55 ID:9i+codGK
IE6,7、Opera9、Firefox2で動く方法を探しています。
IE以外はonfocusでやるって方法がベストな感じですね。
documentにfocusハンドラを使うとかね
>>685 いや、それには穴がある。
なんの落とし穴か思いつかないけど、多分失敗する。
直感だけど
>>686 落とし穴があるのはお前の直観じゃねーかよw
windowやらdocumentやらにイベントを指定したら、
イベントが大量に飛んできてビビったような。
すいません。matchって、matchしないときは何が返るんですか?
matchの結果(p)のp.lengthが、nullまたはobjectじゃない、って怒ら
れるんですけど、p>0で分けても怒られっぱなしです。教えてください。
>>689 もちろんmatchしないときはnullが返るとも。
var result = str.match(/.../);
if(result) { マッチした時の処理; }
とかしないとね。
691 :
689:2007/04/19(木) 09:43:21 ID:???
>>690さん
ありがとうございます。できました!単純にうれしいです (^^;
692 :
Name_Not_Found:2007/04/19(木) 15:29:15 ID:xd9ij4b9
<input type="text">内で何がどう選択状態にあるかを知るにはどのようにするのでしょうか?
画面上にテンキーを表示してそれをクリックすると<input>に数字を入れるというのを作っているのですが、
<input>に「1234」と入っていて、12 をマウスで選択して画面上のテンキーの9を押下すると 934 としたいのですが、<input>で何がどう選択になっているかを知る方法が分かりません。
(Firefox、IE)
宜しくお願いします。
693 :
Name_Not_Found:2007/04/19(木) 15:54:45 ID:Umie8bIv
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
スレ違いのコピペにレスして恐縮だけど、
たしかに「矛盾」はしてないけど、中国人なんて一言も書かれてないだけ。
沖縄を南極にし、そこに3000万匹のペンギンを入植させます。 と言っても「矛盾」はしてない。
>>692 selectionとかで検索すれば。過去スレ検索できたっけ。
flashスレから板違いで誘導されてきました。
hoge.html?12345 にアクセスしたときに ?12345 が location.search という場所に入るというのは分かったのですが
この値をhoge.swfに送る方法が分からず困っています。
FlashVarsを使えといわれましたがよくわかりません。
優しく回答お願いします。
flash板で聞くべき案件じゃね?
FlashVarsなんて聞いたことない。
>FlashVarsなんて聞いたことない
いくらなんでもそれは…
699 :
Name_Not_Found:2007/04/20(金) 15:45:12 ID:YjKgW1v0
すいません、上のリンク先英文ばかりでコードが書かれてないんですが
日本語の解説はないでしょうか・・・
>>700 ちょっとは自分で考える脳みそないのか?
702 :
700:2007/04/20(金) 16:42:05 ID:???
バカで悪かったですね。あなたのはマルコメでしょ。
今ので誰にも教えて貰えなくなったな
この流れちょっとワロタw
<script type="text/javascript">
<!--
document.write('<img src="./hoge/hoge.cgi?type=write&file=hoge&jsref=' + document.referrer + '&scw=' + screen.width + '&
sch=' + screen.height + '&scd=' + screen.colorDepth + '&cpu=' +navigator.cpuClass + '&cok=' +navigator.cookieEnabled+ '" />');
//-->
</script>
<noscript>
<p><img src="./hoge/hoge.cgi?type=write&file=hoge" alt="" /></p>
</noscript>
これを外部jsにしたいんですがどう書けばいいでしょうか?
よろしくお願いします
706 :
705:2007/04/21(土) 00:34:03 ID:???
document.write("<img src='./hoge/hoge.cgi?");
document.write("type=write","&file=hoge","&jsref=",document.referrer,
"&scw=",screen.width,"&sch=",screen.height,"&scd=",screen.colorDepth,
"&cpu=",navigator.cpuClass,"&cok=",navigator.cookieEnabled);
document.write("' width='1' height='1' alt='' />");
<script type="text/javascript" src="./hoge/hoge.js"></script>
調べながら書いてみました…
これで合ってますかねー?自信ないです
合ってますかねー、って人に訊くよりブラウザに訊け
ワロタ
本人にこのスレ見せられた俺は笑えない
このスレは、いい加減なものを貼って人にまちがい探しをさせるところで
はない。まず自分でやる。エラーが出たらそのエラーを書けば、親切に
教えてくれるかもしれない。
>>709 本人知ってるなら、駄レス書き込むよりアンタが教えてやんなよ。ヴォケ
質問なのですが、
textareaの中身を書いた後、それをcloneNode(true)すると、
IEではtextareaの中身までクローンが生成されますが、
Firefoxなどではtextareaの中身は空になります。
また、Netscape7.1ではinputのvalue値まで空になります。
これらはバグでしょうか?
何か良い代替案はありますでしょうか?
>>712 cloneしたときそれらの中身もコピーされるなんて仕様ではないと
思うが。まあ対策としてはcloneする前の奴の値を別途コピーする
んじゃないの?
ついでに質問なんだけど、<input type="text" value="xxx">が
あったとして、そのxxxをyyyに手で書き換えてからコピーした
とき、コピーしてできた入力欄の中身はxxxであるのが正しいと
思っているのかyyyであるのが正しいと思っているのかどっち?
value属性も全部コピーされるんだからxxxが正しいような気が
するけど…
質問です。
MouseOverでポップアップメニューを表示させたとき、Safari(Mac)で横幅が指定した横幅になりません。
何か回避方法ありませんか?
ロールオーバーで縦にいくつか画像を表示させて、それぞれの画像にアンカー打つことは出来ませんよね?
717 :
714:2007/04/21(土) 21:35:40 ID:???
>>717 金取って仕事してるんなら自力でやれよ。
答えてやるとして、金払うんだろうな?
そのクラ探してチクってやるために、
とりあえず保存しといた。
釣られんのはえーなw
720 :
714:2007/04/21(土) 22:13:03 ID:???
>>718 自分でやりますよ?あるかないか聞いてるんです><
ちなみにボランティアです><
ママー!ここの人またケンカしてるよ。ボランティアです、だって。
まあ、ボランティアが無償であるっていう考えがまず間違ってるんだけどね・・・
i::::::::/'" ̄ ̄ヾi
|:::::::| ,,,,,_ ,,,,,,|
|r-==( 。);( 。)
( ヽ :::__)..:: }
,____/ヽ ー== ; ほほう 間違ってるの?
r'"ヽ t、 \___ !
/ 、、i ヽ__,,/
/ ヽノ j , j |ヽ
|⌒`'、__ / / /r |
{  ̄''ー-、,,_,ヘ^ |
ゝ-,,,_____)--、j
/ \__ /
| "'ー‐‐---''
人が億劫に思うことを進んでやる気持ちこそがボランティア
質問です。
配列要素をdelete演算子で削除してもindexは残ってしまうん
ですが、配列から完全に削除するにはどうすればいいですか。
>>727 そんなはずはない。ソースコード出してみな
729 :
727:2007/04/22(日) 10:40:24 ID:???
>>728さん
ありがとうございます。すいません。勘違いでした。forgetしてください。
form内でtabキー移動する際のfocusについて質問です。
textareaなどが複数ある画面で楽に入力できるよう、
tab移動した際に「リンクが貼ってある画像を飛ばして」
formのelementだけfocusさせるには
どうしたらいいでしょうか?
「該当画像にfocusが来たら次のelementに飛ばす」と考えたのですが
画像とelementはまとめて数えられませんよね?
ヒントをいただけると幸いです。
731 :
730:2007/04/22(日) 11:26:09 ID:???
730です
>tab移動した際に「リンクが貼ってある画像を飛ばして」
ちなみに画像も複数ある画面です。
「○番目がfocusされたら×番目に飛ばす」とは指定できず、
条件としては「画像の次のelementに飛ばす」となります。
>>730-731 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(elt) {
while(elt.nextSibling) {
elt = elt.nextSibling;
if(elt.nodeName == 'INPUT') { elt.focus(); return; }
}
}
</script>
<form action="#"><div>
<input name="t0">
<a href="#" onfocus="test(this)"><img src="t0.png" alt=""></a><br>
<input name="t1">
<a href="#" onfocus="test(this)"><img src="t0.png" alt=""></a><br>
<input name="t2">
<a href="#" onfocus="test(this)"><img src="t0.png" alt=""></a><br>
<input name="t3">
<a href="#" onfocus="test(this)"><img src="t0.png" alt=""></a><br>
</div></form></body></html>
>>732 ありがとうございます。
でも僕の欲しいscriptではありません。
逝ってよし。
それをもとに好きなように直すのがいいんでないの。
まったくアンタの注文通りに書く奴なんていないと思うよ。
(そもそもアンタの不自由な日本語通りに作ったつもりだけどね)
>>734 いらねーもんはいらないんだよ
無駄な作業乙wwww
いや、自分で面白そうだと思って作るだけだからご心配なく。
負け惜しみキタコレ
過去スレ読めばどうだか分かるでしょ。
739 :
730:2007/04/22(日) 12:54:44 ID:???
偽者がいるようで・・・
>>732 nextSiblingって初めて知りました。
ちょっと試してみますね。
ありがとうございました!
740 :
Name_Not_Found:2007/04/22(日) 12:55:40 ID:yuD9uW6t
iframe内のURLの変更方法を教えてください。
過去スレよんだらメモリリークで叩かれまくってますねw
もちろんこのスレでは勉強させてもらっているよ。
で、自分で面白いと思えることは回答すると。それだけ。
>>740 iframeでname指定するでしょ。
window.frames.指定した名前.location.href = '行き先URI';
>>742 スレ違いのレスばっかすんなよ低脳
荒らし体制ないなら半年ROMってろ
ママー!またケンカやってるよ。半年ROMってろだって・・・
>>744 しか言い返すネタが無くなった家具師、乙。
JSが流行った(流行っている)のは、メモリーリークに気付かされるような使用を堂々とされ始めたからだが、結果的に禁じ手が増えてしまって、面白みが失せたな。
あっという間にブラウザ死ぬんじゃ困るけどふつーに使って
差し支えない程度ならリークさせたっていいと思うけどね。
ま、それぞれの作者が決めることでいいんでないの。
>>748 というか、プログラムの活動寿命が短いから
どういうふうに書いても許されるんだよな。
これが3日間ブラウザ開きっぱなしとかされると
死んだりしてしまう原因なんだが
リフレッシュを仕込んでおくことで回避した。
>>749 リフレッシュで回避されるなら、ほっといてもGCされるから。そうじゃないから問題になったんだろアホ。
>>750 ま、こいつ
>>749もそこらぢゅうにいる教えたがりのボケさらし。
氏かとにかぎる。だが、マにうけるにんげんがいるから迷惑なんだな。
754 :
Name_Not_Found:2007/04/22(日) 23:24:18 ID:W935ON1F
コンボボックスの初期選択値を指定するにはどうすればいいのでしょうか?
例えばコンボボックス内に
りんご
みかん
ぶどう
と入っていた場合、HTMLを表示した際、最初にコンボボックスで選択されてるのが「みかん」になってると
いう風にしたいのですが…。
ちなみにコンボボックスの中身の順番は変えないことと
データベースから内容を拾ってコンボボックスの項目にしているため、
データベースの内容が変わってもHTML側のソースを変更しないようなものを作りたいのですが
>>754 データベースから拾っているのなら初期選択値に
<option ... checked>...</option>
とcheckedをつけるのがまっとうな方法だと思うけど。
それがどうしてもできないのなら、selectにID振って
<body onload="document.getElementById('ID名').selectedIndex = 番号">
>>755 すまん、<option ... selected>...</option>だった。
757 :
Name_Not_Found:2007/04/23(月) 00:07:41 ID:14+3y0aJ
処理を一定時間とめる方法はありますか?
>>757 ありません。とめた後やりたい処理を関数の形にまとめて
setTimeout(関数名, 1000);
などのようにして一定時間後に実行させることならできます。
document.write("ちょっとまってね(はーと)");
もしかしたら「alert('メッセージ')」でOKボタンを押すまで
全部止まるとかそういうことを求めていたりして?
こういうやり方はしてはいけない。
var interval_sec = 3;
var t = new Date().getTime() + interval_sec * 1000;
while((new Date().getTime()) < t){};
場合によっちゃブラウザ固まって、やむをえず強制終了することになるからよい子は真似しないように!
>>758がベター
>>757の質問は古典的なFAQだが、結論は出ている。
JavaScriptでは不可。無理すれば想定内のトラブルを招く。
想定内
ああ。ついさっき天才が現れたからな
>>767の「今は」ってのは、2007/04/23(月) 14:07:27 のことだな。
俺が処理を止めた
2007/04/23(月) 14:07:27の時点でな
ヤツはもうどこへも向かうことはない
,. ''''''''''' ‐-,.,,._ ,....;.;.'
,-." .::::::::::::::::::::::::::::`::::::::::::.::;;:,:'
,':::::: .:::::::::::::::::::::::::::::::::::::::::::::,;"ヽ..,
i::::: .::::::::::::::::::::::::::::::::::::::::::::::::,.;;:'' ヽ、 もうだめぽ
i::: .:::::::::::::::::::::::::::::::::::::::ヽ::、 . ,;>,
i .:::::::::::::::::::::::::::::::::::`:`:、`` ,,/ `:、
ヽ;`、`:、''T~` ``iヽ:ヾ、::::、 ,/ `:、
``:、` `.!::: l、 `:、;`:、;/ ヽ、
i:: .!_ ヽ、`、::` :.. `,>
│ :l `` ヽ`、::::::::: :::.../》、
│ .:l ,,.,.-‐rヽヽ:::::: ;//ヽ`ヽ,
│ ::::l''´ i´ リ ヽ、::: /....ヘ i i i ‐,r‐r-r‐、
│ ::::l-‐‐- 、ゝ ノ / /`''''''´';'~ i i i j(,_l_l,l,l,l,l,ノ
│::::::l レ ノ ノ ハ \ i i `v'
,_E=ョ ‐-,-`;., ノ ノ i l i i/
i 三__y`:'、,;" `゙`'''''‐,-r¬、__!,.,,..''''
`‐-- ..,、,,,,,,,, i,,キニニ`:、
`ヽニニ.ノ
すいません。exec()はIEでバグがあるということですが、いまの
versionでは大丈夫でしょうか(IE6)。ご教示お願いします。
775 :
773:2007/04/24(火) 16:17:11 ID:???
>>774 すいません。言葉足らずでした。えっと、いろいろあるらしいです。
gするとマッチがおかしくなるとか、inputが使えないとか。オブジェ
クトを関数渡しもできないとかも聞きました。IEどうしようもないで
す、これじゃ。
>>775 具体的にアンタがやりたいことは何なのさ。このスレでIEの
Regexp#exec()がおかしいからやりたいことができないという
結論になったことは未だかってないんでね。まあ勝手にIE駄目
という結論にして何もしたくないのならご自由にだけど。
まぁ、いまのversionがIE6だしな。しょうがないよ。
778 :
773:2007/04/24(火) 17:38:01 ID:???
>>775 おまえ、ばかだろ。日本語読めんのか、ヴォケ。ちゃんとやりたいこ
と書いてあるだろ。gしたり、inputが使えないんだよ。そんな読解
力でよく生きてるな。
なんで Regexp.input が使いたいのか分からないなあ。
普通に引数で渡せばいいじゃんと思うが。アホな私に
分かるように説明してくれないかな。
>>775 「未だかってないんでね」<----こういう言い方のは関西に多いそうだ
782 :
Name_Not_Found:2007/04/25(水) 14:56:23 ID:sg40PKl2
引き継いだJSファイルが一行で書いてあったんだが。。。
お前らってこんな書き方してんの?w
読みにくくてしょーがねー
意味不明。
>>782 はい。ふつーに、document.write('voke');と書きますが、なにか?
>>782 改行が読めなかったとか
あるいは、ファイルサイズを減らすために改行を消したとか
被害妄想狂のなせる枝だな。たいしたことないモノに限ってよくある。
>>782 ボタン一つで直せることをいちいち報告しなくていい
質問です。
str='abcdefghijklmnop';という文字列があって、この文字列はlengthは
同じですが、文字は変化します。常に「hijk」の部分に来る4文字を抜き
出すにはどう書けばいいですか。正規表現でやりたいんですが、みなさん
に評判のよくない「とほほ」を見たら、\2で(...)の2番目を取得できると
書いてあるんですが、例がありません。ご教示ください。お願いします。
>>788 str.substr(7,4);
文字列処理に何でも正規表現を使おうとするのはPerl厨の悪い癖
substrはECMAで廃止。ファイルは将来のゴミ決定。
792 :
Name_Not_Found:2007/04/25(水) 22:29:46 ID:IT97SZSN
ページ上のGUIで文字サイズを変えさせようとするのは無意味
>>792 ふつうにできるだろ。
しかしそもそも文字の大きさを切り替えるコントロールみたいなものがあっても邪魔なだけだろ。
795 :
Name_Not_Found:2007/04/25(水) 23:03:41 ID:IT97SZSN
たしかに 無意味で邪魔かもしれないですけど やってみたいんです。
ふつうにできるものなのでしょうか
検索しても 実例がないもので・・・
簡単に教えていただけると幸いです
798 :
Name_Not_Found:2007/04/25(水) 23:11:31 ID:IT97SZSN
全然でてこないです・・・
"文字サイズ" "変更" "インラインフレーム"
といった感じに検索してるんですが;
>>798 その組み合わせじゃ出ないでしょ。まず一般の文字サイズ変更を
学習して、次にインラインフレームのbodyを取り出す方法を学習
して、両方を組み合わせればできると思うよ。
800 :
Name_Not_Found:2007/04/25(水) 23:34:31 ID:IT97SZSN
そうですよね すいません
ちょっと 学習してみます
<script>
function changeFontSize(per) {
document.body.style.fontSize = per+"%";
var iframes = document.getElementsByTagName("IFRAME");
for (var i=0; i<iframes.length; i++) {
try{
window[iframes[i].name].document.body.style.fontSize = per+"%";
} catch (e) {
};
}
}
</script>
<input type="button" value="小" onclick="changeFontSize(80)">
<input type="button" value="中" onclick="changeFontSize(100)">
<input type="button" value="大" onclick="changeFontSize(120)">
<p>あああああああええええええええおおお</p>
<iframe src="どこか" name="askfjf">
<iframe src="どこか" name="rapeef">
<iframe src="どこでも" name="fwoiea">
802 :
Name_Not_Found:2007/04/25(水) 23:49:27 ID:IT97SZSN
>>801 すいません ありがとうございます!
試したら動作しました!
寝ます
もっはよう
質問です。
function C() { this.val = 0; this.f=F }
function F(){return this.val;}
というのがあって、Cのインスタンスpをとります。
ってp.f()からthis.valを取得しようとするとNaNになってし
まうのですが、どうしてででょうか?
JavaScriptにおけるthisとはいったいなんなのかべんきょしといで。
807 :
805:2007/04/26(木) 15:23:49 ID:???
>>806 理由を聞いてるんだよ。知らないなら黙ってろ、ヴォケ。
あー、sage質問に反応した俺が悪かった。
まずはID晒してでなおしてこいや
>>805
>>805 this.valがundefinedだから
810 :
Name_Not_Found:2007/04/26(木) 16:52:27 ID:3K9FOvdt
javascript:function C() { this.val = 0; this.f = F; } function F() { return this.val; }; p = new C(); alert(p.f())
IE,Firefox,Opera 全部 0
812 :
Name_Not_Found:2007/04/26(木) 16:59:26 ID:ySN709L5
質問です。
javaScriptのある配列に、別ファイルのcsvデータ(,区切りのやつ)を
一個一個配列に入れたいのですが
エイジャックス以外に、何か方法はありませんか?
813 :
805:2007/04/26(木) 17:14:15 ID:???
>>808 ID晒すと何かいいことがあるのか?やっぱアンタは大したことないわw
礼より煽る方が優先か
-
>>805,807,813 が同一人物である確証が取れない
- ID晒しておけばIDによりそれがとれる
- IDを晒さない「質問」は煽り目的の「釣り」であったり、
質問者以外が質問者のふりをして荒らすことがある。
よって本当に質問であるのならば、IDを晒しておくべきであり、
また、sage質問は釣りであると判断しスルーすべきである。
>>812 エイジャックス以外って事はJavaScript以外って事ですか?
805はなんとなくちゃんと答える気をなくした
812にこたえようと思ったがXMLHttpRequest使わないとなると
IFRAMEに読み込んでやるしかなくて、その場合ブラウザやサーバの設定で
どのようなテキストで返ってくるか予想しづらいから説明しづらい
>>816 OTで申し訳ないが、そんなことはないだろ。小学校のセンセイがよい子の生
徒相手じゃあるまいし。IDは変わるし故意に変えることはいくらでもできる。
ブログと2chで全然違う人いるじゃん、本人は気付かれてないと信じ込んでるみたいだけど。
あんな感じで、レス単位で豹変してもおかしくはないと思う。
>>819 「IDによって自分をラベリングしとかないと釣りとみなされたりなりすましされてもしょうがないよ」
っていうこと。故意に変える奴はどうせ雑音。
きみ子豹変す。
答える側からしたらどうでもいいんだけどな
1.んとこに
このスレに書き込むことが許されるものは以下のとおり
・質問者はageる。必ずIDを表示すること。
とでもいのいちばんで書いとけば、じゃ。
別に煽ろうが何しようが2ちゃんだしいいと思うけど。痛ければ
回答されないだけでしょ。ほっとこうよ。
828 :
Name_Not_Found:2007/04/26(木) 23:40:27 ID:rxTm9Q7O
ボタンをひとつにして
ON/OFFしたいんだけどどうすればいいですか?
function check_all() {
for (i = 0; i < document.f1.elements.length; i++) {
if (document.f1.elements[i].name == 'chk[]') {
document.f1.elements[i].checked = true; } }
}
function release_all() {
for (i = 0; i < document.f1.elements.length; i++) {
if (document.f1.elements[i].name == 'chk[]') {
document.f1.elements[i].checked = false; } }
}
//--></script>
<body>
<form name="f1">
<input type="checkbox" name="chk[]" value="TEST1">TEST1<br>
<input type="checkbox" name="chk[]" value="TEST2">TEST2<br>
<input type="checkbox" name="chk[]" value="TEST3">TEST3<br>
<input type="button" value="全てチェック" onClick="check_all();"><br>
<input type="button" value="全てはずす" onClick="release_all();">
</form>
<script>
var nextcheckflg = true;
function check_on_off(){
if(nextcheckflg){
//全てチェックする処理
nextcheckflg = false;
} else {
//全てチェックを外す処理
nextcheckflg = true;
}
}
</script>
〜
<input type="button" value="全てチェックor全て外す" onClick="check_on_off();">
例えばこんな感じでいかが?
830 :
Name_Not_Found:2007/04/27(金) 00:27:59 ID:WDzAsdqc
}が一個多かったw
あ、多くないのか。酔ってるからいかんな・・・。
832 :
Name_Not_Found:2007/04/27(金) 01:29:18 ID:jGz2pSA4
ありがとうございますー
無事できました!
833 :
Name_Not_Found:2007/04/27(金) 10:35:07 ID:423/0RGG
function myCheck(){
myCnt=0;
for (i=0; i<document.form.length-1; i++){
if (document.form.elements[i].checked == true){
myCnt++;
}
}
if (myCnt == 0) myURL = "tab1";
else if (myCnt == 1) myURL = "tab2";
else if (myCnt == 2) myURL = "tab3";
location.href = myURL;
}
上記の処理が終わったら html上に配置されている↓のいづれかをクリックさせる動作を行いたいのですがどうすればよろしいでしょうか?
<input type="button" onclick="tab1" name="tab1">
<input type="button" onclick="tab2" name="tab2">
<input type="button" onclick="tab3" name="tab3">
location.hrefをクリックさせる処理に書き直せばいいんだと思うのですが、そういった処理をさせれる関数がわからなく困ってます。
どなたか教えて頂ければ幸いです。
わからなくて困っています、なら調べるよろし
クリックとはユーザーが任意のタイミングで行う挙動である。
クリックとはスクリプトが企図されたタイミングで行う挙動でもある。
837 :
Name_Not_Found:2007/04/27(金) 11:05:32 ID:423/0RGG
<html>
<head>
<script type="text/javascript"><!--
function myCheck(){
myCnt=0;
for (i=0; i<document.form.length-1; i++){
if (document.form.elements[i].checked == true){
myCnt++;}
}
if (myCnt == 0) myURL = "tab1";
else if (myCnt == 1) myURL = "tab2";
else if (myCnt == 2) myURL = "tab3";
↓の部分で3つのボタンのいづれかをクリックさせる処理をしたい。↓
location.href = myURL;
}
// --></script>
</head>
<body>
<form name="form">
<input id="b1" type="checkbox"><input id="b2" type="checkbox"><input id="b3" type="checkbox">
<input type="button" onclick="myCheck()" value="実行">
</form>
<INPUT TYPE="button" value="青ボタン" name="tab1" onclick="document.bgColor='lightblue'">
<INPUT TYPE="button" value="赤ボタン" name="tab2" onclick="document.bgColor='#ff8080'">
<INPUT TYPE="button" value="黒ボタン" name="tab3" onclick="document.bgColor='#000000'">
</body>
</html>
もっと分かりやすく書いてみたのですけど、不可能なのでしょうか?
クリックとは我々の遺伝子に組みこまれたプログラムが企図したタイミングで行う挙動でもあったりなかったり。
何がやりたいのか良く分からん。
チェックボックスがチェックされてる数によって行き先を変えるのか?
840 :
Name_Not_Found:2007/04/27(金) 11:13:14 ID:423/0RGG
わかりずらくてすいません;;;
チェックボックスを何個 チェックされたかによって
その下の3つのボタン いづれかをクリックされる処理にしたいんです。
> クリックされる処理
「クリック可能なボタンにする」ってこと?
禅問答じみてきたぞ。
842 :
Name_Not_Found:2007/04/27(金) 11:24:48 ID:423/0RGG
チェックボックスを何個かチェックをいれて 実行を押すと
その下の3つのボタン "青" "赤" "黒" がクリックされる処理になって背景が変わるようにしたいんです。
何度もすいません;
あーわかった
document.getElementsByName("tab"+(myCnt+1))[0].onclick();
チェック3個入れたらエラー起こすから自分で何とかしなさい。
>>842 まず、HTMLから勉強汁。動作わかってないだろ?うざいからもうやめてくれ。
846 :
Name_Not_Found:2007/04/27(金) 12:51:35 ID:WXiSvKMz
847 :
Name_Not_Found:2007/04/27(金) 13:28:24 ID:423/0RGG
>>844 ありがとうございます 無事できました。
<html>
<head>
<script type="text/javascript"><!--
function myCheck(){
myCnt=0;
for (i=0; i<document.form.length-1; i++){
if (document.form.elements[i].checked == true){
myCnt++;}
}
if (myCnt == 0) tab1 = "tab1";
else if (myCnt == 1) tab2 = "tab2";
else if (myCnt == 2) tab3 = "tab3";
document.getElementsByName("tab1")[tab1].onclick();
document.getElementsByName("tab2")[tab2].onclick();
document.getElementsByName("tab3")[tab3].onclick();
}
// --></script>
</head>
<body>
<form name="form">
<input id="b1" type="checkbox"><input id="b2" type="checkbox"><input id="b3" type="checkbox">
<input type="button" onclick="myCheck()" value="実行">
</form>
<INPUT TYPE="button" value="青ボタン" name="tab1" onclick="document.bgColor='lightblue'">
<INPUT TYPE="button" value="赤ボタン" name="tab2" onclick="document.bgColor='#ff8080'">
<INPUT TYPE="button" value="黒ボタン" name="tab3" onclick="document.bgColor='#000000'">
</body>
</html>
上の見て思った。ちょっと確認なんだけどさ、
// --></script>
これって、なんかヤバくない?
やばいねぇ
>>848 遠い昔はやばかったが、今時それでやばいブラウザなんて知らないな。知っていたら挙げてくれ。
まあ、ふつうは染み付いた癖で改行を入れるだろうけれど、どうでもいい。
むしろE4X以降はコメントアウトやCDATAセクションをそのままXMLとして解釈するから、その方がやばいかもな。
もうこれからは問答無用でsrcでFAだろうな。コメントアウトのために余計な神経を使うのは馬鹿らしい。
852 :
Name_Not_Found:2007/04/28(土) 11:27:48 ID:fDusG16N
ヘッダーに
<script langage="JavaScript" src="time.js"></script>
時計を表示したいところに
<script langage="JavaScript">tokei();</script>
JavaScript書くときもっと簡単になんないっすか?orz
time.jsでtokei()すれば表示したいところにscriptおくだけでいいじゃないか。
それが簡単なライブラリの使い方だと思うけど
どこらへんが複雑なのかと
856 :
Name_Not_Found:2007/04/28(土) 12:14:18 ID:k8zZNNTj
超初心者です、もしかしたら馬鹿らしい質問かもしれませんが、ご回答願います。
ブログのカスタマイズですがJavascriptについてなのでこちらで質問しました。
Google Analyticsを使用しているのですが、
Google Analyticsの使い方の説明に
「コード セグメントをコピーし、解析対象とする全ページの </body> タグの直前に貼り付けます。」
とあります。
なのでbodyの閉じタグの直前に貼り付けて使用しています。
今回、ブログメニューのツリー化を実行したく調べたところ下記の記事に行き着きました
http://shinobibloglab.blog.shinobi.jp/Entry/2/#comment すると「</body>のすぐ上に貼り付けてテンプレートを保存します。」
とあったのですが、どうすればいいですか?
両方を順番に貼る。だいたいは干渉しないからそれで動くのでは。
万一干渉する場合は順番を逆にしてみる。それでだめなら両方一緒
に使うのをあきらめる。
>>857 ありがとうございました。
チャレンジしてみます!
してから書け
>>859 なにをしていいかわからなかったのでしてからかけませんでした
申し訳ありません。
これでGW序の口かよ... コエーな。。。
せかせかするんなら来るなYO
荒れるんだYO
var PointX = obj.style.left + 2;
と計算したいのですが、
obj.style.leftが50pxのときに「50px2」と、文字列として合体してします。
数値として計算したいのですがどうすれば良いのでしょうか?
idじゃなくてnameにしてByNameで拾えばもしかしたら動くかもね
>>866 マジレスすると、
var PointX = 50 + 2;
styleはどういう形で設定されてるかなんてわからないから…
まぁきっとobj.offsetLeftとかを使えばいいんじゃねぇのってことなんだろうけど
>>866 マジレスすると、
var PointX = parseInt(obj.style.left) + 2;
まぁstyle属性がセットされてないとNaNを返したりするから注意
zIndex指定するのってこんなに重くなるのか!?
いや、このくらい軽いよ
>>869 足りない脳みそでもちょっとは使え
obj.style.left = "10em";
>>872 サーセン
>obj.style.left = "10em";
さすがにこれは思いつきませんでした
>>873 思いつかなくても、質問中に思いっきり書いてあるだろ。これで「さすがに」はない。
875 :
Name_Not_Found:2007/04/29(日) 16:31:58 ID:8eiOYACX
質問です!
LightboxやLITEBOX、Highslideのどれでもなく、Macのようなヒュット拡大され、
Highslideのように自由にマウスでドラッグできるサイトを見かけたと
言ってるんですが、具体的にそういうサイトをご存じないでしょうか?
もしくは、何かしらの情報をお持ちの方、良かったら教えてください。
>>866 まじめにやるなら、offsetLeft, getBoxObjectFor, getBoundingClientRectか
parseInt, currentStyle, getComputedStyle あたりも考慮に。
877 :
Name_Not_Found:2007/04/29(日) 20:09:32 ID:5n2KVq6K
<input type="checkbox" name="flag" value="1" onclick="test(this)">テスト
input が沢山ある時、onclickでthisを渡し、それのキー番号?を知る方法はありますでしょうか?
document.getElementsByTagName("input")[ input_num ] のinput_numをthisから得たいです。
御教示宜しくお願い致します。
>>874 >var PointX = obj.style.left + 2;
>と計算したいのですが、
>obj.style.leftが50pxのときに「50px2」と、文字列として合体してします。
>数値として計算したいのですがどうすれば良いのでしょうか?
さて、どこに書いてあるのだろうか……
エスパー様にはとても頭が上がりません
>>875 Googleが作ってた検索インターフェイスであったな。そういうの。
>>878 ワロスwww アタマワルスキ...
どう見ても相手は子供だろ。オトナ気ないツッコミはしてやんな。かわいそうだ。
882 :
255:2007/04/29(日) 22:23:38 ID:g6Hd/FgH
質問です
ある要素の子要素をドラッグすると要素が動くというものを作ってみたのですが、
( 普通のドラッグ処理です )
スクロールバー側にドラッグしていきブラウザの外にマウスを動かすと
要素の移動に応じて勝手にスクロールバーがスライドしてしまいます
どうしたらスライドしなくなるのか教えてください
よろしければ何故スライドしたのかも教えてください
補足が必要であれば言ってください
以下はコードです
//
data = { window : null, obj : null, move : false };
move = function( e ){ // document.onmousemove = move
if ( !data.obj || !data.move ) return;
e = e || window.event;
data.obj.x = ( e.pageX || e.x ) - data.obj.offsetX;
data.obj.y = ( e.pageY || e.y ) - data.obj.offsetY;
data.window.left = data.obj.x + 'px';
data.window.top = data.obj.y + 'px';
};
down = function( e ){ // obj.onmousedown = down
e = e || window.event;
var w = e.target || e.srcElement;
data.move = true;
data.obj = { offsetX : (( e.pageX || e.x ) - w.offsetX), offsetY : (( e.pageY || e.y ) - w.offsetY) };
data.window = w.parentNode.style;
};
up = function(){ data.move = false; }; // obj.onmouseup = up
883 :
882:2007/04/29(日) 22:26:50 ID:???
名前欄255はミスなので気にしないでください
>>882 ブラウザのスクロール機能がそう作られている(たとえば長い範囲を
ドラグで塗ることができるようにするため?)、という他ないのでは。
これを止めるにはスクロールバーを消すしかないような気がするが…
885 :
882:2007/04/30(月) 00:41:47 ID:???
そんなサイト参考にしてるからだろ
まあ、ドラッグという操作をあらためて見てみれば、むしろ面倒な操作だけどな。
目的地が一つなら、(ダブル)クリックで勝手に移動してくれた方が楽だし、
目的地が複数なら、クリックで選択して目的地の一つをクリックすればドピュっと移動してくれれば、その方が簡単だろう。
いずれの場合でも、必要と思うなら、移動の様子をアニメーションとして見せても構わない。
____
/ \ ∧__T _ ,,,r -r-T‐-、
/ \─ 。r *o:*::f:::r:::..l
__,-,,-、 ___'/ /\ /\\::::::::*o;;;ro ot_f_ヽ丿
__/| | l |ヾ-"~ | (_人) | -v--v-'''''''"V"~~┴
l⌒ 二 -l ..uUU""l-- \ /
└ l´ (,,,, ./., - イ /
.ト | { |,.ィ'''フ''''=、r'"~ i,, `ヽr''"`ヽ、 ヽ、
ヽ、i / .∠ / / .| ノ" )=、 ̄ ̄,,..ィ'"´i ヽ、
/ y'_/ / / / | ノ ´ ̄ `Y"´ i
.ゝ-+-::i⌒ヽ / '' ,.| .__,,.. レ _,,,,、 j、、
.__/::| | i
>>888 / r´ } ィ'''i" J ,,.ィ'"~ `'ヲ''ー-、ノ、 ヽ、
/ /:| | i ,,ノ / ,,l ,人 ,,l、 ノt ) `ヽヽ
i ::| | ) .| /, ,;' .人 /"``ゝ、 人 ,,イ jt、 ヽ i
/i ::し// |''´ 、 ` _ノ /、 `ー--;::-ニ"_,ゝ=---‐''" ,ノ ヽ、 ヽ t、
::| (( ヾ、ノ, .__ノ´ ヽ、 r 、 f" `i´ ̄` Y `ヽ / ゝ-,ヲ''' )
889 :
877:2007/04/30(月) 10:05:44 ID:zPYOOue3
890 :
Name_Not_Found:2007/04/30(月) 10:25:33 ID:4lpCFbIT
>>877 >input_numをthisから得たい
"input_num" の意味を考えてみましょう.
"n番 field" の意味しかありません.
this から "n番" を得て それから どうするのって話です.
891 :
Name_Not_Found:2007/04/30(月) 10:32:59 ID:4lpCFbIT
訂正:
"n番 field" -> "n番 input element"
>>877 キー番号って何よ。valueのことか? それともtrue/flase?
>>877 var myForm = document.getElementById("tekitou");
var flags = myForm.getElementsByTagName("input");
for(var i=0, l=flags.length; i<l; i++) {
if(flags[i].type == "checkbox") {
flags[i].onclick = function() {alert(this.value);}
}
}
とかじゃだめかな。本当はformのidで絞り込んだほうがいいけどまあ
クリックしたらthis.value(1とか2とか)が表示される。
このthis.valueをalertでなく別なfunctionに渡す
うお、半角スペースが消去されて見づらい……
>>893の補足。myFormはターゲットにしたいform要素のid取得ね
895 :
Name_Not_Found:2007/04/30(月) 11:15:48 ID:zPYOOue3
>>890 自分の要素num?が得れれば各フォーム毎にidつけないで操作したり便利かなと
nextSibling parentNode lastChild などで現在は対応してるけど、
あると楽になる場面あると思うんだけどなあ
896 :
Name_Not_Found:2007/04/30(月) 11:56:56 ID:4lpCFbIT
>>895 一々 HTML 中に id を振らなくても script から後付けできるし,
id 以外の attribute を付け加えても良い事を肝に銘じるべき.
form で重要なのは "name:value " と言った形のデータであって,
"input element の何番目" と言う情報は対象 element を間接的に指定する手段に過ぎない.
一方, この場合の "this" は element そのものを指しているので.
this.id, this.vale, ... とすることによって好きな物をとり出せる.
つまり, onload で あらかじめ加工しておけば
this.〜 とすることによって操作ができる.
問題解決のためには別の方向から攻める柔軟な頭が大切だ.
897 :
Name_Not_Found:2007/04/30(月) 13:09:25 ID:zPYOOue3
>>896 すんません、遅くなりましたがアドバイスありがとうございます。
this.id, this.vale 等は理解してます。
Ajax関連(主にscript.aculo.us)を利用した時、要素にid付加が面倒だったのがキッカケで、
ttp://jsgt.org/mt/01/ ←など参考にしながら色々とスクリプト編集しなおしてるのですが、
parentNode等だと直感的な操作ではなかったので(連続しまくると可読性が悪い)
"次の<TD>"、"次の<A>" って方法があればと思いました。 ありがd
まあid付加がデザイン依存しないしベスト なんですよね。
>>897 兄弟レベルにあるのなら次ので十分なんじゃないの?
var x = this.nextSibling;
while(x != null && x.nodeName != 'TD') x = x.nextSibling;
読みにくければこれを関数にして「nextName(this, 'TD')」
みたいに呼ぶとか。
899 :
Name_Not_Found:2007/04/30(月) 15:01:00 ID:zPYOOue3
>>898 汎用性とか色々考えての質問なんだが。
3つ下の<TR>とか、2つ前の<A>とかね
そんなすばらしいものはないからあきらめろ。
XPathだのTreeWalkerだの使えばすっきりいくかもしれんが。
>>899-900 洩れもそういう複雑なことを言うのなら自分で新たに発明
するよりもXPathとかだと思うけど。自分でHTMLを書くんだから
自分で制約を設けてコードも簡潔に済むようにするんでも、
任意の構造のHTMLを書いてコードも頑張るのでも、好きに
したらいいのでは。
>>896 > 一々 HTML 中に id を振らなくても script から後付けできるし,
> id 以外の attribute を付け加えても良い事を肝に銘じるべき.
それが出来るなら目印(idなど)は必要ないだろ。
>>899 要するに、MSXMLのnextNode()みたいなことをやりたいが、
IEでHTMLを扱う時にはそれらしい簡単な方法がないから困る、っつうことだな。
再帰とかDOM標準で遊んでもいいが、実用的に実行速度重視で書けば、次のようになる。
今つらつらと書き込んだだけでテストしてないので動くかどうか知らんがな。
/*@cc_on @if (1)
function nextTo (context, root, filter) {
var i;
var all_length;
var current;
var all = root.all;
i = context.sourceIndex - root.sourceIndex;
all_length = all.length;
while (i < all_length)
if (filter(current = all.item(i++)))
return current;
return null;
}
function isTD(n) {return /^TD$/i.test(n.nodeName);}
function nextTD(context, root) {return nextTo(context, root, isTD);}
@end@*/
>>899 あと、TRやTDのような、(?:inner|outer)HTMLの値が終了タグ省略の形で得られる物だから無理なんだが、
逆に、整形式が保証される場合には、XMLDocumentにloadXML()しちゃえば、nextNode()とか使い放題だ。
まあ、そういう神経を使うような分岐はやらない方が賢明だから、
>>903みたいな関数を作って対応するがな。
他のブラウザ(というかFx)の場合は、こういういわゆる二重マークアップを扱う時には、
レスで挙がっているように、TreeWalkerを上手に使えば総じて速い。
しかし、XPathの方が包括的だし、XPathの方が流行っていて情報も多いだろうから、XPathを使うに限るだろうな。
あと、TreeWalkerはフィルターアウトされたノードの扱いにおいて、仕様と実装が異なるから、敬遠した方が良かろう。
ついでに、NodeFilterとメソッドacceptNode()のthisの扱いも特殊なので、知らなければ悩むことになりかねない。
だから、XPath使え、になるだろう。今のサイ本からはTreeWalkerは消滅したしw
905 :
Name_Not_Found:2007/04/30(月) 20:39:34 ID:4lpCFbIT
>>902 >それが出来るなら目印(idなど)は必要ないだろ
どういう意味 ?
("それ" ができないと言いたいようにも読み取れるし,
"idなど は必要ない" との主張に重きがあるようにも読める)
仮に後半部だと仮定して答えると...
menu などのボタンを自動作成する script を書いたとする.
ボタンを押した時に呼び出す function に受け渡す parameter としては色々考えられる.
その中の候補として id が便利なことがある.
と, こんな所でどうかな ?
次スレのテンプレ論議とかあれば今どうぞ。
テンプレのネスケのリファレンスとガイドを格上げしよう(単独で
>>1に)。基本的な事は、これ読めば書いてある。
まず、これ読めって回答が結構多い。
909 :
Name_Not_Found:2007/05/01(火) 00:08:23 ID:cnrEVKci
変数のサイズって制限ありますか?
読み込んだテキストを配列にいれておいて、任意で表示するってありきたりな処理ですが、
トータル100kb、200kb入れても問題ないでしょうか?
>>909 数百kbなら何でもないでしょ。ふつーの画像1個のサイズと変わらんし。
forでベンチしようぜ?
913 :
Name_Not_Found:2007/05/01(火) 20:26:50 ID:QWGDxlnj
質問です
答えです
報告です
連絡です
ゴルァ そこのおまえら資源をムダにしてるんじゃねえ!
なんだコノヤロー!!
何がコラか!タココラ!
次の質問ドゾー。連休だからなあトホホ…
>>921 今は亡きネットスケープ社が開発したブラウザ上で動くスクリプト言語です。
オブジェクト指向のような言語体系と、当時サンが作ったJavaにそっくりな
名前が特徴です。
>>922 では、JavaScriptはサンのJavaと同じような言語だと考えてよいのですか?
お食事券と汚職事件みたいなもんか。
最近prototypeとかDojoとか
MochiKitとかjQueryとか流行ってますが
おすすめはどれですか?
適材適所ですが、Dojoがいいかな
「JavaScript ライブラリ 比較」でぐぐる。
929 :
Name_Not_Found:2007/05/02(水) 10:31:53 ID:qCpvRgaz
質問です。
JavaScriptではrubyのように、
['a','b','c'].each(function(i) {
F(i);
}
);
みたいに書くことはできますか?IEでできる方法ありましたら
ご教示お願いします。
>>929 Array.prototypeに自分で追加しちゃってもいいのなら
(状況によってはライブラリや既存コードとの干渉があり危険)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
Array.prototype.each = function(f) {
for(var i = 0; i < this.length; ++i) f(this[i]);
}
</script>
</head></body>
<p><script type="text/javascript">
['a','b','c'].each(function(i) { document.write(i + '<br>'); });
</script></p>
</body></html>
Arrayのprototype拡張するとかありえない
932 :
929:2007/05/02(水) 12:50:06 ID:gIB6sOw+
>>930さん ありがとうございました。
危険ですね。for-inが悪夢を呼びそうです。
>>931さん
ありえない、とは?
>>930さんのでもありえなくはない
と思うのですが。向学のためにお聞かせください。
for-in関連の事じゃね
Arrayだけは駄目だな。
他のはある程度許されると思うけど。
あ、ごめん、Objectは論外ねw
そういう言語なんだから自由に拡張すればいいだろ。
まあこのように、議論百出くらい危険というか(w
ところで私ことスレ立て人してるのですが、連休で明日から
6日まで出かける間に満杯になると思われるので、どなたか
適当に次スレ立ててくださいませ…
>>937 全然危険じゃないというか、危険を煽る必要が全くない。
仮にバグっても、初心者1週間でもない限り、誰でも一瞬で気付いて修正できる。
いやそういう意味じゃなく単に賛否両論あるねという意味
なんだがそう読めないかな。賛成派がいることは否定しないよ。
>>937 乙。一路平安!帰国の際はご一報を。マカデミアナッツageよろ。
常時粘着してないと毎度々々スレ立てなんてできないよな…
前スレであったけど、言語の基本的な性能を失わせるから駄目なんじゃなかったっけ。
危険を煽るとかそういうレベルではなく駄目だろ。
俺は組み込みオブジェクトも拡張できるのが
JavaScriptの基本的な性能のひとつだと思ってるがな。
ObjectはさすがにないがArrayならメリットのほうが大きいだろ。
大体配列をfor-in文で回したら列挙の順番が保証されないし、
疎な配列なんて普段使わんから配列に関するfor-in文の有効性を感じない。
まあこれは全部自作スクリプトで構成するのが前提なんで、
外部ライブラリとか使うならデメリットのほうが上回るかもしれんが。
>>929 自分で拡張するのも悪くないと思うが、prototype.js を使うのがデファクトスタンダードかと。
Rubyちっくなクロージャも簡単に使えるようになる。
疎な配列は、使うと便利だけどな。慣れてない人が多いだろうけど。
俺は組み込みオブジェクトのprototype拡張って、グローバル関数を作るのと同じくらい嫌だな。
適当なクラスを作るほうがいいなぁ。好みの問題だけどね。
>>946 > グローバル関数を作るのと同じくらい嫌だな。
グローバル関数を作るのがかなり嫌な感じに読み取れたんだけど、
グローバル関数ってそんなに作らない方が良いものなの?
適当に作る時はクラスとか用意せずグローバル関数で作っちゃうんだけど。
>>947 適当なときは何をやってもいいと思うけど、
納品するソースコードの構造にはかなり気を遣う気がする。
基本的にはグローバル変数は1個か2個で、
あとはスコープで必要ないところから見えないようにパッケージしてる。
>>945 >Rubyちっくなクロージャも簡単に使えるようになる。
現在はともかく、初期においてはどう見てもJS初心者だった作者が
勢いで好きなRuby風に書いたのだろうから、Rubyチックなのは当たり前だろう。
しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
そもそもRubyのクロージャは個性的だろ。少なくともJSのそれ(関数でクロージャ)とは違う。
まあ、メソッドの名前などが同じということと混同しているだけだろうが、少しでも正しい向きに認識した方がいい。
951 :
945:2007/05/03(木) 16:33:04 ID:???
そのとおり、Rubyちっくなのはクロージャを利用するEnumerableなメソッドな。
eachはもとより、detectとかfindall、そしてinjectとか。
JSのクロージャじゃなくて、Prototype.jsで実装しているクロージャのこと。
関数でクロージャというのは、Rubyでも基本的には同様だ。
>しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
というのはコードブロックのスコープのことでも指してるのか?
>関数でクロージャというのは、Rubyでも基本的には同様だ。
スレ違いなんだが、それどこの脳内Ruby?w
正確には関数じゃなくてメソッドな。Rubyなんだから
955 :
Name_Not_Found:2007/05/05(土) 00:31:18 ID:Etv08Alo
質問なんですが、jsファイルからjsファイルをインクルードすることは不可能なんでしょうか?
ねだるな、ググれ、さすれば与えられん
つJSONP
実際はJSONPを使わないけどな
さすったら赤くなってきたよ
function hoo(id_num) {
id_num.innerText = "Changed!";
}
これがうまいこと行かない。。
id_numが展開されてないみたいなんだけど、どうすればよろし?
>>960 どう上手くいかないかってエラーと、
hooの呼び出し方をどうしてるかを書いた方がよろし
962 :
960:2007/05/06(日) 01:00:30 ID:???
スマソ
function hoo(id_num) {
id_num.innerText = "Changed!";
}
呼び出し側
<input type="checkbox" name="1" value="chk" onClick="hoo(id_1);"<span id="id_1">データ取得する</span>
チェックボックスの横にある文字をチェックで動的に変更したいんだけど
hoo側のid_numが展開されずにid_1.innerTextとならない。
何かいい方法ない?
inputを閉じてないのは何故なんだぜ?
>>962 spanの前でinputを閉じてると仮定して、やりたいことはIEで上手く行ってる気がするけど?
Firefoxで駄目って言うならinnerTextをinnerHTMLに変えたらいいのかな
ただ、document.getElementById()使ってない時点で気持ち悪いから
FirefoxにFirebug入れてバグ取りした方がいいと思うよ
Firebugって作者の独りよがりなtoString()の結果を吐く使えない拡張のことだよね。
面白いけど、あんなもの使えませんよ。
喜んでるのはPrototype.jsで入門したような初心者ばっかりじゃん。
苦労人乙。
いまだにprototype.jsとか使ったことないんだけど、最近とても負け組な気がしてます。
>>965 >>962の状態から薦めるとしたらFirebugが一番いいかなと思ったのだけど。
あぁ。Firefoxは普通にjsコンソールでわかるのか。
Firebug入ってるのがデフォだから入れないと見れないかと勘違いした。
prototype.jsは要らん。中見ると分かるが、あのライブラリを作った人間は
JavaScriptを他言語の視点で見ている。すでにbuggieなところも指摘されて
いる。要するに自作関数ひとつロクに書けない奴がありがたがっているだ
けのもの。
それをここに書き込んでも、空ろに響くだけ。
971 :
Name_Not_Found:2007/05/06(日) 14:27:39 ID:aETLRuxv
質問です。
var a = 1;
f(a);
function f(b){ alert( b ); }
で、f(a)を実行する時点でどうしてオブジェクト未定義の
エラーにならないのでしょうか。そのときはまだ関数が読
み込まれていないのでエラーが出ると思うのですが。
関数は先に認識されてから実行される
973 :
971:2007/05/06(日) 16:08:50 ID:aETLRuxv
>>972さん
そういうことなんですね。ありがとうございます。
ところでjqueryってどこからダウンロードしたらいいんですか?
休みはもうすぐ終わりだな
月曜日だな
977 :
Name_Not_Found:2007/05/06(日) 21:48:41 ID:J0s6cMJQ
script.js
----
function hage(){
alert('go bold!');
}
----
index.html
----
<script src="script.js"></script>
<button onclick="hage();">hage</button>
----
上のソースで、script.jsの読み込みが完了していないときにボタンを押すとエラーになりますが、何かウマい解決方法はないでしょうか。
>>977 function f(){
alert();
}
var a=f;
a(); ←「 () 」
/*-------------*/
var a=function(){
alert();
}
a(); ←「 () 」
/*-------------*/
(function(){
alert();
})(); ←「 () 」
944です。
>>948 今回必要としている物とは違うようですが参考になりました。
機会があったら使用してみたいと思います。ありがとうございました。
質問した件はIE固有の話のため、少し強引ですがVBScriptとの連携で対応しようと考えています。
具体的にはVBScript側でProperty Let と Property Getを含めたClassの定義及び
インスタンス化までを行い、そのインスタンス変数をJavaScriptから使用します。
それでも生成済みオブジェクトに対して
動的にプロパティを追加することは出来ないですが、
例えば、Classの構造を記した文字列にプロパティ記述を追加し
execScriptすることで対応できないかと考えています。
スレ違いになりそうなのでこの辺で。
>>978 script.js内にダブらないグローバル変数を定義しておいて、変数が見つかるまでsetTimeoutで一定時間ごとにループしつつ判定し、見つかったらbuttonにonclickイベントを割り当ててからループをやめる
・・・のは無駄なのでscript.jsの最後にbuttonにonclickイベントを割り当てる処理を書く。
>>978 onclick="if (typeof hage == 'function') hage();"
しかしclickイベントタイプのようなbubblesプロパティがtrueであるイベントオブジェクトは
documentやwindowのように変更されない(変更されないと楽観視できる)オブジェクトを適切に選んでcurrentTargetにする。
ただしtargetを識別するための情報を事前に確保しておく。例えば<button id="HAGE">のように。
window.hage&&hage() しちゃうな。
>>982 と変わらんけど。
もしくは<head>内<script>でダミーのhoge()つくっといちゃう。
<script language="JavaScript">
<!--
function myFunc(){
myD = new Date();
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myMonth2 = (myMonth < 10) ? 0+""+myMonth : myMonth;
myDate = myD.getDate();
myDate2 = (myDate < 10) ? 0+""+myDate : myDate;
myMess = myYear4 + "" + myMonth2 + "" + myDate2;
document.write( myMess );
}
// -->
</script>
これでmyMessは20070507などとなってるわけですが、ここで
<a href=/contents/txt○○○○.html>今日のお話</a>
のようなリンクを作って、○○○○に今日の日付を入れたいのですが
どのようにすればいいのかわかりません
よろしくお願いします