08/06/06 12:16:07
bodyの末尾にalert('終わったよ')でいいんじゃない?
166:Name_Not_Found
08/06/06 12:44:34
>>164
右フレームの「HTMLが」読み終わったことを知る?それとも
中に含まれている「画像なども」全部読み終わったことを知る?
前者なら右フレームのbody末尾に
<script type="text/javascript">finished = true;</scirpt>
とか入れておいて左からは
if(parent.frames.右フレーム名.finished) ...
とかで判定すればいいんじゃないかなー。試してないけど。
167:Name_Not_Found
08/06/06 14:30:22 bbRuoLWJ
>>166
「右フレームの「HTMLが」読み終わったことを知る」の方になります。
166さんのコードで試してみたら判定できました。
違うフレームの変数へのアクセスの仕方を知らなかったのでとても参考になりました。
>>165
>>166
body末尾に判定用の何かを用意してあげなくちゃ実現できないのですね。
読み込み完了を知る術がjavascriptに用意されているわけじゃないのですね。
勉強になりました、ありがとうございます。
168:Name_Not_Found
08/06/06 15:38:47
テキストエリアのフォーカスについて
おうかがいしたいことがありやってまいりました。
よろしくお願いします。
1. ページ上部にフォーカスのあたったテキストエリアがあります(このページをAとします)。
2. このAページは縦に長いため、画面右にはスクロールバーが表示されています。
3. Aページ全体ではありますがページ下部の方にも、別ページへリンクしている部分いくつかあります。
4. その別ページへのリンクは同じウィンドウで行われ、新しいウィンドウで表示はさせません。
5. このAページの一番下にあるリンクから、別ページ(これをBとします)を開きます。
6. A・Bは同じウィンドウなので、
ブラウザの「戻る」または右クリック「前に戻る」でBからAに戻るとします。
7. 通常ならば、Aに戻ると一番下にあったリンクからBへ移動したので、
そのリンクのあったページ下部が画面に表示されると思いますが、
Aページ上部にあるテキストボックスにフォーカスをあてているため、
そのテキストボックスのあるページ上部が画面に表示されます。
私としては上の例BからAに戻ったときに、
移動する前のままページ下部が表示されてほしいのです。
そこでお聞きしたいのですが、
ページ上部のテキストボックスにフォーカスをあてたままで、
かつ、BからAに戻ったときに移動前のページ下部を表示させる、
ということは可能でしょうか。
もちろん、Aページ中央からCページに移った場合、
CからAに戻るとすると、移動前の中央ページのままであることはお分かりかと思います。
お知恵、ご意見お聞かせください。
169:Name_Not_Found
08/06/06 18:19:50
>>168
再現しないなあ。というか、下部のリンクをクリックしたときに
クリックしたことによってそのリンクにフォーカスが当たり
テキストエリアのフォーカスが外れるような気がするんだけど、
何か勘違いしている?
170:Name_Not_Found
08/06/06 18:25:19
>>167
IE以外の主要ブラウザには普通にある
URLリンク(d.hatena.ne.jp)
171:Name_Not_Found
08/06/06 18:26:14
>>167
IE以外の主要ブラウザには普通にある
URLリンク(d.hatena.ne.jp)
172:Name_Not_Found
08/06/06 18:26:34
ミスったすまん
173:Name_Not_Found
08/06/06 20:12:02
>>170-172
10年前からIEにあったreadyStateと、9年前からIEのHTCにあったondocumentreadyなどを参考に他のベンダが真似ただけ。
174:Name_Not_Found
08/06/07 12:36:42
IE6で、下記の設定すると、
別のウィンドウがアクティブ時に
スクリプトを記入したブラウザにマウスを乗せると、
ブラウザのタクスバーが点滅するんですが、
させないようにする何か良い方法ありませんか?
<body onMouseOver="window.focus();">
firefoxでは大丈夫みたいです。
175:Name_Not_Found
08/06/07 12:52:19
>>174
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout=0
176:174
08/06/07 23:04:50
>>175
すみませんありがとうございます。
確認してみます。助かりました。
177:Name_Not_Found
08/06/07 23:26:37
<script type="text/javascript">
var TEST = function(){
this.data = "asdf";
this.a = function(){
console.log(this.data)
}
}
var test = new TEST();
test.a();
setInterval(test.a,3000);
</script>
こういうコードを書いてFirefox2+firebugで実効してみたところ
asdf
undefined
undefined
undefined
以下,ずっとundefinedと出力されます.
setIntervalで呼び出す場合,this.dataでクラスのプロパティを参照出来ないみたいなんですが,
何か方法はないのでしょうか?よろしくお願いします.
178:Name_Not_Found
08/06/07 23:28:10
FAQ嫁としか言いようがない
179:Name_Not_Found
08/06/07 23:54:27
質問です。
生成した要素にそれぞれ
<div id="t1" onclick="test(1)">
<div id="t2" onclick="test(2)">
<div id="t3" onclick="test(3)">
...
とHTMLで書いた時と同じに動くように
繰り返し処理でイベントを追加していきたいのですが、
どうしてもうまくいきません。
obj.setAttribute('onclick', 'test(' + i + ');');
なら期待通りの動作が可能ですが、これではIEで動きませんし、
obj.addEventListener('click', function (event) {test(i);}, false);
などでは、それぞれのイベントの引数が同じになって?しまいます。
どうしたらいいのでしょうか・・・?
180:Name_Not_Found
08/06/08 00:12:07
>>178
ありがとうございます.解決しました.
181:Name_Not_Found
08/06/08 00:36:53
>>179
let
182:Name_Not_Found
08/06/08 00:44:57
>>179
バブルするイベントタイプには、アホ外人が俗に言うイベントデリゲーションを使え。なんべん言わせるんだ。
183:Name_Not_Found
08/06/08 00:47:31
>>179
いわゆるイベントハンドラーの引数は、イベントオブジェクト1つにするよう決めておけ。欲しい値はイベントオブジェクトに問え。なんべん言わせるんだ。
184:Name_Not_Found
08/06/08 01:26:01
>179です。
IE用とそれ以外用の処理を振り分ける形で解決しました。
- IE用 -
obj.setAttribute('onclick', new Function('test(' + i + ');'));
- その他用 -
obj.setAttribute('onclick', 'test(' + i + ');');
>>181
let・・ううむ。ブロックやらスコープやら意味の分からない言葉が。
プログラミング経験のない自分には理解が難しそうです。
>>182
イベントデリゲーション・・・親要素でイベントを監視する?
すみません、何度言われても基礎がないので理解できませんでした。
具体例を見比べて感覚的に理解するのがやっとのレベルです。
>>183
イベントオブジェクトから値を得る・・・。
そのイベントオブジェクトとやらが、なぜこちらの望む値を知っているのでしょうか・・・?
質問したものの、自分の知識不足で回答も理解できなくて申し訳ありません。
答えて下さった皆さんに感謝します。本当にありがとうございました。
185:Name_Not_Found
08/06/08 08:42:22
FAQ から setAttribute に関する Q&A が欠落してる ?
>>184
振り分けは美しくないと思う.
なぜって UA の判定によって無駄に長くなるし,
判定方法によっては誤動作発生の可能性が広がる.
ではどうするか ?
この場合は...
obj.onclick=function(){test(i);}
てな感じで解決する.
お試しあれ.
186:Name_Not_Found
08/06/08 10:05:44 nfOmMZGh
すみません誰か教えてください
フィールドに数値を入力すると
自動的にカンマ編集してくれるJavascriptをOnKetupに設定しました。
ですが、”カンマ編集なし”フィールドにフォーカスがある状態でSHIFT+TABキーを押したとき
”カンマ編集つき”のフィールドにフォーカスが移っているようなのですが
カーソルが表示されていません。
Onkeyupの処理の後にthis.focus();をいれても同様です。
フォーカス移動後、カーソルが正しく表示されるにはどうしたらいいのでしょうか。
============================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>634 - JavaScript - 数値のカンマ編集を行う</title>
<script language="Javascript">
<!--
function addComma(value){var i;value=value.split(",").join("");
for(i = 0; i < value.length/3; i++){ value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");}
return value;}
//-->
</script>
</head>
<body>
カンマ付き<input type="text" name="aaa" onkeyup="this.value=addComma(this.value)">
カンマなし<input type="text" name="bbb">
</body>
</html>
187:Name_Not_Found
08/06/08 11:10:04
ファイル選択の際に拡張子xxxのみを選択させるようなフィルタをかけたいのですが、どのように記述すると良いでしょうか?
現在は拡張子xxxファイル以外を選択し実行すると「xxxファイルを指定してください」というメッセージを出しているのですが
やはり選択時にxxxファイル以外を選択できないようにしたいです いい方法ありませんか?
-------------------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" language="JavaScript">
<!--
function subMit()
{
var name = document.xxxUploadForm.xxxFile.value;
var fileTypes = new Array();
fileTypes = name.split(".");
var fileType = fileTypes[fileTypes.length-1].toLowerCase();
if (fileType != "xxx") {
alert('xxxファイルを指定してくだい');
return false;
}
return true;
}
//-->
</script>
</head>
<body>
<form name="xxxUploadForm" method="post" action="upload.do" enctype="multipart/form-data">
<fieldset>
<legend>xxxファイルの転送</legend>
<input type="file" name="xxxFile"><br>
<input type="submit" value="アップロード" onClick="return subMit();">
</fieldset>
</form></body></html>
188:Name_Not_Found
08/06/08 11:25:06
ブラウザが対応しているかどうか知らんが
一応input要素にはaccept属性というものがある
189:Name_Not_Found
08/06/08 11:31:21
>>188 それは試しましたがIE、Firefoxでもダメでした
やはりしょうがないのですかね?
こういう比較的単純なものはすぐにできそうだと思ったのですが
190:Name_Not_Found
08/06/08 13:06:10
input type=fileはセキュリティ上の問題が起きやすいので
ガチガチに制約されていてどうにもならないことが多い。
191:Name_Not_Found
08/06/08 13:10:06
>>187
Flashを使うしかない
192:Name_Not_Found
08/06/08 13:16:32 fYNUydwk
function sendVideoLink(videoId){
var url = '/contact/sendlink?obj=v&id='+videoId;
checkLogin(MM_openBrWindow,url,'','scrollbars=yes,width=695,height=490,resizable=yes');
}
<a charset="400-002-2-4"
href="javascript:sendVideoLink('XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9');">??</a>
この場合sendVideoLinkには引数2つが送られるんですよね?
それともvdeoIdというのは配列変数としてみなされて2つともそこに入るんですか?
でも
var url = '/contact/sendlink?obj=v&id='+videoId;
この使い方だとどうもスカラ変数っぽいですし。
よろしくお願いします。
193:Name_Not_Found
08/06/08 13:21:15
HTMLとかHTTPとかURIの勉強をするのが先だろ。
194:192
08/06/08 19:47:11 fYNUydwk
どなたもいませんか?
195:Name_Not_Found
08/06/08 19:49:39
華麗にスルーされてると思わないとね。あまりに厨房だから
皆引いてるんでしょ。
196:192
08/06/08 20:21:54 fYNUydwk
>>195
具体的にどこが失礼な質問なのでしょうか?
197:Name_Not_Found
08/06/08 20:44:13
>>192
配列では無く、videoIdには一番目の引数(XMjc3MDQ1MzI=)だけが渡される。
>>196
このスレにはテンプレ脳な暇潰しのカスが常駐しているようなのでスルーでおk。
198:Name_Not_Found
08/06/08 21:27:52
>>192
JavaScriptに慣れるとわかるけど、関数の引数の数は呼び出す側の数と一致しなくても良くて、
関数の方が少ないなら呼び出した引数の先頭から順に入る。
なので、この場合は>>197が言ってる通り2番目の引数は無視される。
sendVideoLink(videoId1, videoId2){}
とかにして2つとも受け取るようにするか、
呼び出す側をsendVideoLink(['XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9'])
って配列にして、関数側でvideoId[0],videoId[1]で使い分けるか、
あとは関数側でargumentsって配列に引数が全て入ってるからそれを使うか。
ということで、テンプレ見て勉強するといいと思うよ
199:192
08/06/08 21:28:37 fYNUydwk
>>197
ありがとうございます!
やはり配列ってことにならないんですね。
sendVideoLink関数の方でargumentsを使えば一応は2個目の引数も受け取れるようですね。IE7動作。
でもどうもsendVideoLink関数でarguments関数を使ってないんですよね。
それだと何の為の2つの引数なのかまったくわかりません。
何かの裏技なのでしょうか。
もしくはsendVideoLink関数内で別関数を呼んで、
そっちの別関数からsendVideoLink.argumentsをいじることができるんでしょうか?
function gest(){ return(goueki.arguments[2]) }
function goukei(a) { return(gest()) }
document.write(goukei(1,2,3,4,5));
これIE7で試しても何も表示されないんです。なのでやはり別関数からいじる事はできないんですよね?
一体この作者はどういう意図で2つ渡してるのそれを使ってないのでしょうか?
いや、やはりどうにかして使ってると思うのですが・・・・
200:192
08/06/08 21:31:43 fYNUydwk
>>198
ありがとうございます!
すいません>>192はyoukuのソースなんです。
一体どうやってフラッシュを表示してるのかを調べてるんです。
URLひとつで実際には4つを順々に表示してるんです。
いや、4つではなくて、動画によって数は違うんですけどね。
で、youkuがわざわざ引数2つを渡してるのに2個目は実際には何にも使わないなんてことはないはずだけど、
使ってる形跡を見つけられないんですよ。
201:Name_Not_Found
08/06/08 21:44:55
ks
202:189
08/06/09 00:51:37
>>190
何か別の方法でファイルを選択できますか?
>>191
例えばどのようにFlashを使うのでしょう?
203:Name_Not_Found
08/06/09 01:57:44
>>190
type="file" の時はおまえみたいな非常に浅い理解で具体的に何が出来て何が出来ないかを示せない馬鹿が必ず出てきて鬱陶しいよね。
204:Name_Not_Found
08/06/09 02:06:41
>>199
>goueki
205:Name_Not_Found
08/06/09 02:46:22
正直203のが鬱陶しいけどな
206:Name_Not_Found
08/06/09 06:25:01 vGF9cdNm
複数のブログやサイトのRSSを用いて↓のサイトのように、
ブログタイトル、記事タイトル、更新日を表示させる方法をお願いします。
URLリンク(www.webmemo.jp)
207:Name_Not_Found
08/06/09 08:16:45
>>206
できない。JavaScriptは元鯖からのデータしか読めないから。
HTAとかならできるのかも知れないがスレ違い。
208:Name_Not_Found
08/06/09 08:56:37
>>206
つ「Google AJAX Feed API」
URLリンク(code.google.com)
日本語の解説・サンプルもいっぱい転がってるから、必要なら
「rss」あたりの単語と組み合わせてググってね。
>>207
↑はJavaScript以外で拾ってくるけど処理はJavaScript側だし、
スレ違いってわけでもないよな。
209:Name_Not_Found
08/06/09 11:11:53
なるほどー、ライブラリ/フレームワークをどうするんだという
話が前にあったけど、さまざまなAPIをどうするんだという話も
あるわけね。
210:Name_Not_Found
08/06/09 12:52:59
APIの使い方なんて簡単だろ。自分のコードを晒してする質問と何ら変わらん。
211:168
08/06/09 13:23:15
>>169
亀レスでもうしわけなし。私が勘違いしてるのか・・・。たとえば単純に書くと、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "URLリンク(www.w3.org)">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>たとえば</title>
</head>
<body onLoad="document.form.kensaku.focus()">
<form action="#" name="form">
<p>なんか入力:<input type="password" name="kensaku" size="18"></p>
</form>
<hr>
1: 【お知らせ】2ちゃんねるサーバ停止のお知らせ【台数半分にすっぞ】 (1) 2: 【倒産】VS(ベンチャーソリューション)を語る (49)
・・・・・(省略)・・・・・・・
99: アクセスしてきた奴の自鯖を晒すスレ (41) 100: 壁紙のダウンロード方法って・・・? (246)
<hr>
<a href="URLリンク(www.2ch.net)">2ちゃんねる</a>
</body>
</html>
↑一番上、入力欄下のデータ部に(省略)とありますが、スクロールバーが出るくらいデータが入っているとします。
ページ下部のリンクで別ページを開いたのち、「戻る」で、この「たとえば」ページに戻ると、
画面は、ページ上部フォーカスのあたっている入力欄のところが表示されている(はず)。
そうではなく、戻ったらページ下部のリンクがあった画面が表示されてほしい、のです。
入力欄のフォーカス指定をはずすと、そうはなるのですが、
フォーカスはあてたまま、戻るとリンクのあるページ下部が画面に表示される、
という状態にしたいのです。
これも説明になってないか・・・。もうしわけない。
212:Name_Not_Found
08/06/09 13:29:55
>>211
それが分からないんだけど、「ページ下部のリンクで別ページを開く」
ってそのリンクをクリックすることじゃないの?クリックしたらその
リンクにフォーカスが行って入力欄のフォーカスは外れそうに思える
(自分で簡単なサンプルを作ってやってみるとそうなる)んだけど、
何が違うのかな?
213:168, 211
08/06/09 13:53:03
>>212
>「ページ下部のリンクで別ページを開く」ってそのリンクをクリックすることじゃないの?
クリックします。
そのあとがいまいちよくわからないのですが・・・。
たとえば、「2ちゃんねる検索」も検索用テキストボックスにフォーカスがあたっていますよね。
で、javascriptをキーワードに検索します。
それで現時点で一番下にある「PHPとjavascriptの連携 (48) - WebProg板@2ch」を
「クリックして」「ページを開く」「PHPとjavascriptの連携」ページ確認、そして「戻る」をすると、
検索結果のページトップというか、カーソルが点滅している検索用テキストボックスのところがトップになっている画面が表示される。
そうではなくて、5秒前まで見てた「PHPとjavascriptの連携 (48) - WebProg板@2ch」があったページ下部が表示されてよ、
うまい指定の仕方で、常時、検索欄でカーソルはチカチカしてるけど、
「戻る」したらページ移動前に見ていた画面が表示される、
ということは可能か、というのが質問していることなんですが・・・。
>クリックしたらその
>リンクにフォーカスが行って入力欄のフォーカスは外れそうに思える
>(自分で簡単なサンプルを作ってやってみるとそうなる)んだけど
ここか。だれかここを理解できるよう橋渡ししてください・・・(涙)。
214:Name_Not_Found
08/06/09 14:01:24 a/ZdMAN2
下のように、マウス座標をページに表示しようとしているのですが
IE6でうまくいきません。Firefoxだと出来たのですが、原因は何なのでしょうか?
<script type="text/javascript" src="./prototype.js"></script>
<script type="text/javascript">
<!--
document.onmousemove = function(event) {
$("result").innerHTML = "(x, y) = (" + Event.pointerX(event) + ", " + Event.pointerY(event) + ")";
}
// -->
</script>
215:Name_Not_Found
08/06/09 15:11:42
>>214
FxとIEではイベントオブジェクトの渡され方が違う。とりあえず、
関数の入口(1行目と2行目の間)に
if(!event) event = window.event;
を入れてみたら動くかも知れない。prototype.js使ってないから
どうなるか分からないんだけどね。
216:Name_Not_Found
08/06/09 17:01:44
Prototype.js関係ないだろ。環境にある識別子と同じ名前を引数に付けて乗っ取るから悪い。
ところで、1999年後半以降からの結果論だが、=関数名 は、NN3、=関数式 は、IE4, NN4 らのために一時凌ぎで実装されたもの。
マイナーどころでは、Opera6またはそれ以前は、この書き方しか受け付けないが、まあ、これはどうでもいい。
つまり、これが本当に有効だったのは、1998年前後の1年間ほどの期間に過ぎない。
1999年秋にはattachEvent()を使えたし、同じ頃にモジラもaddEventListener()が使い物になっていた。
本来なら、過去5年で、イベント処理に限っては、 =関数式(or 関数名) は消えたはずだとおもうが、
非イベントオブジェクト(MS用語)であって、副作用を伴う他のプロパティと同列の、onreadystatechangeとの混同が起きたと考えられる。
この混同のせいで、=関数式(or 関数名) という暫定処置が、何と、2008年の今でもバリバリ現役のままである。
匿名関数または関数本体以外からは参照不可能な名前付き関数式を使えば、
attachEvent(), addEventListener()されたハンドラをdetachEvent(), removeEventListener() することは出来ない。
そして、ハンドラにはイベントオブジェクトが引数1つだけ渡される。
(MSにとってこれはドキュメント化されていない実装に過ぎないが、変更されることはありえないのが現実というものだ。)
HTMLのイベント属性として書けば、...innerHTML = ...innerHTML.replace(...) みたいな豪快な書き換えでも残る場合が多い。
そして、eventという共通の名前でイベントオブジェクトを参照できる。
ところが、=関数式(or 関数名) はあっさりと消え去る。
それが便利なのか不便なのかは条件次第だが、
意図せず消してしまうトラブルを防ぐために、もうこれはなるべく使わない方が賢明だろう。
何度も言うが、まとめるとこうだ。こうしておけば、eventという名前の引数にしておいてトラブルことは無い。
*バブルするイベントタイプは、アホ外人が俗に言うイベントデリゲーション。attachEvent(), addEventListener() で待ち構える。
*バブルしないイベントタイプは、HTMLのイベント属性値として書く。ブサイクでもそうする。
217:Name_Not_Found
08/06/09 18:14:06
user.js用にマウスストーカー作ってるんだが
アイコン程度じゃなくてリンク情報とかを表示するから結構サイズ大きめになり、サイズも毎回変わります
popup = document.createElement('div')
document.body.appendChild(popup);
てしてdocument.onmousemove時にwindow.event.clientYでマウスカーソルの位置を取得して動かしてるんですが
画面の端から飛び出してしまったり、Flashに重なって見えなくなってしまうことがあってなかなか見やすいマウスストーカーが出来ません
その辺ひとまとめにしたサンプル合ったら教えて下さい
218:Name_Not_Found
08/06/09 18:31:50 0upt6Yhx
パソコンをリカバリーした後、急にyoutubeやニコニコ動画(動画を見る時、画面だけ表示されない)が見れなくなってしまいました。
youtubeには『JavaScriptがオフになっているか、古いバージョンのAdobe Flash Player を使用しています。』
と表示されました。
『最新のFlash Playerを入手してください。』とあったんですが、たぶんこれは関係ないと思います。
JavaScriptをオンにする方法を教えて下さい。
回答宜しくお願いします。
219:Name_Not_Found
08/06/09 18:45:25
スレ (´∀`( ´∀`) チガイ
220:Name_Not_Found
08/06/09 19:38:21
変な user.js 入れてると見れなくなったりするけどな
221:Name_Not_Found
08/06/10 12:49:34 dW29imBv
イメージマップからform送信をしたいんですけど、
<form action="---" name="a">
<input name="b">
</form>
<img~
<area href="javascript:document.a.b.value='x';document.a.submit();"~>
とかで動きません。
どーすりゃいいっすか?
222:Name_Not_Found
08/06/10 14:03:32
>>221
アンタが勝手にOKと思って省略したとこに失敗があるんだろ。
サンプル作ってみたが動くよ。貼って試せる例を作って貼れボケ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
document.forms.f0.elements.t0.value = 'xx';
document.forms.f0.submit();
}
</script>
</head><body>
<h1>Test</h1>
<form name="f0" action="#"><div><input type="text" name="t0"></div></form>
<img src="t0.png" usemap="#m0"><map name="m0">
<area shape="rect" coords="10,10,40,40" href="javascript:test()">
</map></body></html>
223:Name_Not_Found
08/06/10 14:48:12 CRyogfYR
URLリンク(d.hatena.ne.jp)
マウス座標を取りたいのですが、
このスクリプトをjavascriptから実行するにはどうしたらよいでしょうか?
224:Name_Not_Found
08/06/10 14:56:24
初歩的な質問ですみません、、
onClick="myChgPic('画像データ')"でサムネイルをクリックすると
別の場所で画像が大きく表示されるのをを作ったのですが
ワタシのPCでは動作したのですが
クリックしても無反応なPCがいくつかあります。
考えられる原因とは何でしょか?
225:Name_Not_Found
08/06/10 14:59:38
>>224
考えられる原因は数限りなくあるから、とりあえずサンプルコードを貼るといいと思うよ
226:Name_Not_Found
08/06/10 15:06:35
>>225
レスありがとうございます。。
とりあえず要点だけまとめたサンプルコード張ります。
<SCRIPT language="JavaScript">
<!--
function myChgPic(myPicURL){
document.images["myBigImage"].src = myPicURL;
}
// -->
</SCRIPT>
<A href="javascript:void(0)" onClick="myChgPic('test.jpg')">test</A>
これぐらいで分かるものでしょうか・・?
227:Name_Not_Found
08/06/10 16:11:13
>>226
document.images["myBigImage"]が何意味してるのかわからないよ
と思ったら
URLリンク(www.red.oit-net.jp)
これ参考にしたのか。
この通りなら動くと思うけど、クリックしても無反応なPCってOSとブラウザ何?
とりあえず、myChgPicの中にalert(document.images["myBigImage"])とかを追加して
ちゃんと取れてるか確認してみたら?
あと、このサイトの書き方が古いからあんまり参考にしない方が良いと思う
228:Name_Not_Found
08/06/10 16:17:55
>>223
そのページに全部書いてあると思うが。何が分からないんだか
こっちに分からないんで説明のしようがないという感じ。
229:Name_Not_Found
08/06/10 16:43:15
>>227
一応["myBigImage"]は認識されているみたいです。
実は動作しないPCというのが手元にないもので
ちょっとOSやブラウザを確認してきます。
どうもありがとうござました!
230:223
08/06/10 17:29:12 CRyogfYR
そのページでは
<a href="javascript:void(0);" onclick="pos(event)">マウス座標を得る</a>
からpos(event)を呼んでますが、そうではなく、他のjs
たとえばfunction hoge(){.....} からpos(event);を呼びたい場合は
hogeのなかになんと書けばよいでしょうか? ということです。
231:Name_Not_Found
08/06/10 17:45:18
>>230
クリックも何もしない時はマウスの座標取れないから。
232:Name_Not_Found
08/06/10 18:53:03
ニコニコのwrapperをボタンで切り替えようとして、以下のようなnicocache_nl用のscriptを作ったのですが、
onのaddVariable("v",getQueryParamValue("v"))のところで、swfobject.jsに書いてあったように引数を指定したのに動きませんでした。
//offの様に、動画のid直打ちだと動きます。何が悪いんでしょうが?
var load_btn=document.createElement('input');
document.body.appendChild(load_btn);
load_btn.setAttribute('id','reload_btn');
load_btn.setAttribute('type','button');
load_btn.setAttribute('value','Wrapper on/off');
load_btn.addEventListener("click",flv_reload,false);
flvs="0";
function flv_reload(){
if(flvs=="0"){
//on
var so=new SWFObject("/swf/nicoplayer.swf?ts=1212800400","flvplayer","952","540","9","#FFFFFF");
so.addVariable("v",getQueryParamValue("v"));
so.write("flvplayer_container"); flvs="1";}
//off
else{
var so=new SWFObject("flvplayer_wrapper.swf?ts=1212800400","flvplayer","952","540","9","#FFFFFF");
so.addVariable("v", "sm1672731");
so.write("flvplayer_container"); flvs="0";}}
233:Name_Not_Found
08/06/10 21:11:25
>>230
マウス座標の取得ってのはイベントが起きたときのマウス座標だから
何らかのイベントから呼び出すんだよ
234:Name_Not_Found
08/06/10 21:15:27
>>232
getQueryParamValue("v")の結果をalert()で表示させてみれば。
235:Name_Not_Found
08/06/10 23:32:08
>>232
url=window.location.href;
url=url.replace(/.+\//,"");
so.addVariable("v",url);
こんな感じで解決しました。
236:Name_Not_Found
08/06/10 23:33:27
>>235
>>234です。
237:Name_Not_Found
08/06/11 19:55:42
前evalでの議論があったみたいだけど、
AjaxのJSON取得して、eval展開しまくってるのはダメなことなの?
238:Name_Not_Found
08/06/11 19:56:51
中身が保証されてればいいけど
239:Name_Not_Found
08/06/11 21:25:24
iframe で 呼び出したソース(子供)の中から、iframeを呼んているソース(大人)の
メソッドを呼びたいのですが、どのように記述すればよいのでしょうか?
240:Name_Not_Found
08/06/11 21:27:14
window.parent.piyo()
241:Name_Not_Found
08/06/11 21:58:12
>>238
そういう痛い自演似非脆弱性はアホ外人のネタ切れブログで勝手に騒がせとけ。
242:Name_Not_Found
08/06/11 22:18:09
>>240
ありがとうございます。
243:Name_Not_Found
08/06/11 22:41:46
煽りぽいのは頂けないね。両説それなりに論拠あるんだから
ちゃんと自分の主張を述べないと(それとも述べられないかね :-)
まあこんなとこでやるより「JSON eval セキュリティ」でぐぐれば十分か。
244:Name_Not_Found
08/06/11 23:39:05
無駄なレスがいちばんうざい
245:Name_Not_Found
08/06/12 00:46:38
bookmarkletでキーイベント発生させるのって無理なんでしょうか?
<body onkeydown="nullpo(event.keyCode);">なページに
>> document.onkeydown(0)
とかしてみたけど
TypeError: document.onkeydown is not a function
とか怒られてしまいます。
246:Name_Not_Found
08/06/12 03:27:32
そもそもbookmarklet実行時にdocumentスコープがあるとは思えないんだけど
247:Name_Not_Found
08/06/12 03:53:37
>>245
関数でまるごと取り出すのは無理
属性値の中に書かれているものだけならgetAttributeしてeval
ただしthisが違うオブジェクトを指すのに注意
だが広く公開するブックマークレットならevalはやめとけよ
248:Name_Not_Found
08/06/12 08:38:11
関数とオブジェクトについて質問
var b = {}
b.prop = 'property';
と言う感じにプロパティを付けるのは
b = { prop : 'property' }
と一緒だから、ハッシュということですんなり理解できるのですけど、
var a = function(){}
a.prop = 'property';
これってどうなってると考えれば良いですか?
a.prototype = {}
が指定できるからプロパティを付けることは問題ないのかなと思うのだけど、
この場合のaはfunctionだから違和感がある
for (var key in a) {
alert(key); // prop, prototype
}
ってやると確かにaはオブジェクトっぽいけど、理解ができない
249:Name_Not_Found
08/06/12 09:19:48
>>244
「JSON eval セキュリティ」でぐぐってみるというのは
質問者にとって重要な情報。無駄ではない。
アンタにとっては見たくなかった情報だからそりゃうざいだろうさ(w
250:Name_Not_Found
08/06/12 11:22:12
>>248
関数も関数オブジェクトというオブジェクトだから別にいいんでは。
251:Name_Not_Found
08/06/12 14:46:12 8qjKDFLu
3.0.1.2.3みたいな数値にドットが混ざってる文字列を、
3.0123のように最初のドットはつけたままで残りを取り払い、
float型に変えたいのですがどのように変えればいいですか?
ドットを取り除いてint型にすることはできるのですが、
最初のドットのみを残すといった器用なことができません。
どなたかお助け下さい。
252:Name_Not_Found
08/06/12 14:58:46
>>251
これでどうだ!
var str = '3.0.1.2.3'
parseFloat(str.replace(/([0-9]*)\.(.*)/,'$1_$2').replace(/\./g,'').replace('_','.')
誰かもっとうまいやり方を教えてください。
253:Name_Not_Found
08/06/12 15:07:39
>>252
なるほど!一度他の文字に置き換えて置くのですね。
とても参考になりました。どうもありがとうございます。
254:Name_Not_Found
08/06/12 15:13:39
ajax(jquery)とGoogleMapでの質問もこちらでよいでしょうか?
255:Name_Not_Found
08/06/12 15:28:15
>>252
置き換えはさすがにどうかと思うなあ。
うまいかどうか知らんが
alert( '3.0.1.2.3'.replace(/^(.*?\.)|\.(?=\d+)/g,"$1") );
256:Name_Not_Found
08/06/12 15:35:53
>>251
var c = 0;
var x = parseFloat(str.replace(/./g, function(){return (++c>1)?'':'.';}));
なんてどうかね。
257:251
08/06/12 15:41:09 8qjKDFLu
皆さん本当にどうもありがとうございます。
正規表現のレベルが高すぎて正直自分には理解できませんが、
>>255さんのがシンプルそうなのでそれを使わせていただきたいと思います。
258:Name_Not_Found
08/06/12 22:46:33
>>254
もう Google Maps は手軽に AS化できるだろ。これを機会にウェブでJSを使うのを止めてはいかがかな。終わってるから。残ったのはフラッシュだった。
259:Name_Not_Found
08/06/13 04:00:40
またフラッシュバカか。何で粘着してるんだか。未練たらたらなのか
260:Name_Not_Found
08/06/13 08:01:38
諸君、私は ECMAScript が好きだ
JavaScript が好きだ
ActionScript が好きだ
JScript が好きだ
ExtendScript が好きだ
QtScript が好きだ
Spidermonkey で
Tamarin で
Ajajaで
JavaScriptCore で
Rhino で
この地上に存在するありとあらゆる ECMAScript が大好きだ
綿密に繋ぎ合わされたプロトタイプチェーンが好きだ
プロトタイプが書き換えられ、オブジェクトが拡張される様など心がおどる
複雑に入り組んだ関数スコープが好きだ
関数が呼び出され、 Activation オブジェクトが鎖のように繋がり、樹木のように広がっていく様など胸がすくような気持ちだった
with ステートメントが好きだ
幾重にも繋がれたプロトタイプチェーンが、スコープチェーンに追加される様など感動すらおぼえる
with したオブジェクトのプロトタイプの関数が書き換えられた時などもうたまらない
スコープにプロパティを追加し、変数をすり替えるのは最高だ
複雑そうなオブジェクトを JSON で書き下した時など絶頂すら覚える
諸君 私は ECMAScript を 烈火の様な ECMAScript を望んでいる
諸君 私に付き従う ECMAScript 好きの諸君 君たちは一体何を望んでいる?
更なる ECMAScript を望むか
糞の様な ECMAScript を望むか?
プロトタイプの限りを尽くし クラス世界のプレーンを殺す 嵐のような ECMAScript を望むか?
ECMAScript !! ECMAScript !! ECMAScript !!
261:Name_Not_Found
08/06/13 08:40:31
>>247
なんかいろいろ厄介そうっすね。
実はコナミコマンドを打つbookmarkletが作れないかと思ったんだけど、やめときます。
もしできるなら誰かお任せ。
262:Name_Not_Found
08/06/13 09:25:09
>>261
それだけでいいなら
[1, 1, 3, 3, 0, 2, 0, 2, 29, 28].forEach(function(v){ nullpo(v + 37) })
263:Name_Not_Found
08/06/13 09:40:46
>>260
スレチですけどこちらも支援してくださいな。
サーバーサイドJavaScript総合
スレリンク(php板)
264:Name_Not_Found
08/06/13 14:58:46 CJ0ctsvH
質問です。
任意の個数の引数をとる関数に対して、
func(arg1, arg2, arg3);
と同様の結果を期待して
arg = [arg1, arg2, arg3];
func(arg);
としたらfunc側で引数1個と判断されて失敗しました。
argの要素数が可変として、配列argで
func(arg[0], arg[1], .. ,arg[arg.length-])
のようなことはできますか?
265:Name_Not_Found
08/06/13 15:11:07
URLリンク(d.hatena.ne.jp)
266:Name_Not_Found
08/06/13 15:11:51
>>264
callとかapplyとかについて勉強するといいよ。
267:264
08/06/13 15:53:34
>>266
func.apply(this, arg);
でできました。ありがとうございます。
268:Name_Not_Found
08/06/13 16:00:55
javaスクリプトでパケットをループさせて送信
って可能ですか?
269:Name_Not_Found
08/06/13 16:49:48
>>268
ブラウザ上のJavaScriptではできません。
270:Name_Not_Found
08/06/13 17:02:32
画像をクリックして違う画像を表示するというものなのですが、
<SCRIPT language="JavaScript">
<!--
imgnum=1;
function changeImage(){
if(imgnum==1){
document.myimg.src="gazo/kabe2.gif";
imgnum=2;
}else if(imgnum==2){
document.myimg.src="gazo/kabe3.gif";
imgnum=1;
}
}
// -->
</SCRIPT>
<CENTER>
<A href="javascript:changeImage()"><IMG src="gazo/kabe1.gif" name="myimg" border=0></A>
</CENTER>
某サイトにありまして、この通りにしたらうまく行ったのですが、これを同じページに
2つ以上いれると画像がクリックしても変わらなくなってしまします。
どこを変えればよいでしょうか?
271:Name_Not_Found
08/06/13 17:24:38
>>270
changeImage()という関数を2つ定義したら多重定義に
なるだろ。統一的に名前を変更するとかしたらどうかな。
まあがんばって。
272:Name_Not_Found
08/06/13 17:58:42
>>271
すばやい解説ありがとうございます。
changeImage()を別の名前にしたらいいんですね。早速取り掛かってみます。
273:Name_Not_Found
08/06/13 17:59:05
>>270
どのサイトを参考にしたのかわからないけど、情報古すぎるよ
少なくとも>>1ら辺にあるテンプレを探していけばサンプルはないにしても
もっと有力な情報得られるはず。
function changeImage(elem) {
// imgタグのsrcの数字部分を置換
elem.src = elem.src.replace(/([0-9])/, function(num){
// その数字部分に1足したものを3で割った余りを出す
return (parseInt(num) + 1) % 3; // 0 or 1 or 2
});
}
<img src="gazo/kabe0.gif" onclick="changeImage(this);">
こんな感じで変えれば無駄な変数とかもいらないかな。
aタグはなくして、画像をクリックしたらchangeImageに自分自身を渡す。
なので、他のimgタグがあっても平気。
画像の番号は便宜上0,1,2にした。
3で割った余りを画像の番号にしたため。
ということでがんばって。
274:Name_Not_Found
08/06/13 18:05:27
>>273
アドバイスありがとうございます。さきほど2個といいましたが、
実は50個くらいあるのですが、大丈夫でしょうか?
275:Name_Not_Found
08/06/13 18:16:54
>>273
ど素人なので、へんなこと言ってたらすみません。
それだと、3つの画像を繰り返すことになりますよね。2つの画像を繰り返したいの
ですが。
それと、クリックしたら替わる画像を50個くらい設置したいのですが、その
数字は大丈夫でしょうか?
276:Name_Not_Found
08/06/13 18:53:45
>>273を見て応用できないならあきらめた方が早いよ。
277:Name_Not_Found
08/06/13 19:52:14 FUCwHHFV
質問させていただきます。
Aという領域をクリックしたときにBの領域で
複数の画像を使って(パラパラアニメのような)アニメーションをさせる。
ここまでは出来たのですが、
「クリックした時だけそのアニメーションを表示させる。」
「クリックするたびに何回でも表示する。」
っていうもののやり方がどうしても解りません・・
278:Name_Not_Found
08/06/13 20:08:22
アニメーションが一回だけ回る関数を
クリック時に呼び出せばいいんじゃないの。
setIntervalでやってるなら、
その中にcount++なんかを入れといて、
if (count == 画像枚数)のときにclearIntervalする。
279:Name_Not_Found
08/06/13 21:41:15
ん。
280:Name_Not_Found
08/06/13 23:33:47
(; ^ω^)
281:Name_Not_Found
08/06/14 02:57:34
onload 後に innerHTMLで、 iframe を 追加しているんですが、
追加した iframe が うまく表示されないときがあります。
IEDevelopper Tool で 値を見ても src に 正しく 設定されています。
282:Name_Not_Found
08/06/14 03:42:04
うむ、さよか
283:Name_Not_Found
08/06/14 08:53:07
>>281
なんで「srcに正しく設定」が問題になるの?怪しいね…
もしかしてinnerHTMLに入れてiframeを作った後で
window.frames.フレーム名.src に設定している?それは
タイミング的に危ういよね。innerHTMLに入れるiframe
タグにsrc属性を書いておくのがいいと思う。
284:281
08/06/14 13:30:54
>>283
iframe タグに src を入れています。
以下のように 文字列を追加しています。
var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>;
285:Name_Not_Found
08/06/14 14:12:36
>>284
alert(strDocument); を実行してその結果を貼ってみれ。
286:Name_Not_Found
08/06/14 16:09:21
>>284
var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>";
ダブルクオートが抜けてた。
その場で試せるFirebugを導入することをお勧めする
287:281
08/06/14 16:30:57
>>285
alert を表示しました。
<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' id="hoge" src='ローカルファイル'></iframe>
288:Name_Not_Found
08/06/14 17:00:55
うーんそれでよさそうだよね。ローカルファイルをフレームに
表示させるのはうまくいかないことがあるかも知れないけど。
同じソース、同じURLのままでうまく行ったり行かなかったりする?
289:281
08/06/14 17:06:12
>>うーんそれでよさそうだよね。ローカルファイルをフレームに
>>表示させるのはうまくいかないことがあるかも知れないけど。
うまくいかないことがあるんですか?
それはどういう理由からでしょうか?
290:Name_Not_Found
08/06/14 18:06:35
ローカルファイルの場合、鯖がないから鯖が必要なもの(CGIとか)
が含まれていると駄目とかね。常に統一的に「こういうページが駄目」
とか分かっていたらそれを書いて相談した方がいいね。もっとも
駄目なものは駄目という他ないとは思うけど。
291:Name_Not_Found
08/06/14 19:59:12
今気づいたんだけど道場訓撤去しちゃったんだね。アレよかったのに。
292:Name_Not_Found
08/06/14 20:08:54
魚の話は板からして違うだろ。
293:Name_Not_Found
08/06/15 01:09:17
洩れも愛着あったしどうかなーと思ったけど >>291 まで誰も
何も言わなかったんでまあOKってことなんじゃないかな?
294:Name_Not_Found
08/06/15 05:23:32
>>263
あ、いや
>>260は転載ですのであしからず・・・
295:Name_Not_Found
08/06/15 21:13:53
誰も>>1を読んでいなかったということだな。俺は>>2からしか読まないから全然気付かなかった。
296:Name_Not_Found
08/06/15 22:07:53 O3b3UhIy
WinXPPro+FireFox,IE7でWEBサイトの製作を行っております。(+cgiも使っていますが、今回の件とは直接関係ありません。)
画像アップローダを作ろうと思っておりまして、アップロード前に画像の確認表示が出来るようにしたいと思っています。
<div id="testViewDialog">
<img hspace="0" vspace="0" name="testImage" src="/image/blank_image.png" width="250" height="500" align="left" style="margin:0px; padding:0px;">
画像ファイル<input type="file" accept="image/gif" id="uploadImage" style="position:static;"><br>
<button onClick="testView();">←試し表示</button>
</div>
として、javascriptでtestView()の関数を作ろうと思っております。
ためしに
function testView()
{
document.images["testImage"].src = "file:///G:\WEB\image\test.gif";
}
とやったのですが、表示されません。
どのようにしたら、ローカルファイルが上手く表示できるようになるでしょうか。
なお、製作環境はWinですが、出来る限り幅広い環境でテスト表示を行わせたいと考えております。
よろしく、ご教授ください。お願いいたします。
297:Name_Not_Found
08/06/15 22:26:19
>>296
ネットからロードしたページ中にローカル画像は入れられない。
またテンプレ中のFAQにもあるが、input type="file" から
ファイル名を取れないブラウザもある。よって、あんたがやりたい
ことは不可能だと思うよ。お気の毒だが。
298:Name_Not_Found
08/06/16 06:03:52
>>297
Action Scriptを使えばできる
299:Name_Not_Found
08/06/16 06:55:02
ActionScript で彼女ができました。
300:Name_Not_Found
08/06/16 09:05:13
総会総会。加藤が知ってたらどんなに喜んだことか
301:Name_Not_Found
08/06/16 12:33:59
>>299
マジレスすると、それは実際によくあることだな。まあ、ちょっとキモい女しかいないがw
302:Name_Not_Found
08/06/16 14:29:33
ActionScriptで身長が8cm伸びました
303:Name_Not_Found
08/06/16 15:14:44
全国の会員の皆さまから驚きの効果がぞくぞくと寄せら
れています。 お申し込みは、今すぐお電話で
0120-194403(アクシヨン3)
まで。もちろん2chお友だち価格です。
お便りもお待ちしています。
304:Name_Not_Found
08/06/16 19:54:37 x0L5x+V2
TRタグのセルの内側で背景クリックを可能とするためのjavascriptを探しています。
Googleのアドセンスのスクリプトをコピーしたら動いたんですが、複雑すぎて、
自分のサイトにもってこれません。
どっかにサンプルとかないでしょうか?
「javascript 背景クリック」でググってもアドセンの広告に関するページしか表示されません。
お願いしますだ
305:Name_Not_Found
08/06/16 20:05:20
>>303
電凸してみた
つながらなかった
実在する番号載せるのはやめようぜ
306:Name_Not_Found
08/06/16 20:15:09
javascript内でjavascriptを読み込むにはどう書けばよいのでしょうか
ご教授ください
307:Name_Not_Found
08/06/16 20:17:37
>>304
javascript background click で303,000本が待機しているが
308:Name_Not_Found
08/06/16 20:19:37
>>305
KY
>>306
お、お久で教授か
!=JavaScript
309:Name_Not_Found
08/06/16 20:25:09
>>307の勘違いぶりが……。
310:Name_Not_Found
08/06/16 20:28:53
//e:Event
for (var n = e./*@cc_on @if(1)srcElement@else@*/target/*@end@*/, C = /^T(?:D|H)$/i; n && !C.test(n.tagName); n = n.parentNode);
if (n) {...}
311:Name_Not_Found
08/06/16 21:25:11
>>306
var s = document.createElement("script");
s.src = ファイル名;
document.getElementsByTagName("head")[0].appendChild(s);
こんなんじゃダメ?
312:306
08/06/16 22:20:46
これでできますた
document.write('<script type="text/javascript" src="ふるぱす/ほげ.js"></script>');
313:Name_Not_Found
08/06/16 23:54:05
>>312
それってIE以外だとSCRIPTタグが文書に書き出される(見えないけど)だけで
実際に「ほげ.js」は読み込まれないような気がする。
あと、スクリプト内に書くのなら最後は
</' + 'script>');
と分割しておいた方がいいと思う。
314:Name_Not_Found
08/06/17 00:25:09
世界中の無数のサイトで使われている構文
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
315:313
08/06/17 00:29:26
> 実際に「ほげ.js」は読み込まれないような気がする。
訂正。普通に読み込まれてた。処理のタイミングの問題みたい。
「ほげ.js」の内容が
var str = "hello, world";
で、件の document.write... の次の行が
window.alert(str);
だとすると、IE だとちゃんとアラートが出るけど、Firefox と Opera では出なかった。
window.setTimeout("window.alert(str)", 1000);
と多少遅延させると Firefox と Opera でも無事アラートが出た。
316:313
08/06/17 00:31:56
> あと、スクリプト内に書くのなら最後は
SCRIPTタグ内に書くのなら、ね...。
317:Name_Not_Found
08/06/17 00:58:00
>>313
「</」の方を分割するかしないと
URLリンク(www.asahi-net.or.jp)
318:Name_Not_Found
08/06/17 01:54:10
<select id="list_1"></select>でジョブキューを管理しているのですが、設定出来る値がnew Option("表示される値","裏の値")の二つだけではちょっと足りなくなったので
function job(num){
this.search = "検索中その"+num;
}
function btn_1_c(){//URLを追加ボタンを押した
list_1.options[0] = new Option("表示される値","裏の値");
var hoge = new job(1);list_1.options[0].other=hoge;
var hoge = new job(2);list_1.options[0].other2=hoge;
alert(list_1.options[0].other2.search)//「検索中その2」
}
<select id="list_1"></select>
このようにしてリストボックス一つ一つの項目に大量のデータを持たせたいのですが、これってjavascript的に想定されている事なのですか?
一応動いたのですが、実はxxするとクリアされる とかだとちょっと困るので質問です
319:Name_Not_Found
08/06/17 02:26:30
>>315
> IE だとちゃんとアラートが出る
ほんとに出た?
320:313
08/06/17 03:04:59
>>317
失敬。分割する箇所が不適切でしたね。
>>319
こちらでは出ました。
各バージョンがいちいち古いんですけど、
Internet Explorer6、Firefox 1.5.0.12、Opera 9.26 で試してみました。
IEだけは setTimeout を使わなくても "hello, world" とアラートが出ました。
321:Name_Not_Found
08/06/17 03:30:00
javascript 動的 でググれ
変なやり方教えるな
322:Name_Not_Found
08/06/17 03:52:05
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none"
}
window.onload = dell;
}
idにsmpleがあれば消すということをしたいのですが
これだとうまく消えません
sampleがあるかないかの判定(if分)がなければうまくいきます
ただそれだとsampleがあった場合はいいのですが、ない場合はエラーになります
sampleがあるかないかの判定はこれでいいのでしょうか?
とにかくやりたいことは<p id="sample">ほげ</p>を消すことで
idのない<p>ほげ</p>でもエラーのないようにしたいです
よろしくお願いします。
323:Name_Not_Found
08/06/17 04:06:34
IEは、SRC属性があるSCRIPT要素を適当に選んで、SRC属性値を書き換えるだけで、読んで実行しますよ。
//@cc_on@if(1)document.scripts(document.scripts.length - 1).src = "another.js";@end
みたいにね。
これは、HTML読み込み中・読み込み後に関係なく動作する。
324:Name_Not_Found
08/06/17 04:07:59
>>323
SRC属性が無くても出来たわ。訂正。
325:Name_Not_Found
08/06/17 04:10:21
>>322
<STYLE ...> とか <LINK REL="Stylesheet ..." HREF="..."> とかを動的に作るればいいだろ。
326:Name_Not_Found
08/06/17 05:00:57
>>322
あるかないかの判定はDOMツリー構築後じゃないとできない
しかもそれだとsampleがあってもなくてもIE以外ではエラー出るはず
あとloadイベントはそういう用途にはおすすめできない
なぜ #sample { display: none; } では駄目なのか
327:Name_Not_Found
08/06/17 05:55:28
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none";
} else {
function dell() { };
window.onload = dell;
sampleがないときにエラーがでるのはfunction dell()がないからだと思ったのでelseの場合に定義してみましたが
エラーはでなくなりましたがsampleが消えなくなりました
たとえelseでも同じfunctionは定義できないということでしょうか
function dell() { };これをはずしてsampleがあるときはうまくいきます
>#sample { display: none; }これが使えるならそうしたいのですが使えない状況なのです
>あとloadイベントはそういう用途にはおすすめできない
javascriptはあまり詳しくないのですが
document.getElementById("sample").style.display = "none";
このように書いてもエラーがでるのでしかたなくwindow.onload = dell; このように書いてます
すぐに実行できる書き方はどうすればいいのでしょうか
328:Name_Not_Found
08/06/17 07:34:31
>>327
そのコードのあるscript要素をid="sample"の要素より
後ろに書けばよい。
329:Name_Not_Found
08/06/17 07:35:23
function dell() {
var sample = document.getElementById('sample');
if (sample){
sample.style.display = 'none';
}
};
dell();
これはどう?
330:Name_Not_Found
08/06/17 14:16:19
基本的なことですが、
var aa = document.getElementById("test").value;
としたとき、aa = 123;でformのvalueに代入できないのは
なぜですか。
document.getElementById("test").value=123;
でできるのに、と思うのですが。
331:Name_Not_Found
08/06/17 14:42:50
A=B AにBを代入する
332:Name_Not_Found
08/06/17 16:10:01
>>330
あなたのプログラミング言語の理解モデルが間違っているから。
IDがtestという入力部品とtest1という入力部品があったとして
document.getElementById("test").value = document.getElementById("test1").value;
とかすると以後test1とtestには常に同じものが表示される、とか思えるわけね?
333:Name_Not_Found
08/06/17 16:28:07
>>330は
a=a+1
が理解できないのだろう
334:Name_Not_Found
08/06/17 16:54:06
>>330
aa に入っているのは値だコラっ!
参照じゃないぞ!
335:Name_Not_Found
08/06/17 18:29:46
>>330
おまいさんは一度ポインターを勉強した方がいいな
336:322
08/06/17 20:16:56
var ss = document.styleSheets[0];
ss.insertRule("#sample {display:none}", ss.cssRules.length);
スタイルシートに新しく加えるという方法でできました
これならid=sampleがない場合でもエラーはでません
ありがとうございました
337:Name_Not_Found
08/06/17 21:40:04
>>336
一つの解法としてそれは正しいのだけど
元の質問の解はこうなる
window.onload = function (){
if(document.getElementById && document.getElementById("sample")){
document.getElementById("sample").style.display = "none";
}
}
そもそも何でエラーが出たかというと
document.getElementById("sample") を実行した時点で
id="sample" はまだないから
338:Name_Not_Found
08/06/17 22:10:13
>>337
読み込み中または読み込み直後に隠す場合、
一瞬見えて隠したいなんて要望はほとんどない。
単に、DOM-Level-2-(CSS|Style) の知識が無いから、
質問がCSSStyleDeclarationでCSS2Propertiesを操作することだけに偏る。
同様の知識不足で、回答も同様に偏る。
しかし、繰り返すが、ふっつーに考えれば、一瞬見せたいわけではないと感じ取れるだろう。
何が元の質問の解だか。回答の選択肢が少ないだけだろう。笑わせる。
339:Name_Not_Found
08/06/17 23:02:03
うちはわざとそうしてる
だって JavaScript オフで見れないページを作ったってしょうがない
だから後で隠す
340:Name_Not_Found
08/06/17 23:24:18
>>339
onload(あるいはreadystateを反映)での処理では、一瞬表示されるという問題があるので、
document.write('<style>#sample...
か、もしくは>>336のような方法というように、
CSSへの設定の方がよりスマートだと思うけどね。
341:Name_Not_Found
08/06/17 23:32:17
自分は id="sample" が閉じた直後に消すな
document.write() は個人的にはあまり使わない
342:Name_Not_Found
08/06/18 01:09:13
document.write('<style type="text/css"><!--#sample{display: none}--></style>');
こうすれば簡単だろうけどルール的に駄目なんだよな
だから同じようなことするのに>>336の方法をとったんだろう
343:Name_Not_Found
08/06/18 02:27:51
>>336
window.onload = function() {
if(typeof document.getElementById("sample") == "object"){
document.getElementById("sample").style.display = "none"
}
}
これでいいと思うよ。関数が定義されていない場合とかにも応用可能。
344:Name_Not_Found
08/06/18 02:34:04
>>343
さすがに同じIDに対しgetElementByIdを2度実行するのは無駄なので、
それならこうするね。
window.onload = function() {
var elm = document.getElementById("sample");
if(elm)
elm.style.display = "none"
}
345:Name_Not_Found
08/06/18 02:55:39
>>344
それでもよさげだけど、elmが存在しないときに
elmにfalseが代入される保証はあるのかな。
エラーを返すブラウザがあってもおかしくない気がする。
typeofの方が安全だと思うよ。
あと、無駄に関してはelmに代入したほうが大きい。
346:Name_Not_Found
08/06/18 03:09:19
>>345
マジレスすると、
getElementByIdで、object(のリファレンス)かnull以外が返される実装があったら教えて下さい。
全面的にコードを書き直す必要があるくらい、かなり興味深い話題なので。
347:Name_Not_Found
08/06/18 03:11:27
そーなんだ。ならそれでいいと思う。
348:Name_Not_Found
08/06/18 03:14:22
編集中に投稿しちゃった・・・
たぶんnullかfalseを返すと思うし、多分大丈夫だと思うけど、
俺も調べてないからよくわからないや。
349:Name_Not_Found
08/06/18 03:14:41
>>345
> あと、無駄に関してはelmに代入したほうが大きい。
これって検証可能なソース出せるわけ?
350:Name_Not_Found
08/06/18 03:20:33
元々頭の悪いテンプレ厨が湧いているスレだけど、
>>345=>>347-348なら、
これほど適当な発言をする人間はもはや害以外の何物でも無いね。
351:Name_Not_Found
08/06/18 03:39:06
サイト上にある任意の文字を変換したいのですが
例えば あいうえお → かきくけこ にしたいのです書き方がわかりません
document.replace('あいうえお','かきくけこ')
よくある例文では
var str = 'abcd'
str.replace("ab", "cd")
でstrを指定しているのですがこれがhtml上の場合どのように指定すればよいのでしょうか
352:Name_Not_Found
08/06/18 03:49:25
>>351
イベントハンドラとか消えてもいいなら
document.body.innerHTML = document.body.innerHTML.replace("あいうえお", "かきくけこ")
353:351
08/06/18 04:52:46
>>352
ブラウザがかたまってしまいました・・・
354:Name_Not_Found
08/06/18 05:05:23
>>353
糞スペック乙
355:Name_Not_Found
08/06/18 13:53:24
Firefox3がすげえ
356:Name_Not_Found
08/06/18 14:06:19
JavaScriptに関してならSafariのほうが上だな
357:Name_Not_Found
08/06/18 15:11:04 rS/mkLH/
連番画像を切り替える際に
function change(){
n++;
if(n==4)n=0;
document.irg.src="img/pic"+n+".jpg";
とかだと一桁枚数はできるのですが、二桁、例えば20枚の画像を切り替えたい場合は
どう表記すればいいのでしょうか?
358:Name_Not_Found
08/06/18 15:11:46
>>344
>>343はどのように無駄なんでしょうか?
elmにリファレンスが入ってるってだけで、
どっちもgetElementByIdを2度実行してると思うのですが。
コードの読みやすさの話ってわけでもなさそうだし。
359:Name_Not_Found
08/06/18 15:17:25
>>357
if(n==4)の4のところを20に変える、って話ではない?
>>358
> どっちもgetElementByIdを2度実行してると思う
>>343はしてるが>>344は1回だぞ
>>344は取得した要素オブジェクトかnullをelmに入れてるんだから
2回実行できようが無い
360:Name_Not_Found
08/06/18 15:20:15
このスクリプトの実行を中止しますか?
このページのスクリプトが、Internet Explorer の実行速度を遅くしています。
スクリプトを実行し続けると、コンピュータが反応しなくなる可能性があります。
---------------------------
はい(Y) いいえ(N)
---------------------------
を回避する方法は
URLリンク(support.microsoft.com)
に「 5 秒間隔で PeekMessage を呼び出してタイムアウトをリセットする必要があります」って書いてあるけど
PeekMessageをjsで呼び出すにはどうしたらいいの?
PeekMessage()じゃダメらしい
361:Name_Not_Found
08/06/18 15:30:27
>>359
聞き方が悪かったです。ごめんなさい。
というか、解決しました!
function change(){
n++;
if(n==?)n=0;
document.irg.src="img/pic0"+n+".jpg";
こういう考えでやってたもので・・・n自体に二桁以上が入るのは考えてませんでした。
回線切って電源落として首吊ってきます。
362:Name_Not_Found
08/06/18 15:58:11
>>360
PeekMessageはWindowsAPI。
ActiveXでも使わなければ無理では。
363:Name_Not_Found
08/06/18 20:51:02
URLリンク(www.flickr.com)
この画像の投稿者はΛl℮Roda®さんですが
「℮」とか「®」とかのunicodeでないと表現出来ない文字を自動的に置き換えてくれるライブラリみたいなの教えて下さい
勿論厳密な置き換えは無理なことは分かっていますので
「℮」→e
「®」→(R)
みたいな置き換えで十分です
364:Name_Not_Found
08/06/18 21:50:08
ライブラリ まで読んだ
365:Name_Not_Found
08/06/18 21:55:00
だれか>>363のリンクで飛んだ?押しても大丈夫?
366:Name_Not_Found
08/06/18 22:11:19
>>365
どうせサロゲートペアまで変換しちゃうどこぞのPerlが得意なキモオヤジの自演だから、放置しとけ。
367:Name_Not_Found
08/06/18 23:06:42
踏んだよ。フツー なんか風景。BRAZILとかあるからCGかなんかかしら
以下スレチ:flickrでヤバいリンクってあるのかな。
グロとかアップできちゃうサービスという印象もないけど
368:Name_Not_Found
08/06/18 23:48:46
>>363=自演かw 乙
369:Name_Not_Found
08/06/19 04:51:53 HjeHeh3z
prototype.jsのトグルで表示・非表示の切り替えをしてるんだけど、
ページを開いた時(初期表示)で非表示状態にするにはどうしたら良いですか?
<body onload="hideToggle(idName)">
って感じで非表示トグルを実行しようとしてるんですが、これだと一瞬
隠す部分が画面に映ります
自分なりに調べたんですがわからなかったので誰かご意見ください
よろしくお願いします
370:Name_Not_Found
08/06/19 04:59:14
このスレくらい読めばいいと思うよ
371:Name_Not_Found
08/06/19 11:08:05 YXAbfQDi
>>369
逆に最初非表示にしておいて後から必要な箇所だけ表示するんじゃダメなの?
372:Name_Not_Found
08/06/19 12:26:54 rbx28/KF
同サーバ内のテキストファイルを読み込みたい
.jsなら>>306-314、
それ以外ならxmlHttpRequestを使えばできるのですが、
単にテキスト読み込むだけなのにわざわざxmlHttpRequest使うのはどうなんだろうと。
PHPで言うfile_get_contentsみたいなのはないですかね。
373:369
08/06/19 12:28:23 HjeHeh3z
>>371
最初非表示にするってどうするんですか?
表示切替ってtoggleでやるものだと思ってたら、cssも併用するんですね
そのことを言ってるんでしょうか?
374:Name_Not_Found
08/06/19 12:29:50
>>373
>cssも併用するんですね
その方が無難
375:Name_Not_Found
08/06/19 12:33:59
>>372
ない。XmlHttpRequestでresponseTextから取り出せば
別に問題ないじゃん。
376:369
08/06/19 12:35:18
>>374
本当にありがとうございます
cssでのやり方を勉強してみます みなさんありがとう
377:Name_Not_Found
08/06/19 13:11:58 wVAEkJPX
Javascript の配列は結局のところキーとして0以上の整数を
とるハッシュと思って扱えばよいのでしょうか?
それとも内部的にまったく異なるものとして扱われているのでしょうか?
a[0] と a[10] が何か値を持っているとき、 a[1],...,a[9]
が内部でどのように扱われているかについての規定はあるのでしょうか?
378:Name_Not_Found
08/06/19 13:27:42
>>377
URLリンク(www2u.biglobe.ne.jp)
によれば、a[10]が存在していればa[0]~a[9]も自動的に存在する
ようになる、と読めるね。
379:Name_Not_Found
08/06/19 13:35:20
>>378
そうか?別段そういうことは書いてないと思うが
380:377
08/06/19 14:12:28 wVAEkJPX
URLリンク(builder.japan.zdnet.com)
この前後の連載を読んで理解しました。
C/C++ ばかりだった自分にとってはずいぶんと違う世界でした。
381:Name_Not_Found
08/06/19 14:29:59
>>379
そうだね、何か勘違いしたようで、申し訳ない。
382:377
08/06/19 14:43:49 wVAEkJPX
JSON関係の質問もここで良いですか?
JSONでは文字列は「ユニコード」であるとされていますが、
これって非ASCII文字はすべて \uxxxx 形式のエスケープで表記せよ、
ということなのでしょうか?
Unicode といわれても表現方法は UTF-8 を含め多数あるので、
その当たりの表現方法については決められているのかなと
思ったのですが、特に規定されていないようでどうしたものかと。
383:377
08/06/19 14:58:31 wVAEkJPX
すんません、おちついてRFC読み直してみたら書いてありました。
URLリンク(www.ietf.org)
384:Name_Not_Found
08/06/19 19:12:47
うろ覚えで何て単語で検索して良いのかわからないので確認したいんのだけど、
「ある要素を監視しておき、その要素に他の要素が追加された時にイベント発生」
というような機能なかったでしたっけ?
誰か知ってたりしたら教えてください。
385:Name_Not_Found
08/06/19 19:20:44
>>384
DOMNodeInserted?
386:Name_Not_Found
08/06/19 21:22:35
>>385
ドンピシャだった!ありがとう。
387:Name_Not_Found
08/06/19 22:57:50 HjeHeh3z
動的にサーバ上のjpgを読みに行くにはどうしたら良いでしょうか?
DWに標準でついてるスワップイメージを最初考えたんですが、
アレだとすり替え用のデフォルトの画像が必要です
完成イメージとしては、チェックボックスをクリックすると、それに応じた
画像が表示され、チェックを全部クリアすると画像が消える感じです
すみませんがどなたかアドバイスお願いします
388:Name_Not_Found
08/06/19 23:02:03
>>387
賢い俺が翻訳してやると、画像URIをユーザーが選べるようにしたい、ということかね。
389:Name_Not_Found
08/06/20 00:18:25
>>378
で、多数チェックしたときはどうなるって?
390:Name_Not_Found
08/06/20 01:55:59
ページ上にある特定のスタイル 例えば style="color:red; を
ボタンクリックしたら style="color:black; というようにしたいのですが
style自体は他にも使われているのでstyleの要素だけでは抜けられないと思います
なのでcolor:red; → color:black; というようにテキストを置換する方法を考えていますが
どのように書けばいいのでしょうか?
document.replace('color:black; ','color:black; ')
これだとうまくいきません
391:Name_Not_Found
08/06/20 02:10:30
>>390
<... style="color:red"な要素すべてを<... style="color:black"にする
でよしか?
var elements = document.getElementsByTagName('*');
for (i = 0; i < elements.length; i++) {
if (elements[i].style.color === 'red') {
elements[i].style.color = 'black';
}
}
392:390
08/06/20 03:36:54
>>391
ありがとうございます
styleの要素が二つのとき
style="color:red; font-size: 14px"
こう書いたのですがうまくいきません
if((elements[i].style.color === 'red') && (elements[i].style.fontSize === '10')){
elements[i].style.color = 'black';
}
どのような条件式になるのでしょうか・・・
393:Name_Not_Found
08/06/20 06:29:30
自己解決しますた
394:Name_Not_Found
08/06/20 11:10:56
他のページに飛ぶのではなく、同一ページ内で
swfの表示サイズ(width=***, high=***)を
閲覧者がポップアップメニューで切り替えられるような
スクリプトってありますか?
画像でも同じようなスクリプトがあればswf用に転用出来ると
思うのですが、もしそのようなものがあればご教授ください。
395:Name_Not_Found
08/06/20 11:47:15 KZpiizg0
下記のようなフレーム構造で
under.html内のjavascript実行(innerTextで文字列を変える)してから
top.htmlでsubmit実行すると、under.htmlが別ウィンドウで開いてしまいます。
理由と解決策をご存知でしたら教えてください。
※JavaScript実行しない場合は正常に動作します。
□test.html
<frameset rows="100,*" border="1">
<frame src="top.html" name="top">
<frame src="under.html" name="under"/>
</frameset>
□top.html
<form action="under.html" method="post" target="under">
<input type="submit" value="送信">
□under.html
<table>
<tr><td>aaa</td><tr>
<tr><td>bbb</td><tr>
<tr><td>ccc</td><tr>
</table>
396:Name_Not_Found
08/06/20 11:50:02
>>395
その問題を起こしているげなスクリプトを貼らずに相談とは
いい度胸だね。
397:Name_Not_Found
08/06/20 12:48:16 KZpiizg0
仰るとおりです。申し訳ないです。
原因となってるっぽい箇所です↓
onblurでtest()を呼び、計算させて<td></td>の中をinnerTextで書き換えるとい
う処理ですが、
この計算実行で既に発生することがわかりました。計算結果は正しいものとなっ
ています。
fuction test()
{
total = 0;
for(i=0; i<3; i++){
object = getObject(i,"02");
total += parseInt(object.value);
}
}
function getObject(row,col)
{
name = "a" + row + "b" + col;
return document.フォーム名.elements[name];
}
398:Name_Not_Found
08/06/20 13:30:09
>>397
あのねえ、nameという変数を使いたいのなら「var name = ...」
のようにしてローカル変数にしないと。今はグローバル変数
つまり window.name を書き換えているため、そのフレームの名前が
under でなく a0b02 みたいな名前になっていると思われ。
399:Name_Not_Found
08/06/20 13:53:53
>>398
解決しました!ありがとうございます!
特に意識せずに変数名つけてましたがローカルグローバルもちゃんと考えなきゃですねm(__)m
勉強になりました!
400:Name_Not_Found
08/06/20 16:31:15 UBjOGtUw
ファイルをDLさせたいがそのファイルの生成にすげー時間がかかるんで、
submitボタン連打を5秒間だけ防止したい
<input type="submit" name="button" value="push" onclick="return renda();">
var timeout=0;
function renda(){
timeout++;
if(timeout>5){
timeout=0;
document.button.button.disabled = false;
return false;
}else if(timeout==1){
document.button.button.disabled = true;
window.setTimeout("renda();",1000);
return true;
}else{
window.setTimeout("renda();",1000);
return false;
}
}
FFではエラーも検出されずきちんと動作しましたがIEでは動きませぬ。何故でせう。
401:Name_Not_Found
08/06/20 16:39:48
>>400
「動かない」の内容をちゃんと書けって。エラーが出るのか
何も反応しないのか、その時ボタンは押せてるのかとか。
402:Name_Not_Found
08/06/20 16:40:49
document.compatMode=='CSS1Compat'
DOCTYPEをこれより少ない文字数で判定する方法はありませんか?
IE専でかまいません
403:Name_Not_Found
08/06/20 17:05:31
var d = document, c = d.compatMode;
c == 'CSS1Compat'
404:Name_Not_Found
08/06/20 17:15:02 UBjOGtUw
>>401
そーりー
・5秒間禁止は問題なく動作
(押した直後に押せなくなり、5秒後に押せるように戻る)
・次画面に遷移しない
(次画面をテキスト表示だけ、等にしてみたが反応せず)
・function renda(){document.csvDL.button.disabled = true;window.setTimeout("renda();",1000);return true;}
とすると動作
405:Name_Not_Found
08/06/20 17:27:54
>>403
すいません、そういうことではなくて
文字総数で少なくしたいので
document.compatMode=='CSS1Compat'
の33文字より少なくできる方法はありませんか?
compatModeプロパティにこだわる必要もないです。
406:Name_Not_Found
08/06/20 17:34:31
時間待ちをする関数とonclickで呼ばれる関数を一緒くたに
したから自分でロジックを追えなくなってるんでしょ。
分けたら。そもそも5秒なんだからタイムアウトを5000で
作ればいいのに。
407:Name_Not_Found
08/06/20 20:07:31 UBjOGtUw
>>406
Σ(゚□゚;)!!
408:Name_Not_Found
08/06/20 23:56:55
変数にweb上のHTMLデータを代入したいのですが
どのようにすればいいのでしょうか。
409:Name_Not_Found
08/06/21 00:10:16
>408の動作環境を書き忘れました
Javascriptを組み込んだHTMLはweb上にあります
そのHTML内のJavascriptが読み込みたいHTMLデータもweb上にあります
ローカルのファイルは一切いじりません
410:Name_Not_Found
08/06/21 00:12:35
>>409
同じ鯖なのね?それならXmlHttpRequest()で読むんでしょ。
411:Name_Not_Found
08/06/21 01:22:00
>>410
ぉ、お、おおお
ありがとうございますm(_ _)m
Ajaxって今ではどのブラウザでも標準でついているんですね
前ちょろっと見た時にライブラリが必要なのかなーとか思ってましたが
凄い敷居が低くてありがたいです
別の鯖ですが、別の鯖だと動作しないのでしょうか
2ch全板トーナメントスレが新しくなる度にHPを更新するのが面倒なので
色々考えた末にJavascriptで実装できそうかなーと思って
調べてたのですが結果分からず質問致しました。
スクリプトは塩街にでも置こうと思ってます
412:Name_Not_Found
08/06/21 01:22:21
>>410
大文字小文字
413:Name_Not_Found
08/06/21 01:25:14
魚の話題はスレ違い。
というか、馬鹿な初心者にははっきり言った方がいいな。
鯖って何ですか?勘弁してください。
414:Name_Not_Found
08/06/21 01:44:31
俺はプロキシサーバのことを「串」と書く点も厨判定に利用してる。
415:Name_Not_Found
08/06/21 01:53:21
2chやめとけ
416:Name_Not_Found
08/06/21 01:55:31 N+PRjJ56
よろしくお願いします。
下記記述で「/」の為、jsが動きません。
「/」は必ず使いたいので、回避方法をご教示いただけませんでしょうか、、、
function checkA(){
var flag = 0;
if(!document.iform.果物/りんご.checked)
if(!document.iform.果物/みかん.checked)
{
flag = 1;
}
if(flag){
window.alert('果物項目がチェックされてません');
return false;
}
else{
return true;
}
}
417:Name_Not_Found
08/06/21 02:41:17 lAfacg6N
JavaScriptでサーバ上にあるXMLファイルを読み込む処理を勉強しております。
参考URL:URLリンク(www.openspc2.org)
そこで質問です。
以下のXMLファイルで、cacheタグに挟まれているurlタグの中の文字列は出力しないようにし、
resタグ直下のurlタグのみを出力するには、以下のJavaScriptのソースをどう改修すればよいでしょうか?
【XML】
<?xml version="1.0" encoding="UTF-8" ?>
<set>
<res>
<title>タイトル1</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
<res>
<title>タイトル2</title>
<url>URLリンク(hogehoge.jp)
</res>
<res>
<title>タイトル3</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
</set>
418:417
08/06/21 02:42:14 lAfacg6N
【JavaScript(HTML内)】
~(省略)~
xmlData = httpObj.responseXML;
resTag = xmlData.getElementsByTagName("res");
titleTag = xmlData.getElementsByTagName("title");
urlTag = xmlData.getElementsByTagName("url");
resultTxt = "";
for(i=0; i<resTag.length; i++){
s_title = titleTag[i].childNodes[0].nodeValue;
s_url = urlTag[i].childNodes[0].nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
~(省略)~
【現状の出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(cache.hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
【期待する出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
419:Name_Not_Found
08/06/21 02:58:43
>>418
urlTag[i].parentNode.tagName !== 'cache' とかで見えんかな
420:Name_Not_Found
08/06/21 03:31:05
JavaScriptでもweb上のファイルを読み込みができるんだな
そういうのはいつもPHPでやってたわ
そうかリロードしなくても更新ができるとういうわけか
421:Name_Not_Found
08/06/21 08:25:07
>>420
そういうのをAjaxと呼ぶんじゃなかろうか。
422:Name_Not_Found
08/06/21 08:50:42
>>413
テンプレのFAQにも「鯖」が使われているんだけど。
なんでテンプレには文句言わないの? (直すのに反対
してるわけではなくて、なんでテンプレ論議のときに
指摘しないのか不思議なだけ。)
423:Name_Not_Found
08/06/21 08:57:56
>>422
馬鹿な初心者を構っちゃらめ
ヌルー汁
424:Name_Not_Found
08/06/21 11:20:57
【鯖】
スズキ目サバ科の海水魚、マサバとゴマサバの総称。魚体は紡
錘形でやや側扁し、背びれ・尻びれの後方に小さなひれがいく
つか並ぶ。世界に広く分布し代表的な食用魚。俳句では夏の季語。
○―釣や夜雨のあとの流れ汐/蛇笏
425:Name_Not_Found
08/06/21 11:23:48
>>422
一括りにするつもりは無いが、こういう奴はプログラマに本当に多い。
性質上そうなるのかもしれないがリアルで付き合うのはマジ簡便。
426:Name_Not_Found
08/06/21 11:49:18
>>425
プログラマの空気の読めなさはまじで異常だよな
あと議論がいつも小学生みたいな揚げ足取りになる
極端な例で言えば「何年何月何日何時何分何秒地球が何回周った時?」とかそんなの
427:Name_Not_Found
08/06/21 11:59:00
プログラマってほんと頭悪い奴の職種なんだな
有能マが可哀想だ
428:Name_Not_Found
08/06/21 12:05:55
スレ違いな話題はよそでやってね。
429:Name_Not_Found
08/06/21 12:10:01
>>413 が激高して多重自演してる様に激藁タよ。
430:Name_Not_Found
08/06/21 12:16:18
HPにアクセスカウンターつけたいんですがどうすればよいのでしょうか?
使ってるソフトはHPビルダ12です
ググったところレンタル?するもののようですがいまいち概念がわかりません
いま↓のようなところを読んでるのですが
Javaスクリプトをhtmlソースに組み込むことでカウンタをレンタルして効果がでてるということなのでしょうか・・・?
URLリンク(count.sekkaku.net)
431:Name_Not_Found
08/06/21 12:17:16
おれ高校中退後コンピュータの専門がっこ。会社じゃ目下某服
飾企業のHPのリニューアルPJ参加中。無能なのはよくわかって
る。といって他にできるものねぇしなぁ。悪かったな。
432:Name_Not_Found
08/06/21 12:20:10
>>430
そのビルダとかいうのを卒業しないかぎりアンタには無理。
433:Name_Not_Found
08/06/21 12:20:15
>>431
充分有能じゃないか自信もて。
無能ってのは何もできないのに他人を卑下してるやつのこと
434:Name_Not_Found
08/06/21 13:49:37
裏日本の金沢市でjavascriptの勉強会とか開催したら参加してくれる人
っているもんだろうか?ちょっと考えているのですが集まるかどうか不安。
内容としてはフラナガンの本を読むかprototype.js等のライブラリを読
むかとか考えてます。
435:Name_Not_Found
08/06/21 15:09:38
>>434<-ちょっとオフトピだがマジレス。
集まるかどうか不安なんて言ってたら何にもできませんぜ。
とにかくやってあんたのひた向きな背中を金沢市内の人間みんなに
見せることだろ。うちの区(東京下町)では区報にワークショップてな
コーナーがあって、PCはじめいろんなお稽古事関係が講習や教室を
開いて参加者を募集している。最初はまず人は来ないと思った方が
いい。そういうのをやると少しは素っ頓狂な質問も減るかなと思う。
がんばれ。
436:Name_Not_Found
08/06/21 15:39:09
マウスの座標取得で、
event.clientXなどでIEはで来たのですが、FF等で動きません。
クロスブラウザ対応なマウス座標取得はどうすればいいのでしょうか?
437:Name_Not_Found
08/06/21 15:48:01
>>418
var xmlData = httpObj.responseXML;
var resTag = xmlData.getElementsByTagName("res");
var titleTag = xmlData.getElementsByTagName("title");
var urlTag = xmlData.getElementsByTagName("url");
var resultTxt = "";
var i = 0, j = 0;
while(titleTag[i]){
s_title = titleTag[i].firstChild.nodeValue;
if(uriTag[j].parentNode.nodeName == "cache"){
j++;
}
s_url = urlTag[j].firstChild.nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
こんな感じかな
438:Name_Not_Found
08/06/21 15:56:10
>>435
確かにそうだな。やってみなけりゃ何も始まらんな。
そういう場所をまず探してゆくか。
ありがとう。
439:Name_Not_Found
08/06/21 16:05:26
>>436
過去スレ全集で検索すればいくらでも見つかるよ。
440:Name_Not_Found
08/06/21 20:59:33
>>436
Event.pointerX(event) Event.pointerY(event)
441:Name_Not_Found
08/06/21 21:00:45
言い忘れたゴメン
上のはprototype.jsを使ったやつな
442:Name_Not_Found
08/06/21 21:01:52
XSLTってあったな。
今時のサーバとブラウザの世代交代を考慮すると、本番運用できるかもな。
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="res[child::title and child::url]"><xsl:value-of select="child::title"/> : <xsl:value-of select="child::url"/><xsl:text> </xsl:text></xsl:template>
<xsl:template match="node()"><xsl:apply-templates/></xsl:template>
443:377
08/06/22 00:12:37 XEoiJWyd
あるテキストファイルがJSONファイルとして正しいかどうかを検証してくれるサイトってありませんか?
444:Name_Not_Found
08/06/22 02:24:55
それはここに書く前に検索した方が比較にならないほど早く解決するだろう。
もしファイルの内容をじかに書かなければならない不便な物しか見つからなかったら、ファイルの内容を投げて結果を調べるコードを書けばいいだろ。これまたそこそこ丁寧に書いても30分以内に書ける。
つまり、オマエが物乞いだということだな。生き恥晒してんじゃねえよ。
445:Name_Not_Found
08/06/22 04:11:47
>>442
URLリンク(www.wowarmory.com)
恐らく毎日膨大なPV数であろう、一般ユーザー向けのサイトで使われている興味深い例。
>>443
JSON validatorあたりでググってみる。
>>444
>生き恥晒してんじゃねえよ。
446:Name_Not_Found
08/06/22 04:17:24 W8+DpW9j
以下のような<div>でくくったcheckboxが2つあります。
<div id="boxA[]" style="display:none"><input type="checkbox" name="cbA[]" value="1" /></div>
<div id="boxB[]" style="display:none"><input type="checkbox" name="cbB[]" value="1" /></div>
このdiv二つは、別のプルダウンのoptionの選択の切り替えでdisplayを操作していて、
・boxAを表示してるときはboxBが隠れている
・boxBを表示してるときはboxAが隠れている
・プルダウンが未選択(デフォルト状態)の時は両方とも隠れている
…という形になっています
また、この「<div>2つ + 操作してるプルダウン1つ」は3セットあります。
このとき、
・3セットのうち、2セットをboxBを表示&チェック(boxAはdisplay:none)
・残りの1セットををboxAを表示&チェック(boxBはdisplay:none)
してPOST送信するとポストデータに異常が発生します。
boxB、boxAともに、display:none状態のまま送信した分が、データとしてわたらないのです
以下、ポストデータを var_dump($_POST) したものです。
["cbB"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1"}
["cbA"]=> array(1) { [0]=> string(1) "1"}
本来なら、両方とも array(3) となるように、配列が3つわたると思うんですが、
どうしたら解決するでしょうか?
URLリンク(memo.hirosiki.jp) を見ると、この問題に触れてるんですが
送信エラー起こす場合と起こさない場合があるようで、イマイチ答えになりません
対策や意見をもらえたら幸いです よろしくお願いします
(ちなみに、データの入力はCHECKBOXでなくプルダウンでも同様になります)
447:Name_Not_Found
08/06/22 04:54:40
チェックボックスは off だとデータ渡らないけどね
そういうことじゃなければソースをどっかにうpして
正直読んでてよくわからん
448:Name_Not_Found
08/06/22 05:46:32
>>447
いや、そういうことだと思う
個人的にはidやnameに大かっこ使ってるのが気になってしょうがないけどこれ不正じゃないの?
449:Name_Not_Found
08/06/22 05:51:59
name の方は [] で送ると
サーバサイドのスクリプト上では配列として受けれるんだよね
id の方はちとマズいだろな
450:Name_Not_Found
08/06/22 05:58:56
なるほど
451:Name_Not_Found
08/06/22 06:12:03
>>446
input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
その言語には array_values() や array_flip() などの便利なトップレベル関数があるのだから、それらのどれらかを使える形を整えろ。
あと、CSSのdisplayプロパティとその値は関係ない。
ついでだが、>>449の言う通り、div要素型(に限らず)、id属性値はNAME・ID型だから括弧は使えない。
(さらについでだが、input要素型のname属性値はCDATAだからだいじょうぶ。)
452:377
08/06/22 07:41:29 XEoiJWyd
>>445 THX
JSONLint The JSON Validator
URLリンク(www.jsonlint.com)
453:377
08/06/22 08:06:51 XEoiJWyd
TinyJSON - A Minimalistic JSON Reader Based On Boost.Spirit, Boost.Any and Boost.Smart_Ptr
URLリンク(blog.beef.de)
C++好きの自分にはよだれが出る。
454:Name_Not_Found
08/06/22 09:23:27
XMLHttpRequestってIEとFFとかで動作違う?
こちらから指定したXMLの内容の一部(中で1から順番に番号を振ってる、その例えば10~20)をXSLTで変換して表示させようとしてるんだけど、IEでうまくいってFFでうまくいかない
ほとんど載ってた例文どおりに書いたんだが・・・
どこかわかりやすいサイトとかある?
455:Name_Not_Found
08/06/22 09:41:34
Firebug とか使ったらなんかわからんもんかね?
456:Name_Not_Found
08/06/22 09:45:22
>>453
クロスブラウザ対応のXHRっURLリンク(allabout.co.jp)
457:Name_Not_Found
08/06/22 09:45:45
失礼安価ミス>>456は>>454ね。
458:Name_Not_Found
08/06/22 09:47:21
その例文とやらを乗せるのが一番早いかと
459:Name_Not_Found
08/06/22 11:13:12
>>454
XMLHttpRequestはIE7以上でないと使えない
IE6以下はActiveXObject使うしかない
場合分けしる
460:446
08/06/22 12:07:53
皆さんありがとうございました、ご意見を参考に頑張ってみます
(idの値についてですが、書き間違えでした。ちゃんと
boxA1,boxA2,boxA3 boxB1,boxB2,boxB3 となっています
>>451
>input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
それだと場当たりの処理は出来ますが、「渡されるべき形で配列が渡されない」という
本質的な問題は解決しません
それで居心地が悪いので質問させてもらいました ありがとう
461:Name_Not_Found
08/06/22 12:59:10
なんだかヘンな方に議論が行っているような。
display:none だとその部分は「存在しない」のでデータが渡らない。
visibility:hidden だとその部分は「見えないだけ」なのでデータが渡る。
462:Name_Not_Found
08/06/22 13:20:00
> display:none だとその部分は「存在しない」のでデータが渡らない。
君の脳内ブラウザではそうかもしれんが
あんまり無責任な発言をしてもらっても困る
463:Name_Not_Found
08/06/22 14:47:27
display:noneもvisibility:hiddenも表示を消す、物は残ってる。
単にその存在分の空白が残るか残らないかって話だけ
464:454
08/06/22 14:56:11
レスthx
サンプルのURL消しちゃってたからもう一度探してくる
下が今弄ってるものなんだけど、いろいろ入れ替えたり書き直してたりしてたらIEでも動かなく・・・orz
IE7とFF2(今は3)を使っているから、テスト段階ではXMLHttpRequestだけでいいかと思ってそれしか書いてない
当然あとで書き足す予定
function goend(threadnum,startnum,loop){
var snum = startnum;
var fnum = Math.abs(startnum) + Math.abs(loop);
var xmlfilename=threadnum + ".xml";
var xmlt = new XMLHttpRequest();
var xslt = new XMLHttpRequest();
xmlt.open("GET",xmlfilename,true);
xmlt.onreadystatechange = function(){ if(xmlt.readyState == 4){
var xmld = xmlt.responseXML;
xmlt.send(null); } }
xslt.open("GET","../xsl.xsl",true);
xslt.onreadystatechange = function(){ if(xslt.readyState == 4){
var xsld = xslt.responseXML;
xslt.send(null); } }
var vali = new Array();
try{ vali=xsld.getElementsByTagName("xsl:variable");
}catch(e){ try{ vali=xsld.getElementsByTagName("variable");
}catch(e){ alert("getElementsByTagName Error"); } }
vali[0].text=fnum;
vali[1].text=snum;
var htmld;
htmld = xmld.transformNode(xsld);
document.write(htmld);}
465:Name_Not_Found
08/06/22 15:20:47 XEoiJWyd
JSONって{ "a": "b", "a":"c" }
みたいにオブジェクト(ハッシュ)のキーが重複するような
データは規格の上で間違っているとされているの?
それとも単に eval()で評価すれば後から設定したプロパティ
に置き換わるだけなのでそれでよしということなのでしょうか?
466:417-418
08/06/22 15:49:19 pf9eXiX0
>>437
㌧クスです!できました。
467:Name_Not_Found
08/06/22 15:55:22 pf9eXiX0
Yahoo!検索で一番上に出てくるサイトのリンクを作るプログラムです。IE6で動作確認しています。
「取得」ボタンを押すと、一回目はエラーが必ず出てしまい、もう一度「取得」ボタンを押すとうまくいきます。
一回目からうまくいくようにするにはどうしたらよいでしょうか?
何か、カウント用変数のiとjがおかしいことになってるみたいなんですが…。
ちなみにデバッグ用にalertを3箇所に書いてありますので、アラートいっぱい出てきてOKという方はコメントアウトを外して実行してみてください。
お願いします。
<html><head><title></title>
<script type="text/javascript">
<!--
word = new Array("javascript", "ajax");
site = new Array("2ch.net", "jbbs.livedoor.jp");
function createXMLHttpRequest(cbFunc){
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 = cbFunc;
return XMLhttpObject;
}
// 下に続く
468:467
08/06/22 16:03:24 pf9eXiX0
// 上の続き
function loadXMLFile(fName){
httpObj = createXMLHttpRequest(displayData);
if(httpObj){
httpObj.open("GET", fName, true);
httpObj.send(null);
}
}
function displayData(){
if((httpObj.readyState == 4) && (httpObj.status == 200)){
//alert("デバック用(成功):\ni = " + i + ", j = " + j);
xmlData = httpObj.responseXML;
Result_Tag = xmlData.getElementsByTagName("Result");
document.getElementById("src_" + i + "_" + j).innerHTML =
"<a href=\"" + Result_Tag[i].getElementsByTagName("Url")[0].childNodes[0].nodeValue + "\" target=\"_blank\">" + Result_Tag[i].getElementsByTagName("Title")[0].childNodes[0].nodeValue + "</a>";
}else{
//alert("デバック用(失敗):\ni = " + i + ", j = " + j);
document.getElementById("src_" + i + "_" + j).innerHTML = "読み込み中";
}
}
function SearchResultCount(){
for(i=0; i<site.length; i++){
for(j=0; j<word.length; j++){
//alert("デバック用(正しいカウント):\ni = " + i + ", j = " + j);
loadXMLFile("URLリンク(api.search.yahoo.co.jp)" + encodeURIComponent(word[j]) + "&site=" + site[i]);
}
}
}
// 下に続く