+ JavaScript の質問用スレッド vol.56 +
【質問を書く上で】
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']」は同じ意味です。
【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()。
これ
>>9 貼ってる人も相当粘着してるようだねえ。前スレでもスレ立て中に
貼ってるしねえ。何か意味あるのか分からんけど、人生もっと前向きに生きたら?
さあこれで爆発するかどうか楽しみだ (w
>>10 > さあこれで爆発するかどうか楽しみだ (w
逃げを打っているのはよくわかるが、きみの必死さしか伝わらない
ユーザーが
名前:%NAME%%BR%投稿日%DATE%
と指定して、変数name、br、dateの値を自動的に置き換えて
名前:ななし
投稿日2007/01/01 12:12
みたいにするにはどうしたら良いのでしょうか
例えば、vbとかではファイルパスに%TEMP%って入れると自動的に環境変数のテンポラリフォルダのパスに置き換わりますよね
それを開発者側で自由に指定するにはどうしたら良いのでしょうか って事です
正規表現しか無いんでしょうか
そのとおり
>>12 こういうのでいいのかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head></body>
<p><script type="text/javascript">
var map = {NAME:'だれか', BR:1, DATE:'2007.5.7'};
var str = '名前:%NAME%%BR%投稿日%DATE%';
var out = str.replace(/%([A-Za-z]+)%/g, function(a, b) { return map[b]; });
document.write(out);
</script></p>
</body></html>
17 :
Name_Not_Found:2007/05/07(月) 21:52:41 ID:eS2VgYsa
STATE1:<select name="state1">
<option value="E R R O R">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
STATE2:<select name="state2">
<option value="E R R O R">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
という様に変数を2つ作り
ボタンを押すと2つの数値の合計をページ上のどこかに表示したいのですが
どういう風に書けばいいでしょうか?
コピペしたいのでアラートは避けたいです
>>17 それぞれのselectの選ばれている番号は
document.forms.フォーム名.elements.state1.selectedIndex
等で取得できるから。足すのは「+」だよな。表示するのも
フォームの適当な入力欄にするのなら
document.forms.フォーム名.elements.部品名.value = 結果;
でいいんでないの。あとは自分で好きなように組み合わせると。
>>18 ありがとうございます
今からやってみます
だからやってから書けと。
どうせできなくて再質するんだからな。
>>17だけど
>>18まで書いてもらったら自分で試行錯誤するよ(;´A`)
実際試行錯誤して出来たし
一体何をそんなにグチグチしみったれたこといってるんだかwwwwww
はいはい
>>18-23 あんたたち架空のコードで議論かい?formなんてどこにもないやん。
nameがそもそもまちがいだな。
26 :
25:2007/05/08(火) 11:30:17 ID:???
s/17/18/orz;
煽るだけでスレに貢献しない人はスルーということで。
>>1.(treetype branch No.)
>厳密な言語仕様はECMA-262.ed3
ECMAが標準化しているのは規格であって言語の仕様ではない。
うーん、「厳密な規格」かなあ?なんと書いたらいい?
NetscapeもMSも正確なReferenceとしては役に立たないので
何かそういうことを表すものを
>>1 に入れたいわけで…
>>28 アホですか?どちらのベンダもその「規格」に準拠、つまり、仕様とみなしていると明言しているだろ。
ベンダーが集まって標準化・規格化したんだよね。仕様化じゃないね。
>>30 こうゆう議論はあんたのような粗雑なアタマでは無理。技術分野での
規格と仕様の区別くらいつけてからモノ言えよ。
各ベンダーが作っているのは各ベンダーの仕様。だからこれはbugです
か?仕様ですか?という議論になる。
しかし、ECMAScript(そういうものがあったとしてだが)に対して、
そういう議論はできない。独自拡張仕様についてのレベル止まりだから。
まあ議論はやりたい人でやってくれていいから、次テンプレで何と
書くかの案をまとめたい。「厳密な規格」とかでどう?
それとも「標準規格」とかの方がいいかな?
35 :
34:2007/05/08(火) 18:47:18 ID:???
訂正
このサイトのように
>>34 その文字を
<span onmouseover="出す操作" onmouseout="消す操作">■</span>
みたいにspanで囲んでイベントハンドラつける。ポップアップ
出したり消したりする方は説明めんどいから検索して勉強してよ。
勉強して分からんことがあったらまた質問してくれていいから。
>>37 糞スレ。洩れはマジメな質問したけど、ロクに回答なし。素人の集まりと見た。
なんだかんだ言っても、JavaScript関係ではこのスレが一番
レベル高いと思うよ。糞だとか煽る奴はそりゃ常にいるけど。
すいません、超初心者です
質問内容は
JavaScriptのロゴ無いんですか?
ってこと。
これ分かるヤツいる?
そもそもロゴのある言語ってlogoくらい?
DBから取得した文字型の配列データを、
文字列の連結や切り取り、置換などをしてHTML出力したいんですが、
サーバ側では配列データを取得する処理だけ記述し、
あとの文字列系の処理を全てJavascriptで行うことは可能でしょうか?
それと可能だとしたらどのような組み方になるんでしょうか
javascriptのことは全く知らないのですが、文字処理関数などを作っておいて、
毎回それに飛ばしてからHTMLにout.printするような感じでしょうか?
>>44 JavaScriptで受け取れるのは文字列だけなので、サーバー側からテキストで吐いてやるしかないかと
最初から配列(オブジェクト)として処理させるのなら、JSON、XML、CSVみたいな形式が扱いやすいです。
文字列の置換・連結・削除もできますし正規表現も使えます、それを出力するのはinnerHTMLやらDOMでどうぞ。
>>46 ありがとうございます。
オブジェクトの受け取りは出来ないんですね、JSONなど知らないこともあったので勉強になりました。
テキストの吐き出しは少し負荷が多そうなので、
配列を文字列単位で分解し、JSで記述した関数の引数で受け取るようなHTMLをループで吐き出すようにしてみます。
48 :
Name_Not_Found:2007/05/09(水) 13:59:10 ID:TVZ63q+K
ウェブサイトの翻訳などを行っている者です。 JavaScript よく知らないのですが
教えてください。
JavaScript の 「サイト内検索」 機能で日本語の検索に対応した
使いやすいサンプルをご存じありませんか?
>>48 ブラウザ上のJavaScriptでは、現在ブラウザにある「見ているページ」
の内容にまでしかアクセスできない。だから「ページ内検索」はできる
だろうけど(ブラウザのページ内検索の方が簡単そう)、「サイト内検索」
はできないでしょ。つかサーバ内には手が出せないので。
51 :
Name_Not_Found:2007/05/09(水) 14:32:57 ID:TVZ63q+K
すみません。
>>48 です。
//kryogenix.org/code/browser/searchhi/
を基に作成されたもののようなのですが、日本語対応させている人が
いるようなのでもう少し調べてみます。有り難うございました。
>>48 JavaScriptで何ができるか、それこそグローブ内検索をかけてみたの?
>>50 いや、サイト内検索は出来るよ。
サイト内のファイル一覧があれば、という条件付だけど。
>>53 ふーんそうなんだ?そのファイル1個ずつ順番にGoogleに渡して
探したりするの?それだと遅くないのかな…そうか、Googleに
ファイルのリストとしてまとめて渡すってことか?
ってか、重くないの?
全部なめる感じがするから重いイメージがするんだけど。
XMLHttpRequest?
>>55 え、重いとダメなの?
早く言ってくれなきゃ困るなぁそういうことは。ちゃんと最初から
「Googleより高速なサイト内日本語検索機能をJavaScriptで作って!」
って書かないと。
( ´ω`)
>>55-59 なるほどできるけど遅い… 洩れが想像した方向:
(1)GoogleにURIのリストを渡す
(2)Googleがせっせとインデクスをつけてくれる
(3)以後同じURIのリストを指定した検索はインデクスを使って即決!
そういうサービスはやっぱしないんだね ^_^;
>>58 保険会社向きだな、おまえ。何でこんな所にいる。
お客様のおっしゃった要件を 迅速に、確実に100%実現します。
(ただし、望んだものではない)
63 :
Name_Not_Found:2007/05/09(水) 17:59:55 ID:yWeaidoI
javascriptのイベントで質問なんですけど、
var AAA = function() {
this.x = 'aiueo';
}
AAA.prototype.method = function() {
Event.observe($('id'), 'click', function(event) {
alert(this.x);
}
}
window.onload = function() {
var aaa = new AAA;
aaa.method();
}
例えば上のようにprototype.jsでイベントを振ると、
イベントが呼ばれた時にthis.xが参照できません。
これってどうやって回避すればいいんですかね?
>>63 FAQ嫁。
>>4 てかPrototype.jsならそれようのメソッドも用意されてるだろうに。
65 :
Name_Not_Found:2007/05/09(水) 18:12:57 ID:yWeaidoI
ほんとだ、もろに書いてありました・・・。どうもすいません。
66 :
Name_Not_Found:2007/05/10(木) 03:23:34 ID:tZJGuF8+
なんかうごかねーと思って色々試してたんですが、
もしかしてIEだけ配列のpop.push.shift,unshift使えない罠ですか?
キュー作りたいんですけど、手動で新しい配列用意するしかないんですかね・・・
67 :
Name_Not_Found:2007/05/10(木) 03:27:18 ID:5XxBD+ew
エレメントを消したり出したりしたいのですが
visibilityをhiddenにするだけでは、
見た目が消えるだけでその領域はとられています。
領域も消したい場合はどうすればいいですか?
display
>>70 そのアンタが挙げたURIはサーバ側でやっているね。しかし
サーバ側に仕込まなくてもサーバ側でさまざまな内容をすべて連番の
HTMLに入れておいてそこからランダムに取り出す方法でもできる
とは思うよ。どういう条件が必要?iframeでよければ簡単だよね。
73 :
Name_Not_Found:2007/05/10(木) 19:55:40 ID:Wki/arOl
IE限定でブラウザのフルパスを取得する方法があったと思うのですが
忘れてしまいました。ActiveXObjectやらshell.applicationやら
なんやらで抜いてたような気がするんですが。
だれか知ってたらおせーて
var str = window.opener.form.name.value;
上記のnameの部分を変数で扱いたいのですが、何か手段はありますでしょうか。
文字列の足し算にしてみる等の手段をやってみましたが、ただの文字列になってしまうようでだめでした。
75 :
74:2007/05/10(木) 20:31:39 ID:???
すみません。適当にいじってたら、form[name]とすることで解決しました。
浅薄さでスレ汚ししてすみませんでした。
77 :
74:2007/05/11(金) 01:03:21 ID:???
阿呆とはなんですか?
浅薄さでスレ汚ししてすみませんでした、と謝ったじゃないですか。
こんな人がいる板ならもう来ません。
>>78 ブラウザの設定でJavaScript OFFにしてるとかじゃないの?
広告が入ったページが非常重いので、全体の表示が乱れてしまいます
そのページだけインフレームに入れて
そのページを遅らせて読み込みなんて出来ませんかね?
>>82 ここで聞く前にソース見たか? onmouseover="highLightScrollDownArrow()"
>>83 できるだろうね。JavaScriptを使うならXMLHttpRequestでがんがれ。
85 :
Name_Not_Found:2007/05/11(金) 10:37:25 ID:Hm+RTwhw
こんにちは
突然の質問ですみません
どなたか
/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
という正規表現を日本語に訳してください。
おねがいします。
そういうスレじゃねえし。
つーか文面から、マルチ臭いな。
つか、メルアドだろうけど正規表現まちがってね?
88 :
Name_Not_Found:2007/05/11(金) 12:30:38 ID:jaJl0S9S
メルアドじゃねーだろ。
<:=>@@@@@@@@@@asdfghjk(-_-;)
とかにマッチする何かだ。
iオプションからして素人の書いた糞正規表現ってとこだな。
90 :
87:2007/05/11(金) 13:52:38 ID:???
>>88 だからそのメルアドがまちがっていると言っている。
そいつと地獄の果てまで散歩する気か、アンタ。
要するに「+」の意味が分かっていないんだな、アンタと同じで。
]+@+[ < ケンカハヤメテクダサイ
]+.+[ < オネガイシマス
>>82 こういう感じ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
#d0 { height: 4em; width: 20em; overflow: hidden; position: absolute }
#d1 { position: relative }
</style>
<script type="text/javascript">
var top = 0, dy = 0;
function mv(d) { dy = d; }
function step() {
window.status = top;
if(dy == 0) return;
var elt = document.getElementById('d1');
elt.style.top = (top += dy) + 'px';
}
</script>
</head><body onload="setInterval(step, 20)">
<p><span onmouseover="mv(-1)" onmouseout="mv(0)">↑</span>
<span onmouseover="mv(1)" onmouseout="mv(0)">↓</span></p>
<div id="d0"><div id="d1">
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
</div></div></body></html>
95 :
70:2007/05/11(金) 15:44:29 ID:/Vt0iOUl
>>72 ありがとうございます、イメージが沸きました。
96 :
87:2007/05/11(金) 16:20:12 ID:???
97 :
Name_Not_Found:2007/05/11(金) 16:38:49 ID:zvtGLlyf
オマエモナーだって
∧_∧
( ´∀`)
( )
| | |
(__)_)
99 :
87:2007/05/11(金) 19:29:46 ID:???
∧_∧
( ´∀`)
/⌒ゝ ヽ丶⌒。ヽ
>>94 オマエモナー
丿ヽ。丿⌒ ヽ⌒ヽ\
/( /ゞ 《 M.》丿丿\
丿 /\ \\ ヽ ) 丿ヽ(
/ / ノ ノ | ヽ )ヽ_レ
ノ 丿⌒⌒彡// ヽ 丿\|ミ
\( / 丿~( \
<__/ ゝ__>
ヽ ソ ゞ 丿
_) ノ ヽ (_
(__ヽ) (ゝ__)
正規表現なんですけど、変数に文字列が入っているとします。
その文字列そのものを検索するにはどうしたらいいですか?
a = ".";
x.match(a);
例えばこれで任意の一文字でなく「.」そのものを探すようにしたい。
aには何が入っているかわからないものとします
102 :
Name_Not_Found:2007/05/11(金) 20:11:57 ID:ai/HnpCT
0.06 + 0.01 を普通に計算させたんですが、0.07になりません。
ショックです。こんな計算しててよく月まで行けましたね、人類。
どうやったらまともに計算結果を返してくれるんですか?
月なんていってないよ、あれは偽の映像。しらなかったの?
>>102 100を掛ける。
余談:ゲーム等で処理を高速化するために
三角比を10度毎くらいでテーブル作って更に1000くらい掛けて小数点以下切り落しちゃったりする
>>102 FAQ
>>4 のQ11-A11 を読め。
>>100 特殊文字を解釈させずに位置を調べたいのなら x.indexOf(a) の
方がよっぽどいいんじゃねの?
106 :
Name_Not_Found:2007/05/11(金) 21:50:11 ID:qVhAZ8Xs
すいませんが、画像をチェンジさせるプログラムについて質問させてください。
<body onLoad="imginit()">
<a href="●" onmouseover="alternate('alti',0")>
<a href="▲" onmouseover="alternate('alti',1")>
<a href="■" onmouseover="alternate('alti',2")>
function imginit(){
altimg=new Array;
altimg[0]=Image(570,200);
altimg[0].src="hoge1.jpg";
altimg[1]=Image(570,200);
altimg[1].src="hoge2.jpg";
altimg[2]=Image(570,200);
altimg[2].src="hoge3.jpg";
}
function alternate(ID,numx){
if(ID=="alti"){
document.getElementById(ID).
src=altimg[numx].src;
}
}
ページを完全に読みこんだ後、●▲■にonmouseしてもエラーは出ないのですが、
読みこむ前にonmouseしてしまうとaltimgが宣言されていないというエラーが出てしまいます。
いずれにせよ動作はしますが、どうすればエラーを回避できますか?
>>106 適当なフラグの変数を用意し、最初はfalseに。imageinit()
が終わったらtrueにする。alternateではフラグが立ってなければ
何もしないでreturnさせる。
108 :
102:2007/05/11(金) 22:25:14 ID:???
>>107 ありがとうございます。
考え方としてはなんとなく分かるのですが、実際にどうすれば良いか分かりません。
本当にすいませんが、良かったらもう少し教えて下さい。
>>109 (1) コードの先頭に
var ready = false;
(2) imageinit()の一番最後に
ready = true;
(3) alternate()の一番最初に
if(!ready) return;
>>110 色々ありがとうございます。出来ました。
>>104 固定小数点というのを教えた方がより汎用的じゃないか?
漏れの喰らい餡斗はIE専。固定小数点の話はよしてくれ。
>>113 固定小数点というのは整数だけ使って小数点つきの数を
扱っている「つもり」になる方法というべきかな。
たとえば、すべての数値を小数点以下3桁であるものとする。
1.111 + 2.222 = 3.333 みたいに。実際には整数のみで
1111 + 2222 = 3333 のように演算する。加減算はその「つもり」
だけでいいけど、掛け算割り算は
1000 * 2222 = 2222000 →最後の3桁を削除して 2222 で
1.000 * 2.222 = 2.222 みたいに操作しないといけない。以上。
スレ違いかもしれませんが、質問させてください。
CSVのデータを基にして、IEのデータバインド機能で画像を5列に表示
したいと思います。CSVファイルには画像パスのリストがありますが、
実際の画像ファイルの格納場所は、画像を表示するhtmlファイルと同一です。
そこで、以下の例のように一旦データバインドでCSVを
リスト表示した後、javascriptで画像のパスを書き換えて、テーブル5列で
imgタグを再表示しています。ただ、この方法ですと一旦CSVリストが表示
されてしまう上、画像表示するまでタイムラグが生じます。
もっとシンプルで良い方法があればご教授頂けないでしょうか。
尚、サーバ側のプログラム、機能は利用できません。ブラウザはIE6、
OSはWindows XP限定です。
116です。サンプルは以下の通りです。
■htmlファイル
<html>
<head>
<title>サムネイル</title>
<object id="DATA" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="data.csv"></object>
<script type="text/javascript">
function func() {
var id="id"; var thum="thum"; var taglist=new Array();
if (document.all.item(id).length) {
for (i = 0; i < document.all.item(id).length; i++) {
document.all.item(thum, i).innerText.match(/^\/images\/thumbnail\/(.*)$/);
tag="<img src=" + RegExp.$1 + ">" + "<br>" + document.all.item(id, i).innerText;
taglist[i + 1]=tag;
}
}
document.write("<table border=0>");
for(i = 1; i < taglist.length; i++) {
String(i / 5).match(/^(\d+)(\.*\d*)$/);
if (i == 1) { document.write("<tr>"); }
document.write("<td>" + taglist[i] + "</td>");
if (! RegExp.$2) { document.write("</tr><tr>"); }
}
document.write("</tr>");
document.write("</table>");
}
</script>
</head>
116です。長くてすみません。
<body onLoad='setTimeout("func()",0)'>
<table datasrc="#DATA" border=0 width=100><tbody>
<tr><td id=id><span datafld=Column1></span></td>
<td id=thum><span datafld=Column2></span></td></tr>
</tbody></table></body></html>
■CSVファイル
111,/images/thumbnail/aaa.gif
222,/images/thumbnail/bbb.gif
333,/images/thumbnail/ccc.gif
...
119 :
Name_Not_Found:2007/05/12(土) 14:42:48 ID:KF62tpIM
すみません。質問です。
<script language="JavaScript">
<!--
function historyPageBack0() {
document.formHistory0.submit();
}
function historyPageBack1() {
document.formHistory1.submit();
}
function historyPageBack2() {
document.formHistory2.submit();
}
//-->
</script>
とheaderで定義してbodyで
<a href="Javascript:historyPageBack0()">→0ページに移動</a>・・・・
とリンクをはったページを作ったのですが、
historyPageBack1()だけが作動しない。(firefox1.5.0.11の場合)
全てが作動しない。(safari2.0)
という状態になってしまいます。一体何が問題なのでしょうか?
ちなみにfirefoxのjavascriptコンソールでは
document.formHistory1.submit is not a function
というエラーメッセージが表示されています。
もしご存知の方がいらっしゃったら教えていただければと思います。
(______________ J
そ 君 (__ ┌―‐―┐ ) き
ん ! (_ |`l TT了| } ゃ
な (_ j .| .|:| .l | / あ
か 待 (_ | | .|j .j | イ |
. っ ち (,_ |.| .|l .|:| ,. -‐ /_. っ
こ た ( |.|. |! |/ / !
う ま (` `ー /..:::::\≧,,,、:::7___
で え (― わしが育てる .―(:::::::>'´ == \::⌒l^⌒
_ (⌒ ̄ ____  ̄ ノ く彡/// ∪,ノ ;|
.レ⌒Y^'⌒`\__/__.))ノヽ__く:::::∧ '_,. -、 く/::::::::/
|:::| \xく |ミ.l _ ._ i.) \:::::l、ヽ ,ノ \,,∠,,__
\|:::| _,....!,,_ \(^'ミ/.´・ .〈・ リ lF〒`ヾ.\,,..イ |::::::::,
`7´ _,,.ィ .しi r、_) | | || _,..-/7゙h _|:::::://
\.{n|.ィァ it} | `ニニ' / r'"三¨7´\| |´.|:::://
|:::トl、 rュj | `ー―i´ / ゚`.|n./ .イl ,∧ |:://
|::,| 'ーケトr'TTlイ /_`ヾtっ r'l゙ /⌒`lくミV /
,r1´|`'六´ //` ̄´ `Y´ |└┬シj ./ 7ヽ〈 /ヾ)<
./ | ∨|::|∨ ! { r ,、 _,シ /゙丁〈 / } { { \
| ',|::|/ ! ,ゝ-< ( / .| |/ ∧ \|
l .Y。 .| |` 〃 ̄ ̄⌒ / 〈 /! ', __,,....::-‐
.∧. |。 { ゙爪` ' ‐- 、..,,,...イ '、 / .| `|::::::::::::::::
\/ l |。./ ,l | l, .| . || `'ー' i | j:::::::::::::::::
ヽ、`'::、L.∧/ / |.{ u 〈.| イ 〈 /::::/:::::::::::
::::::::`ヽ、 ∨ / ̄| | 、 / l:l. | j /::::/:::::::::::::
:::::\::::.....  ̄`| l | (U) .l:l// l| ∨:::/::::::::::::::::
if(typeof cock=='object')
{
replace(/^(U)$/, '(Ω)')
}
>>119 (1)その省略記法をやめて
document.forms.formHistory0.submit();
等とする。
(2)HTMLが貼ってないが1つだけ動かないというのはform要素で
指定しているnameが違ってるとかじゃないの?
123 :
119:2007/05/12(土) 18:15:08 ID:KF62tpIM
>>122 ありがとうございます。
でも(1)の省略法を使っても、改善されませんでした。
また(2)ですけど、上で書いたjavascriptもその後の<form name=・・・>・・・</form>
も全てphpで自動作成させてあるので、スペルミスではないようです。
(念のためブラウザでみたページを保存して、Goliveで開いてみましたが、
スペルミス等見当たりませんでした。)
一体他にどんな原因が思い当たるでしょうか?
何度も申し訳ありませんが、よろしくお願いいたします
>>123 じゃあそのHTMLを全部保存して現象が再現する最小限のもの
になるよう削ってから貼って。面倒なら別に無理にとは言わんけど。
125 :
Name_Not_Found:2007/05/12(土) 19:37:09 ID:W2iMtGol
質問です。
img = new Image (138,52);
として画像の大きさを指定しているのですが反映されません。
この書き方はできないのでしょうか。IE7です。お願いします。
>>125 そういう方法で画像の大きさを指定できるなんて聞いたこと
ないなあ。どこで調べたの?あんたの脳内リファレンス?
>>125 それは描画に反映させるための指定じゃないよ。あらかじめサイズをJS処理系にほのめかしておくだけで、ほとんど意味は無い。
>>126-127 そうだったんですか!? 勘違いしていたようです。でも何かの解説本で
確かに読んだような・・・ありがとうございました(spcial thx to
>>127)。
129 :
119:2007/05/13(日) 14:42:24 ID:gtSvFLDO
>>124 一応下のようなページです。
<html lang="ja">
<head>
<title>材料性質作成-入力値確認</title>
<script type="text/javascript">
<!--
function historyPageBack0() {document.forms.formHistory0.submit();}
function historyPageBack1() {document.forms.formHistory1.submit();}
function historyPageBack2() {document.forms.formHistory2.submit();}
//-->
</script>
</head>
<body bgcolor="#ffffff" text="#505050">
<font size="-1"><a href="Javascript:historyPageBack0();">
→材料検索</a></font>
<font size="-1"><a href="Javascript:historyPageBack1();">
→検索結果</a></font>
<font size="-1"><a href="Javascript:historyPageBack2();">→アクリルウレタン系シーリング材 (2成分形)</a></font>
<form action="/p/l/zaiGai/zSNMain.php" method="post" name="formA">
ページ本体
</form>
130 :
119:2007/05/13(日) 14:43:30 ID:gtSvFLDO
つづき
<form action = "/p/k/search/zaiGai/search.php" method="post" name="formHistory0">
<input type="hidden" name="historyCount" value="0"></form>
<form action = "/p/k/search/results.php" method="post" name="formHistory1">
<input type="hidden" name="historyCount" value="1"></form>
<form action = "/p/k/search/detail.php" method="post" name="formHistory2">
<input type="hidden" name="targetTable" value="zaiGai">
<input type="hidden" name="historyCount" value="2">
</form>
</body>
</html>
131 :
119:2007/05/13(日) 14:44:24 ID:gtSvFLDO
ちなみにprototype.jsなんかも読み込んだりしてます。
133 :
Name_Not_Found:2007/05/13(日) 22:30:42 ID:TKkgeO82
質問です。
ar=[1,2,3,3,3,4,5,5,6,7,7,7,];
から重複を除去して
ar=[1,2,3,4,5,6,7];
の配列を得るにはどうすればいいですか。
3個以上の重複除去の仕方がわかりません。
>>133 var map = {}, ar1 = [];
for(var i = 0; i < ar.length; ++i) {
if(!map[ar[i]]) ar1.push(ar[i]);
map[ar[i]] = true;
}
ar = ar1;
試してないけど。
最初から昇順に整列されてるなら
for(var i=ar.length - 1; i >= 1; i--) {
if(ar[i] == ar[i-1]) {
ar.splice(i, 1);
}
}
試してないけど。
136 :
119:2007/05/13(日) 23:17:24 ID:gtSvFLDO
>>132 一応AタグにはonClickなどつけてないのですが。
>>136 しまったそうだね。しかしあの状態で問題ありなの?
prototype.jsを読ませなくても問題あり?
139 :
136:2007/05/14(月) 00:23:58 ID:cNaUpvRL
>>137 >>138 やっぱ他の状況(prototype.jsとか)を外してから再度確認してみる。
とりあえず、上にのせたページは基本的に問題ないってことなんだね。
ありがと。参考になった。
結果またココに書くね。
>>133 > 3個以上の重複除去の仕方がわかりません。
Array#splice()は破壊的なのでそうなる。
for (
let [i, o] = [0, {__proto__:null}];
i < ar.length;// ar.length は変化するから一々取得する。
// 常にi++するわけではないからここには式を書かない。
) {
if (o[ar[i]]) ar.splice(i, 1);
else {
o[ar[i]] = true;
i++;// この条件の時だけ増やす。
}
}
>>133 一度に複数を除去すれば、こうも書ける。
for (let i = 0; i < ar.length; i++) ar.splice(i, ar.lastIndexOf(ar[i]) - i);
あるいは、Array#splice() を使わずに、こうも書ける。
ar.forEach(
function (n, i, ar) {this[n] ? ar[i] = undefined : this[n] = true;},
{__proto__:null});
ar.sort(function (a, b) {return a - b;});
let (L = ar.indexOf(undefined)) {if (L != -1) ar.length = L;}
非破壊的ならば、こう書ける。
let anotherAr = Array.map(ar.join('').replace(/(.)\1+/g, '$1'),
function (n) {return Number(n);});
最終的には、計時して、実行速度が速いものを使えば良いと思う。
まあ、どうせ、実行速度に関係なく、4つのうち、一行で書いた物が好まれるのだろうが……。
「分かりやすいものが」好まれるんじゃないの。要素数が10万とか
あるならともかく、数個や十数個なら効率を気にする必要ないでしょ。
しかしjoinしてregexpで重複除去とはなるほどね…
二桁の数字のこともたまには思い出してあげてください
そりゃ別に次のようにすりゃいいじゃん?
Array.map(ar.join().replace(/([0-9]+)(,\1)+/g, '$1').split(','),
function (n) {return Number(n);});
1,2,12
つか135がベストだろw
>>145 要素数が10くらいならどうでもいいが、少し大きくなると
1つずつspliceするのは重そうだねえ。以下で計ってみたけど
splice版が3279msec、代替案が64msecだった。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div><script type="text/javascript">
var ar = new Array(10000);
for(var d = 1, i = 0; i < 10000; ++i) {
ar[i] = d; d += Math.floor(Math.random()*2);
}
document.writeln(ar.join(' '));
document.writeln('<br><br>------------------------------<br><br>');
var t1 = new Date().getTime();
/*
for(var i=ar.length - 1; i >= 1; i--) {
if(ar[i] == ar[i-1]) ar.splice(i, 1);
}
*/
for(var i = 0, j = 1; j < ar.length; ++j) {
if(ar[i] != ar[j]) ar[++i] = ar[j];
}
ar.length = i + 1;
var t2 = new Date().getTime();
document.writeln(ar.join(' '));
document.writeln('<br>------------------------------<br>' + (t2-t1));
</script></div>
</body></html>
ついでに
>>144 も計測してみたが139msec。意外と実用的だよね。
対象となる数値の上限が100くらいと決まっているのなら
上限値の配列を作って、数値があるときは配列要素にフラグを立て
あとから、配列をチェックしていくというのが、現実的で一番速いはず。
>>148 なるほど確かに。100といわず10000くらいまでいいんじゃないの?
コードが少し長くなるね。
そういう用途ならorcasheだろ。
ar=[1,2,3,3,3,4,5,5,6,7,7,7,];
var orcache = new Array();
for (i in ar){ orcache[ar[i]] |= ar[i]; }
alert(orcache);
と思ったが、頭にundefinedが入るな...なんだこりゃ?
頭は0番目だから?
152 :
150:2007/05/14(月) 16:55:36 ID:???
あ、そうか。引き数が整数だと、連想配列にならず配列になるからだな。orz...
さらに、よく見たら ||= もないし。というわけで、
ar=[1,2,3,3,3,4,5,5,6,7,7,7,];
var orcache = [], a = [];
for (i in ar){ orcache[ar[i]] = orcache[ar[i]] || a.push(ar[i]); }
alert(a);
<html>
<head>
<script type="text/javascript">
function f() { document.f1.test.value=5; document.f2.test2.value=5;
document.forms.f2.elements['test2'].value=5;
}
</script>
</head>
<body onLoad="f();">
<form name="f1"><input type="hidden" name="test" value="0"></form>
<form name="f2"><input type="text" name="test2" value="0"></form>
</body>
</html>
上記のようなスクリプトで、見た目上はtest2のvalueが5に変わったように見える
のですが、ソースを開いたときvalueの値を5に変更することは不可能ですか?
>>3の
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
に類似する内容かと思ったりして色々試したのですが、解決策が見つかりません。
javascriptがクライアントサイドで動作するから無理なのでしょうか
<html>
<head>
<script type="text/javascript">
function f() { document.f1.test.value=5; document.f2.test2.value=5;
document.forms.f2.elements['test2'].value=5;
}
</script>
</head>
<body onLoad="f();">
<form name="f1"><input type="hidden" name="test" value="0"></form>
<form name="f2"><input type="text" name="test2" value="0"></form>
</body>
</html>
上記のようなスクリプトで、見た目上はtest2のvalueが5に変わったように見える
のですが、ソースを開いたときvalueの値を5に変更することは不可能ですか?
>>3の
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
に類似する内容かと思ったりして色々試したのですが、解決策が見つかりません。
javascriptがクライアントサイドで動作するから無理なのでしょうか
すみません、二連投してしまったようです(;´Д`)
ソースが書き換わっていたら問題だと思うんだが
なるほど・・・やはり無理っぽいですね。ありがとうございます。
158 :
Name_Not_Found:2007/05/15(火) 07:55:42 ID:xpaGCctn
質問です。
数万件の要素をもっているXMLをjavascriptで読み込んでHTMLを構築するようにしたいのですが、
素直にPHP+DBを使ったほうがいいでしょうか?何か問題点などあれば教えていただければと思います。
javascriptからのXMLデータ操作は「要素の数件ずつ表示」のみで、検索やソート・データの追加・更新はありません。
>>158 1件あたりのデータ量による。数バイトならいけると思うよ。
1キロバイトあるなら合計で数ギガバイト。それをメモリに持ったまま
ヨタヨタ走られたらユーザはキレるでしょ。簡単な算数の問題だと思う。
しかしそういう時こそAjaxじゃないのかなあ。
160 :
Name_Not_Found:2007/05/15(火) 09:33:09 ID:UFqFA84J
質問させてください。
以下のようなスクリプトで、プルダウンを選択するごとにinnerHTMLでタグを入れ替えたいと思っています。
プルダウンで選択されるごとに別々の変数を呼び出したいのですが、変数名がテキストとして呼び出されてしまいます。
すみませんが、どなたか間違っている箇所をご指摘いただけないでしょうか・・・
<html>
<head>
<script type="text/javascript">
function go(obj){
document.getElementById("contents").innerHTML = obj;
}
cts1 = "<p>いいいい</p>";
cts2 = "<p>うううう</p>";
cts3 = "<p>ええええ</p>";
// -->
</script>
</head>
<body>
<form name="ctschg">
<select class="title-select" onchange="go(this.value)">
<option value="cts1">シリーズタイトルその1</option>
<option value="cts2">シリーズタイトルその2</option>
<option value="cts3">シリーズタイトルその3</option>
</select>
</form>
<div id="contents"><p>あああああ</p></div>
</body>
</html>
>159
>1キロバイトあるなら合計で数ギガバイト
メガでなく?
>>162 ごめん自分で計算間違いしてる… 欝だ氏(以下略)
どんなHTMLを生成するかにもよるわな。
それだけの情報じゃ何とも言えん。
165 :
Name_Not_Found:2007/05/15(火) 13:53:52 ID:FgUUqyXj
var list = "phone numbers that contains *under* 8 letters.";
で ( txt.match(/*(.+?)*/ig) としたのですが、underが取り出せ
ません。どこがいけないのでしょうか。ご教示ください。
*じゃなくて\*な
>>165 「*」は特別な意味がある文字だから「\」を前につける必要あり。
しかし自分で「+」を使っていながら「*」はそのままって…
168 :
165:2007/05/15(火) 14:22:48 ID:FgUUqyXj
>>166,167
ありがとうございます。
'/\*(.+?)\*/ig'としてみたんですがブラクラしてしまいました。
バッチリとunderが出る書き方を教えてください。お願いします。
その「?」は何のためにあるの?
170 :
165:2007/05/15(火) 14:55:07 ID:FgUUqyXj
>>169 ありがとうございます。**ってことを考慮してです。
>>170 それなら「.*」(任意文字が0個以上)とした方がいいのでは。
さらにいうなら、任意文字ではなく「*」以外の文字なんだから
「[^*]*」の方が適切かと。しかし完っっっっっ全にスレ違いだな…
>>171 何でそんなにつらく当たる。質問者は聞かれたから答えただけだろ。
お前みたいなクズがこのスレを汚くしているんだ。分からんか。
しかし完っっっっっ全にスレ違いだな…w
>>174 (==
>>171) ゲス。
何でそんなにつらく当たる。質問者は聞かれたから答えただけだろ。
お前みたいなクズがこのスレを汚くしているんだ。分からんか。
しかし完っっっっっ全にスレ違いだな…w
>>172 適切に書けば最長一致で ** はマッチするんだから [^\*]* じゃなくても良いでしょ。
>>177 うーん、/.../ig だから「*...*」が複数埋まっているんではと
洩れは思ったんだが違うのかな。まあ質問者が決めることだね…
>>174=171=176 クズ決定。恥を知れ、ヴォケ
スレの無駄遣いやめて欲しいんですけど。2ちゃんだから煽る奴
だってそりゃいるだろ。スルーしてこそまっとうなチャネラーと
いうことでよろしく。次の質問どぞー。
なんだ中学生か
どこにもいるよな。不和ムードになると正論吐きに出てくるヤシ。何様?
俺様
殿様
雅子様
ママー!ね、ちょっと来て見てよ、ここ。おもしろいよー。殿様だって。
187 :
Name_Not_Found:2007/05/16(水) 08:25:02 ID:rB362DYQ
質問です。
http://www.res-system.com/weblog/media/1/dragdrop.html のソースについてです。
onload=function () {
if (document.all) {
objlist = document.all.tags("div");
} else if (document.getElementsByTagName) {
objlist = document.getElementsByTagName("div");
} else {
return;
}
という関数についてなのですが、
1、onload=function () {
という関数宣言はどうして可能なのでしょうか?
自分の持っている本には、
「イベントハンドラ名をプロパティのようにして使用する。
また、関数そのものではなく関数のリファレンスを使用する。」
とあります。
2、if (document.all) else if (document.getElementsByTagName)
とあるのはどうしてでしょうか?
ブラウザの違いを区別するためでしょうか?
3、objlist = document.all.tags("div");とありますが、
変数objlistには
<div style="position:absolute; top:100px; left:200px; width:200px; height:50px; padding: 5px; border:1px #000000 solid; text-align: center; cursor: move; background-color: #eeeeee;">
Web Artisan Blog
</div>
の内容が代入されるのでしょうか?
>>187 1. その本の説明と掲示コードとは関係ない
2. YES
3. hint: 要素を複数集めている
>>188 お返事ありがとうございます。
1についてなのですが、
ドキュメントがロードされたときに
function () { ...
が実行されるという解釈はあっているんですよね?
この辺の関数(無名関数とか)の書き方を詳しく
解説しているところはどこがありますでしょうか?
3についてなのですが
else if (document.getElementsByTagName) {
objlist = document.getElementsByTagName("div");
alert(objlist);
とやってobjlistの内容を表示させようとすると、
[object HTMLCollection]
と表示されるのですが、
alert(objlist[0]);
とやると
[obkect HTMLDivElement]
と表示されます。
いままでをobjlistを 変数と思っていたのですが、
ソースには変数宣言しなくていきなりobjlist とあります。
そもそもobjlist とは何なのでしょうか?
>>189 言語リファレンスを読みましょう。基本です。
>>1に[必読]と書いてあるアンカーがあります。
>>190 すいません、あちこちググったのですが、
やはりobjlistについての解説はありませんでした。
どこに書いてあるかだけでも教えていただけないでしょうか?
>>191 あちこち検索する前に、きちんと紹介した文章を読みましょう。
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide 答える側には、あなたに何が不足していて、何を理解していないか、だいたい把握できます。
あなたの場合は、グローバル空間での変数についての詳細が理解できていない様です。
そして、その答えは、提示したリファレンス(コア ジャバスクリプト ガイド)に系統立てて解説されています。
おそらく、次に必要なのは、DOMのリファレンスでしょうが、それも、テンプレの
>>6 にあります。
グローバル空間で、突然出てくる、onloadが、何を意味し(ガイドを読めば理解できます)、
では、window.onload は、どう言う条件で呼ばれるのかは、次の段階の、DOMリファレンスを読めば書いてあります。
objlist なる配列を参照する変数に関しても、その過程で理解できるでしょう。
(ガイドの配列や変数、参照、DOMリファレンスのgetElementsByTagNameの返り値を読めば理解できます)
それでも理解できないなら、また、どうぞ。まずは、指摘された事をしてから、次の質問を。
こう言う長い話を、2ch風に、短く表現したのが、
>>190 です。理解できましたか?
192に敬意を示して教えないことにする
>>192 わかりました。
「単に値を代入する。例えば、x = 42。これはいつでも グローバル変数 を宣言できるが、厳密な JavaScript 警告が発生する。この方法は使用すべきではない。」
と書いてありました。
グローバル変数はいきなり宣言してもよいんですね。
初心者用のJavaScript の本に書いてない訳だ。
>>194 >...と書いてありました。
それは間違った説明。JavaScriptの変数宣言は多言語とちがう。
保証されている。
>>194 一応、読んだようですね。
その項目の言わんとしている事は、
var Global_a = 0;
Global_b = 0;
var scope = function() {
var Local = 1;
Global_c = 0;//ここに注目
}
一見ローカルスコープの中に見えますが、Global_cと言う変数が、グローバルスコープになってしまう、という話です。
(さすがに、これはスクリプトの可読性が著しく落ちるので推奨しないという話です。)
推測するに、この項目は、あなたの悩みを解決してはくれないでしょう。
早とちりせずに、ガイドを全て読む事を、勧めます。
実際問題グローバル変数なんてないけどな
えっ?じゃあ、ECMAはうそ言ってるんですか?
誰を信じていいのか分からなくなりました。
自分を信じなされ
201 :
187:2007/05/16(水) 14:00:39 ID:???
すいません、やはり自分は勉強不足のようです。
一度、このJavaScriptの本を全部理解してから、
もう一度出直してきます。
グローバルオブジェクトだっけ。
ECMA今手元にないけど、名指しでwindowオブジェクトを指定していたよね。
var宣言のない変数がグローバルオブジェクトのプロパティになるというのは
仕様書に書いてあった記憶がないけど、見落としてるんだろうな
date.toGMTString() がIE6だと GMT にならず、UTCになってしまいます。
これを getUTCDay などを使って、Cookieのexpiresに使える正しいGMTにすることは出来るでしょうか?
また、それを実現している自作関数があれば教えていただければありがたいです。
よろしくお願いいたします。
クロスブラウザな質問ですいません。。
1: var xmlDoc=originalRequest.responseXML;
2: var hoges = xmlDoc.getElementsByTagName("hoge");
3: alert("hope!!!!");
xmlに含まれる<hoge>内の文書を集めるスクリプトです。IE6/firefoxともに通常は問題なく動きますが、
xml内に<hoge>がなかった場合に、firefoxでは3行目の処理までいかずに、2行目で処理が終了してしまいます。。
IE6.0では問題なく3行目の処理も走ります。
firefoxでも3行目の処理を実行する方法はありますか?xmlDoc.getElementsByTagNameの返り値が帰ってこない?ので困ってます。。
>>202 O'Reilly Book is saying :
Global variables can be simulated by attaching properties to
Object.prototype, as described under Section 12.5.3.5. In Flash 6,
global variables are created on the _global object (which itself
is not part of ECMA-262)
JavaScriptでわざとエラーを起こすのはどうやるんですか?
VBSのErr.Raiseみたいなのですが・・・
JavaScriptでわざとエラーを起こすのはどうやるんですか?
VBSのErr.Raiseみたいなのですが・・・
間違えて2回書き込みました。すみません
throw
catch
strike! batter out!
change
throwというのはtry〜catchの中でしか使えないみたいなんですが
tryの外でも使えるのってないでしょうか・・・?
undefined.a
wazato.Errorwo.Okosu()
var wazato = new Opject();
>>215 try文の外でも別に使えると思うけど?
金魚の糞みたいな回答はやめましょう。ネ申が一発でお願いします。
いやそもそもtry-catchの中でしか使えないなんてどこに書いてある
のかなと思って。ECMA262にはそんな説明ないと思うが。
>>220 単独で使うと
「catch ステートメントでは適用されますが、throw ステートメントでは適用されません」
というエラーが出ます。
IE、というかWindowsのjscript.dllだけかもしれないですが。
つまんないこと聞いていいですか?
DateのgetMonthについてですが
これ、なんで0〜11を返すのですか?
使いにくいだけでメリット無いような気がするのですが、
何か理由があるのでしょうか?
エラーを出すのが目的なんだからエラーがでていいんじゃん?
224 :
Name_Not_Found:2007/05/17(木) 18:52:08 ID:uYvJEYal
単純な質問です。
hoge.jsなどの外部JavaScriptファイルを暗号化して使うことはできるでしょうか?
もちろん暗号化といっても、そこそこJSの知識がある人に簡単に解読されてしまうようなのだと当然だめです。
>>224 当然、実装すれば可能。実装しなくてもSSLを使うという手もある。
で、復号のための鍵はどうするつもり?
>>222 場合の個数が少ないからだと思う。
日付は30以上あって多いけど、月は12個。曜日は7と少ない。
他に考えられるのは、Dateオブジェクトの中の人が
UNIXタイムから計算する時に0〜11が算出されたけれど、わざわざ1足すのメンドクセェって思ったんじゃないの。
"睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走".split(",")[new Date().getMonth()]; //皐月
こういう事するときは楽。
>>224 Refererが何かじゃないと落とせないようにする。no-cacheにする。
>>222 確かにつまらんな。それはただのエゴだろ。あんたが数字で月を表わそうと
しているだけ。このシステムの本家西洋では英米式表記の混在で月は短縮ア
ルファベットで表示するのが便利だし間違いがない。日付オブジェクトを使
う時もそうなっている。5月だから5なんてのはごく一部の国の発想である
ことを知ればそんなエゴは言い出さない。それに、電算機は0から始まるんだ。
>5月だから5なんてのはごく一部の国の発想である
いくら何でもんな訳ないだろw
>>221 いや、だから、それがまさにthrowを実行してエラーを出した
効果でしょ? 以下のでもtest1、test3のボタンでそうなる。
しかしひでえメッセージだね。「thorwが実行されましたが
受け止めるcatchがありません」とかのつもりなのかな?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test1() { throw 'test'; }
function test2() { try { test1(); } catch(v) { } }
function test3() { test1(); }
</script>
</head><body>
<div>
<button onclick="test1()">test1</button>
<button onclick="test2()">test2</button>
<button onclick="test3()">test3</button>
</div>
</body></html>
>>229 興味ありますね。ちゃんと説明してくみてください。
>>231 ヒント。
cmd.exeを開く->usと打ち込む
こういうのはどうだろうか。→「ブラウザは常にベストを尽くす」
足らないのはあなたの脳内繊維。
236 :
Name_Not_Found:2007/05/18(金) 14:23:55 ID:HvZ8NdP1
質問なのですが、文字を入力させるタイプのjavaを作ったときに、それをブログやHPの記事にコンテンツとして貼り付けて訪問者に使用させることは可能でしょうか?
>>236 何言ってるのかよくわからないが、
ブログは貼り付けられるものに制限がある場合があると思う。
自分で作るホームページだったらたいてい何でもおk
みんな忘れてないか?
>>236 このスレはjavaは扱ってないんだ残念だったね。
>>240 もう今では誰もあんたみたいな露骨な言い方はしないよ。うんざりなんで。
で、
>>237-239はあんたが言っていることを紳士的に言ってるわけで、それ
が読めないあんたは、
>>236の次くらいにヴォケかましてるよな。
テキストフィールドをドラッグアンドドロップさせたいのですが、
可能でしょうか?
可能
はい、次の人ー
じゃお言葉に甘えて。
グローバルスコープでvar宣言したり、
スコープ内でvar宣言せずに変数を利用したりした場合に
windowオブジェクトのプロパティになるというのは、
ECMA262-3rd仕様書のどこに書いてあるんですか?
12.2
↓
10.1.3
(10.1.5)
10章は短いけど、ECMAScriptの本質が定義されてるよね
248 :
Name_Not_Found:2007/05/18(金) 23:09:53 ID:dbZHKABw
質問です。
obj=null; はつまり、delete obj; として考えてよいですか?
>>248 obj=null;は「GCされますよーに」
delete obj;は「あぼーん」
delete obj;
という構文が成り立つ可能性は結構低いよね。withとかか?
252 :
248:2007/05/19(土) 00:16:32 ID:ctZqcnEg
>>249-251 ありがとうございます。
>>249さんのはよく理解できます。で、けっきょく
見做してもよいかな、と。とりあえず、サンクスでした。
>>252 同じとみなすって意味?
違うんだけどね、全然。
というか249でわかる訳も無いと思うが
>>245 それだと、var宣言なしで変数を使用した場合にグローバル変数になる仕様が書かれてなくないか?
>>255 そんなもの書かなくても普通にそうならざるを得ないから
var sum = function(x,y,z) {
return (x+y+z);
}
alert(sum(1,2,3));
関数へ渡す1,2,3を引数と言うのに対し
受け取る側のx,y,z部分には何か呼び名はありますか?
仮引数
むわっ、どっちも引数で
実引数と仮引数と言うんですね・・・
思いっきり勘違いしてた/(^o^)\
ありがとうございました
arguments & parameters
仮引数。何かの訳とも思えないがひどい言葉だ。
>>256 仕様書に書いてなかったらエラーだろ、常識的に考えて…
それはどうかな。その「常識」の前提条件は、仕様書には全てのvalidな
コードが載っており、且つ、それ以外の正しいコードはありえない、と
いう事実だろ。そんな仕様書はありえない。なぜならば、JavaScriptにお
ける仕様とは規格の具体的な実装であり、クロス環境では代替コードがし
ばしば存在するからである。むしろ、このことがJavaScriptのブラウザ言
語としての汎用性を高めているともいえる。したがって、ある限定的な
仕様書にないからエラーとなるというのはまったくのデタラメである。
つか仕様に書いてあるだろ?探すの面倒だけど。
読めもしないのに、ECMA-262がどうとか言ってる奴がいる…
言語実装に関する基本的な知識が自分にはあるのか?
この質問にYesと答えられる人がECMA-262を読むべきである。
ましてや、ここはweb製作のスレ、ここで語るべき”仕様”とは、各実装のリファレンスであって、ECMA-262では無い。
ECMA-262自体について語るなり、質問するなりしたいならば、ム板の以下のスレで成されたい。
ECMAScript デス 2
ttp://pc11.2ch.net/test/read.cgi/tech/1088298991/ と、言っても、読み方(と言うか基礎知識)を学んでから出直せ、と言われる可能性が高い。
真性だったらしいなw
ようするに267は、var無しで変数を使った場合にグローバルオブジェクトのプロパティになるのは
実装依存であって、ECMAの仕様で定義された動作ではないって言ってるんだろ?
お前が仕様書読めてねーんじゃねーかwww
271 :
267:2007/05/19(土) 10:57:58 ID:???
わけわからん…。
ECMA-262を読めば、グローバルオブジェクトのプロパティになるのは、"自明"だ。
既に、その箇所を指摘している人もいるじゃないか。
だが、そんな質問なり、議論なりをするスレじゃないから、読めなくて理解できない奴は、勉強するなり、ム板で質問するなりしろ。
そう言っている。
>>271 自明?どこを読んだら自明なのか言ってみろよ。
お前は口ばっかりで、何一つ証拠が無いんだよクズ
>>245で言っているのはグローバルスコープでvar宣言した場合に
グローバルオブジェクトのプロパティになることだけだ
274 :
Name_Not_Found:2007/05/19(土) 11:08:48 ID:j6/yiLGv
スタイルシートとの合わせ技だとおもうのですが、
たとえば何かをクリックした場合、 ( onClick イベント発動で)
テーブル内の特定の td の背景色を変えるにはどうしたらいいでしょうか?
つか267は仕様書読んだことがないんじゃないのか?
さっきから誘導しかしてないじゃん
前にも書いたが、だから、「ECMAScript デス 2」 は糞スレなの。
これで証明されたな。素人の集まり(as i said before)。
それに、その糞スレに誘導しているが、global objectに関する
議論はこのスレでやっても何の差し障りもない。
なんか知らんうちにまた低レベル始まっとるか・・・
>>276 議論も何も自明。
>仕様書に書いてなかったらエラーだろ、常識的に考えて…
えらい頭の悪い発言・・・
ほっとけって…
議論は質問でも回答でもないから他でやれ。
>>297 おまえ、バカだろ。議論=ケンカか?
質問に回答するだけなら、OKWaveへでも行け、ボケ。あそこなら、
議論しただけで即退会だw
プログラミングにはいろんな見方がある。それを議論するのは健全な
スレのあり方だろ。回答だけしろ、議論はするな、じゃ、OKWaveの末路を
見るまでもない。もっともあちらは健全回答だけを集めて出版が目的でも
あるのでノイズを排除しているらしいが。
281 :
279:2007/05/19(土) 14:30:28 ID:???
282 :
Name_Not_Found:2007/05/19(土) 14:38:58 ID:j6/yiLGv
おいおい荒れてるな
れいせいになれよお前ら。
だいたい、
>>274がせっかく質問しているのに可哀そうだ
けんめいなこのスレの住人なら、と思ってせっかく来てたのに。
どうせ答えらんないんだろうけどw
>>274 ぐぐってはみたの?基本中の基本なんだからもっと勉強汁。
284 :
Name_Not_Found:2007/05/19(土) 14:52:22 ID:9j0yrHjd
探し方が悪いのでしょうか。
アドバイスいただければ幸いです。
申込などのフォームで
チェックボックス(或いはラジオボタン)にチェックを入れないと
送信ボタンを表示しない様な事は可能でしょうか?
どなたかどうかよろしくお願いいたします。
簡単すぎて答える気にならんが?
287 :
Name_Not_Found:2007/05/19(土) 15:50:48 ID:j6/yiLGv
>>283 ぐぐったぞ。
画像をクリックして画像の src などのデフォルトなHTMLの属性を変えたり
スタイルシートでは文字や画像などの属性を変更するのやbodyの背景色を変えるのはみつかるのだが、
テーブルのセルの背景色を変えるのはみつかりませんでした。
セル内の文字色を変更はできたのですが、
<td id="td1"
<td id="id2"
とセルごとにidをふって個別に指定して変えようとしても
document.all["td1"].style
288 :
Name_Not_Found:2007/05/19(土) 15:54:47 ID:j6/yiLGv
>>284 submit をただのbuttonにし、onClickで、myfunc();
function myfunc(){
if (ボタンがチェック入ってる){
document.foms[0].submit();
}
}
みたいな感じ。
テキストボックスでエンター押しただけで送信されてしまうのも防ぐので便利
いや。
>>288が知りたいのはそういうことではないだろ。コード以前の問題だな。
>>288 誤送信防ぎたいなら、自分なら<form>をこうする
<form onsubmit="return !confirm('送信しませんよね?')">
291 :
283 :2007/05/19(土) 16:01:49 ID:???
>>287 wrote : テーブルのセルの背景色を変えるのはみつかりませんでした。
んなあことはない。だいいち、そんなコレクション書いてるようじゃ先が思い
やられるな。
292 :
Name_Not_Found:2007/05/19(土) 16:03:33 ID:j6/yiLGv
>>291 SetStyle(property, value)
みたいな関数があったようなきがしたんだけど、さっぱりでてきません
>>284 ヒント:document.getElementById('obj').style.display="none";
294 :
Name_Not_Found:2007/05/19(土) 16:17:23 ID:j6/yiLGv
>>293 ありがとうございます。これから外出するので帰ってきたら調べてみようとおもいます
295 :
Name_Not_Found:2007/05/19(土) 17:15:48 ID:y29gaIWU
function newwindow() {
nw = window.open("", "win","width=300,height=400");
nw.document.open();
nw.document.write("<HTML><HEAD>\n");
nw.document.write("<TITLE>test</TITLE>\n");
nw.document.writeln("<BODY>\n");
nw.document.write("test\n");
nw.document.write("</BODY>\n</HTML>");
nw.document.close();
}
こんなコードで、ボタンをクリックしたら新しいウィンドウが生成されるようにしてます。
こまかい事情があって、生成元のHTMLはUTF-8、
生成されたウィンドウはEUC-JPになって欲しいのですが、
こういったwindow.open()で生成されるウィンドウの文字コードを
明示的に指定する方法はありますか?
<script>にcharset="EUC-JP"を指定してももちろんダメでした。
よくわからんが、結局var無し変数がグローバルというのは仕様のどこにあったの?
それとも仕様にはないの?
>>296 どこに書いてあるかまで、教えてもらってるのに、"よくわからん"のか?
>>295 document.writeすると無理な気が
>>295 いまどき流行らん書き方だな。久しぶりに見たよ。
>>295 JavaScriptというよりmetaの話じゃないの?
>>280 御大層なゴタク並べてるけど続きマダー?
続きとは?
>>290 それだとうちの親や上司が
「おい、何かでてきたぞ!」
と俺が呼ばれることになるから不可
マジレスだろ。読解力がないのを露呈しているだけの恥さらし。
>>306 どうだ俺はちゃんと読解できたぜ!
すげええええええええええええええだろwwwwwww
>>307 オマエモナー 「読解できる」などという日本語はない。国語力ゼロ。
読解できる に一致する日本語のページ 約 25,200 件
いいかげんにしろお前ら
揚げ足ばかりとってスレを汚すな。
>>309 多数決で決めるその脳みそのお粗末さが問題だな。これだけ多いという
ことと正しいということの間には何の関係もない。
多いから正しいとか一言も書いてないぞ?
>>311 件数を書いただけで正しいと主張していると決めるそのお粗末さが問題だな
ここはお粗末なスレですね。
もうこの手の話はやめようぜ
他人のケアレスミスを鬼の首を取ったかのように
はい次ぎの話題
↓
新田代開発
317 :
295:2007/05/20(日) 00:12:39 ID:WuajwXPx
>>301 生成後のHTML側でmetaを指定するということでしょうか?
あとdocuent.write()以外でウィンドウの中身を作るには
どうすればいいんでしょうか?
そもそも
>文字コードを明示的に指定する
というのは何を意味しているのか?
どうなれば指定できたという事になる訳?
指定できたかどうか判定する方法は何?
319 :
295:2007/05/20(日) 01:10:41 ID:WuajwXPx
>>318 たとえば親ウィンドウのHTML内のボタンを押すことで
子ウィンドウが中身付きで生成されるとき(
>>295のように)、
FireFoxの「ページの情報を表示(I)」などで確認すると、
親ウィンドウがどんな文字コードでも、子ウィンドウがUTF-8になってしまいます。
これを、可能なら子ウィンドウの文字コードをEUC-JPにしたいんです。
関数内で入れ子ではない複数のfor文を使う場合
変数のvar宣言はどのように行うのが良いですか
1 最初に宣言 var i;
2 最初のfor文内で宣言 for(var i=0; … for(i=0; … for(i=0; …
3 全てのfor文内で宣言 for(var i=0; for(var i=0; … for(var i=0; …
4 同じ変数は使わない for(var n1=0; … for(var n2=0; … for(var n3=0; …
3 or 4
323 :
Name_Not_Found:2007/05/20(日) 12:03:10 ID:IElI+WG8
基本的な質問で済みません。
変数に入れた数値同士の加算を行うと、何故か数値では無く
変数として扱われてしまうのですが、下記のような書き方は何処に
問題があるのでしょうか。
割り算とか、引き算は成功するのですが、下記の場合
20000150、20000150150、・・・と20000+150の結果となりません。
未だJavaScriptの教科書を読んでいる初心者ですが、宜しくお願い致します。
<script language="javascript">
<!--
var money1 = prompt("初期所持金","20000");
var money2 = prompt("1日の貯金","150");
var day = prompt("日数","10");
var i = 0;
for( i = 1 ; i <= day ; i++)
{
money1 = money1 + money2;
document.write(i + "日目、貯金は<font color=yellow><b>" + money1 + "</b></font>円です。<br>");
}
//-->
</script>
parseInt
325 :
323:2007/05/20(日) 12:17:38 ID:IElI+WG8
下の3つを試したのですが、@では15となりBでは5となり
正しいのですが、Aは105となり失敗します。
promptと加算(+)の組み合わせの時は特別なのでしょうか。
(また基本的な事で済みません)
@
var a = 10;
var b = 5;
var c = a + b;
document.write(c);
A
var a = prompt("aの値","10");
var b = prompt("bの値","5");
var c = a + b;
B
var a = prompt("aの値",10);
var b = prompt("bの値",5);
var c = a - b;
326 :
323:2007/05/20(日) 12:24:18 ID:IElI+WG8
>>324 有難うございます。
Webで調べたら文字列を数値に変えるとの説明がありました。
使い方が今の私には良く解りませんが、今読んでいる参考書を
一通り学習してレベルを上げてからチャレンジしてみます。
いや、その前にチャレンジした方が吉かと。
あと、機種依存文字は使わないのが吉かと。
>>319 IEでしか試してないけど
<META http-equiv=Content-Type content="text/html; charset=euc-jp">
これだけ書いてあるページをopenし、document.writeは全部やめて
var d = nw.document.createElement("DIV");
d.innerText = "あいうえお";
こんな事すればできたけどよくわかんない。
nw.document.open();は無しにしないと右クリできないけど
329 :
328:2007/05/20(日) 13:42:57 ID:???
御免。最後に
nw.document.body.appendChild(d);
が抜けてた。
330 :
Name_Not_Found:2007/05/20(日) 14:38:01 ID:8xzKeXul
質問です。
xがnullを返すとき、判別をif(x)として大丈夫でしょうか?
なぜためさないんだ
332 :
330:2007/05/20(日) 14:48:14 ID:8xzKeXul
例外が気になるもので、識者の方々のご意見を賜りたいのです。
例外が気になるならtry(ry
334 :
330:2007/05/20(日) 15:18:06 ID:8xzKeXul
いやいや。例外というのは、それじゃないのです。識者の方々のご意見を賜りたいのです。
>>330 イマイチよくわからんのだが
結局何を心配してるんだ?
336 :
330:2007/05/20(日) 16:08:12 ID:KRUfN+j8
結局null==0==falseということでよろしいのでしょうか?
Boolean関数で型をしっかり入れてあげれば心配ないだろ?
>>336 if(!x) → false,0,'',null,undefined
if(x==null) → null,undefined
if(x===null) → null
339 :
Name_Not_Found:2007/05/20(日) 16:44:58 ID:qbolZrm+
id="hoge"というdivタグの(ウィンドウの左上からの)座標を知りたいんですが、
どのようにすればいいでしょうか?
340 :
339:2007/05/20(日) 16:52:13 ID:???
ちなみに、divタグ「hoge」はスタイルシートで座標指定したわけではないので
スタイルシートから取得という方法以外でお願いします。
341 :
330:2007/05/20(日) 16:57:49 ID:KRUfN+j8
>>338さん
なるほど。ありがとうございました。
時間でジャンプするURL変更したいんだけど
どうすればいい?
>>339 offsetLeft, offsetTop, offsetParent
>>342 どっからどうやってジャンプするのかによって話が違ってくる訳だが
345 :
339:2007/05/20(日) 18:20:26 ID:???
>>343 ありがとうございます。
解決しました。
気をつけなきゃいけない点があるみたいですが。
>>336 仕様の自動型変換のところ参照。
実装に例外がないとはいえんが。
347 :
Name_Not_Found:2007/05/20(日) 20:47:03 ID:zmejKAAG
質問です。
this.returnValue('x')
というコンストラクタ本体があったとした場合、これを文字列
化するにはどうすればよいのでしょうか。
String(this.returnValue('x'))
とかではもちろんうまく行かないのですが。ご教示ください。
コンストラクタ?
>>349 なんでそんなシチめんどくさいことをする。ダブルコンボの必要が
まったくない。自分のvalueに行き先貼っとけ。
マルチとかどーでもいいんだが、それよりもいつも気になるのは、そもそも、
>>351みないなアホは何を根拠にマルチだと決定できるのだろうか。
洩れの場合、JavaScriptに関係のあるスレ回ってるから
もろに2回目にするんで分かることが多いな。
354 :
Name_Not_Found:2007/05/21(月) 00:00:33 ID:ZBkg01HJ
document.getElementsByNameの戻り値の型はいったい
なんなのでしょう。よく配列と見ますが、falseが帰ります。
IEにいたっては、オブジェクトですらfalseです。
おしえてください。。
var name = document.getElementsByName('hoge');
alert(typeof(name)); // object
alert(name instanceof Array); // FireFox:false IE:false
alert(name instanceof Object); // FireFox:true IE:false
javascriptの外部ファイルをひとつにまとめるソフトとかないですか?
<script src></script>で全部読み込むしかないですか?
>>354 まず一つ確認したいのだが
「JavaScriptには配列は無い」
この言葉の意味わかるかな?
>>355 まとめるって何の事だよ?
copy c:\source\*.js c:\dest\all.js
とかか?
>>354 nameをalertすれば[object HTMLCollection](狐)とか[object NodeList](Opera)って出るじゃん。つまりそういうこと。
>>354 DOM ECMAScript Language BindingにおけるNodeList。
ECMAScript的にはObjectであるべきなんだろうけど、IEはJScriptだし。
>>355 1. 事前にcatなりcopyなりで結合しておく
2. GETなり見て手元のファイルを結合して返す鯖側の何かを作る
3. 自分のsrcを見て<script>を入れていくスクリプトを作る
Objectオブジェクトと
オブジェクトは違うのではないかと思う訳ですが
違うよ
>>352 知らないということは怖いな。自分が知らないから人も知らないと思
っている。そういうのが人をアホ呼ばわりする。他山の石としよう。
363 :
Name_Not_Found:2007/05/21(月) 10:02:25 ID:SLaAgwZw
質問です。
たとえば、var myArr=new Array(5);としたとき長さを指定しますが、
これをしない場合と比べてどうちがうんでしょうか。よく入っている
のを見ますが、何のためにいれているのでしょうか。内部で処理でき
ることだと思うのですが。ご教示お願いします。
>>363 ご教示に高感度うpしたので答えます
一般的な内部的な実装では、Arrayのlengthプロパティを予めセットするだけの意味しかないと思われます
配列の大きさより大きなインデックスを指定した場合
配列の大きさを大きくする処理が行われると思うんだけど、
最初からサイズを指定しておけば、その処理が行われない分、
メモリの利用効率、処理速度からみて有利に働くのではないでしょうか?
>>365 各種実装について実験しレポートをまとめてくれ。
提出期限は明後日16時までだ。
5個までしか使用しない事がわかって読みやすいじゃないか
読みやすい、読みやすい。ん?そういう問題じゃないだろ。
使用しないかどうかはその先を見ないとわからないとも言える訳だが
370 :
Name_Not_Found:2007/05/21(月) 17:34:35 ID:3XeT/K22
すみません。ご教授お願いします。index.html内に
<form action="A.cgi" method="post" target="_blank">
省略
<input name="submit" type="submit" onClick="window.open('B.html','_blank');"value="xxx">
</form>
があり、当たり前ですが上のソースでは「A.cgi」と「B.html」の2つが別ウィンドウで開きます。
そこを「A.cgi」を実行(省略の中の要素が受け渡りA.cgiで処理)させても別ウィンドウで開かないようにし、「B.html」のみ開くようにしたいのですが可能でしょうか?
ターゲットのブランクを取るのではなく、結果的に「index.html」「B.html」のみの表示にしたいのです。よろしくお願いします
ここでは教授はしない。大学へでも行ってくれ。
A.cgiを_blankで開いて0秒でB.htmlに移動させるとか。
JavaScriptじゃないけどw
なんか悪事の匂いが・・・
A.cgi が何らかの値を受け取るなら
A.cgi から B.html へリダイレクトするしかないんじゃね?
A.cgiで不正に情報を取得したことを
B.htmlへのリダイレクトで知られないようにしたいようだな。
犯罪の香りッ!!
ajaxでもつかって裏でcgiとやり取りしてりゃいいんじゃないか?
ターゲットをindex.htmlの隠しインラインフレームにすればいいんじゃね?
それどんなブラウザでもできたっけ?
379 :
Name_Not_Found:2007/05/21(月) 21:25:29 ID:nqbd3y+S
こんばんは。
whileというループがどうも苦手なんですが、何かコツみたいなもの
ありますか?for文だとスッキリ分かるんですが・・・
だったらforだけつかってりゃいいんじゃないか?
whileなんて使う必要ぜんぜんないよ
381 :
370:2007/05/21(月) 21:49:54 ID:3XeT/K22
370です。お返事遅れてすみません。皆さんありがとうございます。
>>375さん
サイト自体は犯罪系ではないのですが・・・
私もやってみてて「アレ?」って思いました。
>>372さん
.htaccessですかね?やってみます。
>>376さん
ajaxですか・・・。複雑になりすぎてしまいそうですね。
>>377さん
それはすごい発想ですね。チャレンジしてみます。
とりあえず納期が明日までなので色々やってみます。
みなさん本当にありがとうです。
ヲイヲイ・・・いくらなんでも納期明日で今質問してるようじゃ・・・
383 :
379:2007/05/21(月) 22:35:57 ID:???
>>380 ご存じないようなので教えてやりますが、whileを使わなきゃならない
場合とかあるんですよ。分からなかったらググって勉強してね。
HTMLファイルに埋め込ませずに
JavaScriptを実行させる事ってできますか?
test.jsをダブルクリックで
「Hello JavaScript」とメッセージボックスを表示させたいと思い
以下のようにしたのですがエラーになります。
window.alert("Hello JavaScript");
HTMLファイルと、jsファイルでは、書き方が違うのでしょうか?
>>380 ま。そういう回答というか反応はないだろ。質問者は苦手を克服したくて
質問してるんだろうし。人間としてやっちゃいけない反応だな。
>>384 「WSH」というものを調べてみなされ。
>>383 ご存じないようなので教えてやりますが、「while(条件)文;」
は常に「for(;条件;)文;」とまったく同じだろという突っ込み
なんじゃないですかね。
>>384 つかそもそも<SCRITP SRC=だと普通に.jsファイルな訳だが。
windowはIEクライアントが用意したものだからWSHからは使えません
380ではないのだがwhileを使わなければならない場合ってあったっけ?
forだったらfor inなんかはwhileで代用できないと思うが
wscriptだと「WScript.Echo("")」がalertみたいなモノ
cscriptは「WScript.StdOut.Write("")」
393 :
384:2007/05/21(月) 23:16:42 ID:???
>>386 MSDNでWSHのページを調べました。
目的の動作をさせる事ができました!
>>387 すみません。わかり難かったですね…。
わざわざHTMLファイル内にJavaScriptを書かなくても
直接.jsファイルを実行できたらデバッグ速いかなと思ったのです。
>>388 外部ファイルとしての.jsファイルは知っていたのですが
直接実行させてみたかったのです。
なるほど、windowは使用できないのですね。
>>390 MSDNを見ながら書いたのが
まさにWScript.Echo("Hello")でした。
WScript.StdOut.Write("")などもあるのですね。勉強になります。
皆さん、どうもありがとうございました。
>>390 前半はいいとして
後半は「何でだよ!」
ボタンを押すと、押した分だけカウントされるスクリプトつくれませんか
つくれますよ
>>397 検索ワードを変えたらサンプルが出てきました。
ありがとうございました。
>>393 >直接.jsファイルを実行できたらデバッグ速いかなと思ったのです。
それは考え直しなさい。
400 :
Name_Not_Found:2007/05/22(火) 12:26:24 ID:xJY7BVKa
質問です。
文字列をロールさせるために次のように書きました。これを動かすと、メモ
リーオバーというエラーになってしまうのですが、どうすればちゃんと動く
でしょうか。ご教示ください。
var myArray = new Array();
myArray[0] = "dog";
myArray[1] = "cat";
myArray[2] = "get coaster";
function LoopF(x)
{
document.getElementById('id908').innerHTML = NewArr[x];
if (x = 2)
{
x = 0;
setTimeout(LoopF(x), 5000);
}
else
{
x++;
setTimeout(LoopF(x), 5000);
}
}
401 :
400:2007/05/22(火) 12:31:11 ID:xJY7BVKa
すいません。LoopF(x)は"LoopF(x)"でした。でも、xが宣言されていないと
叱られます。どうぞよろしくお願いします。
402 :
400:2007/05/22(火) 12:33:17 ID:xJY7BVKa
たびたびで本当にすいません。
NewArrはmyArrayに変えてください。いろいろ試していて、名前を
変えたせいで前のを書いてしまいました。スレ汚しまことにすいません。
xを宣言しなよ
というかid908が何の要素なのかわかんないし。
ちゃんと動くHTMLで出してくれ。
まあ今自分で足りない部分作ってる最中だけど
ああ。無限再帰呼び出しだな。
setTimeout(LoopF(x)
という書き方だとsetTimeout実行の瞬間にLoopF(x)が評価されるから
5秒待たずにLoopFが実行される。
それで無限再帰呼び出しになってスタックが溢れる
>>400-401 FAQ
>>4 のQ14-A14を真面目に読んでればそんな質問
しなくても応用できるだろ?読んで分からないなら向いてない。
Q14-A14は微妙に違う話だと思う訳だが・・・
というかQ14-A14が何言ってるのか完全にわかる奴はたぶん
この手の質問してこない
408 :
400:2007/05/22(火) 13:23:06 ID:AI/aHX9s
405さん、ありがとうございます。
で、どう直せばよいでしょうか。いろいろすいません。
>>406 読むチカラねえのは、あんただろ。ちゃんと読んでいればそんなことは
恥ずかしくて言えない。
>>400-408 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function loop(i) {
document.getElementById('p0').innerHTML = ['a', 'b', 'c'][i%3];
setTimeout(function(x){return function(){loop(x);};}(i+1), 500);
}
</script>
</head><body onload="loop(0)">
<p id="p0">test</p>
</body></html>
411 :
405:2007/05/22(火) 13:39:15 ID:???
だから。setTimeout関数の仕様にそった書き方にしないとダメ。
第1パラメータの型。
>>409は余計
>>410 却ってわかりにくい気も^^;
412 :
Name_Not_Found:2007/05/22(火) 15:31:28 ID:UsWsJ8aq
初歩的なことかと思うのですが、どう探しても見つからないので教えてください。
onmouseoverとonMouseOverはどう違うのですか。
また、大文字を小文字に変更しても問題はありませんか。
よろしくお願いします。
問題あるね
414 :
Name_Not_Found:2007/05/22(火) 15:46:33 ID:85kRdlsg
質問があります。
今、onUnload="x()"のやり方で
ページを切り替えるときに、ある関数を呼ぼうとしております。
少しややこしいのですが・・・
これが単体のhtmlなら出来ました。
フレーム構造にして、親のところで指定しても大丈夫でした。
フレームにして、子のひとつ(隠しフレーム)が常にリロードをかける設定をしているものだと
動かなくなりました。
要するに、旧式のチャットで×ボタンで閉じられたときにログアウトさせたいのです。
こういう場合、他にいいやり方はありますでしょうか?
コード見ないとよくわかんないね。
わかる人いる?
>>412 html なら等価
xml では区別される
>>414 アクセスがないものをログアウトする
>>416 JavaScriptだと等価じゃないと思う
418 :
414:2007/05/22(火) 16:09:04 ID:85kRdlsg
<html>
<head>
<title></title>
<script language="JavaScript">
<!--
alert("閉じます");
-->
</script>
</head>
<frameset name="top" framespacing="0" frameborder="0" border="0" rows="450,*" onUnload="x()">
<frame name="main" src="ue.php" scrolling="no">
<frame name="roop" src="roop.php" scrolling="no">
<noframes>
<body onUnload="x()">
</body>
</noframes>
</frameset>
</html>
こんな感じです。roop.phpがぐるぐる更新されています。
onUnload="x()"はボディにいれるのか、フレームセットのところか、よくわからなかったので
片方だけのパターンだとかを試してみました。
>>416 いちおうループのところでタイムアウトを作って、ロムの人もいるだろうし
だいたい10分くらいに設定しているんですけど
×で閉じられたときにすぐにログアウトさせたいのですよ。
なんかメチャメチャな気がするんだが?
function x(){
alert();
}
とかさ
「l」oop.phpはリフレッシュしてるのか
「l」oop.phpが何やってるのかわからないけど
METAリフレッシュにして
適当に数字を一つずつ増やして返してくるのを作ってやってみたけど
閉じると普通に「閉じます」って出るんだが・・・
ちなみに
>>419は了解?
422 :
412:2007/05/22(火) 21:21:00 ID:Iufa8agX
変更してはいけないことはわかりました。
等価かどうかについては意見が分かれているようですが、
等価ではないなら「どう違うのか」も教えてください。
全く別々の変数と成ってしまう事
フッ。お前らにはわからんだろうがな。
それはVBでは大文字小文字無視な訳だが
MSがJScriptを作るにあたってIDispatchExといってだな(ry
質問です。
オブジェクトのプリミティブなVALUEとは、どういうことをいっているの
ですか?
426 :
Name_Not_Found:2007/05/22(火) 21:58:31 ID:H0eVYffr
すいません、基本的なことですが、アンカー先のnameには数字だけという
のOKですか?NAME="12345"みたいな感じです。よろしくお願いします。
428 :
426:2007/05/22(火) 22:26:21 ID:H0eVYffr
>>427さん
情報ありがとうございました。可だけど好ましくないということですね。
429 :
412:2007/05/22(火) 22:41:25 ID:Iufa8agX
>423
onmouseoverとかって変数なんですか?
>424
IDispatchExでぐぐってみましたが、
難し過ぎて全く理解出来ませんでした。
そもそもどうして大文字小文字バージョンと
小文字のみバージョンがあるんでしょうね?
一応聞くけど
A. 大文字小文字バージョンがあるもの
B. 小文字のみバージョンがあるもの
って例えばどれ?
使い方によって変わると思うんだけどね
>>393 jsshellやxpcshellやMASJScriptや、あと俺は使ってないが、rhinoあたりを使えば良いだろう。ホストオブジェクトと明確に分離できたクリーンなコードを書けるぞ。まあそんなことよりも、てすとどらいぶどりぶんやりっ放しというのが最大の旨味だがな。
432 :
Name_Not_Found:2007/05/22(火) 23:46:52 ID:q0eSiShB
はじめて質問します
簡単なゲームをつくろうと思っているのですが行き詰ってしまいました。
画面上に1〜5までの数字が書かれた5枚のカードがあり、
@カード画像をクリックするとめくれて裏になり
A裏になったときに当たりマークがあれば、当たりメッセージが出る
B3枚めくったら他のページに飛ばされる
というゲームです。@とAまではできたのですがBのところでつまづきました。
画像の裏表とcheckboxのON/OFFを連動させれば・・・などと頑張ってみたのですが駄目でした。
そもそもやり方が間違っている気もしてきたのですが、
何か上手いやり方あれば記述の仕方など教えてください。
普通にめくるたびにカウントアップして3になったかどうか判定してジャンプ
どんなコード書いたのかな〜?
checkboxってのがよくわかんないが。
レス見てすぐに
onclickでカウンタを増加&チェックすればいいんだろうな
って思った。
435 :
412:2007/05/23(水) 00:09:23 ID:sFVjYqX3
>430
A. 大文字小文字バージョンのonMouseOver
と
B. 小文字のみバージョンのonmouseover
の違いが知りたいのです。
>>435 ああ。そういう意味か。
>大文字小文字バージョン
の意味がわからなかったよ。
HTMLとJavaScript。
ケースイグノアとケースセンシティブって事。
437 :
Name_Not_Found:2007/05/23(水) 00:39:10 ID:342zcky+
>>433-434 レスありがとうございます。
早速onClickでカウントアップさせていくやり方でつくってみようと思います。
テキストBOXに入力された値を送信ボタンを押さなくても
エンターキーを押しても送信できるように
Formのactionに送信する為のJavaScriptを指定して
その関数の中ではsubmit()関数を使ってPOSTさせてます。
そこで質問なのですが
Formタグの間にはテキストのinput項目が10程、
hidden項目が20程記述してあり
サーバ側でhidden項目のチェックをしています。
何やら場合によってはサーバアプリのログを見ると
hidden項目が一切POSTされこずテキストの入力項目しかPOSTされていないみたいな事象が起きているようです。
このような事が何かの負荷か何かで起きるものなか
原因理由に心辺りありましたら助言お願いします!
そりゃ、単にhiddenを拾ってないってことでほ。
>>440 サーバ側ではhiddenかどうか区別できないんだから…
だれがhiddenを落しているという話?
>>439 <form>...</form>の内側にhiddenがあるんだよね?常に?
不思議というかあり得ないよね… disabledにしたりとか
ヘンなことはしてないんだよね?
>>439 そのformタグの内容書いてみてよ。actionにjavascriptを
指定するって普通じゃないような気がするけどな。
443 :
414:2007/05/23(水) 13:36:27 ID:xrK1Ya2E
>>419 >>420 >>421 roopでした!すごく恥ずかしい。
メタフラッシュでうまくいきました。
ありがとうございます。
「l」oop.phpの中では、だいたいこのようにしていました。
<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
location.href="loop.php";
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
ループが常に、開いていますの状態になっていて、
すごく重くなるんですけど一応リアルタイムっぽいんですよ。
<meta http-equiv="refresh" content=1;url="loop.php">
しかし、メタフラッシュだと最短1秒間隔になりますよね?これはしょうがないのかな。
ここはlとrをわざと間違えて書くスレになりした。JavaSclipt?
フラッシュって何だよ。マクロメディアか?
残念、アドビシステムズだ
447 :
Name_Not_Found:2007/05/23(水) 15:41:05 ID:jOs0s353
ジャストシステムかとおもったよ
光文社に決まってるだろうが。
>>443 いままで一秒以下の間隔でリロードしてたの?
450 :
421:2007/05/23(水) 19:13:46 ID:???
>>443 これ・・・ヤバいよ。
ほとんどブラクラに近い。
何のウェイトもかけずに
location.hrefで自分自身を読み込むのはマズすぎ。
ネットワーク負荷もひどいし、パソコン負荷もひどい。
setTimeoutで
せめて100ミリ秒間隔とかウェイトを取った方がいいよ
このやり方だとIEがまともに動かないから
onunloadが起動しないんだと思う。
ウェイトとればちゃんとonunload動くみたいだし
JavaScriptの質問?
453 :
412:2007/05/23(水) 23:43:26 ID:???
>436
ありがとうございます。
これからはonmouseoverを使った方がいいっぽいですね。
454 :
Name_Not_Found:2007/05/24(木) 00:06:58 ID:JLuD9B/i
new Functionというのがさっぱり分かりません。使い方も含めて
分かりやすい解説お願いします。
1) 何に使うのか
2) 何をするのか
3) なぜ必要なのか
よろしくお願いいます。
>>454 洩れは全然要らないと思ってるから。「実行時に任意の文字列
(JavaScriptのコードになってないといけない)から関数を作り
出す方法」はnew Function()しかないといえばないが、そんな
危うそうなことはしたくないし普通する必要ないし。
文字列から動的に関数を作成したい場合に使う。
var out = "hello!";
var myFunc = new Function('return "' + out + '";');
>>454ー456
計算式を入力さして使うとか。しかしeval()の方がお手軽かも。
あと、入力したものの中に悪いコードがないかチェックする必要
あるから結局面倒くさいかもねえ。
使い方とか、何に使うのかとか
まったく関係ない。
関数はオブジェクトなので
そういう記法が存在する、というだけ。
>>454 ある簡易スクリプト言語みたいなものを作って、
順次解釈する代わりに関数文字列に変換して関数化、繰り返し実行、
なんてときにちょっと使える。
デバグしにくくなりまくりだが(evalもそうだけど)。
テキストファイルにJavaScriptで書き込めますか?
JScriptならできるお
>>455-
>>459のみなさん
ありがとうございました。ちょっと理解が進みました。
462はインターネットゾーンのActiveXコントロール切ってないのか?
変なのに感染するぞ?
466 :
465:2007/05/24(木) 13:23:20 ID:???
セーフのはいいけどね
467 :
Name_Not_Found:2007/05/24(木) 17:15:26 ID:jQQQNcby
すいません、ちょっと教えてください。
サブセットってどういうことですか?
469 :
467:2007/05/24(木) 17:53:02 ID:jQQQNcby
ありがとうございます、というか↑開いても大丈夫でしょうか。
以前、GoogleからDNS破壊のひどいウイルスに感染したことがあるので
できれば開けたくないのですが・・・(・ω・)
Googleから感染??
471 :
Name_Not_Found:2007/05/24(木) 17:59:11 ID:4nljO6yK
test.prototype={
a:function(){this.b()},
b:function(){alert("ok");}
}
hoge["onclick"]=test.a;
this.b()が参照できないです。
大域に定義しないとだめ?
test.b()て書くの?
testってクラス?インスタンス?
めちゃくちゃなコードだな。
476 :
471:2007/05/24(木) 19:46:03 ID:1sUbay8n
JavaScriptにクラスなど存在しない。イチから出直せ。
GJ!
クラスオブジェクトも知らんのかい
480 :
471:2007/05/24(木) 20:49:41 ID:1sUbay8n
var test=function(){return this.initialize.apply(this,arguments);};
test.prototype={
initialize:function(){
this.c="hoge";
},
a:function(){alert(this.c)},
}
hoge["onclick"]=new test().a;
aは実行されるけど、this.cは参照できないでしょう?これをどうにかならんかと
お前バカだろ
出来るわけねーだろ
483 :
471:2007/05/24(木) 20:56:01 ID:1sUbay8n
ふうん。やっぱできないか。ありがと
失礼しましたQ14.
>>484 urlの文字数数えてurl_fullを切り出せばシンプルなんじゃないか
url_full.substr(url.length);
それなら url_full.replace(url,''); でいいだろ
490 :
484:2007/05/24(木) 22:01:07 ID:???
>>486 これと同じですよね?できないようですが。。。
url_full.match(url/(\/.*)$/);
>>487,488,489
なるほど、勉強になります。ありがとうございました。
Array使えよ
492 :
486:2007/05/24(木) 22:36:50 ID:???
>>490 > どこが間違っているのかご指摘頂けないでしょうか?
RegExp 自体には $1 プロパティは無いというか、いつまで後方互換プロパティ使ってんだよ。
伝わらなければ意味は無いな。どんな言葉でも
とほほでも読んで出直せ。
>>454 var v = 1;
function x() {
var v = 2;
function y() {
alert(v + ' from y');
}
var z = Function('alert(v + " from z");');
y();
z();
}
x()
// 2 from y
// 1 from z
>>480 さいごのnew test().aをnew.test().a()ってやれば実行されると思うけど違うの?
何か言ってることが違うのか?
先輩よく見てくださいッス
>hoge["onclick"]=new test().a;
ついでにテンプレにも目を通しておくといいッスよ
まるっきり動きもしないコード書いといて
言う事だけはいっちょ前だわな
var test=function(){return this.initialize.apply(this,arguments);};
test.prototype={
initialize:function(){
this.c="hoge";
},
a:function(){alert(this.c)}
}
new test().a();
alert(new test().c);
this.cは参照できないの意味がわかりません
aを イベントハンドラに登録するとってことでしょう
質問です。
ドラッグアンドドロップできる小さなテキストフィールドが4つ縦に並んでいたとして、
それぞれ
a
b
c
d
と入力すると、「abcdですね」と表示できて、
テキストフィールドをドラッグアンドドロップして、
b
d
a
c
と並び替えると、「bdacですね」と表示できるようにしたいんですが、
近いことを実現しているサイトや(もちろんソースコードがあればもっと嬉しいんですが)
実現できるライブラリがあれば、教えていただけないでしょうか?
× 並び替えると
○ 並べ替えると
どういうわけか知らんがヴォケがあっちこっちでこういう言い方をしている。
504 :
Name_Not_Found:2007/05/25(金) 11:00:57 ID:9FmUVlRh
並び替える の検索結果 約 1,510,000 件中 1 - 10 件目 (0.10 秒)
並べ替える の検索結果 約 1,270,000 件中 1 - 10 件目 (0.04 秒)
決定的な問題は、「並び」は自動詞の連用形であること。
a,b,c,...が自分で並ぶならいいが、操作によってそれらを並べ替える
場合には、明らかに誤り。家を建てるのに「建ち替え」というか?
Googleで探して数を問題にしているようなヤシはJavaScriptでも同じ
ようなことをしているんだろう。みんなが、document.all使ってるとかw
どういうわけかJavaScriptの質問スレなのに国語の話をするヴォケがいる。
負け犬の遠吠えか?
>>502 nameを4つとも同じにして
contentEditable=trueをセットして
0〜3をくっつければいいのかな?よくわからん
Googleガジェットみたいに、ドラッグで並べ替わるって事言いたいんじゃね?
とりあえず私の技術では思いつかない。
>>506 国語能力は大事だぞ。何をするにしてもな。
>>502 漏れが厨なせいなんだろうけどイマイチよくわかんない
>小さなテキストフィールドが4つ
これってINPUT? TEXTAREA?
あと、どこにドロップする訳?
>>502 「JavaScript ドラッグ」などでググる。
良さそうなサンプルを見つけてくる。
ドラッグ部分をテキストフィールドに書き換えて4個作る。
ドロップ後に判定するための決定ボタンでも付けて
要素をY座標で比較して順番を表示させる。
513 :
502:2007/05/25(金) 15:03:26 ID:9FmUVlRh
うぉ、皆さん親切にありがとうございます。
簡単に言うと、
INPUTな小さなテキストフィールドを4つ作りたい
4つのテキストフィールドに入力された文字をつなげて表示したい
フィールドをドラッグアンドドロップしたい
↑は出来るのですが、
ドラッグアンドドロップした後の、並べ替えたテキストフィールドに
入力された文字をつなげて再表示する方法が分からないんです。
ドラックアンドドロップする範囲は
---------------------------|
| a |
| b d |
| c |
| abcdですね。 |
----------------------------
↓
---------------------------|
| b a |
| c d |
| |
| bcadですね。 |
----------------------------
のような感じで。
難しいですかね・・・・
つーか、どこを難しがってるのかがわからん。
515 :
Name_Not_Found:2007/05/25(金) 15:53:28 ID:9FmUVlRh
自分としてはテキストフィールドを並べ替えると
入力された文字も並べ替えられて表示する処理が、
難しいと思っているのですが・・・
まずは状況を的確に説明する力を勉強し、質問の仕方をよく考えてこい。話はそれまでだ。
みんな513の説明でわかるの?
漏れ全然わからん。
例えば、4つのINPUTの文字をつなげて表示する場合のトリガは何よ?
ボタンが別にあってそのボタン押すと出るとか?
というか何でコードを書かないのかよくわからん
ほら、指でオブジェクトをツツツーッとあっちゃこっちゃ動かせるあれさ。
便利だよねー。
ボタンを凹んだままに出来ますか?
521 :
520:2007/05/25(金) 19:41:42 ID:pP5LsM5l
ID
できるかどうか知らんけど、
できるとしたら危ないコードじゃね?
<button style="border-style:inset">あ</button>
>>520 まともなコードではできない。形状に関心があるなら画像で夜黎。
525 :
520:2007/05/25(金) 21:35:00 ID:pP5LsM5l
527 :
520:2007/05/25(金) 22:01:41 ID:pP5LsM5l
>>526 IE6では反映されないみたい。参照と設定は出来てた
コードはこれで問題無いのかなぁ…
function btn(obj){
obj.style.borderStyle=(obj.style.borderStyle?"":"inset";);
}
<button onclick="btn(this);">ボタン</button>
IE6でディスク上でデバッグしてるんですが、クッキーはどこにできるの?
>>527 なぜか523からスクリプトに変わってるしw
IE6でそのコードで出来るよ?
;が余分だけど
つうか、おまえらふつうにBUTTON要素を好きなんだな。
IEでは、VALUE属性とその値を指定しても、
* HTTPリクエストヘッダにBUTTON要素の内容が提出されるバグがある、
* JSで取得しても、同じく、BUTTON要素の内容が取得されるバグがある。
わけだから、一般に、BUTTON要素は激しく無視されてるだろ。
どうも最近、回答者の質が極端に落ちてるんだが、
最近のおまえらはCSSスレとかWEB初心者板とかの住人じゃないのか?
すいません。CSSスレとかWEB初心者板とかの住人です。帰ります。
俺も帰るわ。ム板の住人だけどね。
だからJavaScriptはともかく、HTMLはたいして分かんない
534 :
Name_Not_Found:2007/05/25(金) 22:48:05 ID:pP5LsM5l
>>530 火狐はおkだけどなぜかIEは駄目だ@version: 6.0.2600.0000
CSSのborder-style自体が使えないみたいだ。
対応ブラウザにはボタン、非対応ブラウザには画像を作ってやることにした。
ええい、めんどくさい
いっそチェックボックスd(ry
ともかく色々とありがとうございました。
Windows XPスタイルだとだめなんじゃ?
776 名前:水先案名無い人 [sage] 投稿日:2007/05/25(金) 16:35:54 ID:dlpL8z8d0
「あんみつ」、「コーヒーゼリー」をイメージしたjavascript:document.body.innerTextパン
http://news23.2ch.net/test/read.cgi/news/1180076933/1,16,19 16 名前: 住職(長崎県) [sage] 投稿日:2007/05/25(金) 16:12:18 ID:okCzduGP0
ああ、かしで単語登録してたんだった。
スレタイ、スマソ。
正しくはjavascript:document.body.innerTextパンって入力したかった・・・。
19 名前: 住職(長崎県) [sage] 投稿日:2007/05/25(金) 16:13:01 ID:okCzduGP0
すまん、菓子パンだ。
何度もすまん。
537 :
530:2007/05/26(土) 01:47:04 ID:???
>>534 んーナゼだろか・・・
XP HOME SP2 + IE 6.0
function btn(obj){
for (var e in obj.style)
if (e == "borderStyle")
alert("ok");
}
こんな風にするとok出ない?
>>535 画面のプロパティの「テーマ」の事だよね?
XPでもクラシックでも試したんだが・・・
538 :
520:2007/05/26(土) 10:05:00 ID:jlIW4azZ
>>537 okは出ました。
>>535の言うようにテーマをクラシックにすると綺麗に凹みました
実はパソコンは非ネット環境でSP2未適用、
携帯から書き込んでるというのは秘密
SP2で修正されたんですね。。
実はも糞もねえだろ。まず、それを言えよボケ。
540 :
Name_Not_Found:2007/05/26(土) 13:45:42 ID:kGmDg9xs
質問です。
String.prototype.red = function(){
return this.style.color='red';
}
だと、null or not an objectのエラーになってしまうのですが、なぜ
なんでしょうか。styleを使った正しい書き方を教えてください。
Element.prototypeとか? IEには無いがね
Stringを拡張して何に使おうというのか・・・
あとredをどう呼び出してるのかをなぜ一切書かんのか?
543 :
540:2007/05/26(土) 14:35:17 ID:N1wFp1CM
>>541 ありがとうございます。自分としては、なぜこのコードでダメなのか
理由が知りたいんですが、そのへんはどうなんでしょうか。
環境は、WindowsXPなので、Element.prototypeというのは無理ですね。
544 :
Name_Not_Found:2007/05/26(土) 14:35:51 ID:7fqHd2VF
質問失礼します。
テキストボックスに文字列を入力させて「検索ボタン」を押すと、
同一ページ内に同じ文字列があった場合は該当の文字全てをマーカー表示
(見た目はGoogle等の検索結果の「キャッシュ」で表示させたよな感じに)
したCtrl+Fの改造版検索みたいな機能を作りたいのですが可能でしょうか?
現在は以下のようにHTMLとJavaScriptを組んでいます
ttp://up.spawn.jp/file/up22568.html(ソース)
ttp://up.spawn.jp/file/up22572.htm(動作)
上記の説明ですがとりあえず検索対象となる全体をtextareaで囲ってしまい
検索する文字と、検索対象の文字が一致した場合は
背景に色を付けるHTMLを挿入して置き換える方法をとっているのですが、
何だかスッキリしないというか複数一致しても1個しか変換できなかったり
ソース自体もだんだんと怪しくなってしまいました。
何か良い方法は無いでしょうか?お願いします。
>>543 Stringオブジェクトにはstyleプロパティってないでしょ。
だからstyle.color入れようとしても駄目ということだね。
それ以上説明しようがないがな。
>>546 アンタが解説してるとーりのJavaScriptコード書くだけだろ。
どの部分の書き方が分からないのさ。
#まあ原因は普通に見当付く訳だけど
こっちの質問には一切答えないみたいだし
放置でいいね
550 :
546:2007/05/26(土) 15:17:24 ID:???
すいません、iframe内にURL先開くところが分かりません。
551 :
Name_Not_Found:2007/05/26(土) 15:17:40 ID:AdEgt7V8
猛烈に初心者ですが、よろしくお願いします。
他所ですれ違いで迷惑をかけてしまうほどの初心者です。
ここで合ってますか?
ページが読み込まれたら行かせたい場所に飛ばすのは、
↓で良いそうなんですが、
読み込まれて10秒後に飛ばすようにするのはどうすればいいですか?
<script language="javascript">
<!--
var doit=true;
function exit(){
if (doit) open("行かせたい場所アドレス")
}
// -->
</script>
<body onload="exit()">
>>551 その前に、doitは何のため?飾りか?
飾りワロタ
554 :
543:2007/05/26(土) 16:05:51 ID:???
>>547さん
そういうことですか。なるほ。ありがとうございます。
>>547 見えないところでこんな設定があるのかも知れないじゃないか。
String.prototype.style = { color:"hoge" }
556 :
551:2007/05/26(土) 16:33:36 ID:???
>>552さん
私に教えてくれた人が、くれた、そのままのソースです。
加工する能力は無いので何の疑問ももちませんでした。
>>551 <a href="行かせたい場所アドレス" target="_myTarget">押す</a>
statusバーを凝視して「表示されました」に変わったら10秒待ち、「押す」
を押す。
>>551 悪いことは言わないから、JavaScriptを最初からちゃんと勉強したほう
がいいよ。洩れはネットで人がくれたコードをわけも分からず使う気に
はとてもならない。素養ゼロで教えてくれったって、そりゃ無理だし。
まず、自分で勉強して分からないところを聞くのが筋じゃないかなあ。
>>551 いまどきのブラウザはそれブロックするだろう。何年前に作ってもらったスクリプト?
それ以前にどうして新窓を開かなければならないのだ。
561 :
551:2007/05/26(土) 16:45:27 ID:???
>>557さん
自動で10秒後に飛ばすのは無いからこっちにしときなさいって事ですか?
>>55 あるいは勝手にStringオーバロドしてるとかなw
563 :
551:2007/05/26(土) 17:06:12 ID:???
>>560さんいまは使っていないアメブロにいまだに毎日200前後のアクセスがあるので。
移転先のシーサーブログへ飛ばして誘導したいんです。
今は、551で出した方法で飛ばしていますが、
<p>で囲ってgifアニメで、移転しましたのでそそちらへどうぞペコリ
みたいなのを表示させて、あまりにすぐ飛ぶので、
10秒位の待ち時間をつけたい
ということです。
>>563 <body onload="setTimeout(function(){location.href='行き先';}, 5000)">
>>550 「frames.sample.location.href = 表示URI;」
暗黙の変換は避けた方がよくね?
>>564さん
ありがとうございます。
早速設置して来ました。大変いい感じです^^
ほかの方もありがとうございました。
>>567 JavaScriptにする意味あんの?
>>544 str_all = str.replace(new RegExp(str_sch, "g"), "<font (略)");
何かさっきからヘンに長く書いてるのがいるね。
よく知らないんだねJavaScript
>>563 それは、JavaScriptでやる事じゃ無い。<meta>でやる事だ。
meta 転送、くらいで検索すれば出てくる。
きちんと設定すれば、検索エンジンも拾ってくれる。
573 :
Name_Not_Found:2007/05/26(土) 19:28:49 ID:V07v+uy7
質問です。
正規表現を勉強中なんですが、match()なんかの場合、()の中が
strなのか表現なのか分けわかんなくなります。どうしてこう書
き方が混在しているんですか。チップスお願いします。
>>573 暗黙に型が変換されるからだ。
.match("正規表現") は
.match(RegExp("正規表現")) と自動でされる。
ちなみに
"文字列".match(/正規表現/);
/正規表現/.exec("文字列");
はほぼ同じ
文字列渡してるのがヘンだとか抜かす奴は
ポリモルフィズムも知らないボケなんだろなと思えちゃうわけで
悪いが576に同意するわけで
内部的に言うとVariantChangeTypeが近いかもな
ボケの人はなんでいつもそうとげとげしいんだ。
暗黙の変換は避けた方がよくね?
意図がある場合はおk
おれも576に同意しちゃう。というか、ポリなんとかというの、なんか
スゴイ気がして。ポリグラフくらいしか知らないこんなおれでごめん。
>>569 ご指摘通り修正したところきちんと全部置き換えてくれました
ありがとうございます(´;ω;`)
ポリ袋ならしってる!
586 :
546:2007/05/26(土) 21:23:31 ID:???
すいません
>>546です、また質問させてください。
iframe内に表示は出来ました、次に表示した内容を変数に入れたいのですが
iframe内へ表示した内容へのパスがわかりません・・・
frames.sample.innerText とか色々試したのですが特殊なのでしょうか?
ポリバケツ
クロスドメインスか?
>>586 テンプレをちゃんと読んでないだろ。表示内容が別鯖のものなら
その内容を取り出すことは絶対に不可能だから。
クロスドメイン問題ってどんなブラウザでも同じだったっけ?
あとテンプレってどれ???
本当にここ見てる他の人はふつーにmatch()に文字列渡すのがいいと
思ってるわけなの?洩れの場合、
(1)固定文字列の検索→str.indexOf(文字列)
(2)正規表現の検索→str.match(/正規表現/)
(3)正規表現を実行時に組み立て→str.match(new Regexp(文字列連結等))
のように使い分けているけど。(1)の用途でmatchを使うのは
文字列に特殊文字があったらアウトだから危ういでしょ。
(3)の用途の場合は「そういうヘンなことをしている」という
ことを見てすぐ分かるコードとして(3)がいいと思っている。
他の皆様がどのような方針で文字列をmatch()に与えているのか
参考までに伺わせて頂けると嬉しいです。
>>590 どんなブラウザでも絶対に同じです。つかそんなのが取れる
ブラウザがあったら情報抜かれ放題になるから誰も使わないだろ。
テンプレというのはスレの冒頭部分
>>1-10 くらいで、この
問題の場合は FAQ
>>3 のQ1-A1つまりしょっぱなにある。
>>591 new Regexp()はクセがあるよね、書き方に。なので、洩れはあんまり
使わない。
594 :
590:2007/05/26(土) 23:00:25 ID:???
ゴッ・・・ゴメン・・・
テンプレのどこ、
って聞いたつもりだったんだけど・・・
まあバカさでは同じようなもんだけど・・・
初っ端でした・・・orz
>情報抜かれ放題
ドメインが違うぐらいなら別にいいような・・・?
セキュリティゾーンを越えて
インターネットゾーンからマイコンピュータゾーン(ローカルファイル)に
アクセスされるようだと問題だと思うけど・・・
俺何か間違ってる・・・?
>>594 洩れが「さまざまな情報ページにすぐ飛べる」ページを作って
アンタに使ってもらうよ。で、その飛んだページを自由に眺めて
くれたまへ。実はその開いたページの内容、すなわち、
アンタが見てるものを全部記録させてもらうけどね。
あとで「バラされたくなかったら…」というメールが来ないと
いいけどね。
597 :
594:2007/05/26(土) 23:33:50 ID:???
うーむ・・・例えばフレーム内のdocument.body.onkeydownに何か仕込んで
何を入力したのかわかるようにする、とかそういう事か・・・?
でもだとするとアドレスバーはフレーム親になってるので怪しさ満杯な
気が・・・?
でもアドレスバーをフレーム子にするやり方があるのかも・・・?
勉強して出直します・・・
JavaScript でキーロガーですか
599 :
594:2007/05/26(土) 23:58:00 ID:???
あとお礼忘れてた・・・
どうもありがと。
隠しフレームにYahoo!を読み込ませて「こんにちは、○○さん」を読み取って
迷惑メール送るとか、
もしログイン状態だったら裏でYahoo!メールの入力欄に勝手に入力して
submit()とか
601 :
Name_Not_Found:2007/05/27(日) 10:36:44 ID:i1K9+cg5
質問です。
document.write('JavaScript'.substr(1,3));
で出力される文字に背景色を付けたいんですが、いい方法
はありますか?ご教示ください。
document.write('<span style="background:#ff0">' + 'JavaScript'.substr(1, 3) + '</span>');
substrの存在意義がないな
ここはsubstrをオーバーライドすべきところだろう。
605 :
602:2007/05/27(日) 13:15:37 ID:???
>>603-604 なるほど、そういうことか。気づかなかった。
あまり「いい方法」とは言えないが……
String.prototype.substr = function(from, len, color) {
if (!color) color = '#ff0';
return '<span style="backgrond:' + color + '">' + this.substring(from, from + len) + '</span>';
};
間違えた。
backgrond → background
>>605 >あまり「いい方法」とは言えないが……
たしかに、StringのメソッドがHTMLソーステキストを返すとか、String#substr() という本仕様から外されたメソッドの名前だとか、レガシー詰合せだな。
ちょっと難しい内容について相談させてください。
JavaScriptとDHTMLによる動的なWebページを作成しているのですが、
可能であればユーザにブックマークさせたいと思っています。
例えばある企業のページがあったとして、
トップページからコンタクトのページをクリックした場合に
ページ遷移なしでかっこよくページが切り替えた上で、
切り替わった先でブラウザのURLを別のURLに差し替えたいのです。
サーチエンジンの関係上hash(#)を使った解法はあまり適さないのですが、
何かページ遷移なしでURLを変更させる方法はあるでしょうか?
些細なアイデアでも結構ですので是非教えてください。お願いします。
>>608 根本的に考え方が、変ではないか?
よく考えてみなさい。その質問は、
"今表示しているURLと、全く違うURLをプラウザに表示させるにはどうしたら良いですか?"
こう言う質問に変換が可能だ。
そんな事、簡単にできたら、セキュリティが崩壊する。
>>608 DHTMLとか死語かと思ってた。
かっこよくっていう抽象的な表現ですけど、あれのことですね!ブラウザをフリーズさせてパソコンが壊れたかのように思わせたりする流行の手法!
ブラクラで検索したらみつかると思いますよ。
>>609 フレームとかajaxによるテキストの取得で表示するだけならできるんじゃ?
>>609 URLの文字列は変えられないだろ
やるとしたらハッシュ使うのがベストだろうが、
遷移する前後に一回ホワイトアウトするという手もあるかもね。
[loading...]とか出しとくんかなw
逆に考えるんだ、最初にブックマークさせたいページのURLに移動させて
そのページを表示させないで、ajaxでトップページを表示させるんだ。
カオスw
614 :
Name_Not_Found:2007/05/27(日) 19:17:15 ID:Wz6cRcNB
location.hrefで飛ばすとHTTP_REFERERが空になってしまうのですが、
きちんとREFERERがはいった状態で飛ばす方法ってありませんか?
ブラウザが悪い。
普通に送られることを確認できた。
616 :
Name_Not_Found:2007/05/27(日) 19:36:24 ID:Wz6cRcNB
いやブラウザ悪いってのはそりゃそうなんですが、
その空になるってブラウザはIEなので、切るわけにはいかないんです・・・
飛ばす前にクッキーくわせちゃえ
618 :
Name_Not_Found:2007/05/27(日) 19:59:02 ID:Wz6cRcNB
ああ、なるほど・・・クッキーで試してみます。ありがとうございます。
619 :
Name_Not_Found:2007/05/28(月) 05:03:40 ID:NRaHbOR3
質問です。
ロールオーバーでテキストリンクに触れると、
別フレームの画像を変更するということをしたいのですけど可能でしょうか?
質問です。
特定のURL先からタイトルを取得して表記するにはどうすればよいですか?↓までは分かるのですが、その先が分かりません。
document.write(document.title);
623 :
Name_Not_Found:2007/05/28(月) 12:00:08 ID:F0AiLl/V
function popUp(i) {
ID.innerHTML = txt[i]; ←この構文にエラーが出るの何で?
ID.style.left = event.x + 10;
ID.style.top = event.y - 5;
ID.style.visibility = "visible";
}
>>623 そんな構文でエラーが出ないほうのブラウザがどうかしてる。
あんたのような人間はここでは最低とされている。
>>2.4) 嫁。
626 :
625:2007/05/28(月) 12:59:35 ID:???
ごめん、スレむだにして。
あんた =
>>623 な。
627 :
619:2007/05/28(月) 13:02:28 ID:???
>>621 はい。FQAを呼んだ上での質問です。
同フレームなら難なく出来たんですが
出来れば別フレームでしたいので…
628 :
Name_Not_Found:2007/05/28(月) 13:18:41 ID:F0AiLl/V
例えば<FONT>ち○こま○こ</FONT>
のフォントタグ内の言葉を参照するってできますか?
onMouseOver=Up(フォントタグ内の文字)
としてup関数に引数として送りたいのですが。
よろしくお願いします。
>>627 frames.相手フレーム名.document.images.画像名.src = '差し替え画像';
とか。まあ相手フレームの指定方法が色々あるかも知れないけどね。
>>622 過去スレ全集のvol.3 415-431 を読めばいいんじゃないかな。
>>628 その要素にID振って
document.getElementById('ID名').innerHTML
を参照すればいいんでしょ。
631 :
Name_Not_Found:2007/05/28(月) 14:03:22 ID:F0AiLl/V
>>630 あなたは神さまです。
その要素をマウスクリックしたら表示しようと思うのですが
ID.style.top = event.y;
とした場合スクロールしているせいかマウスのすぐ近くにでてきません。
これはどうすれば良いでしょう?
632 :
620:2007/05/28(月) 14:33:30 ID:???
Event.observe(window, 'load', init , false);
function init(){
Event.observe($('link1'), 'click', test, false);
}
function test(){
//処理
return false;
}
prototype.jsを使い、上記のようにscriptを書いて
リンク1のclickにイベントリスナーを割当てtest()を実行するようにしました。
<a href='#' id='link1'>リンク1</a>
<a href='#' onclick='return test();'>リンク2</a>
リンク1でもリンク2をクリックしたときの様に「処理」が終わったらアンカーの#に飛ばない様にしたいのですがどう書いていいかわかりません。(falseをリターンさせたい)
Event.observe return falseあたりでググってみたのですがいまいち求めてる答えにたどり着けません。
>>633 イベントハンドラからreturn false、もしくはeventオブジェクトのpreventDefault。
これ以上はprototype.jsのソース読んでくれ
>>631 アンタおんぶにだっこすぎ。スクロール位置を調べる方法が
あるんでそれを差し引けばいいだろ。検索すれ。
636 :
Name_Not_Found:2007/05/28(月) 17:39:35 ID:mUsEefn7
質問です。JavaScriptで可変変数のようなことは出来ますか?
具体的には、
ElementObj.innerHtml = 'Text';
と同じことをするのに
var vv = 'innerHtml';
ElementObj.$vv = 'Text';
のようなことをしたいです。
>>636 var vv = 'innerHtml';
eval("ElementObj." + vv + " = 'Text';");
638 :
Name_Not_Found:2007/05/28(月) 17:46:03 ID:mUsEefn7
>>637 あ、なるほど!
早々のご教示ありがとうございました。
>>637 さすがに、それは無いだろ…
[ ] 使えよ。
640 :
Name_Not_Found:2007/05/28(月) 18:11:25 ID:mUsEefn7
>>639 ありゃー。
ElementObj[vv] = 'Text';
で桶だったのかー。
どうもありがとう。
641 :
631:2007/05/28(月) 18:16:22 ID:F0AiLl/V
document.getElementById('ID名')
で取得した要素はどうやって使えばいいですか?
煮るなり焼くなり
643 :
631:2007/05/28(月) 19:08:48 ID:F0AiLl/V
すみません。その要素を変数か何かに入れないと表示が・・・。
ID.innerHTML = \'<TABLE width="150" bgcolor="#ffcccc"><TR><TD>\' + res + \'</TD></TR><TABLE>\';
上記の変数resの所にdocument.getElementById('ID名')で取得した要素を使いたいのです。
>>643 基礎から勉強しなさい。テンプレにいろいろあります。
過去ログ漁ってみたけど見つからなかったので質問。
Javascript1.5でサポートする全てのメソッド&プロパティについて
動作の可否をチェックすることができるようなサイトってないかな?
既存ブラウザのサポート状況が書いてあるページとかでなくて、
レアブラウザでの動作を自分でチェックしたいのです。
646 :
631:2007/05/28(月) 19:27:23 ID:F0AiLl/V
>>644 テンプレざっと見てみましたがのってません。
8時までにやらないとオレの脳内でとんでもないできごとが起きるので
よろしくお願いします
ID.innerHTML = \'<TABLE width="150" bgcolor="#ffcccc"><TR><TD>\' + res + \'</TD></TR><TABLE>\';
上記の変数resの所にdocument.getElementById('ID名')で取得した要素を使いたいのです。
>>646 脳内がどうなるか、8時といわず明日の朝までほっといてみよう。
648 :
631:2007/05/28(月) 19:33:37 ID:F0AiLl/V
いやいやほんま頼みます。私が働いているサイトで採用されましたら
ご報告しますんで。
650 :
645:2007/05/28(月) 19:38:36 ID:???
>>649 そのユニットテストを書いてあるようなサイトっていかにも
ありそうだけど、見あたらないから聞いてみたわけです。
なかったらそうする予定。
651 :
Name_Not_Found:2007/05/28(月) 19:48:52 ID:RYN9itl0
>>646 resにもinnerHTMLをつけてみれ。
あと\も全部削除してね。
>>651 凄いな、それだけの事で、単独スレ立ててたんだ…
これだから(ry
>>651 その単独スレの削除依頼を出して消されるまで洩れたちは何も
アドバイスしないからな(怒)
656 :
Name_Not_Found:2007/05/29(火) 03:00:16 ID:23WkrsKw
>>64 ↑こういうアンカーにマウスがオンしたら64のレスを出すポップアップ表示
みたいなのはどうやればできますか?簡単に言えば専ブラにある機能です。
ソースを貼ってくれれば一番ありがたいのですがもしダメなら使う関数と
簡単な説明でも教えてもらえないでしょうか。少し有名なサイトの管理人
をしております。非常識なようですが何卒力をお貸しくだされば幸いです。
不快に思った方はどうぞスルーして下されば幸いです。
>>656 スタイルシートのtop, leftとかをいじるんじゃね
>>656 いちばん簡単にはこういう感じかな
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function vis(id, visible) {
document.getElementById(id).style.visibility = visible?'visible':'hidden';
}
</script>
</head><body>
<div>
<span onmouseover="vis('x1',true)" onmouseout="vis('x1',false)">here</span>
<div id="x1" style="visibility:hidden; position:relative">
test test test test test test test test test test test test
test test test test test test test test test test test test
test test test test test test test test test test test test
test test test test test test test test test test test test
test test test test test test test test test test test test
test test test test test test test test test test test test
test test test test test test test test test test test test
</div>
</div>
</body></html>
思うんだけどさ、動くサンプル貼ってる場合、いちいち
コピペ保存して開かなくてもそのままブラウザでテスト
する機能がついたらすごくいいよねー。
みんな華麗にスルーの流れかと思ったら違うのか
>>661 そりゃイキナリじゃなくてまず普通に書き込み読んでまっとう
そうなら動かしてみるという順序で。
ウィンドウ開いてカットバッファから内容取って書き込むブックマークレット作ればいいじゃない。
最近はブックマークレットからウインドウ開けるかね?
>>664 ブックマークとかブログ投稿とか色々あるじゃない。
setTimeout(function ({document:d}) {
d.open();
d.write(getSelection());
d.close();
},
100,
document.body.appendChild(document.createElement('iframe')).contentWindow);
誰か、訪問済みリンクを非表示にするブックマークレット作ってくれませんかね
はてなブックマークのホットエントリー見るのに使いたいんですが
訪問済みか判定する方法ある?
CSSで色変わってるだけじゃだめなの?
671 :
668:2007/05/29(火) 21:57:46 ID:???
a:visitedをdisplay:none;にできないかなぁ・・・と
CSS変更するブックマークレットなんてそこらじゅうに転がってるじゃねぇか。
>>672 いや、ほんとはその訪問済みリンクの上にある
div class="entry"まで消したくて。
しかしスレ違いだったかもなぁ・・・申し訳ない
javascript:document.createStyleSheet().addRule('a:visited','display:none');void(0)
こんな感じかなあ。
ブックマークレットなんて作らないからよく分からないけど。
ここはスクリプトを探すスレですか?
え、オレ?呼んだ?
はい。あなたです。質問どぞ〜
えーでは質問です。JavaScriptでYコンビネータはどう実現すればよいでしょうか?
(document:d) ←これなに?
質問です。HTMLで、
<link rel="next" href="foo.html">
などと書くと、Operaや一部のMozilla系ブラウザでは、ナビゲーション用のバーを
表示するように設定していると「次へ」というボタンがバーに現れますが、
このボタンを押した時のイベントを取得することは出来るのでしょうか?
とりあえず、Opera で getElementsByTagName("link") して、click イベント
ハンドラを割り当ててみましたが、効きませんでした。
参考ページでも良いので誰か知ってる人がいたら教えてください
■前提
<body>がないページでjavscriptを実行する
document.writeを実行すると、その書き出しはさも<body>の下になるのですが、
document.writeはそういう動きをするという認識であってます?
(firebugとIE Developer Toolberで見たところ、そういうツリー構造になりました)
また、そのdocument.writeの後の行にwindow.onloadやwindow.addEventListener(load,…
などを書いていた場合、さっきの話からbodyの中で実行することにマズイのかなと思ったのですが、
どうなんでしょうか?
そもそも<html>も<head>も<body>もない時点で話にならないってものかもしれませんが、
ブログパーツなのでどんな人が貼るかはこちらではわからず色々試したいなと思いまして。
Elementを、オブジェクトの指定された既存のノードオブジェクトの後に挿入するメソッドってあります?
ある要素の後ろに突っ込みたいんだけど、そいつが最後のオブジェクトだとinsertBefore使えんでしょ?
if(obj.nextSibling)obj.parentElement.insertBefore(target,obj.nextSibling);
else obj.parentElement.appendChild(target);
見たいしないとダメ?メソッドがあれば教えてホスイ。
>>683 ブラウザが表示するメニューやボタンは横取りできないだろうと
思うけどなー。
>>684 bodyの中で実行しても別にまずくはないと思うけど。何が問題
だと思っているのかよく解らないなー。
>>685 document.body.insertBefore(
document.createTextNode("BBB"),
document.body.lastChild.nextSibling);
688 :
Name_Not_Found:2007/05/30(水) 13:10:08 ID:Lr9iEmq1
function popUp(i) {
var hiki = i;
var element=document.getElementById(hiki);
ID.innerHTML= '<TABLE bgcolor="#000000" cellspacing="1" cellpadding="3"><TR><TD bgcolor="#EFEFEF">' + hiki.innerHTML + '</TD></TR><TABLE>';
ID.style.left = event.x + 10;
ID.style.top = event.y + document.body.scrollTop;
ID.style.visibility = "visible";
}
function hidePop() {
ID.style.visibility = "hidden";
}
ぶっちゃけこのソースをファイアーフォックスやサファリでも動くようにしたいのですが…。
皆様ご教授よろしくお願いします。
689 :
684:2007/05/30(水) 13:11:36 ID:???
>>686 あれ?bodyの中でwindow.onloadやってもまずくないんでしたっけ?
head内で指定しないといけないと思い込んでた
>>689 別に問題ないと思うけど。ロードし終わるまでに設定されてれば
動いたと思う… 確か…
>>688 ID振ったらそれが直ちに変数にもなるというIEの邪悪な機能を使う
のをやめればよい。というか各関数の冒頭に
var ID = document.getElementById('ID');
を挿入すればいいんじゃないの。
>>688 けっこう面倒だからなんかフレームワークつかえ。
692 :
685:2007/05/30(水) 13:51:32 ID:???
<div>
<iframe></iframe>
<br>
aaaa
</div>
で
obj.getElementsByTagName("iframe")[0]はちゃんと出るけど
obj.getElementsByTagName("iframe")[0].nextSiblingがnullだけど
.nextSiblingはobj.getElementsByTagName("iframe")で追っちゃってるの?
1度obj.getElementsByTagName("iframe")[0]がdivの何番目の要素か調べないとダメ?
693 :
685:2007/05/30(水) 13:57:13 ID:???
orz...
リストの
<ol>
<li>←これをiframeに変えてた
お初です。。
質問があるんですが、同じスクリプトを同じページ内に共存させれませんかね?
<script type="text/javascript">
<!--
function myjumplink(){
var myword = encodeURI(document.f2.b2.value);
location.href="
http://www.nicovideo.jp/search/" + myword ;
}
//-->
</script>
<form name="f2">
<input type="text" size="20" value="検索ワード記入" name="b2">
<input type="button" value="検索" onclick="myjumplink()">
</form>
695 :
Name_Not_Found:2007/05/30(水) 17:19:16 ID:nsdQWPLl
これを使って1秒ごとのループを作りたいのですが
エラーが出てきます。
<script type="text/javascript">
function roop(){
location.href="aaaa.html";
}
setTimeout("roop()",1000);
</script>
なぜエラーがでるのかわからなくて、お力をくださいませんでしょうか?
696 :
694:2007/05/30(水) 17:20:23 ID:???
それと、
<script type="text/javascript">
<!--
function myjumplink(){
var myword = document.f11111.b11111.value;
location.href="
http://nicovideon.jp/watch/" + myword ;
}
//-->
</script>
<font size="3">
<form name="f11111">
<input type="text" size="20" value="動画IDを記入" name="b11111">
<input type="button" value="ニコニコ動画DL" onclick="myjumplink()">
</form></font>
↑と2つ一緒に書くとうまくいきませんorz
どうにか共存できんかね〜orz
>>685 >ある要素の後ろに突っ込みたいんだけど、そいつが最後のオブジェクトだとinsertBefore使えんでしょ?
DOMの仕様書を読んだ方がためになると思うけど一応書くと
insertBeforeは二番目の引数がnullのときは
insertBeforeを呼び出した要素の一番最後の子として挿入される(appendChildと同等)
>>696 実に非効率的かつユーザビリティが無い。
あんたに教えてもまたこの過ちを犯す。
>>695 普通に動く
もしかしてそれaaaa.html自身を再帰的にロードじゃないだろうね?
それと、普通にmetaで事足りるのにわざわざJavaScriptでやる必要があるわけ?
>>696 何のための関数名なのか考えてから出直してきなさい
>>698 ユーザビリティね
最近「roop」が流行ってる?
質問者が同じなんじゃないだろうか・・・
話がroopしてるじゃないか
それをいうなら、loopだろ。慣れない横文字使わんでええよ。
あのね、空気もなにもroopじゃなくてloopだから。
日本人の弱点だけどさ。ほんと、roopじゃなくてloopだから。
どこにloopって書いてあるんだ?文盲は黙っとれ。
話がroopしてんなwwwww
712 :
Name_Not_Found:2007/05/30(水) 23:09:10 ID:japuV7K4
そのサイトがまともじゃないのは昔からだ
714 :
Name_Not_Found:2007/05/30(水) 23:38:04 ID:OqmdkZHD
質問です。
閏年の判別で混乱してしまいました。
結局4で割り切れるか400で割り切れるかの年は閏年ってことでいいんですか。
100で割り切れるとか何とかいってますが、意味あるんでしょうか。ご教示を。
閏年 でググレカス
Number.prototype.isLeapYear = function(){return this%400 == 0 || this%4 == 0 && this%100 != 0;};
Date.prototype.isLeapYear = function(){return this.getYear().isLeapYear();};
prototypeを拡張するのはどうのこうのとかの話をしてくれ↓
やっぱこうか
Number.prototype.isLeapYear = function(){return this%400 == 0 || this%4 == 0 && this%100 != 0;};
Date.prototype.isLeapYear = function(){return this.getFullYear().isLeapYear();};
>>714 400で割り切れるなら必ず4でも割り切れるわけだが、わざわざ
400で割って見る意味はあるのかね(w
どうでもいいが、Number#isLeapYear()という発想はJS以前に不自然かつ不味いかつ自分でも居心地悪いだろ。
>>718 100で割り切れたら閏年じゃないってのがあるからだろ?
>>721 冫─' ~  ̄´^-、
/ 丶
/ ノ、
/ /ヽ丿彡彡彡彡彡ヽヽ
| 丿 x-box ミ
| 彡 ____ ____ ミ/
ゝ_//| |⌒| |ヽゞ
|tゝ \__/_ \__/ | | うちのIEなら2000は閏年のハズだけどなあ
ヽノ /\_/\ |ノ 100で割り切れると思うよ。いま電卓
ゝ /ヽ───‐ヽ / ないんであとでグレッグに計算させて
/|ヽ ヽ──' / みるけど。Firefoxはクソなんだ。
/ | \  ̄ / いま怖いのはGoogle Gearだけ。
/ ヽ ‐-
723 :
Name_Not_Found:2007/05/31(木) 12:04:27 ID:nSil/9qh
すいません教えて下さい。
オブジェクトについて勉強しているのですが、チンプンカンプンです。
オブジェクトがテープレコーダーとしたらということなんですが、どうして
テープレコーダーなのでしょうか。テープもオブジェクトだと書いてあるの
ですが、オブジェクトはテープレコーダーではないのでしょうか。
「画像は格納されませんね、それはテープレコーダーのオブジェクトだから
です」とはどういう意味でしょうか。よろしくお願いします。
テープレコーダーはあくまで記録する装置
実際の物が記録されるのはテープのほうだろ。
つまりそういうことをいっているんだ。
725 :
723:2007/05/31(木) 13:28:50 ID:???
>>724 大変分かりやすい解説ありがとうございました。まさに目からうろ
こです。オブジェクト指向が一気に解決いたしました。プログラミング
のすばらしさに目覚めました。ありがとうございました。
(; ゚д゚)
SAMURAIクラスから生成したobject「なかむら」はmethod「たたかう」「逃げる」「TILTWAIT」を
持っています〜みたいな説明されればキタネーコードは書けても読めないからな。
「べつに関数の参照を詰め込むだけです」
みたいな直線的な説明を最初からした方がいい。
オブジェクト指向スレならム板にあるだろうに。
729 :
Name_Not_Found:2007/05/31(木) 15:12:52 ID:lxKvyJKf
charCodeで文字が見られますが、その元になる表全体を見たいです。
一挙公開しているところとかありますか?あったら教えてください。
コツみたいなものも知りたいです。
ASCII Codeのことか? ググりもできないなら、JavaScriptで自作すりゃいいだろ。
ググりもできないのに、JavaScriptで自作できるとは信じられないが。
書店に行くよろし
>>729 Win+R押して「charmap」って入れてEnter
>>734 アクセサリ->システムツール->文字コード表
たいていの人は使ったことあるんじゃないかな
736 :
Name_Not_Found:2007/06/01(金) 01:32:32 ID:zeIXZvHy
http://www.doknowevil.net/litebox/ このliteboxをフレームで使いたいのですが、
左右に分割したフレームで、
左フレーム(name=left)に画像のサムネイルが並び、
クリックすると右フレーム(name=right)に効果が表示されて欲しいのです。
この場合、<A>タグのtarget=rightにあたる動作をしてもらうには、
どこを修正したらいいんでしょうか?
>>736 中身は読んでないが一般的に言えばparent.frames.right.images
とかparent.frames.right.document.getElementById()とかを使えば
いいんでしょ。あとは自力で頑張ったら。
738 :
Name_Not_Found:2007/06/01(金) 09:24:35 ID:oLujFU7t
質問です。
whileという条件判別は、
while(条件)
{
/*breakその他の命令*/
}
if(条件)
{
実際の実行コード
}
のように、ifの外にあってOKのようなのですが、これは正しい
ですか?ifの中で変数が吟味されるとき、whileの結果が保持され
ているということなのでしょうか?
739 :
Name_Not_Found:2007/06/01(金) 09:54:09 ID:7pQJiNym
ここが2chであることは良く知っていますが、分からないのでまじめ
に質問して来ている人に、いくらなんでも
>>739のことばはひどいで
しょう。人間として疑問を感じます。
>>740 何いってるの。もっとひどい板はいくらでもあるだろ。あんた向いてないよ。
なぜ煽られるかというと、コードちょっとも書いたことある人なら質問しない
ような内容だから。なぜ自分でちょっとは勉強して動かしてから来ない?
whileの条件もifの条件も「そこを実行してる時点で評価する」わけだから
どれとどれが同じということは何ら関係ない。
var i = 10; // or 11
while(i > 1) { i = i - 2; }
if(i > 0) { document.write('奇数'); } else { document.write('偶数'); }
似たような条件だけどwhileが終わった後で改めてifの条件を調べるだろ?
>>738 whileの中で変数に代入された値がwhileの外でも有効かどうか、それが心配なのかな?
javascriptでは関数単位でしか変数のスコープがないようなので、
whileの中で変数を宣言して代入したとしても、whileの外でも有効。
お行儀的には、whileの前で初期化しておいたほうがいいと思うけど。
743 :
738:2007/06/01(金) 12:48:08 ID:???
>>742さん
そうなんです、for文とちがうのでブロックを抜けたあとでも使って
いるのが不思議というか不安でした。関数単位。なるほどそういうこ
となら、わかります。分かりやすい解説ありがとうございました。
>>740さん
ありがとうございます。あまり気にしていませんので、2chですからw
>>737 ありがとうございます。がんばってみます。
>>742 すげー。あの文章からよくその意味を読み取れたね・・・
何を言っているのか全く分からなかったよ。
746 :
Name_Not_Found:2007/06/01(金) 15:38:12 ID:PPLoKoYE
質問です。
a='2007,5,1';のように変数に格納したものを
new Date(a)とすると動きません。括弧の中が文字列になって
るからだと思うんですが、日付オブジェクトが取れるように
するにはどうすればいいんでしょうか。ご教示お願いします。
747 :
Name_Not_Found:2007/06/01(金) 15:42:15 ID:7pQJiNym
2007-5-1
"May 1, 2007"
>>743 んだからそんなのは自分でちょこっとささっとコード書いて試してみればいいじゃねーかよ。
わかるわからないの問題じゃないんだよ。
ここに発言していている文章を書いている時間でそれくらいのコードかけるだろ?
うるせぇ、ヴォケ。おまえ、バカだろ。
753 :
746:2007/06/01(金) 18:34:34 ID:???
>>750 たまたま「自分の使ってるブラウザで動いた」からといって
それがどこでも通用するのかどうかは解らないだろ。それを
知るためには標準に当たるとか考えないといけないわけでさ。
とりあえず自分の使ってるブラウザで動かなければダメだろ?
1000要素以上の配列のシャッフルってどうやってる?
普通に
forループでi番目とランダム番目を入れ替え
(゚Д゚)ハァ?
ごめん。普通に
forループで100個のi番目とランダム番目を入れ替えて、
10グループをランダム繋ぎにする
760 :
Name_Not_Found:2007/06/01(金) 23:29:40 ID:50lffkbD
下記JavaScriptがWindows(IE)では動作するのですが、Mac(Safari)では動作しません。
Mac(Safari)でも動作させるにはどうすればよろしいのでしょうか。
教えてください。
<script type="text/javascript">
<!--
function SRby1() {
for(var i=0; i<600;i++) { window.scroll(i,0) }
}
//-->
</script>
>>760 視覚効果を目的とするのなら時間待ちがないと駄目。つsetTimeout
そういう待ちなしで動作させるのはブラクラになるので嫌われる。
>>756 for(var i = a.length-1; i > 0; --i) {
var j = Math.floor((i+1)*Math.random());
var z = a[j]; a[j] = a[i]; a[i] = z;
}
>>756 本題と関係薄くてすまんが、その<!-- //-->は要らんだろ。脅迫症的で好かん。
AJAXの着信処理のonreadystatechangeで質問したいのですが。
自分で定義したクラスのオブジェクトにプロトタイプでメソッドを追加して、
そのメソッドをonreadystatechangeでコールバックしてるのですが、
そのメソッド内でthisをつかって同じオブジェクト内のプロパティを参照
する方法がわかりません。
test.prototype ={
initialize:function(){
this.hoge=1;}.
ajaxcallback:function(){
alert(this.hoge); //1と表示させたいけどthisのスコープが違う
}
}
なので、コレを
test.prototype ={
initialize:function(){
this.ajaxcallback(this);
this.hoge=1;}.
ajaxcallback:function(n){
var i=n;
this.callback=function(){
alert(this.hoge);
}
}
}
などとして、callbackを着信後呼び出す様にしているのですが、
もっとスマートな方法ってありますか?
>>765 え?そんなアルゴリズムあるの?ちょっとコード
書いてみせてよ。
>>764 FAQ
>>4 のQ14-A14では不満なわけね?
>>765 それじゃ1/2しか確実にシャッフルされないじゃない。
全体を均等にシャッフルしたとして、1/4はシャッフル対象に選ばれずそのままになってしまうかと。
たしかに
>>762のコードは冗長な処理っぽい感じがする
もっといいのはいくらでもあるだろうけど、シンプルでいいんじゃないか
と思ったらなんか変だな、まぁいいけど。
>>765-770 だからさー、
>>762 のコードより「いいもの」があるのなら
ぜひ知りたいので貼って欲しいんだけど。
>>762 は書き方の
好みはともかく、アルゴリズムとしてはこのスレの定番でしょ。
>>762 配列要素を入れ替える必要はない。
配列から要素を参照するときにランダムに抜き出せば十分。
アルゴリズム的に面白いのは、
function my_random(){
return Math.ceil(Math.random()*3)-2;
}
とソート用関数を作っておいて
array.sort(my_random)
あんたらシャッフルの結果を比較したことあるのかよ。
Math.random()で入れ替え立ってみんな変わるわけじゃないしょ。
なので、1000個なら200個もやって最初だけとっとけば充分すぎる
くらい充分なわけさ。
>>772 それだと同じものが重複して抜き出されるでしょ。
それは「ランダムに取る」だけで「シャッフル」ではない。
>>773 それやると整列が終わらなくなるだろ。ガイシュツ。
しかも整列アルゴリズムの計算量は
>>762 よりずっと大。
>>774 もちろん何回も使ってるよ。
>>762 で完全にランダムに
入れ替わるとも。アンタがロクなアルゴリズム知らなかった
だけでしょ。
>>775 乱数で2の次に7がでるのも2が出るのも同じ確率なわけで
もいっかい、小学校再入学したほうがよさそうだな
例えばトランプゲームをつくるとして、ハートの2がでたあとに
ハートの2がでても困るんだが
なぜ困る。それでハートの2のワンペアじゃないか。トランプ知らんのか?
>>776-778 だから乱数が欲しいならMath.random()で終わりだろ?
我々が議論している問題は「0123456789」という10個の
数字をランダムに重複なく(それぞれ1回だけ)出したい、
そういう問題。それをシャッフルと読んでいるだけ。
その問題の
>>762よりも良い解法があるのならぜひ貼ってくれ。
別の問題の議論をしたいのなら後で分けてやってくれ。
なんだ釣りか。
>>778 なんで一組のトランプセットの中に、同じカードが2枚あるんだよ。
トランプ知らんのか?
782 :
Name_Not_Found:2007/06/02(土) 13:19:55 ID:fkVoJbMt
やっとソースを見る事になれてきた初心者ですがもう一歩
進みたくてお伺いします。
<form action="mail.php" method="post">
お名前 <input type="text" name="name">
メール <input type="text" name="email">
<input type="submit" name="sbm" value="送信">
</form>
グループで運営するサイトが3つあります。
それら全てに上記のような単純なメルマガ受付のソースがあるのですが、
リストを見てどのサイトから登録したのか分かる方法はあるでしょうか?
Aサイトからの登録、Bサイトからの登録…というように
分けられるような印のようなものをつける術はあるでしょうか?
例えば名前にA等の追記が出来ればいいと思うのですが
Aと入力させずに、リストにはAと追記された形で登録させたいのです。
お力をお貸し下さい。
よろしくお願いいたします。
<input type="hidden" name="site" value="a">
とか埋め込んどけばいいんじゃねーか?
お力をお貸し下さい。
とか聞くと、選挙やってるのかとおもっちまう
785 :
782:2007/06/02(土) 13:37:07 ID:fkVoJbMt
お世話様です。
hiddenというのは普通には見えない要素の事ですね?
例えば
hiddenで "name" に vakue="A"として、
続けてinput "name" に名前を入れさせるのは
間違っていますか?
同じnameというのはまずいでしょうか?
初期値にAと入れておいても入力するときに消されるので
駄目だったので手間いらずの良い方法がないかと考えているのです。
>>785 ぐだぐだ言ってないで、まずは言われたとおりにためしてみたらどうだ?
788 :
782:2007/06/02(土) 13:45:04 ID:???
お世話様です。
隠しというのは普通には見えない要素の事ですね?
例えば
隠しで "名前" に 値="ア"として、
続けて入力 "名前" に名前を入れさせるのは
間違っていますか?
同じ名前というのはまずいでしょうか?
初期値にアと入れておいても入力するときに消されるので
駄目だったので手間いらずの良い方法がないかと考えているのです。
>>785 フォームについてあまり理解できていないようですが、
サイトAでは、
<input type="text" name="name">
<input type="hidden" name="site" value="A">
サイトBでは、
<input type="text" name="name">
<input type="hidden" name="site" value="B">
とやっておけば、受け取る側のcgiでは、siteの値にAとかBとか入っているので
それを見てどのサイトからかチェックすればいいのではないでしょうか?
nameはなにもいじる必要はありません。
もちろんnameに何をいれてもsiteの値は変更されません。
もし、受け取り側のcgiの改修ができなくてどうしてもnameに追加したいというのであれば、
onSubmitを使ってnameにAとかBとかつけてやればいいのではないかと思います。
>>775 重複を許さないのなら、抜き出した後に、配列の最後尾要素を移動させ
配列数を減じていけばいいのだ。
>>775 そう、だからまさに
>>762 がそれでしょ?全要素から
ランダムに1つ選んでそれを再後尾に置く。再後尾にあった
要素は替わりにランダムに選んだものがあった場所に置く。
それを長さを1つずつ減らしながら順にやってるわけ。
792 :
782:2007/06/02(土) 14:26:47 ID:fkVoJbMt
アドバイスを参考に色々試しました。
ですが、formからはnameとemailの二つしか入らないようになっているようで
site(hidden要素)で入れたデータは取れませんでした。
onsubmitについてのアドバイスから探してみましたが難しいです。
要約しますと
名前を入力する欄は"name"でなくても良いわけですね。
要は
hiddenでサイト別のデータを取り、
name2で名前データを取り、
それらをjavascriptで nameというデータにしてformに送れればよいと。
こう理解しています。
ですが、その指定方法などが分からず悩んでいます。
どなたかこういった場合のアドバイスをお願いできないでしょうか?
自画自賛?
>>792 それでいいんじゃないの。name自体はhiddenにしておいて
<form ... onsubmit="this.elements.name.value = this.elements.site.value + ':' + this.elements.name2.value">
とか?
>>794 別に素晴らしいもなにもこのスレで確立してる定石だし。
もっといいものがあるならぜひそれを新しい定石としたいね。
>>791 だからやり方は常識なんだよ。
オレなんか20年前からそうやってる。
昔々のASCIIにソースが載っているから暇があったら見てくれ。
違うのは必要な時にやるって考え方だよ。
シャッフルというと直ぐにまとめてやりたがる。
それが間違いと言いたいのさ。
798 :
Name_Not_Found:2007/06/02(土) 15:19:54 ID:yOLECj8v
質問です。HTMLを
<div id="header"></div>
<div id="body"></div>
<div id="footer"></div>
としたときに上からしたまでの高さを100%使い切ってなおかつ
リサイズしたときにbody部のみを伸縮可能にしたいのですが、
そういった事は可能でしょうか?
定期的に画面サイズを取得して、body部を計算した上で
高さを設定するしかないのでしょうか?
>>797 そうそう、やりかたは常識、それでFAだよね。よかったよかった。
「1個データが欲しいごとにやる」のと「最初にシャッフルして
配列で持っておく」のとは作る人の選択でいいんじゃないの。
洩れ的には、いちどにシャッフルしてそれを順に使う方が他の
場所でシャッフルについて考えないでいいからコードの場所ごとの
役割がきっぱり分けられて気持いいと思っているが、そこは好み
ということでいいと思う。もっともシャッフルしたデータを2回
使うとか言い出すと「そのつど」はやりづらくなるけどね。
800 :
Name_Not_Found:2007/06/02(土) 15:26:08 ID:yOLECj8v
798です
伸縮可能にしたいのですが → 伸縮させたいのですが
オレなんか1万年と2000年前からやっている
803 :
Name_Not_Found:2007/06/02(土) 16:50:29 ID:z9dxF5Xo
正規表現で特殊なアルファベット文字のことを何て呼びますか?
簡単すぎてすいません。
804 :
Name_Not_Found:2007/06/02(土) 16:59:26 ID:5/E1Pp7r
リラテル文字
メタ文字
806 :
803:2007/06/02(土) 17:58:08 ID:???
>>805さん
ありがとうございます。メタ文字、了解です。
807 :
Name_Not_Found:2007/06/02(土) 21:01:32 ID:u1pIm9xG
809 :
Name_Not_Found:2007/06/02(土) 21:51:33 ID:u1pIm9xG
>>808 説明どおりにやっても設置出来なかったので
設置の仕方を教えていただきたいんです
なんでこんなに偉そうなんだ
812 :
Name_Not_Found:2007/06/02(土) 22:18:03 ID:u1pIm9xG
>>810 申し訳ない 分からんので詳しく教えて頂きたい
814 :
Name_Not_Found:2007/06/02(土) 22:23:16 ID:u1pIm9xG
>>813 nicky.cgi?UserCustomCってなんなんでしょうか?
そもそもcgiは設置してるのか?
816 :
Name_Not_Found:2007/06/02(土) 22:28:32 ID:u1pIm9xG
>>815 していません 外部にcgiを設けて呼び出すって事ですか?
そもそもcgiは設置してるのか?
これがゆとりの弊害か・・・
819 :
Name_Not_Found:2007/06/02(土) 22:41:52 ID:u1pIm9xG
>>819 >意味が分からないんですけど
テラコッチノセリフスwww
822 :
Name_Not_Found:2007/06/02(土) 22:45:36 ID:u1pIm9xG
824 :
Name_Not_Found:2007/06/02(土) 22:49:17 ID:u1pIm9xG
>>824 cgiの意味が解るようになってから再チャレンジしな
826 :
Name_Not_Found:2007/06/02(土) 22:57:26 ID:u1pIm9xG
ホント最近、釣りと池沼の区別が付きにくくなってきたな
それだけテクニックが向上したということか……
828 :
Name_Not_Found:2007/06/02(土) 23:09:58 ID:u1pIm9xG
ここの住民って元から答える気が無いんですか?
釣り→競争を繰り返す内に高度に
池沼→ネットが身近になると共に流入量が増加
>>828 javascriptに関係無いので余所でやって下さい
831 :
Name_Not_Found:2007/06/02(土) 23:12:47 ID:u1pIm9xG
834 :
Name_Not_Found:2007/06/02(土) 23:26:36 ID:u1pIm9xG
はいはい消えます消えます
835 :
Name_Not_Found:2007/06/02(土) 23:40:17 ID:Sk5QfCw0
___
| / /
| | / ⌒
l :..:; .:'-、 ⌒
/ / `、;:.: :.: .`、 \ \
,.、,、,..`、::. .; .:.:;'、 /i
( ( ;'`;、、:、. .:、:, :,.: ::`゙:.:゙`''':,'.´ -‐i
'、;: ...: ,:. :.、:',.┃.:: _;.;.. :..‐'゙  ̄  ̄
┃;., : :;.: :)
\ \. ┃ "'-、ノ ノ ノ
_,...、、、┃、、、...,_
,..::'"´ 三シ ヾ三`'::、
/:::::;:、 .._ _,,.. ;ヽ,
/:::::;: '´ <でiンヽ ;'i"ィでiン ヽ;',
i':::::/ , 、 ‐' ./ !、 ーシ ;',
i':::::i , ,' : !. }.i!
i':::::! i ,、 ,..、ヽ i i
{:::::i i`''ー- 、..,,,,,___ __,,,,..、‐i゙ i
.i::::!. ', ______ / /
,..., .ヽ::、 ヽ,´ `゙ヽ, ,/./
i゙ iー"゙'ゝ、.,,_`'‐、.,,___,,...ゝ'",./
`;ー''ゝ:::::::::::,二M=w-、‐=''"´
/ ○/:::::::::/´ ゝソ/\...,
'、__,..!,{::::::::::{ 「`゙゙'''ー-、/`'( )
`ヽ::::::::`::.,''ー--,/ `"´
(`'ー--‐゙<"´
`'‐---‐'
ゆとり世代って「うんこちんちん」を知らないせだいだよな。
だいぶ手遅れだがCGIの設置がわからんならまずは初心者スレへ。
しかし何年か前までなら、
>>773みたいな適当な並べ替えかつ激遅な方法を提示する低脳はASでしか見なかったけどな。ついにJSの底辺もここまで堕ちたかという感じだ。
841 :
Name_Not_Found:2007/06/03(日) 01:57:32 ID:gDD347XL
皆様お願いします。
document.getElementByIdは要素を取り出す関数だと思うのですが
firefoxでは対応していません。
firefox対応のこれと同じ動作をする関数は何でしょうか?
よろしくお願いします。
> firefoxでは対応していません。
なわけない
843 :
Name_Not_Found:2007/06/03(日) 02:08:18 ID:gDD347XL
そうなのですか?
ならば
ID.innerHTML= $data;
のinnerHTMLか
ID.style.visibility = "visible";
のstyleが対応していないのでしょうか?IEでは表示されるのにfirefox
では動作しません。
Firefoxでも対応してるよ。
っていうか少しでもぐぐってみればそんな結論にはならないと思うんだけど・・・
IEだとname属性でも拾い出すらしいけどこれかね。
普通はid属性だけ。
もし、nameで指定してるんだったらidに直す。
それが出来ないならdocument.getElementsByTagName('*')で全部走査して探すしかないかな。
要素が決まってるなら範囲を絞って。
>>843 どこが問題点なのかも把握してないんすか・・・
innerHTMLは使ったこと無いからわからないな。
とにかく、シンプルなコードを書いてどこが問題点なのか探してみなよ。
質問が見当違いなんじゃ、答えだって見当違いにしかならない。
846 :
Name_Not_Found:2007/06/03(日) 02:17:39 ID:gDD347XL
>>844 素晴らしい方ありがとうございます。
var element=document.getElementById(引数でIDの名前がきます);
ID.innerHTML= '<TABLE bgcolor="#000000" cellspacing="1" cellpadding="3"><TR><TD bgcolor="#EFEFEF">' + 引数.innerHTML + '</TD></TR><TABLE>';
ID.style.left = event.x + 10;
ID.style.top = event.y + window.pageYOffset;
ID.style.visibility = "visible";
お寒いスクリプトですが全部晒させていただきます。
これで本文中に埋め込んだ
<SPAN id="ID" STYLE="visibility: hidden; position: absolute;"></SPAN>
をビジブル状態にして表示したいのですが上手くいきません。
IEでは表示されます。属性は全てid=として指定しております。
どこがダメなのでしょう?
>>846 引数.innerHTML
ちなみに
それ ie で思った通りに動く?
innerHTML でテーブル突っ込むと表示されなかった気がするんだけど。
テーブルの中を突っ込むとだったかなあ。
あと
span の中に table は入れられない。
var elementはどこいったんだ?
849 :
846:2007/06/03(日) 02:35:56 ID:gDD347XL
>>847 そうなのですか?IEだと不思議と動作しています^^
ちなみにIEの方はID.style.top = event.y + window.pageYOffset;の
マウスイベントが違う全く同じソースです。
spanの中にtableが入れられないとのことですが問題はそこでしょうか?
850 :
846:2007/06/03(日) 02:38:39 ID:gDD347XL
>>848 超クソクソ初心者ですみません。var elementを表示するとdefine?
見たい文字になりましたので・・・。どうやって使うのでしょうか?
皆さんのような高度な方たちにど素人質問で申し訳ございません。
>>846 また、あんたか…
テンプレに載ってる所で、基礎を学んで来いって言われてるだろ。
遠回りに思えるかもしらんが、それが、近道だ。
852 :
846:2007/06/03(日) 03:06:23 ID:gDD347XL
>>851 勉強してIEで動くようになったのにファイヤーフォッ苦スがw
多分関数を変えるだけの簡単な質問になるとおもったのに・・・orz
すみません。で解決方法わかりませんか?
読めばわかる。ってか読んでからこい。
>>846 ダメな部分は1行目以外全部
> ID.style.left = event.x + 10;
> ID.style.top = event.y + window.pageYOffset;
この部分はFirefoxだとeventが定義されてないから
処理を分けないとなりません。
”IEだと不思議と動作しています”というのを
どうしてもFirefoxで動かしたいなら
他の人が言ってるように基礎を学んでください。
結局、IEで勉強してその後で他のブラウザに対応という道筋が
よくないんじゃないかな。IEの標準にない機能ばっかり覚えて
しまうから標準準拠メインのブラウザ群で動かないとこだらけの
コードを書くようになってしまう。Gecko系でまず覚えてIEで
動かないとこだけちょっと手直しするという道筋がいいと思う。
856 :
Name_Not_Found:2007/06/03(日) 08:57:14 ID:9jCz9j96
質問です。
popメソッドの中身なんですが、array.lengthは書き換えできませんよね。
だとすると、どういう風に最後の要素を操作しているんでしょうか。
857 :
Name_Not_Found:2007/06/03(日) 11:13:13 ID:VlU5+j78
こんにちは。
ここは優秀な方が多いと聞いてやって来ました。よろしくお願いします。
質問というのは、配列のunshiftのことなのです。わたくしなりにいろいろ
辞書で調べてみたりしたのですが、分かりませんでした。なぜこれには
unというのがついているのでしょうか。unは否定のことだと英和辞書
(研究社)に出ていたのですが、シフトしているように思えるので、ます
ます混乱しています。どうしてunなのかご教示下さいますよう、よろしく
お願い致します。
早々
undoを「doしない」って思ってる阿呆に何を言えばいいのやら
俺の辞書には、
<動詞につけて>…戻す、…(を)取る、抜く、外す、離す。
っていう項目もあるんだけど。
>>856 array.lengthは書き換えできるけど。
861 :
857:2007/06/03(日) 12:33:22 ID:???
>>858 誰がそう思ってるって言った、このヴォケ。氏ね。
釣りはスルーで。
いd
>>857 shiftの反対だからです。
そもそもなぜshift(移動)かというと、配列の先頭に要素を挿入するとメモリ上で
(中略)
どんな言語でもpushでも同じ場面でshiftを使う奴は相当痛いということです。
865 :
864:2007/06/03(日) 12:52:25 ID:???
やべ。間違えた。黙ってりゃ気付かれないか。2chだからな。
叩けなくなってしまったw
867 :
Name_Not_Found:2007/06/03(日) 14:11:16 ID:3Oc1++3h
>>864 丸山さんですか?池袋の○U○○Gでお会いした。残念でしたね、例の件。
868 :
Name_Not_Found:2007/06/03(日) 15:33:38 ID:wrBCDVDS
JAVASCRIPTを独学で2年やっていますが、いまだによく分かりません。用意さ
れている単語がありすぎてとても覚えられず、いつも本とにらめっこです。
時計の書き方は難しすぎてとても手が出ません。こんなのをスラスラ書けて
しまう人は天才だと思います。そこでどうか勉強法を教えて頂けないでしょ
うか。あと、皆さんは電子専門学校を出られた方なのでしょうか。初め
ての書き込みで失礼がありましたら、どうぞご容赦ください。
時計の書き方っつても
デジタルとアナログでは多少難易度が変わるし。
本当に2年間みっちり勉強して
ある程度のところまで行かないのなら
向いてないんだと思うよ。
JavaScript は目的とそれを実現するための手段が
割と直に結びついてるから
わかりやすい言語だと思うけど。
自分は C をガッコで習って
JavaScript は独学です。
このスレには本当の上級者もいるので勉強させてもらってる。
うーん、片っ端から暗記しようとしてるの?
プログラマだって全部覚えてたりはしないよ。
よく使うものは自然と覚えるけど、それ以外は必要になったらリファレンスを見る。
時計を書くなら、時間が知りたい! => Dateを使う。
時間を表示したい! => DOMを操作する。
と、目的に応じて調べれば段々分かってくるはず。
それこそ大げさに言えば、Dateでちゃんと時間を取得できたらDateのことなんて忘れてしまったっていい。
バグが出たりして、また必要になったら調べる。
何でも覚えなきゃ!ってやってると何も出来ないよ。
プログラムの文法自体は、覚えることもそんなに多くない。
・変数 [ var hoge; ]
・四則演算 [ hoge = 1 + 2; ]
・条件分岐 [ if ]
・繰り返し [ for, while ]
・関数(メソッド)の定義 [ function ]
・クラスの利用 [ obj = new Object(); obj.method(); ]
基本はこれくらいかな。
言語ごとに書きやすくするための工夫とかもあるけど、これだけの仕組みを覚えればプログラムは書ける。
クラスを自作しようとするとprototypeやら絡んでくるんでちょっと厄介だけど
JavaScriptでちょっと作りたいだけなら出来なくても大丈夫でしょう。
でも、知り合いに変数が理解出来ない人が居て、何をどう説明してもイマイチ伝わらなかった。
もしも変数って何?から中々脱出できないようだと、ちょっと厳しいかもしれないね。
誰かがつくったプログラムを改造して、どこをいじるとどうなるとかいろいろ遊ぶ。
これしかないだろ。
872 :
Name_Not_Found:2007/06/03(日) 18:17:20 ID:qdsWBI0V
>>871 改造こそが上達の近道だね !
たまに他の人の script を見て新発見することがある.
そういえば僕もここで叩かれながら色々吸収して来た気がする.
ここを見てなければ DOM の存在すら知らなかっただろう.
" 半年 ROM れ ! " は意外に真理を突いているかも ?
二年間やっていまだにわからないんであれば、
そっと本を閉じて別の趣味を見つけることを薦めるけどな
勉強が中途半端にできた層に限って暗記を否定するが、院試までの勉強とは、娯楽を断った部屋にこもって、かたっぱしから暗記することだ。
特にプログラム入門なんて、まとまった文法エッセンスを一日とか二日とか期限を決めて丸暗記してみろ、騙されたと思って。
>>874 別に暗記が否定されている訳じゃないと思うが
>>868が明らかに勉強方法を間違っている点が指摘されているわけで
>>868 JavaScriptは、難しいから、しかたない。ゆっくり行くしかない。
特に、これが最初のプログラム言語だったりすると、余計大変だ。
ファミリーベーシック最強!!
経歴:
N88BASIC→C→x86assembler→Win API→C++→Perl→Delphi→Java→PHP→JavaScript
N88→Cでポインタで躓き、C→x86でポインタを完全理解し、
Win API(Windows3.0)でマルチスレッド(もどき)を知り、C++でオブジェクトの思想に親しみ、
Perlでスクリプト言語の強さを実感し、DelphiでVBライクな言語の素晴らしさを実感し、
JavaとPHPで標準APIの充実に驚愕し、JavaScriptで高階関数と入れ子関数共存の言語のポテンシャルを実感した
経歴:
N88BASIC→C→x86assembler→Win API→C++→Perl→Delphi→Java→PHP→JavaScript→ひまわり
N88→Cでポインタで躓き、C→x86でポインタを完全理解し、
Win API(Windows3.0)でマルチスレッド(もどき)を知り、C++でオブジェクトの思想に親しみ、
Perlでスクリプト言語の強さを実感し、DelphiでVBライクな言語の素晴らしさを実感し、
JavaとPHPで標準APIの充実に驚愕し、JavaScriptで高階関数と入れ子関数共存の言語のポテンシャルを実感した
ひまわりで日本語のすばらしさを再発見した
>>868 2年やってたらこまごまとしたところはそれなりに「見て」なんとなくつかんでそうな気はする。
ちょっと実用から離れて、しっかり言語を幹として全体像を把握してみるといいかも。
HTML/CSS/DOMとかも適当にせず。
>>876 言語自体はそんなに難しくはないけど、
実用にするための周辺知識にバッドノウハウが多すぎるよな。
>>880 いや、言語自体が難しい。
私は、昔、Lispを弄っていたから、思い出せたが、JavaScriptは難しい言語だよ。
関数リテラル、クロージャ、プロトタイプベースオブジェクト指向
あたりの組み合わせがあるから言語コアとしてかなり勉強必要。
DOMあたりでクロスブラウザとかはノウハウの問題といえば言えるが。
883 :
Name_Not_Found:2007/06/04(月) 06:13:00 ID:uXI0lkNF
なんだか とんでもない遍歴の人がいるなぁ (悪い意味じゃない)
もしかすると手がける順番で "難しい" と感じたり そうでなかったりするのかも ?
でも, 一つだけ言える : ともかく数をこなすこと.
ある程度のレベルまでは これで行けるんじゃないかな ?
学生時代、金型工場でバイトしていた漏れがオブジェクト指向をすんなり理解できた件について。
下手にほかの言語やってないほうがいいんだよ
>>879 アセンブラを知らないのが惜しいな。
アセンブラこそ最強の言語なんだが。
>>884 オブジェクト指向を理解するのは金型工場でバイトが一番の近道だな。
何がthisなのか目で確認できる。実にいい経験をしたぞ。
学生時代、屠殺場でバイトしていた洩れがarray.popをすんなり理解できた件について。
>>886 明日のBrainF*ck界を担う有望な新人をとらないでください ><
891 :
868:2007/06/04(月) 13:23:15 ID:???
JavaScriptの勉強法をお尋ねした868です。
みなさま、いろいろなご意見ほんとうにありがとうございました。
とくに
>>870さん、ありがとうございました。参考にさせていただき
これからも勉強を続けて行きたいと思います。
雑草の如く生涯JavaScriptを貫けたら本望です。
ありがとうございました。合掌
>>891 なんにせよ適材適所だから、ちょっとわかってきたら別の言語も見てみるよろし。
893 :
868:2007/06/04(月) 13:59:37 ID:???
894 :
Name_Not_Found:2007/06/04(月) 19:03:08 ID:uXI0lkNF
JavaScript に なれ親しんでしまうと perl がキモく思えてしまう.
server side JavaScript が ごく一般的に使えるようにならないものだろうか ?
サーバ側はJavaでいいんじゃないか?
896 :
Name_Not_Found:2007/06/04(月) 19:17:53 ID:uXI0lkNF
>>895 Java は compile が必要なくせに重いって噂だけど ? (よく知らない)
あと, Java の動作保証をしている server ってほとんどないのでは ?
Tomcatでいいんじゃないの?
>>896 よく知らないくせにとりあえずけなしに来るという自分の行動が
厨そのものだと思わないかねえ… ま、鯖側ならWebprog板へ。
899 :
Name_Not_Found:2007/06/04(月) 21:30:45 ID:uXI0lkNF
>>898 すれ違いで申し訳ないけど拾って来る CGI に満足できない.
で, 自作... って話になる訳だけど,
JavaScript と違って server side script は どれもこれも... (はぁ)
(いろいろあるけど情報量が最も多いのが perl ) <- でも, なんだかなぁ
まぁ気持ちは分かる
Javaは動き出せば速いがトータルの体感で遅い。技術者の質の悪さが問題だね。
Javaメインでやってる奴は何も生み出さないし、例外なく話が面白くない。
こういう性質や傾向はコミュニティの広がりに響く。
JSはあくまでも補助的な部分に使用する技術だからな
>>901は主観的で何の証拠も無いが、同意してしまう自分がいる
おやもう900! 次スレのテンプレ論議あれば今どうぞ!
・半角イクスクラメーションをソース以外に使用禁止。
根拠をどうぞ。テンプレに入れる文案もよろ。クエスチョンマーク
も一緒にしないとバランスが取れないんじゃないでしょうか?
ピリオドとかカンマとかはどうします?
907 :
Name_Not_Found:2007/06/05(火) 20:33:21 ID:ReJUFZeY
BGSOUNDで無音声ファイルを読み込んでおいてイメージタグのところに
onMouseOver="document.all.sd.src='音.wav'" という感じで
画像をマウスオーバーすると音が鳴る・・・という代物はつくることができたのですが
何度も鳴らすのではなく初めの1回だけ鳴らすにはどうするのが良いのでしょうか?
1回再生された後はマウスオーバーしても反応して欲しくないのですが・・・
>>907 変数に鳴らした事があるかどうか保存して置く
>>905 なんで?それから、なんか訛ってない?エクスクラメーションだわな。
910 :
Name_Not_Found:2007/06/05(火) 22:00:53 ID:X1FypnLm
質問です。
a=new Array(3)のとき、JavaScriptはこれがa[0]=3でないとどうして
見分けてるんですか?
>>910 ECMA-262でそのように定めているから。だからa = [3];
とか配列イニシャライザを使う方がいいと思っている。
913 :
910:2007/06/05(火) 23:08:35 ID:???
>>912 ECMAで定義されてるんですね。参照してませんでした、すいません。
そうですね、リテラルなら間違いないんですが。ありがとうございました。
DOMのメモリリークに関して聞きたいのですが、もしスレ違いなら誘導、無視してください。
Lightboxをつかったサイトにて、DripでIEのメモリリークを調べていたら
DOMのメモリリークが多発しているようなのですが、原因がよくわかりません。
これって放置しておいても問題ないですかね?
あるよ
>>915 やはりマズイですよね。
本家のサンプルコード自体がリークを起こしてるようなんですが。
原因とかわかりますか?
循環参照とイベントリスナ関連かなとは思うのですが、いまいちよくわかりません。
>>916 使わないことだな。自分で書け。
アクチベーションオブジェクトも含めて、
循環参照しないように、常に図を描いて
チェックしながら実装していくしかないよ、今のところ。
俺は常にやってる。まあ、俺はサーバ側が主だから、仕事ではJSをほとんど書かないけどねw
メモリーリーク解消は後回しでいい、
と平気で考えてる人がかなりの数いるのは大問題だろうな。
俺の個人的な考えなんだが、こいつらは単に理解してないだけなんだな。
ようするに、彼らは解決できないから後回しにしてんだよ。
ためしに、その作者にクレーム入れてみろよ。煙に巻こうとするだろうからw
しかし、現実問題として最優先して解決すべき事項だわな。
フラットに書いて、グローバル変数を多用する、これが一番簡単な解決策。
どうしてもクロージャ書きたければできるだけ高階関数で実装する。
まあ、いずれにしても、参照を図に描いて検討する癖をつけることだな。
ブラウザの入れ替わり速度からして、たぶん、あと5年は悩まされるだろ、この問題は。
ただ、世の中ではlightboxとか使われまくってるわけで、ユーザは
重くなってきたらIE止めて再立ち上げとかやるのが普通だと思ってる
(または1日1回は…寝る時には…マシン落とすから実質何も問題感じて
ない)ような気もするけどね。
>>917 グローバル変数はできるだけ使わないよう言われたんだが
結局どっちがいいんだ?
>>919 メモリーリークとバグとどっちがまだましかみたいな。
DOMの循環参照?普通にDOM書いてりゃおこらんだろ?
クロージャのスコープが絡む場合はしょっちゅう起こるけど
メモリリークに関しては、過去スレでずばりな解決策があったよね
関数へのポインタを内部実装でハッシュ化させるやつ
>>921 DOMオブジェクトにクロージャで循環参照させるとリークにってことだと。
過去スレ気になるので今から発掘してきま。
923 :
Name_Not_Found:2007/06/07(木) 18:09:49 ID:JY7GQeru
注文ボタンを押すと注文フォームが表示されそこのテキストボックスに
値を投げたいんだけどつまずいてます。
問題は、下のソースの<注文フォームのHTML部分>にある<form>タグの中に
スクリプトをいれている事。
外に出せばちゃんと値は表示される。けど入れないと意味がないのです。
どうすればいいですか?
<注文ボタンがあるページのJS部分>
function toiawase( obj ){
var item = obj.parentElement;
var name = item.document.getElementById(item.id + '_name').innerText;
window.open("orderform.html?name="+name,"_blank");
return false;
}
<注文ボタンがあるページのHTML部分>
<div id="x0001" class="item"><div id="x0001_name" class="name">■商品A</div>
<a href="#" onclick="return toiawase(this);"><img src="img/btn_order.jpg"></a>
924 :
Name_Not_Found:2007/06/07(木) 18:10:38 ID:JY7GQeru
<注文フォームのJS部分>
<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>
>>923の続き
<注文フォームのHTML部分>
<body onload="startup()">
<form action="" method="post" name="">
<input type='text' name="item_name" size="40"><script>item_name.value = query['name'];</script>
</form>
>>923 質問に「どのように動作する予定のページであり、実際には何がどのように
問題(意図と違う動作内容)であり、それをどのようにしたいのか」
が書かれていない。そのへんを全部洩れたちに読解しろというのなら断る。
926 :
Name_Not_Found:2007/06/07(木) 18:46:21 ID:JY7GQeru
>>925 つまり、ページ1にある商品Aの注文ボタンを押すと、
ページ2(注文フォーム)がポップアップ表示され、
フォームの中のテキストボックスにページ1の「■商品A」という値が
挿入されるようにしたい。
が、現時点ではできてない。
いろいろ試した結果、<form>タグ内に
<input type='text' name="item_name" size="40"><script>item_name.value = query['name'];</script>
を置くと出来ない事がわかった。
タグの外に書けばちゃんと、「■商品A」という値は挿入される。
<form>タグ内じゃないと意味がないのでやり方を乞いたい。
<body>
<script type="text/javascript">
var tbl = document.createElement("table");
document.body.appendChild(tbl);
var rowObj = tbl.insertRow(-1);
var thObj = document.createElement("th");
thObj.innerHTML = "th";
rowObj.appendChild(thObj);
var tdObj = document.createElement("td");
tdObj.innerHTML = "td";
rowObj.appendChild(tdObj);
for (var i = 0; i < 5; i++) {
tdObj = rowObj.insertCell(-1);
// tdObj = rowObj.insertCell(i+2);
tdObj.innerHTML = i;
}
</script>
</body>
Win2k の IE6(SP1), Fx2, Opera9.21 では 期待どおりに th td 0 1 2 3 4 と表示されるが
WinXP の IE6(SP2) だと 0 1 2 3 4 th td となる(Fx と Opera は 2k と同じ)
これはバグ?IE7 だとどうなんだろう?
>>927 FAQ
>>3 のQ5/A5にもあるようにIEのtable回りは
ボロボロだから何が起ころうと不思議じゃないと思う。
>>926 そのinputの後にくっいてるscriptだけをもっと後ろに入れたらどうかな。
あと部品の参照は
「document.forms.フォーム名.elements.部品名.value =」にした
方がよろしいかと。
オンマウスでメニュー展開、展開されてる部分からマウスを退けるとメニュー閉じる、というのがやりたいんですが、
<div onmouseout="MENU.style.visibility = 'hidden'">
<span onmouseover="MENU.style.visibility = 'visible'">メニュー展開</span>
<div id="MENU" style="visibility: hidden;">
<a href="a.html">A</A><BR>
<a href="b.html">B</A><BR>
<a href="c.html">C</A><BR>
<a href="d.html">D</A><BR>
</div>
</div>
とやっても、メニュー展開の文字からマウスを外したら閉じてしまいます
onmouseoutは展開されてる部分も含めた部分が対象になっていると思うんですが、
どこか問題があるんでしょうか?
お教え下さいますようお願いします。
930 :
929:2007/06/08(金) 09:19:14 ID:???
<div onmouseout="MENU.style.display = 'none'"onmouseover="MENU.style.display = 'block'">
に変えてみたらいけました。有難う御座いました。
>>930 そんなのたまたま動いたからって何の保証もないだろw
これだから固和意
すみません。教えてください。IE限定で使うつもりです。
ボタンを押す→iframeを動的に作る→yahoo他検索エンジン(APIがないページ)を読み込む→
変数を検索窓に入れる→submit→結果のページの<body>を取得(変数Bに格納)
ということは可能でしょうか?iframeを作ってyahooを表示させることはできました。
js---
function send2(){
var BB;
var str = 'キーワード';
var iframeID = 'if2';
var iframe = document.createElement('iframe');
iframe.setAttribute('id','inner');
iframe.setAttribute('src','
http://example.com/');
document.getElementById(iframeID).appendChild(iframe);
iframe.onreadystatechange = function () {
if (this.readyState == "complete") {
//IFRAMEに読み込んだページの<input>を探してstrをいれてsubmit()
//結果のページのhtmlを取得
this.onreadystatechange = null;
}
}
}
html---
<form>
<input type = "button"
value = "送信"
onclick = "send2()">
</form>
<div id="if2"></div>
933
ありがとうございます。
「アクセスできない」は、jsからは読み取りもできないということですか?
書き換えたりするつもりはないですが
>>932 複製権侵害しない?大丈夫?
余所のページを自分のページのコンテンツのように表示させるのは法律違反だよ
結局やりたいことは、キーワードでヒットした結果のHTMLを取得したいだけです。
>935
ありがとうございます。GETなフォームなら使えそうですね
>936
ありがとうございます。
一部だけで、引用元(元サイト)を明示しますしリンクもはるので大丈夫のようです
>キーワードでヒットした結果のHTMLを取得したいだけです。
まだ勘違いしてる予感w
>>937 そのキーワード検索をやって結果を返す鯖が自分の鯖であれば、
内容にアクセスできる(JSを含んだHTMLを同じ鯖に入れておけばよいから)。
そうでなければ、どうやってもできない。「取得」ももちろんできない。
var a = 0;
function SCLL1() {
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
}
setTimeout("SCLL1()",5);
}
上記スクリプトでは、一度しかスクロールしません。
何度もスクロールさせたいのですが、どうやってaの値をリセットすればよろしいのでしょうか。
>>940 > aの値をリセット
どうゆうこと?alert(a)ってやればaが増えてるのはわかると思うけど。
>>941 僕の解釈が間違っているかも知れません。
var a = 0;
function SCLL1() {
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
}
setTimeout("SCLL1()",5);
}
上記スクリプトでは、更新しない限り一度しか動きません。
それはaの値が600のままだからだと解釈しました。
aの値をリセット云々は置いておいて
上記スクリプトを何度も動くようにするにはどうすればよろしいのでしょうか。
よろしくお願いいたします。
>>942 普通に動くよ?
「一度しか」の意味を取り違えてるのかな
どういうこと?
600まで行った後にまたスクロール戻して、で、もう一回スクロールさせたいわけ?
まずはifの中にalert(a)を入れてaの値が変わってることを確認してくれ。
で、そのaの値がどうなりたいのかを言ってくれ
aはbになりたいんだ
>>943 [A]→ ←[B]→ ←[C]
1 2 3 4
1をクリックすると[B] までスクロールし、
2をクリックすると[A] までスクロールし、
3をクリックすると[C] までスクロールし、
4をクリックすると[B] までスクロールするスクリプトを作りたいのです。
[A]と[B]と[C]の間はそれぞれ600ピクセルです。
一度1をクリックしてしまうと、ブラウザを更新させないとスクロールされないのです。
これを更新せずに何度でも出来るようにしたいということです。
よろしくお願いいたします。
思いっきりズレてますね・・・。
1,2,3,4は矢印のことです。
>>945 BからAに行くためにはaの値を減らなきゃいけないのにその処理ないけど…?
それらのスクリプトは別に用意しています。
1をクリックしたAからBまでの話での質問です。
何度も出来るようにしたいのです。
よろしくお願いいたします。
>>948 あぁ、それなら最後にa=0に戻したら?
ちなみにsetTimeoutがその位置だと、clearしない限り無限にループするよ?
なるべく変えないとするとこれでいいんじゃね?
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
setTimeout("SCLL1()",5);
} else if (a == 600) {
a = 0;
}
自分でalert入れたりして動きみるようにした方がいいよ
>>949 ありがとうございました。
おかげさまで問題が解決できました。
感謝です。
951 :
929:2007/06/09(土) 03:24:03 ID:???
>>931 何かの保証のあるやり方をお教え下さいますようお願いします
>>951 とりあえずidをそのまま使うのはよろしくないから
document.getElementByIdを使ったらどうだろうか?
リンクボタン押すと子画面として別ウィンドウが開いて、
子画面内の処理が終わると子画面を閉じ親画面にフォーカスが戻る、という処理があります。
ここで遷移が3画面に渡りかつ途中の画面が先に閉じられた場合、
つまり親画面⇒子画面⇒孫画面 から 子画面が閉じられ
親画面⇒ ⇒孫画面 となった状態、において、
孫画面の処理終了で孫画面が閉じ親画面にフォーカスが戻る、という処理は可能でしょうか。
わかりづらい説明で申し訳ないですが、皆様お願いします。
可能だよ。全部同一のドメイン(もしくはスクリプトで内部DOMを生成した)ならね
>>954 回答ありがとうございます。なるほど、すべて同じドメインです。
具体的にどう実装すればよいか、教えて頂けるでしょうか。
>>955 子画面が開いたときに
「window.saveopener = window.opener;」
を実行し、孫画面が開いた時に
「window.saveopener = window.opener.saveopener;」
を実行し、孫画面が閉じる前に
「window.saveopener.focus();」
を実行すればいいんじゃないかな。試してないけど。
次スレは175超えたら。FAQ
>>3 のQ6/A6だけどIEに限らず
HTMLではtableの内側にtbodyが存在(ただしtbodyタグは省略可)
だから「IEでは」→「DOM HTMLでは」と直したいがどうかな。
>>956 その子画面のsaveopenerは単なる別名だから不要だな。
>>955 孫を開かずに、子でlocation.replace()した方が楽じゃなかろうか。
というか、現在のブラウザ制限では、全て同じドメイン(要するにスキーム及び3つ目の/まで同じ)なら、別窓を開くもっともらしい理由が見当たらない。
つまり、何か特別な効果・副作用を利用する特殊な目的が無いなら、現在では、わざわざ別窓を「JSで」開いたり操作したりする理由が見当たらない。
だから、このスレでは、そういう特殊で注目に値する理由が明記されない限り、別窓関連の質問は完全スルーすべきだろう。
JavaScriptだけでbase64エンコードは可能ですか?
可能です。
base64の使用がわかってたらこういう質問はしないだろうなぁ
963 :
Name_Not_Found:2007/06/10(日) 19:57:39 ID:i60Mdo/R
JavaScriptで、PHPを実行させて出力結果を取得する方法はありませんか?
今話題のAjax
965 :
Name_Not_Found:2007/06/10(日) 20:00:26 ID:i60Mdo/R
>>964 つまり、XMLを取得するときに、その取得するXMLをPHPで書き出せばいいってこと?
>>965 XMLじゃなくてもTXTでも普通に取得できるので
XMLが不要なら必要ない
Javascript で NOSCRIPT要素の中を参照することは出来るでしょうか?
>>968 二度と同じ質問が出ないように、いくつかのブラウザで試した結果を書いてくれ。
>>971 じゃあ「XHTMLは除く」と付記。IEだけみたいな現状の書き方より
ましでしょう。もう975目前だし… defaultViewは入れましょか。
その新しいmsdn2は見やすくていいね。
973 :
Name_Not_Found:2007/06/11(月) 14:21:41 ID:8+dHc4eH
↓をPHPでtxtに書き込み→表示させたいのですが、うまく取得されません。
document.write("<img src='
http://hogehoge.jp/accesslog.php?ref=");
document.write(document.referrer+"&height=");
document.write(screen.height+"&width=");
document.write(screen.width+"' />");
どこか間違ってるでしょうか?
PHPへは$_GET[ref]で取得してます。
なにを考えてるんだかさっぱりだ。
どこにPHPな部分があるんだ。
>>971 >
>>7 > 「JavaScriptでDOMを使う〜」のオブジェクト指向の解説は正直どうなんだろうか。
読んでみた。ここのテンプレに入れる水準じゃ無いな。外した方が良いと思う。
>>972,977
俺の書き方が悪かったが、
・Gecko、Opera、Safariはdocument.defaultView(DOM2 Views)を持っており、
このオブジェクトがViewCSS#getComputedStyle()を使える。
・Gecko、Operaではdocument.defaultView==windowだが、Safariはそうではない。
という意味でdocument.defaultView.getComputedStyle()を推した。
# WindowはW3C WDでAbstractViewを継承することになってはいるが、
# document.defaultView==windowであるという規定は、俺は知らない。
うーん早とちりスマソ。だからFAQに書けくそのままの形で提案してくれたら
一番安全なんだけどなー。だったら「Geckoでは…」の旧版が正しかった
ってことだなー。