+ JavaScript の質問用スレッド vol.13 +
1 :
DOCTYPE宣言を書くのは自由 :
02/09/30 20:38 ID:O1zFmkq0 + JavaScript の質問用スレッド vol.13 +
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・スクリプトを組むための最低限のHTMLを理解する者
・スクリプトを組むための最低限のCSSを理解する者
・JavaScriptとJavaの違いを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
前スレ(vol.12)
http://pc3.2ch.net/test/read.cgi/hp/1030162756/-5 過去ログ・関連資料・その他質問スレは
>>1-10
【質問を書く上で】 弱気な表現は避ける 弁解じみた表現は良くない。また、まわりくどい。 ex) 超初心者で何もわかりませんが…… <そんなことより自分で試してみた記述を書いてくれた方が答えやすい> 情報を小出しにしない 読み手は馬鹿にされた気分になる。 無駄な倒置も不要だ。 使用したブラウザ、バージョン、OSくらい書こう。 感情的にならない 何の説明なく決め付ける文はよい印象を与えない。 また態度の大きい人は嫌われる。 ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ> 表記ミスに注意 内容がどんなにすばらしくても 文字使いにミスがあると誤解を招く。 曖昧文は書かない いくつにも解釈できる文章は絶対に書かない。 ex) ここではきものをぬいでください。 「」など無駄な強調は避ける 読みにくい。♪や顔文字も同様である。
7 :
1 :02/09/30 20:41 ID:???
ちんこはさはらない おなにーしない まんこも論外
8 :
Name_Not_Found :02/09/30 20:41 ID:O1zFmkq0
スレ建て儀式w完了。
9 :
Name_Not_Found :02/09/30 20:48 ID:35w8gpEF
終了
乙
偽者の7に乙って、おい!(w
さあ新スレ最初の質問は何かな?右クリ禁止とかでありませんように…
15 :
初心者 :02/09/30 21:31 ID:TAWK80rb
乳クリ禁止の方法を教えてください
ガムテープでも貼っとけ!
で、DOCTYPEは書くべきなのか?
__ , ────── 、__ , - ':::::::::::::::::::::::::::::::::::::::::::::::::::\ / ;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;\ /,,;,,,,, ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ,,,,,,,,;::::::丶 / :::::::::;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::::::::ヽ i゙:::;:::::||::::::,!i:::::::::::,|i::::::::::::::::::;:::::::::::::::::::::::::::::::゙i i゙::::|;;;;| |;;;;;| |::::::::::| |:::::::::::::::::||::::::::::::::::::::::::::::::::| . i゙::::::i ''''''''''' '───' |;;;;;;;;;;;;::::::::::::::::::::| .|:::::::|,-====-´ ゙ヽ,,,,,,,,,,,,,、 |:::::::::::::::::::| |;::::::::| ~ ` |:::::::::::::::::::| `ヽ、i -=・=- -=・=- |;;;::::::::::::::/ なんで、すぐクソスレ立てるん? . i /^゙-、;;;;/ { ヽゝ '-'~ノ λ ''゙゙''-''-─、 /-'^" ヽ,_ ^~^ ( /`''丶、 , - /^l / /( ノ `'''''''´~ _, - ' ~ ゙i、 { / /| ̄ ̄ ̄ ̄ _,-'^¨ } {/ / ゙ー────'~ \| / ヽ \
>>18 だから書きたい人が書けばよい。信者の話が聞きたいなら信者スレへ。
21 :
質問君 :02/09/30 23:00 ID:letvSGHw
windows NetScape Navigator4.78 でinputのfile属性に指定したボタンを 無効にするにはどうしたらよいでしょうか? macの場合は違いますか?
>>21 DOCTYPEは書きましょうか?いりませんか?
23 :
Name_Not_Found :02/09/30 23:05 ID:kWJ6Tl26
直接ページにスクリプトを書くのと、jsファイルで読み込むのと どっちの方がページの表示は速くなるのでしょうか?
24 :
質問君 :02/09/30 23:06 ID:letvSGHw
DOCTYPE宣言の要・不要が明記してない質問は答えてもらえませんよ!!
>>21 <input type="file">のボタンを無効にするには、上に別の要素
を重ねて隠すしかないんじゃないかな。ファイル名入力欄は使える
ままにしたいんですよね?
>>23 理論的にはだけど。スクリプトが短い場合は直接書く方が別ファイル
のロードの手間のぶんだけ速い。スクリプトが長くて、しかも後で
使えるようになればいいのなら、別ファイルにしてscriptタグに
defer属性を指定しておけば読み込みを待たないので速い。
27 :
ふ :02/09/30 23:14 ID:???
電波が暴れているな
<!DOCTYPE "今日はもう寝る">
29 :
質問君 :02/09/30 23:20 ID:letvSGHw
>>26 あー、そうなんですかー。
実は、ファイルを開くボタンのあるwindowから自前のダイアログを
開いて、そのwindowが開いている間、ファイルボタン他があるopener
の全てのイベントを無視したいのでファイル名入力欄も使えなくした
いのです。
今は、
window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS)
を試してみたのですが、fileボタンだけ無効にできません。(^^;
いかがでしょう?
>>29 質問の押しが弱い。
それしきでは大御所は動かんよ。
31 :
質問君 :02/09/30 23:39 ID:letvSGHw
例えば、以下のようにFORMのelementのdisableを有効にしても だめなんですよね。 document.FORM1.attachfile.disabled = true; わかりません。。。
32 :
大御所 :02/09/30 23:39 ID:???
ソースを全部書かせろ!
33 :
大御所 :02/09/30 23:56 ID:???
W3Cに準拠させろ!
34 :
Name_Not_Found :02/10/01 00:22 ID:67tc4PLw
35 :
Name_Not_Found :02/10/01 02:25 ID:gRgt/WW3
ここはJavaScriptのスレだから、 本来DOCTYPE書いて対象を限定するべきではないけど、 基地外にも発言する権利はあるだろうから、黙認しておけばいい。
DOCTYPEは単なる引き金っぽい。 例の人の発言見てると、あ〜あ、余計な事言わなくていいのに…ってのがしばしば。
37 :
:02/10/01 03:34 ID:???
検索サイトなどにフレームを時下リンクされた場合、トップに案内するには if(parent.location == location){ location.href = "トップのURL"; } と if (top.location == self.location) { top.location.href = "トップのURL"; } の どちらがスマートですか?
39 :
Name_Not_Found :02/10/01 08:40 ID:83LfZ7lw
ボタンを押すたびに、右から左へと画像が移動する(スライド) 方法はありますか?
>>29 <input type="file">は勝手に操作されてファイル名を設定
されると任意のファイルを読み出されてしまい、セキュリティ
上危険なのでイベントは取れなくしてあるものと思われ。もし
disabledも設定できないようなら、それこそ上に別のレイヤー
かぶせて隠すとかですかねー。
41 :
39 :02/10/01 09:10 ID:???
",,a,b,,c".split(/,/) とやるとJavaScrpitだと["a","b","c"]に なっちゃうみたいなんだけど、Perlのsplitのように、 ["","","a","b","","c"]が欲しいんだよね。 なんかうまい書き方ありませんか?
ボタンを押すと印刷プレビューウィンドウが開いてさらに 「印刷の向きを横」まで指定なんて出来るんでしょうか。
46 :
42 :02/10/01 10:51 ID:???
>>44 その後も調べてたんだけどIE5.5だと前者になるけどネスケだと
Perlライクにsplitされるようでいわゆるクライアントによる非互換性
の問題みたいすねー。とはいえIEムシするわけにもいかんので
さらなる回答求む。
苦し紛れに
var a = (s+",").match(/[^,]*,/g);
var b = new Array;
for (var i = 0; i < a.length; i++) { b[i] = a[i].replace(/,$/, ""); }
てなことやってるけど、ちょっとねぇ。
>>45 できるよ。
やり方は忘れたけど。ググればすぐ出てくると思う。
>>46 ",,a,b,,c".split(',') ではマズいの?
IE ってなんだかんだ言って ECMA-262-3 非準拠なんだよね、細かいところで。
49 :
42 :02/10/01 11:05 ID:???
>>48 なるほど、正規表現じゃなくて文字にすればIEでも期待の動作になる
のですね。とりあえず今回は","一文字で区切りなんで、これで解決
しました。ありがとう。
でもたぶん /,\s*/ でsplitしようとしたときに困るんだろうなぁ。
50 :
39 :02/10/01 11:32 ID:FYa27e9m
すみませんでした。上手く表示ができなのは一度トップに行かないといけないみたいです。
ここからだと見れます。
http://maki23.cool.ne.jp/makis/maki.html ここの中の「Me」というページで画面が綺麗にスクロールするんです。
私もやってみたいのですが、どう検索してもこのようなサンプルが
置いてないようなので、やり方をつかめません。
どなたかわかる方がおられましたら、よろしくお願いいたします。
>>50 滑らかに速度変化さすアルゴリズムが難しいねえ。ソース見てパクれば
いいんだろうけどあんまりやりたくないし。N6/N7/Mozilla/IE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
var count, pos = 0, arr = new Array(100);
function move(p) {
var d = (p - pos)*1.1;
for(var i = 0; i < 20; ++i) arr[i] = d/200;
for(var i = 20; i < 30; ++i) arr[i] = d/80;
for(var i = 30; i < 60; ++i) arr[i] = d/60;
for(var i = 60; i < 70; ++i) arr[i] = d/80;
for(var i = 70; i < 100; ++i) arr[i] = d/200;
count = 0; setTimeout(step, 40);
}
function step() {
window.frames.f0.scrollBy(arr[count], 0); pos += arr[count];
if(++count < 100) setTimeout(step, 20);
}
</script></head><body>
<iframe name="f0" style="width:200px;height:200px" src="a.html">
iframe here...</iframe></body></html>
---a.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body style="width:800px;height:800px">
<h1>Test...Test...Test...Test...Test...Test...Test...Test...</h1>
<div style="float:left"><a href="javascript: top.move(600)">right</a></div>
<div style="float:right"><a href="javascript: top.move(0)">left</a></div>
</body></html>
>>31 ちょっとやってみたけどIE6とMozilla1.1で問題なくdisableできるよ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function set(b) { document.getElementById('f0').disabled = b; }
</script>
</head><body>
<p><input name="f0" id="f0" type="file"></p>
<p><a href="javascript: set(true)">disable</a></p>
<p><a href="javascript: set(false)">enable</a></p>
</body></html>
53 :
39 :02/10/01 12:57 ID:???
>>51 さん
ありがとうございます!
私で成功するかわかりませんが、チャレンジしてみます。
しかしそのプログラムを見る限り、さっぱり内容が理解できません。
やはりもっと勉強しないといけませんね。頑張ります。
54 :
45 :02/10/01 14:15 ID:???
えっとグーグルでかなり検索したんですけど具体的なやり方は見つかりませんでした。 で、どっかのページにScriptXというのを使えばできるかもという情報はわかりました。 それは使えばヘッダーやフッターなどの設定もできるらしいとのことです。 もしやり方知っている人いたら教えてください。
55 :
:02/10/01 14:16 ID:???
過去スレで拾ったものを参考に、簡易な階層メニューを作りたいのですが、 カーソルが下の階層に行った場合には下の階層を表示したまま、 カーソルが下の階層に行かずにMouseOutoした場合には下の階層を隠すようにするには どうすればよいのでしょうか? <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function exMenu(tName) { tMenu = document.all[tName].style; if (tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none"; } --> </script> </head> <body> <a href="1.html" target="main" onMouseOver="javaScript:exMenu('treeMenu1')">1</a><br><br><a href="2.html" target="main" onMouseOver="javaScript:exMenu('treeMenu2')">2</a> <div id="treeMenu1" style="display:none; top: 20px; left: 20px; width: 80px; position: absolute; background-color: #eeeeee;" onMouseOut="javaScript:exMenu('treeMenu1')"> <a href="1_1.html">1_1</a><br><a href="1_2.html">1_2</a></div> <div id="treeMenu2" style="display:none; top: 60px; left: 20px; width: 80px; position: absolute; background-color: #eeeeee;" onMouseOut="javaScript:exMenu('treeMenu2')"> <a href="2_1.html">2_1</a><br><a href="2_2.html">2_2</a></div> </body> </html>
>>55 階層メニューはこんな感じかな。aタグだとごちゃごちゃになる
のでonclickで飛ぶようにしたよ。いずれにしろ面倒くさい。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
div { position: absolute; background-color: #eeeeee; text-align: center;
top: 10px; left: 10px; width: 80px; height: auto;
visibility: hidden; border: black solid 1px }
#m1 { visibility: visible }
</style>
<script type="text/javascript">
function show(id) { document.getElementById(id).style.visibility = 'visible'; }
function hide(id) { document.getElementById(id).style.visibility = 'hidden'; }
function jump(u,t) { window.open(u, t); }
</script>
</head><body>
<div id="m1" onmouseover="show('m11')" onmouseout="hide('m11')"
onclick="jump('1.html', 'main')">1
<div id="m11" onmouseover="show('m111')"
onmouseout="hide('m111');hide('m11')" onclick="jump('11.html','main')">11
<div id="m111" onmouseout="hide('m111')"
onclick="jump('111.html', 'main')">111
</div>
</div>
</div>
</body></html>
57 :
名無しさん :02/10/01 16:38 ID:PGStfMmu
すいません、自分のサイトが他人のサイト内のフレームに表示されることがないように、 強制的にフレーム解除するJavaScriptを記述したいのですが。 やり方を教えてください
58 :
55 :02/10/01 16:41 ID:???
>>56 激しく素敵です。
これにjavascript非対応ユーザも「1」を押したらジャンプできるようにするには
どうすればよいのでしょうか?
(「11」や「111」に関しては、大変そうなので「1」でジャンプしたあとに別ページでリンクするように
>>57 if(self !=top){
top.location.href=self.location.href;
}
これでダメ?
>>58 そこ(「1」)をリンクにしたらいいんじゃないですか。えーと、先スレの終わり
近くで書いた気がするけど
<a href="非対応ユーザの行き先" onclick="jump('行き先','main');return false">1</a>
としておくんでしょうかね。
自宅サーバーをたてているのですが、稼動状況をWebページに表示るには どうすればいいでしょうか?例えばオンラインならオンラインとかかれた 文字や画像を表示してオフラインならオフラインとかかれた文字や画像 を表示させる。これってJavaスクリプトなんかでかけますか?
62 :
55 :02/10/01 16:57 ID:???
>>60 こうですか?
<a href="" id="m1" onmouseover="show('m11')" onmouseout="hide('m11')"
onclick="jump('1.html', 'main');return false">1
<div id="m11" onmouseover="show('m111')"
onmouseout="hide('m111');hide('m11')" onclick="jump('11.html','main')">11
<div id="m111" onmouseout="hide('m111')"
onclick="jump('111.html', 'main')">111
</div>
</div>
</a>
>>62 非対応ユーザ用の行き先は?
あとaccesskey属性を使ったらどうよ。
まぁ最近のブラウザはフォーカスが移るだけだけども。
age.
>>61 「どこに」表示させるのよ?サーバが稼働してなくてページが取れない
んならJavaScriptソースも取れないと思うけど…
>>62 <a>...</a>の中に<div>...</div>を入れるのは無茶で、<div>...</div>
の中に<a>...</a>を入れてね。思いっきりHTMLの話題だけど。
66 :
unko :02/10/02 00:14 ID:???
質問ーん。一つのradioボタンをつけたり消したりするにはどうすればいいんですか? また、checkedをつけて、それをjavascriptで消すことは出来るのでしょうか?
しつもんーん。
69 :
57 :02/10/02 01:11 ID:???
>>59 どうもありがとうございました。
うまくいきました。
>>68 <body style="margin:0px;">
<script type="text/javascript">
function f(){
document.getElementById('id0').style.top=event.y;
document.getElementById('id1').style.left=event.x;
}
document.onmousemove=f;
document.write('<div id="id0" style="position:absolute;background:#000000;width:100%;height:1px;"></div>');
document.write('<div id="id1" style="position:absolute;background:#000000;width:1px;height:100%;"></div>');
</script>
</body>
netscapeは他の人の聞いて下さい。
71 :
Name_Not_Found :02/10/02 05:06 ID:q9EN6q6H
大したソースも書けなくて恐縮なんですが、質問させてください。 function makelink (url,xx,yy,sc) { var op = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + sc + ',resizable=0,width=' + xx + ',height=' + yy; picwin = window.open(url,'',op); } この関数を <a href=\"javascript:makelink('hoge.cgi?subject=申し込み',300,400,1);"> こんな感じで呼び出してるんですけど、これってなにかおかしいですか? win,ie6使ってて特に問題なく動いてるんですけど、 mac,ie5使ってる人がこのリンクを押すたびに違うURLにとばされるって言ってるんですが。
72 :
71 :02/10/02 05:21 ID:q9EN6q6H
URLが2バイト文字だけじゃないのが原因くさいけど 実行するたびに結果が違うのが全く理解できません
73 :
Name_Not_Found :02/10/02 09:18 ID:oY8A6sIh
皆さんjsってhtmlのどこに配置してます? だいたいいつも<body>の下あたりに置いていたんですが、 form要素の下に配置しないと中の要素に書けなかったんで、 </body>の上あたりにしました。 これで問題ないでしょうか?
>>73 どこに置いてもいいといえばいいんだけど。HTMLファイルは書かれた
順番に処理するから、フォーム部品を参照しようと思うとそのform
要素が終わった後でないと部品ができていないわけね。自分は下の
方に書くのは嫌なので、ヘッダ中に書いてしまい、bodyのonload
ハンドラで初期設定関数を呼ぶようにしている。これならページ中
の要素はすべてできていることが確実だからね。
>>71 ー72
「2バイト文字だけじゃない」→「1バイト文字だけじゃない」だよね。
とにかくURLに漢字を生で入れたらブラウザによって何が起きるか分から
なくて当然だと思うけど。URLエンコードして入れるように直したら?
>>70 を参考にN6でも動くように作ったんだけど、IEで縦横の線がうまく出ない(高さ
が1行ぶんになってしまう)。なんでかな?スタイル指定は
>>70 と同じはずなんだけど…
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
body { margin: 0px }
div { position: absolute; top: 0px; left: 0px; z-index: 5 }
#d0 { background-color: black; width: 100%; height: 1px }
#d1 { background-color: black; width: 1px; height: 100% }
</style>
<script type="text/javascript">
var b0, d0, d1;
function init() {
b0 = document.documentElement ? document.documentElement : document.body;
d0 = document.getElementById('d0'); d1 = document.getElementById('d1');
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove = function(e) { move(e.pageX, e.pageY); }
} else {
document.onmousemove = function() { move(window.event.clientX+b0.scrollLeft,
window.event.clientY+b0.scrollTop); };
}
}
function move(x,y) { d0.style.top = y+'px'; d1.style.left = x+'px'; }
</script>
</head><body id="b0" onload="init()">
<h1>Test...</h1><div id="d0"></div><div id="d1"></div>
</body></html>
>>75 ベタな解答は与えないぞ。自分で解決できるだろうから。
#d0 の height は、フォントサイズが絡んでる。
#d1 の height は、 CSS2 のボックスモデル周辺を思い出すこと。
まさに小競り合いの種(笑)が挙動に関わってるケースだから、
こういう場合はソースに一言添えてあった方がいいんだろうな。
>>76 どうも。とりあえず#d0をfont-size:0pxとしたら薄くはなったけど。
#d1がわからん。CSS2では囲む要素(ここではbodyだよなあ)の100%
になるように読めるけど。Mozillaでは確かにそうなるし。IE6はなぜか
フォントサイズを基準にするの?で、それをbody高さに合わせるにはどう
書けばいいの?適当に大きくしちゃうと縦スクロールバーが出て嫌だよね。
JavaScriptで窓の大きさを取得してセットするのはできるけどCSSで
やりたいよね。ベタでも何でも教えてくれないかな…それともCSSスレ
の何番のどことかいう情報でもいいんだけど。
>>77 #d0のフォントサイズは単にIEの謎実装。
恐らく行ボックスが最低1つ必要な実装なのだろう。
#d1も結局はIE側の問題なんだけれども、誤解があるようなので言っておく。
CSS2では、bodyの高さ=閲覧領域の高さ、ではない。
body要素も理論上ごく普通のブロックボックスなので、高さは内容に合わせて算出される。
結論を言うと、body { height:100% } を指定するか、互換モードにするか、の
どちらかで解決できる。
だが、本当は #d1 が高さを参照するコンテナブロックはhtml要素(CSS2,10.1)。
これで解決できてしまうこと自体が、IE6のバグ。
CSS1との兼ね合い等で
HTMLの一部の要素に限ってイレギュラーな実装をしているということは
往々にしてあることだと思うので、一様にバグと言ってしまうのも考え物だけどね。
79 :
Name_Not_Found :02/10/02 15:27 ID:gfcQOd5j
<body onLoad="init();"> とかして、ページ表示された時に、onloadのイベントで初期化してるんだけど、 ハイパーリンクで、どっかのページへ飛んで、その後 ブラウザのバックボタンでこのページに戻ると、 onLoadのイベントが発生せずに、初期化処理が出来ずに、 おかしな事になってしまって困ってるんですよ。 バックボタンで戻った時に発生するイベントとかあると、万事うまくいくんすけど・・・ 回避方法伝授下さい。 おながいします。
80 :
79 :02/10/02 16:09 ID:gfcQOd5j
onload来てた・・・ スマソ逝ってくる
81 :
Name_Not_Found :02/10/02 16:50 ID:T256YtZx
D O C T Y P E 必 死 だ な ( 藁
82 :
Name_Not_Found :02/10/02 17:10 ID:ewVwmPTJ
プルダウンメニューにリンクを張って、ウィンドウサイズを固定して別窓で開きたいと思っています。
そこで以下のように書いたのですが、---選択してください---のところをクリックすると開いてしまいます。
このリンクだけ封じる方法は無いでしょうか?アドバイスお願い致します。
<script language="JavaScript">
<!--
function OpenForm(parts){
var openURL = parts.options[parts.selectedIndex].value;
newWin = window.open(openURL,'','width=620 height=400 scrollbars=0');
}
// -->
</script>
<select name="PG_TOBU" onChange="OpenForm(this)">
<option selected>-----選択して下さい-----</option>
<option value="
http://www.yahoo.co.jp/ ">┣Yahoo!Japan</option>
>>82 valueが空かどうかでチェックすればいい。
var openURL = parts.options[parts.selectedIndex].value;
if(openURL)
newWin = window.open(openURL,'','width=620 height=400 scrollbars=0');
84 :
Name_Not_Found :02/10/02 17:18 ID:KLbbc4Pn
if(parts.selectedIndex == 0) return; どこに入れるかくらいは考えようね。
85 :
82 :02/10/02 17:27 ID:ewVwmPTJ
83・84さんありがとうございました。 解決致しました。 精進します。
86 :
73 :02/10/02 18:50 ID:oY8A6sIh
>>74 なるほど、onloadかあ。
自分も最後に置くのはなんとなく気持ち悪かったので
活用します。
ありがとうございました。
>>81 コレに反応しているオレもオレだけど、
言いがかりつけんなハゲ。
とりあえず
>>1 の名前でも見ようね、僕チンw
また何か見つけるのかい?
誰もが放置したと思ったのに…
ホント仲いいよな...
ウィンドウがフォーカスされているかどうかを 確認できるメソッド、プロパティーはありますか? あったら教えて下さい。
91 :
68 :02/10/02 22:05 ID:???
>>70 親切に教えてくださってありがとうございました。
愛すべき
>>87 のコテハンは DOCTYPE で宜しいか?
あ、それ可愛い。DOCちゃんって呼んでもいい?
94 :
71 :02/10/03 00:01 ID:ur0jdYt7
>>74 忠告どおりやってみます、ありがとうございます。
でも、クリックするたびに違うURLが開くのは結局どういうことだったんでしょう?
とにかく直してから事後報告いたしますです。
ありがとうございました。
>>92-93 <!DOCTYPE "あのー、それ自分じゃないんですけど…"
"まあ名無しだから何でもいいのか">
>>90 うーん、とりあえずfocus()してみてonfocusハンドラが呼ばれるなら
これまでfocusされていなかったわけだからblur()で元に戻す、という
方法しか思いつかない。
>95 ありがとうございます。 onBlurも使えそうですね。
97 :
71 :02/10/03 03:50 ID:ssLM+x4P
>>74 escape使ってみたけど、うまくいかなかったみたいです。
直のリンクだと完璧に動作するみたいなんで
javascript通した時点で文字コードが変わってるんですよね。
なにに変わってんだろうな。
98 :
(;o;)babu ◆hiRfkI.o :02/10/03 05:24 ID:Jb2V8huF
管理人に教えてもらった人しか解らない種類のモノでは…?
>>100 プロンプトの入力文字列に .html つけて飛ばしてるだけ。
URLが解らなければアクセスできないってだけのシンプルなコード。
設置したとしても、URLのバレているページに対しては非常に無力。
>>97 説明が悪くてスマソ。JavaScriptのescapeではブラウザごとに違ったり
してうまく行かないと思う。そうじゃなくて正しく飛んだ時にブラウザの
URL窓に表示される「%」がいっぱいくっついた奴をコピペしてきて、
JavaScript側ではその文字列で指定するんでどうかな。
>>101 パスワードを2つの分割し、URLとその後ろにつけるQUERY_STRINGに
分けて「
ttp://..../xyzxyz.html?abcabc 」とかいう形で呼ぶ。そして
HTMLファイルの冒頭に
<script type="text/javascript">
if(location.query != 'abcabc') locatin.href = '飛ばし先';
</script>
と入れておく。なんていうのでどうかね。ソース見られてばれるのが
問題なら、単純に文字列比較するんじゃなくて数値にして1方向ハッシュ
関数で計算した値と比較するとかね。
DHTMLで作られたポップアップみたいなの(CGIBoyのアクセス解析アイコンとか) の中に他のサイトの内容(他のHTMLファイル)をチョコっと表示させたいのですが、 どのようにすればいいのか分かりません。みなさんの知恵を貸していただけない でしょうか?
> 他のサイトの内容(他のHTMLファイル)をチョコっと表示させたい チョコっとパクるってこと? 感心できんなぁ。
>105 他のサイトっていうか、自分のサイトの他のHTMLです…。 いくつかの小さなHTMLファイルがあって、ランダムに その内容をポップアップで表示させたいんです。
>>106 別窓がポップアップされるのもウザいから嫌われますよ。とりあえず
var win = window.open(開くHTMLのURI, 'popup','width=200,height=200');
setTimeout(function() { win.close(); }, 6000);
本当はiframeとかにした方がウザくなくてみんな幸せなんでそっちを推奨します。
>>77-78 に対応して直しました。ページ内容が大きくてスクロールした
場合に線のはじっこが見えてしまうという問題もあったのでそれも対処
しました。一応ね。N6/N7/Mozilla/IE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
body { margin: 0px; height: 100% }
div { position: absolute; top: 0px; left: 0px; z-index: 5 }
#d0 { background-color: black; width: 100%; font-size: 0px; height: 1px }
#d1 { background-color: black; width: 1px; height: 100% }
</style><script type="text/javascript">
var b0, d0, d1;
function init() {
b0 = document.documentElement ? document.documentElement : document.body;
d0 = document.getElementById('d0'); d1 = document.getElementById('d1');
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove = function(e) {
move(e.pageX, e.pageY, window.scrollX, window.scrollY); }
} else {
document.onmousemove = function() {
move(window.event.clientX+b0.scrollLeft,window.event.clientY+b0.scrollTop,
b0.scrollLeft, b0.scrollTop); };
}
}
function move(x,y,sx,sy) {
d0.style.top = y+'px'; d0.style.left = sx+'px';
d1.style.left = x+'px'; d1.style.top = sy+'px';
}
</script></head><body id="b0" onload="init()">
<h1>Test...</h1><div id="d0"></div><div id="d1"></div>
</body></html>
>>109 それって普通のレイヤーのポップアップみたいだけど。
それで、ポッップアップする領域内を別HTMLに記述して
どのHTMLにするかはランダムに変更したいのね?
>110 そうです。レイヤー?のポップアップの中に別HTML が表示できれば万万歳です。その方法が分からないんです。 ランダムっていうのは、できればいいなって感じですが。
>>111 作ってみたんだけど、今度はIEが大丈夫でMozillaがダメ。どうも
Mozillaではiframe内にカーソルが入ると外側ページの要素の
onmouseoutが呼ばれるのかなあ。対策分かる人、教えてネ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<style type="text/css">
#i0 { position: absolute; visibility: hidden; top: 20px; left: 20px }
#i0 { width: 200px; height: 200px }
</style>
<script type="text/javascript">
function show() {
document.getElementById('i0').style.visibility = 'visible';
}
function hide() {
var a = ['a.html','b.html','c.html'];
document.getElementById('i0').style.visibility = 'hidden';
document.getElementById('i0').src = a[Math.floor(Math.random()*a.length)];
}
</script>
</head><body>
<div style="width: auto"><img onmouseover="show()" src="t0.png">
<iframe onmouseout="hide()" id="i0" src="a.html"></iframe>
</div>
</body></html>
>112 キタ━━(゚∀゚)ノ━━(゚∀゚)ノ━━(゚∀゚)ノ━━( ゚∀゚)━━!! | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U 〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎ ホント、感謝です。早速テストしてみます。 ちょっとWeb製作から遠ざかってたら知らないことばかりでした。 iframe? getElementById? 今後の勉強の為、今から書籍買いにいってきます。 Mozillaについても改善策あったらよろしくお願いします。
>iframe? 遠ざかりすぎかと(w
115 :
Name_Not_Found :02/10/03 18:32 ID:tfhBTKyJ
javaの勉強を1から始めているんですけど、
http://tohoho.wakusei.ne.jp/js/start.htm の例文を自分でも書いてみました。でも表示されません。
何が間違ってるんでしょうか?
<html>
<head>
<title>サンプル</title>
<script type="text/javascript">
<!--
function jikoku() {
dd = new Date();
document.F1.T1.value = dd.toLocaleString();
window.setTimeout("jikoku()", 1000);
}
// -->
</script>
</head>
<body onload="jicoku()">
<form name="F1" action="#">
<input type="text" name="T1" size=50>
</form>
</body>
</html>
よろしくお願いします。
116 :
Name_Not_Found :02/10/03 18:36 ID:tfhBTKyJ
ずっと見直してるのにわからないんです。
× <body onload="jicoku()"> ○ <body onload="jikoku()"> がんがれ!!
118 :
115 :02/10/03 18:42 ID:tfhBTKyJ
すいません事故解決しました。
119 :
115 :02/10/03 18:42 ID:tfhBTKyJ
「自己中」かと思タ!
121 :
:02/10/03 21:39 ID:???
http://www.ncsa.uiuc.edu/ 左にあるメニューの表示切替はどのようにしているのでしょうか?
確認したところ、IE5.5,NC4.7,Mozilla1.01,Opera6Freeで動作しました。
NN4.7はちょっと変だったけど。
MozillaでJavaScriptでクッキー読み書きが禁止されてるのに クッキーに書き込もうとすると、その先の処理が実行されません。 JavaScriptConsoleを見ると「HTML.Document.cookieに書き込み権限がない」 と例外は発生しているのですが、こういうときはどうしたらいいのでしょうか?
>>121 ソース見たけど別に難しいことやってないよ。左側のメニューと右側の本体と
それぞれdivに入っていて、メニューの表示/非表示はレイヤーの表示/非表示、
あとそれに合わせて右側本体の左端をあけたり詰めたりしているだけ。これくらい
ならN4のレイヤーでも動作はするね。わかった?
>>122 投げられた例外を try-catch で受け取る。
onerror ハンドラでもどうにかなるかも(未確認)
125 :
:02/10/03 22:07 ID:???
ポップアップウインドウを常に前面にするJavaScriptはありますか? <body onBlur="focus()"> だとMacのIEとWindowsのNetscape7でききませんでした。 どうすればいいんでしょう。
できてほしないです。
1秒に1回focus()するとかですかね。しかしこの上なくウザい。 洩れなら絶対そんなページ2度と行かない。
128 :
:02/10/03 22:27 ID:???
後ろにウインドウがいくとわからなくなる老人むけに作ってくれ といわれました。 自分もそんなのいやなんですけど...
>>128 老人ならなおさらダイアログとか別に出すべきでない。もとのブラウザ
画面内でやった方が結局わかりやすいインタフェースになる。と思うが。
130 :
:02/10/03 22:32 ID:???
「老人むけ」というのは実は建前です。 本当は金儲けのためにスケベむけサイトを作っています。
131 :
:02/10/03 22:46 ID:???
>>129 さん
そうですよね ただ メインウインドウでも動かしてポップアップのほうはFlashを動かす
っていうらしいんです 老人がFlashをインストールできるかのほうが難しいと思うんですけど...
方法は「1秒に1回focus()」しかないんですかね? これはやりたくないっすね...
133 :
71 :02/10/04 00:00 ID:x677Kp7f
>> 102 あ、そっか、それでやってみます。 ありがとうございます。
134 :
Name_Not_Found :02/10/04 00:26 ID:3fWGu4Zy
WEBページを表示したとき、特定のアンカーに初期フォーカスを あてたいのですが、なにかいい方法ないでしょうか? <A HREF="aaa" TABINDEX="1">リンク</A> としても駄目でしたし、 JavaScriptで document.anchors[0].focus() としてonLoadで実行させても、そもそもアンカーにはfocus() メソッド自体がないようでした。 結構単純なことなのに悩んでます…。 だれかいい方法知ってらっしゃるかたいませんか?
135 :
71 :02/10/04 00:38 ID:J+JJF7kx
何度もごめんなさい。 URLエンコードすると、僕の環境でも文字化けが起こるようになりました。 cgiに渡されたときはすでに壊れてて普通のデコードでは修復できない感じです。 javascriptにURLエンコードされた文字列を通すときって なにか特別なことしないといけないんですか。
136 :
134ですが :02/10/04 00:42 ID:3fWGu4Zy
137 :
71 :02/10/04 00:44 ID:J+JJF7kx
ちなみに今は function makelink (url,xx,yy,sc) { var op = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + sc + ',resizable=0,width=' + xx + ',height=' + yy; picwin = window.open(url,'',op); } <a href="javascript:makelink('hoge.cgi?subject=%82%e8%82%c2%82%ab',300,400,1);"> こうしてます。
>>137 ちょっと聞くけど、その「hoge.cgi?subject=%82%e8%82%c2%82%ab」
をブラウザのURL窓に直接打ち込んだ(コピペした)場合はどうなるの?
それで化けるようなら、それで化けなくなる文字列を探してそれを指定
すれ、ということになるわけで…
>>134 ちょっとまってよ、アンカー(<a name="...">...</a>)なのか
リンク(<a href="..."...</a>)なのか、どっちだ? リンクなら
document.links[0]とかなわけで…で、focus()もあるはずだよ。
140 :
137 :02/10/04 01:30 ID:J+JJF7kx
直では、化けないすね。 今検索してて思ったんですけど java通った後unicodeに変わってるのかも
141 :
:02/10/04 05:29 ID:???
ちょっとお伺いしたいのですが,特定のリンク先からアクセスがあった場合に, 別のページに飛ばすことは可能でしょうか? というのも,不正にリンクされていて,しかも誹謗を受けているので, そこからのアクセスはリンク元のページに返してやりたいのです。 相手は口で言って分かる人ではないので,手の打ちようがありません。 このままでは泣き寝入りになってしまうので,何とかしたいのです。 もしサンプルのあるページでもご存知の方がいれば,ぜひ教えてください。 thanks > all
if(document.referrer.indexOf('2ch')!=-1){ location.href='サイバーポリス.html'; }
>>142 '2ch'じゃなくて'ime.nu'かも
>>143 まあそうだろうけど、どうせ2ch関係だろうから(w、2chとしといた。
145 :
141 :02/10/04 07:58 ID:???
>>142 早速のレス,サンクスです。うまくいきました。
知り合いに管理を頼まれているサイトなもんで,なんとかしてあげたかったんです。
やっぱり,ウェブの管理をするからには,JavaScriptくらい出来た方がいいですね...
これフレーム内に隠しても大丈夫かな...やってみよっと
全然JavaScriptのこと知らないので,激しく勘違いかもしれませんが...
フレーム内に記述する際に,
>>142 を以下のように書き換えました。
もちろん見様見真似です(笑
今のところ上手くいっているようですが,文法的にどうなんでしょうか?
無駄なところ,無意味な記述などあれば,見捨てないでご指摘お願いしますm(_ _)m
<script language="JavaScript">
<!--
if(parent.document.referrer.indexOf('
http://www.xxx.co.jp/ ')!=-1){
top.location.href='
http://www.xxx.com/ ';
}
//-->
</script>
何でフレーム内なのかといえば,一応アクセスログをとっておきたいなという
欲が出てきまして...(;^_^A
>>142 動くなら(エラーが出ていないなら)文法はあってるわけでしょ。
>>140 うーん、漢字をJavaScript内に書いた場合はUNICODEになっちゃう
からうまく行かないっていうのはよくある話なんですが、Win IEが
よくてMac IEが駄目ってのは逆にCGI側はUNICODEでないといけない
ようになってるのかな?にしても直に「%xx」で指定して大丈夫なら
それと同じものをJavaScript側で指定しても同じはずだと思うので
すけどね…
148 :
146 :02/10/04 08:45 ID:???
↑説明になってないね(笑 フレーム内にアクセスログのスクリプトを書き込んでるもので...
149 :
148 :02/10/04 08:50 ID:???
あ,148は146への自己レスです,すんません。
>>147 う〜ん,そうなのかな... なんともJavaScriptは不勉強なもので,
自分では検証できないス(;^_^A
ともあれ,皆さんありがとうございました。
IE で innnerText を使ってテキストを動的に変えるサンプルは あるのですが、Mozilla版がみつかりません。 Mozillaではできないのでしょうか?
151 :
Name_Not_Found :02/10/04 12:56 ID:A8y0N9tu
>>151 さわったことを検出→onmouseoverイベントハンドラ
要素を出したり消したりする→visibilityの切り替え
クリックしたことを検出→onclickイベントハンドラ
あらすじってそれ以上説明しようがないと思うけどな。
>>150 innerTextはMozillaにはないけど。だいたいinnerHTML
があれば済むんじゃないの?どうしてもinnerTextでないと
駄目なことって何?
154 :
150 :02/10/04 13:05 ID:A8y0N9tu
>>153 さま
ありがとうございます。
調べるとっかかりのキーワードがわかりました。
勉強してみます。
155 :
150じゃなくて151 :02/10/04 13:06 ID:A8y0N9tu
↑ごめんなさい、質問者151でした。
156 :
152 :02/10/04 13:12 ID:???
>>150 あ、子要素ない場合に insertBefore はできないか。こんな感じだ。
function setInnerText ( element, string ) {
var node = element.firstChild;
if ( node==null )
element.appendChild( document.createTextNode( string ) );
else if ( node.nodeType==3 )
node.nodeValue = string;
else
element.insertBefore( document.createTextNode( string ), node );
}
そもそも
>>150 はどんなことがやりたいのさ?
158 :
150 :02/10/04 14:12 ID:???
答えて下さった方々、遅レスで申し訳ありません。 いろいろ教えていただいてありがとうございます。 しかし、自分の理解力がついていってないので、紹介していただいた サンプル等を眺めてもうちょっと自分でがんばってみます。
159 :
Name_Not_Found :02/10/04 14:22 ID:Pi6UJFyi
>>159 まず、更新日時はあくまでもサーバがちゃんと返してくれていなければ
原理的に見ることはできない、という点は了解しておいてね。で、もし
サーバがちゃんと返してくれているなら次の方法を試してみれ。
(1) まずブックマーク(お気に入り)に適当なページを追加する。
(2) そのプロパティを出して(IEなら「お気に入りの整理」に入り
その項目を選んで右クリック)、URL側を次のように編集する
javascript: alert(document.lastModified);undefined
(3) 更新日時を知りたいところをクリックしてからブックマークの
その項目を選ぶ。
成功するかどうかは分からないよ、断わっておくけどさ。
161 :
初心子 :02/10/04 15:17 ID:kCcrdukb
質問です。 function(x){ document.aaa.x.value = 'test' } ↑のようなことがしたいのですが、xの中身ではなく xという名前を探してしまいます。どうしたら良いのでしょうか?
function(x){ document.aaa[x].value = 'test' }
163 :
140 :02/10/04 15:25 ID:YZTVLPu6
>>147 これまでCGI側のデコードはunicodeには対応してなかったです。
> 直に「%xx」で指定して大丈夫なら
> それと同じものをJavaScript側で指定しても同じはずだと思うので
> すけどね…
そうですか・・そうですよね。
色々ありがとうございました。
unicodeもデコードしてくれるツールとか見つけたんで
なんか解決とかしたらまた書いときます。
164 :
初心子 :02/10/04 15:28 ID:???
165 :
:02/10/04 18:16 ID:???
しぃスキンv6.6のレスナンバーにマウス乗せたら出てくるメニュー、 クロスブラウザ用に移植してください。
>>166 複数のブラウザに対応していること。
IEでもMozillaでも動くとか、さらにOperaでもOKとか。
しぃスキンってナニ?
169 :
Name_Not_Found :02/10/04 20:15 ID:anFgaOrM
もうだめ。どうすればうまくいくのか教えてください。 document.getElementsByTagName("head").innerHTML=""; document.getElementsByTagName("head").innerHTML="<title>TITLE</title>"; document.getElementsByTagName("body").innerHTML=""; document.getElementsByTagName("body").innerHTML="<p>成功</p>";
>>165 そのまえに、6.6のありかを教えてください
>>169 getElementsByTagName はノードリストを返す。
document.getElementsByTagName("head")[0].innerHTML
document.getElementsByTagName("body")[0].innerHTML
がんがれ。
>>171 おっ、bodyにはできた。ありがとうございます。
でもheadにはこの操作に対して無効なターゲットですみたいなエラーが。
ページを再読み込みせずに、読み込むCSSファイルを動的に変更したいのですが。
タグ1つづつだと変更が大量で避けたいのですが。
アドバイスか、参考のページを教えてください。
>>172 変更したい link 要素を取得して、href 属性を書き換える。
取得する方法は ID 振って getElementById でもいいし、
document.getElementsByTagName('link')[n] でもいいし、
document.styleSheets[n] でもいい。
document.createElement('link') で link 要素を生成して適宜属性を与え、
document.document.getElementsByTagName('head')[0].appendChild( linkElement )
で head の子として追加するのもあり。
参考ページはよく知らない…スマソ。
>>172-173 link要素のhrefを差し替える例ならvol. 9の267にあるよ。
前スレにもあったけどdat落ち中。
ありがとうございます。がんばってみます。
知恵熱がでてきてしまいそうです。 もう、頼れるのは、みなさんしか居ないです。 ↓のようなしくみなんですけど、MacのNN4.7で、うごきません。 JavaScript1.2とかも書いてみたりしたんですけど、ダメです。。。 いったい、なにがわるいのかも、検討もつきません。 すいません、よろしくおねがいします。 ↓footer.jsのなかみ document.write('わたしの"とっても"大事なページ'); ↓footer.htmlのなかみ <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <BODY BGCOLOR="#FFFFFF"> <script type="text/javascript" src= "/common/footer.js"> </script> </body> </html>
>>176 まずは(1) footer.jsをHTMLと同じディレクトリに置き、(2) scriptタグで
「src="footer.js"」とファイル名だけ指定してみれ。それで成功すれば
単にURLの指定し損ないということ。
2chスレの書き込み欄の上のあたりに【新着レスの表示】ってのが ありますが、これを自動でクリックしてくれるようなjavascriptを探しています。 過去レスをすべてみたわけではないのですが、過去にそのようなものが、 出回っていたら教えていただけませんか? おながいします。
>>180 ソース見ればわかるけど
hrの次のアンカーを読んでジャンプすればいい
そもそも、自分が作ってないページの内容をよそのページのJavaScript
から操作することはできないわけで。できるとしてもscriptletくらいだし。
「javascript: location.href = 'l50';undefined」とか試してみる?
scriptletのセットしかたは
>>160
JavaScriptでも出来るんだけどね… IE6では出来たけど、SP1で出来なくなった。
ふーん、やっぱり危なそうだから止められたんだ?どういう ワザだったの?
185 :
180 :02/10/05 00:16 ID:???
187 :
質問 :02/10/05 01:35 ID:Jx7eN5TM
小さなウインドウを、指定した位置に開きたいのです。
5行目にある(0,0)だと、左上に固定されるのですが、
これを右下にするにはどうしたらよいのでしょうか。
<SCRIPT language="JavaScript">
<!--
function OpenWin(){
win=window.open("
http://pc3.2ch.net/kakolog.html ","new","width=150,height=300");
win.moveTo(0,0);}
// -->
</SCRIPT><A href="javascript:OpenWin()">子ウィンドウ</A>
188 :
Name_Not_Found :02/10/05 01:47 ID:acXihBgh
あなたのIEのせいではなく、あなたのせいです。
190 :
Name_Not_Found :02/10/05 02:18 ID:acXihBgh
>>187 モニタの右したの座標-ウインドウのサイズが、
表示したい座標を出す計算
screen.height-300がy座標
sree.width-150がx座標
これでmoveTo指定してやればれきるとおもわれ。
191 :
Name_Not_Found :02/10/05 02:21 ID:acXihBgh
>>189 ほんとにそうかも。自虐ジコレス。
なんでなんだ
<script language="javascript">
<!--
var displayWidth = screen.width;
var displayHeight = screen.avileheight;
function openWindow()
{
var winWidth = displayWidth;
var winHeight = displayHeight;
var optionString = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,";
optionString += "width=" + winWidth + ", height=" + winHeight ;
var win1 = window.open('test.html' , 'newwin1' , optionString);
}
//-->
</script>
呼び出し部分は
<a href="#" onclick="openWindow();">
おかしいですか?
>190 アドバイスありがとうございました。 でもブラウザのサイズと、子ウィンドウのサイズで差し引いて上手くやれなかったので もう一回座標の勉強し直してきます。未熟ですいませんでした。
193 :
188 :02/10/05 02:54 ID:???
解決しました。 さ(・O・)よ(・。・) おなら(≧〜≦)=3 ブーッ!
オイオイやめてくれよ、これ以上マカーの品位下げないでくれ。
>>183-186 なるほど、ローカルにproxyかませて書き換える。そりゃ何でもできるな。
だけど自分専用の技だよね(他人に自動で適用は無理)。ところで、SP1で
できなくなったてのはどういうわけ?
197 :
Name_Not_Found :02/10/05 13:58 ID:NIXwwpmC
JScript≠JavaScriptなんですか?
なんですよ
>【新着レスの表示】ってのが >ありますが、これを自動でクリックしてくれるような どのタイミングで自動クリック? スレッドが表示されたら?連アタですか?
200 :
Name_Not_Found :02/10/05 17:29 ID:H7Sxq7lt
質問 javascriptの外部ファイルとしてCGIを指定し、 クライアントサイドからそれを動的に読み込むようにしているのですが、 その外部ファイルをブラウザにキャッシュさせない方法はありませんでしょうか。
httpヘッダ
202 :
Name_Not_Found :02/10/05 18:22 ID:6vCYFosU
テキストフィールド1に「あ」と書いた状態でボタンを押すと、テキストフィールド2に「か」と表示され、 テキストフィールド1に「い」と書いてボタンを押すとテキストフィールド2に「き」と表示され、 テキストフィールド1に「う」と書いてボタンを押すとテキストフィールド2に「く」と表示され、 尚且つそれ以外のものが書かれた状態でボタンを押すとテキストフィールド2に「け」と表示されるようなスクリプトを組みたいんですが、現在「それ以外のものをが〜」の部分ができません。 指摘お願いします。 <script language="JavaScript"><!-- function check(){ if(document.list.aaa.value=="あ") document.list.bbb.value=('か'); if(document.list.aaa.value=="い") document.list.bbb.value=('き'); if(document.list.aaa.value=="う") document.list.bbb.value=('く'); } // --> </script> <form name="list"> <input type="text" name="aaa" size="20" value=""> <input type="button" onClick="check()" value="チェック"> <input type="text" name="bbb" size="40" value="テキストフィールド2"> </form>
if( 中略 ) { 省略 } else if( 中略 ) { 省略 } else if( 中略 ) { 省略 } else { 省略 } はどうよ?
配列使ったほうがもっとスマートにかけるかも。 重くなるかも知れんけど。 配列BFとAFで対応させる。 BF=( "あ", "い", "う" ); AF=( "か", "き", "く" ); でBF[i]からAF[i]に置換とか。
205 :
202 :02/10/05 19:55 ID:???
>>203 できました。すいません、ありがとうございますー。
else ifってのを2つ使っていいって知らなかったです。
精進します。どうもですた。
206 :
202 :02/10/05 19:56 ID:???
>>204 む、まだ配列って何かよくわかってないんで無理ですー。スマンヌ。
>>206 JavaScriptらしいコードなら次のようにすると思うよ。
var a = new Object();
a['あ'] = 'か'; a['い'] = 'き'; a['う'] = 'く';
...
var aaa = document.forms.list.elements.aaa, bbb = document.forms.list.elements.bbb;
bbb.value = a[aaa.value] || aaa.value;
208 :
200 :02/10/05 21:43 ID:H7Sxq7lt
取り敢えず変数としてgetTime()で得た値をCGIに渡し、 URLを非固定にする事によってキャッシュから読み込まれるのを防ぐ事にしました。
>>208 Content-typeヘッダを生成するとき
Content-type: text/javascript; Pragma: no-cache
とすればよい。が、明らかにWebProg板で質問/回答すべき内容。
すまそ、上記に加えて Pragma: no-cache という行も必要みたい。自分でやってないのでどうも…
>>139 とても遅れましたがありがとうございました。
解決できました。
なるほど、anchorsでなくてlinkでできるのですね。
ありがとう。
右クリックをした座標と 右クリックを離した座標を 知りたい
213 :
Name_Not_Found :02/10/06 03:02 ID:Y/INFkmo
function mdown() { if (event.button & 2) { alert("右クリキャンセル"); return(false); } } document.onmousedown = mdown; このスクリプトをうごかせば、右クリックがキャンセルできますが alert文を削除すると右クリックが生きてしまいます。 このスクリプトにおいて、alertダイアログを出さずに 右クリックを無効化させるにはいったいどうすればいいでしょうか?
>>213 右クリック禁止はあまりお勧めしないが
IE専用でいいならoncontextmenuでつぶしてみるとか。
215 :
213 :02/10/06 04:16 ID:???
>>214 (゚∀゚)サンクスコ
右クリック禁止というか、特定条件下での右クリックで
特殊な処理をしようとしてたので。
oncontextmenuを動的にいじって解決しました。
>>212 <html><head><title>e</title><script>
function mdown(fld){
document.forms[0].elements[fld].value=event.clientX+'/'+event.clientY;}
document.onmousedown = function(){if(0 & 2) mdown(0);}
document.onmouseup = function(){if(0 & 2) mdown(1);}
document.oncontextmenu = function(){return false;} //
>>213-215 参考
</script></head><body>
<form>down(x/y):<input type="text"> up(x/y):<input type="text"></form>
</body></html>
NNはdocument.captureEvents とか使うのかな。
NN4とかN6のやり方を誰かおちえて。 event is not defined...
218 :
:02/10/06 14:46 ID:???
全ページ共通のメニューをつけたのですが、 現在表示しているページのリンクを押せないようにしたいのですが、 どうすればよいのでしょうか?
220 :
Name_Not_Found :02/10/06 15:44 ID:jMAdZzkO
221 :
Name_Not_Found :02/10/06 15:56 ID:KpFFio1L
>>216 ページをスクロールすると正しい値にならないぞ。
>>220 window.open(URL,windowName,Option);
windowNameを一緒にしとけ
フレーム内のページに直接アクセスしたときに フレーム定義しているアドレスに自動で飛ばすスクリプトを探しているんですが 検索キーワードは何を使ったらいいですか?
225 :
224 :02/10/06 16:06 ID:jMAdZzkO
226 :
Name_Not_Found :02/10/06 16:10 ID:KpFFio1L
>>226 あじがとうございます!!!(T▽T)大変助かりました。
>>218 こんな感じ?ちょっと手抜きだけど(リンクの内側が複雑だと最初の部分だけ
しか残らない)。今IEがないんでMozillaのみテストしたけどどっちでも動くはず。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function modify() {
for(var i = 0; i < document.links.length; ++i) {
var l = document.links[i];
if(l.href == location.href) l.parentNode.replaceChild(l.firstChild, l);
}
}
</script>
</head><body onload="modify()">
<p><a href="thispage.html">このページ</a></p>
<p><a href="
http://www.2ch.net/2ch.html ">2ちゃんねる</a></p>
</body></html>
229 :
:02/10/06 21:10 ID:???
>>228 IE55とMozillaで正常に動作しました。
NN47は効かず、OperaとNN3でエラーが出ましたが、
IEとMozillaで動けばほかは構わんです。感謝。
>>229 とりあえず動いてよかったです。が、チェックしてエラー出さないようにする方がいいね。
if文ところを次のように。
if(l.href == location.href && l.parentNode && l.parentNode.replaceChild) 以下同じ
231 :
:02/10/06 22:42 ID:???
232 :
Name_Not_Found :02/10/06 23:32 ID:Y/INFkmo
IMGで表示される画像を更新させるにはどうしたらいいのでしょうか?
更新とは?
234 :
232 :02/10/07 01:51 ID:???
setInterval等で出来るけど、ライブカメラってjavascriptでやるものなのか?
236 :
Name_Not_Found :02/10/07 19:19 ID:gU2BqWBG
画像が十枚貼られたギャラリーを○○01.htm〜○○10.htmとするのではなく、 JavaScriptを利用してマスククリックで画像が変わっていくようにしたいのです。 以下のソースでは使う画像が2枚ですが、10枚の場合はどこを変えたらいいのでしょうか? <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- imgnum=1; function changeImage(){ ����if(imgnum==1){ ��������document.myimg.src="img2.jpg"; ��������imgnum=2; ����}else if(imgnum==2){ ��������document.myimg.src="img1.jpg"; ��������imgnum=1; ����} } // --> </SCRIPT> </HEAD> <BODY> <CENTER> <A href="javascript:changeImage()"><IMG src="img1.jpg" name="myimg" border=0></A> </CENTER> </BODY> </HTML>
>>236 10枚の画像ファイル名は規則的? 規則性なし?
ギャラリー毎にディクトリを作って規則的になるようにしています。 image01.jpg 〜 image10.jpgといった具合に
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> var cur = 0, imgs = ['t0.png','t1.png','t2.png','t3.png','t4.png']; function chg() { if(++cur >= imgs.length) cur = 0; document.images.i0.src = imgs[cur]; } </script> </head><body> <p><a href="javascript: chg()"><img src="t0.png" name="i0" alt="image"></a></p> </body></html>
ありがとうございます!! 試してみます m(_ _)m
241 :
画像を :02/10/07 21:31 ID:mup7AB3M
壁紙の画像を、ウインドウサイズに応じて自動的に拡大・縮小 することはできますか?
242 :
Name_Not_Found :02/10/07 22:11 ID:b/55E/Wh
<SCRIPT Language="JavaScript">
<!--
function searchgo(form) {
if (document.SearchMenu.keyword.value==""){
alert('検索文字を入力してください。');
}
else{
mlink = form.SearchList.options[form.SearchList.selectedIndex].value + document.SearchMenu.keyword.value;
window.open(mlink,"","toolbar=yes,menubar=yes,location=yes,status=yes,scrollbars=yes,resizable=yes");
}
}
//-->
</SCRIPT>
<FORM name="SearchMenu">
<input type="text" name="keyword" size="30" maxlength="256">
<SELECT name="SearchList">
<OPTION value="
http://www.google.co.jp/search?q= " selected>Google</OPTION>
<OPTION value="
http://search.yahoo.co.jp/bin/search?p= ">Yahoo!
JAPAN </OPTION>
<OPTION value="
http://www.goo.ne.jp/default.asp?MT= ">goo</OPTION>
</SELECT>
<INPUT type="button" value="検 索" onClick="searchgo(this.form)">
</FORM>
テキストボックスでリターンを押しても検索ボタンを押したのと同じ結果が得られるようにしたいのですが
今の状態だとリターンを押すと何もアクションが起こらずに終わってしまうので
どうすればいいでしょうか?
>>242 <FORM name="SearchMenu" onsubmit="searchgo(this)">
とかでどう?
>>241 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var w, h, targetWidth = 400, targetHeight = 300;
function getSize() {
if(document.documentElement && document.documentElement.clientWidth) {
w = document.documentElement.clientWidth;
h = document.documentElement.clientHeight;
} else if(document.body && document.body.clientWidth) {
w = document.body.clientWidth; h = document.body.clientHeight;
} else if(window.innerWidth) {
w = window.innerWidth; h = window.innerHeight;
} else {
w = targetWidth; h = targetHeight;
}
}
function setSize() {
getSize(); if(document.layers) return;
document.images.i0.style.width = (w-12)+'px';
document.images.i0.style.height = (h-12)+'px';
}
</script>
</head><body onload="setSize()" onresize="setSize()">
<div style="position:absolute; width:auto; height:auto; z-index: 0">
<img id="i0" src="t0.png" width="100" height="100">
</div>
<div style="position:absolute; width:auto; height: auto; z-index: 0">
<h1>This is a test.</h1>
<p>this is a test...</p>
</div>
</body></html>
245 :
Name_Not_Found :02/10/08 02:06 ID:czNu2W7r
誘導されてましたので、コピペさせてください。 ラジオボックスがAB2つあって、 ・Aの方にチェックした時、 ラジオボックスAの右にあるテキスト入力欄が、使用可能 Bの右にあるテキスト入力欄が、使用不可能(薄くなった状態) ・Bの方にチェックした時は、Aの逆。 と、いう風にしたいのですが、そもそも可能なんでしょうか? <input type=text disabled="true"> <textarea disabled="disabled"> とすると、使用不可能には、なるんですが、 それ以上は・・・ もう疲れ果てましたので、皆さんの知恵をお借りできないでしょうか?
function r(){ if(document.forms[0].elements[0].checked){ document.forms[0].elements[1].disabled=false; document.forms[0].elements[3].disabled=true; }else{ document.forms[0].elements[1].disabled=true; document.forms[0].elements[3].disabled=false; } } <form> <input type="radio" name="rad" checked onClick="r();"> <textarea></textarea><br> <input type="radio" name="rad" onClick="r();"> <textarea disabled></textarea> </form> 貧弱なscriptですまん。
247 :
245 :02/10/08 03:39 ID:???
>>246 お!thxです!
ちょっとやってみます。
248 :
245 :02/10/08 04:25 ID:l1GD445C
>>246 うぅ・・・そのままやってもなりませんでしたけど・・・
てか、textareaじゃなくて、input type=textなんです。
で、私実は、javascriptのことは全く無知でして、
html,css,あと、ホントに少しのperlくらいしかワカランので、
どこをどういじればいいのか検討もつきません。
246さんは、これで動いたんでしょうか?
>>248 >てか、textareaじゃなくて、input type=textなんです。
そのまま変えてみたら?動くよ。
「半透明にしてください」って又来るのかな・・
多分フォームが他にもあって、添番がズレてるのかも。
そこまで説明しろと言われたら
>>1-4 としか言えんけど。
251 :
Name_Not_Found :02/10/08 06:09 ID:9GEBtgCy
>>249 あれれ?何回やっても動かんかったんで、
「動かんわ!ボケェ!」って、
キレながら、新規ページに貼り付けたら動きました。
何故だろう・・・もっかい一から作り直します。thx!
「他力本願すぎるら!ボケェ!」とは キレないで呆れますた。
「欲しいjavascriptではありません!逝ってよし!」以来の大物だ。 大切にしようぜ。
>新規ページに貼り付けたら動きました 原因判明。 インデックス番号のずれ。
perlも怪しいもんだな…
256 :
age :02/10/08 10:28 ID:???
マウスをクリックした時にvisibleして もう一度クリックするとhidden というような構文はどう書けばいいのでしょうか? 以下のように書いても動きません <A HREF="#" onClick="pullDownMenu('tag1','hidden')" onClick="pullDownMenu('tag1','visible')">
<script> var flg=true; function pullDownMenu(){ if(flg){ document.getElementById('tag1').style.visibility='hidden'; flg=!flg; }else{ document.getElementById('tag1').style.visibility='visible'; flg=!flg; } } </script>
<A HREF="#" onClick="pullDownMenu()">?</A>
259 :
age :02/10/08 12:43 ID:???
260 :
Name_Not_Found :02/10/08 13:55 ID:AbzveAnm
261 :
初心者マーくん :02/10/08 14:36 ID:/vVtPE7C
下記のようなことは可能なのでしょうか? (1)上下に分割された2つフレーム構成のページ。 (2)上フレームにプルダウン・メニューをJavaScriptで配置。 (3)ただし、(2)のメニューは下フレームにかぶるくらい長い。 結果として、上フレームに配置したプルダウン・メニューが 下フレームに隠されてしまうという、おバカな状況に悩んで います。考えてみれば当たり前なのかもしれません。 JavaScriptで描画可能なのは、そのコードが埋め込まれた ソースで表示されるフレーム内だけですよね。 やっぱり、無理なのかなぁ?上下にフレームを分けなければ 問題ないのですが、何とか別フレームの上に、メニューが 上書き(上乗り)できないものかと考えております。
262 :
Name_Not_Found :02/10/08 15:47 ID:cUNE134+
ページを左右にスクロールさせるスクリプトとして こういうものを作ったんですがどうもうまく動作してくれません。 誰か助けてください。 var now = 0; var movFlag = false; function mov_Right(x){ now += Math.ceil((x - now) * 0.07); self.scroll(now, 0); if((x - now) <= 1){ self.scroll(x, 0); }else{ movFlag = setTimeout("mov_Right("+ x +")", 0); } } function mov_Left(x){ now += Math.ceil((x - now) * 0.07); self.scroll(now, 0); if((x - now) >= 1){ self.scroll(x, 0); }else{ movFlag = setTimeout("mov_Left("+ x +")", 0); } }
263 :
Name_Not_Found :02/10/08 16:19 ID:bFHiE8zu
if ((mail.type.value == "法人") && (du.coname1.value == "")) { window.alert("法人名を記入てください"); return false; } というスクリプトで動いていたのですが、 リストをラジオボタンに変えたら動かなくなりました。 勿論ラジオボタンのnameはtypeに変えましたが・・・ ラジオボタンはvalueを返さないのでしょうか? どなたかお願いします。
>>261 あるフレームの内容が他のフレームの上にかぶって出るなんて無理〜。
そゆことしたければ別窓を出す以外に方法はない。でもメニューが
別窓に出るなんてうるさいし駄目でしょ。
>>263 ラジオボタン(<input type="radio">)と選択リスト(<select>...</select>)
は全然違うよ。ここで説明するのが嫌になるくらい。だからどっかの
サイトで勉強すれ。
>>262 どういう使い方なんだかよく分からないんけど。setTimeoutの使い方
もヘンだけど。まあこんな感じかも、というのを作ってみたけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
var target, now = 0;
function move(x) { target = x; step(); }
function step() {
if(target > now) {
var d = Math.ceil((target-now)*0.07);
window.scrollBy(d, 0); now += d;
if(d > 1) setTimeout(step, 20);
} else if(target < now) {
var d = Math.ceil((now-target)*0.07);
window.scrollBy(-d, 0); now -= d;
if(d > 1) setTimeout(step, 20);
}
}
</script>
</head><body>
<div style="width: 2048px"><h1>Test...</h1>
<p align="left"><a href="javascript: move(1024)">right</a></p>
<p align="right"><a href="javascript: move(0)">left</a></p>
</div>
</body></html>
266 :
262 :02/10/08 17:38 ID:cUNE134+
>>265 動きましたッ!
ありがとうございました。
ちなみにsetTimeoutの使い方は参考にした
ソースに書いてあったものをそのままパクったんですが・・・
やっぱりおかしい使い方なんですねぇ。
JavaScriptでURLエンコードする方法を教えて下さい。
270 :
Name_Not_Found :02/10/09 06:57 ID:A/+4Ym+p
>>269 encodeURI()はECMA-262規格に含まれている。Mozilla/N6/N7にも当然ある。
ネスケの4.75で開発しているものです. tabによるフォーカスの移動の順番を変えたいと思ったのですが、このブラウザはtabindex機能がありませんでした. そこでJavaScriptでキーイベントを拾って画面上を回すことを考え、 要素がtextfieldだけの時はこの方法でうまく動かすことができました. しかし、途中にradiobuttonを挟むとうまくいきませんでした. radiobuttonにfocusを乗せることはできても、radiobutton上にfocusがある状態ではキーイベントを拾わないようなのです. radiobutton上ではキーイベントは拾わないものなのでしょうか? ただの当方のミスなのでしょうか? 何かご指摘、回避策、解決策があったらおしえてください.
>>273 Unix上のNetscape 4.78で試してみたが、ラジオボタン上のキーイベント
どころかtextfield上のTABですら拾ってくれない(普通の文字は拾える)。
ということでブラウザがダメダメみたいだねー。
>>273 radio の onBlur で拾ってみたらダメ?
>>274 わざわざ試していただいて、ありがとうございます.
おっしゃるとおり、Textfield上でもTABを拾ったり拾わなかったりで、
これがはっきりしないのも悩みなのですが、最悪の場合は別のキーで代用するつもりです.
やはりブラウザのせいでどうにもならないのでしょうか?
>>275 知りたいのは、radiobuttonからマウスを使わずに、TAB(あるいは他のキー)によって別の入力領域へfocusを移す方法です.
onBlurはradiobuttonからfocusがはずれた時に生じるイベントなので、少し求めているものと違います.
わかりにくい書き方ですみません.
NN4.75だけを対象に開発してるなら、 タブ順にコントロール並べてあとから見た目を調整すれば?
278 :
:02/10/09 15:57 ID:???
複数のポップアップを毎回、書くのが大変なのでサイズ等は一緒なのでリンク先以外を<head></head>内に書き リンク先だけをAタグの中に直で書きたいのですけどどうすればいいのでしょうか? 簡単っぽいのですけどわかりません よろしくお願いします。
>>278 function popup (uri) {
window.open(uri, 'ウィンドウ名', '幅とか高さとか');
}
<a href="hoge.html" onclick="popup(href);return false;">hoge</a>
てゆーことかいな。
>>277 気づきませんでした.
さっそくやってみます.
本当にありがとうございます.
281 :
:02/10/09 16:20 ID:???
>>279 さん
そういうことです!
でもできないっす...
<script language="JavaScript">
<!--
function popup (url){
window.open('url','koko','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=100,height=100').focus();
}
//-->
</script>
<a href="hoge.html" onclick="popup(href); return false;">hoge</a>
でいきません
>>277 ぽろ (目から鱗が落ちた音)
>>281 (1)「'url'」→ 「url」引用符を取る。
(2)「popup(href)」→「popup('hoge.html')」
283 :
:02/10/09 17:05 ID:???
>>279 さん
>>282 さん
できました!
勝手にurlに引用符を付けてました すみません
ありがとうございます
284 :
:02/10/09 19:03 ID:???
window.open('ike.html','koko','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100') でike.htmlのフォームに「koko」という所(ウインドウの識別名?)を書き出したいのですけど可能ですか?
ike.html をこう書く <html> <head> <title></title> <script type="text/javascript"> <!-- function writeWindowName(){ document.formA.textA.value = window.name; } //--> </script> </head> <body onload="writeWindowName()"> <form name="formA"> <input type="text" name="textA"> </form> </body> </html>
286 :
:02/10/09 19:51 ID:???
>>285 ほんとありがとうございます
できました 感動しました
マイクロソフトのライブラリのホームページの DHTMLの解説がかなり古いんだが 新しいのはどこにあるの?
289 :
Name_Not_Found :02/10/10 12:21 ID:cBeDWgGE
>>288 もしかして日本語?それはダメダメだよね。英語もダメという噂も
あるが。自分は最初からW3Cとかの文書を見た方がいいと思っている。
>>289 そうっすか。
時代に逆行するみたいだけど、IEに特化した情報を求めてたんで
本家がアレじゃあ困るよなぁと思ってたところです。
JScriptとか
291 :
Name_Not_Found :02/10/10 13:45 ID:8qi95snl
Mac/IEで、画像をドラッグするとそれが持てて、 デスクトップにドロップすると画像ファイルを保存できる、 という機能があるんですが、 これを働かせないようにするにはどうすればいいのでしょうか? 画像をドラッグで移動できるようにしているのですが、 ハンドラでの処理と同時に、 この余計なフィーチャーが働いてしまうのです。 ハンドラ側でfalseを返しても、駄目だし。 いい方法はないでしょうか。
IEはフルサポートを公言しているDOM1HTMLでも W3Cの仕様と違う実装をしていることがあるので要注意。
フィーチャーが働くってなに?
<FORM><INPUT type="button" name="next" onclick=location.href="sample2.html" value="次の画像へ"></FORM> onclickなんですがフレームを使用してるとそのフレームだけがページかわります targetタグ付けるとエラーになりました。 ボタン用のタグってあるんでしょうか?
>>293 new feature はよく「新機能」と訳されたりする。
「機能」の英訳語は必ずしも feature ではないけれどね。
>>277 アドバイスありがとうございました.
でも残念ながら、この方法ではtabの移動が実現できませんでした.
位置指定をしようとしてlayerあるいはdivのタグで囲うと、
tabはlayerあるいはdivのブロック内から出るが、ブロック内には移らないと言う結果に終わりました.
(一度でると外側だけでまわる)
IEでのdivはうまくいったのですが、このNNはtab移動には都合がわるくできてるようです.
なにか他に見た目の調整方法とかあるでしょうか?
>>294 <form method="post" action="sample2.html" target="_blank">
<input type="submit" value="次の画像へ">
</form>
これで如何
298 :
294 :02/10/10 14:45 ID:???
できました!!!ありがとうございました! 助かりました。
299 :
Name_Not_Found :02/10/10 17:25 ID:yQ9Fm0gi
textarea1と2が、空欄の時は、submitボタンが、 効かない(disabled=true)ようになる ということは、javascriptでしょうか?
javascriptでも可
301 :
299 :02/10/10 17:40 ID:l9nQs85M
>>300 では、それを教えていただくことは可でしょうか?
>>299 <script type="text/javascript">
<!--
function checkTextArea(){
if ( (document.sampleForm.textArea1.value != "") && (document.sampleForm.textArea2.value != "") ){
document.sampleForm.submitButon.disabled = false;
} else {
document.sampleForm.submitButon.disabled = true;
}
}
//-->
</script>
<form name="sampleForm">
<textarea name="textArea1" onkeyup="checkTextArea()"></textarea>
<textarea name="textArea2" onkeyup="checkTextArea()"></textarea>
<input type="submit" name="submitButon" disabled>
</form>
IE6でしか確認してない。
>>301 function test(){
if(document.forms[0].elements[0].value!=''&&document.forms[0].elements[1].value!=''){
document.forms[0].elements[2].disabled=false;
}else{
document.forms[0].elements[2].disabled=true;
}
}
<form>
<input type="text" onKeyDown="test()">
<input type="text" onKeyDown="test()">
<input type="submit" value="sub" disabled>
</form>
苦しい…誰か改造まかせた。
と思ったら302さんがスデに書いてる
302さんのonkeyupが正解。 onkeydownにしたら2回打たなきゃ反応しなかった。
299です。 皆さんサンクスです。今からやってみます!
特定のリファラだけをアクセス拒否にしたいのですが Javascriptで可能でしょうか?
>>307 JavaScriptを有効にした訪問者になら
どっか飛ばすくらいできます。
309 :
Name_Not_Found :02/10/10 18:57 ID:Y56Sugpl
310 :
307 :02/10/10 19:00 ID:???
>308 ありがとうございます。 翻訳サイトからアクセスしてくる粘着な外人に困ってます。 その人だけを飛ばすことって可能なんでしょうか?
312 :
:02/10/10 19:08 ID:???
>>284 >>285 まさに284、285みたいなことをしているのですが
ウインドウネーム(284では'koko'の部分)を2バイト(日本語)にはできるのでしょうか?
313 :
307 :02/10/10 19:11 ID:???
>311 ありがとうございます。早速試してきます。
314 :
Name_Not_Found :02/10/10 19:33 ID:lHzmltb0
299でっす 動きました!! が、実は前に調べまくって、このページにこんなものをつけてたんです。 <input type="radio" name="yesno" onClick="document.sample.submit.disabled=false;" value="Yes"> はい <input type="radio" name="yesno" checked onClick="document.sample.submit.disabled=true;" value="No"> いいえ つまり、はいをチェックしないと、進ませません!ってこと(のつもり)なんですが、 これも一緒に機能するようにしたいんですが、、、 色々考えました。 (document.sample.yesno.value="No")←こういうのを使えばいいんだと思いますが、 当然、 if( (document.sample.textArea1.value != "") && (document.sample.textArea2.value != "") && (document.sample.yesno.value="No") ) ・・・ なんて事するだけじゃあダメだし・・・ 最後にもう一度お力をお借りしたいんですが、それは可でしょうか?
315 :
307 :02/10/10 19:37 ID:???
>311 テストしてみたところ、弾くことが出来そうです。 ありがとうございました。
Mozillaでこれを表示させると、key1=hogehoge しか表示されません。 [編集]->[設定]からCookiesを見ても2番目のcookieは設定されてません。 なぜでしょうか? 2番目のcookieの最後の;をとったりしても同じです。 <html> <body> <script language='javascript'> document.cookie="key1=hogehoge;key2=piyopiyo;"; document.write(document.cookie+'<br>'); </script> </body> </html> ~
>>314 <script type="text/javascript">
<!--
function checkTextArea(){
var textValue1 = document.sampleForm.textArea1.value;
var textValue2 = document.sampleForm.textArea2.value;
var radioCheck = document.sampleForm.yesNo[0].checked;
if ( ( textValue1 != "") && ( textValue2 != "") && ( radioCheck ) ){
document.sampleForm.submitButon.disabled = false;
} else {
document.sampleForm.submitButon.disabled = true;
}
}
//-->
</script>
<form name="sampleForm">
<textarea name="textArea1" onkeyup="checkTextArea()"></textarea><br>
<textarea name="textArea2" onkeyup="checkTextArea()"></textarea><br>
<input type="radio" name="yesNo" onClick="checkTextArea()" value="Yes"> はい<br>
<input type="radio" name="yesNo" onClick="checkTextArea()" value="No" checked > いいえ<br>
<input type="submit" name="submitButon" disabled>
</form>
IE6でしか確認してないので。
>>314 等しいことを調べるのは「==」だよ。「=」だと代入しちゃう。
>>317 ホントに有難う御座います!
一眠りしてから取り掛かります。
>>318 そうでしたね。すいません。。。
しかし・・・WebProg板イイ!
>>319-320 ありがとうございます。
ずっと勘違いしてました。
↓のようにしたらできました。
document.cookie="key1=hogehoge;";
document.cookie="key2=piyopiyo;";
document.write(document.cookie+'<br>');
直観的にみると、なんか上書きされてしまいそうですね。
325 :
309 :02/10/10 22:25 ID:???
309ですがどうやらiframeを使ったのがダメのようでした。。 フレーム組み直しますです。
326 :
:02/10/10 22:37 ID:???
ウインドウネームが「aaa」であれば「あああ」をdocument.write('kakidasu')で書き出し ウインドウネームが「iii」であれば「いいい」をdocument.write('kakidasu')で書き出し... というスクリプトを外部ファイルに置いて元のHTML上で書き出したいです。 的はずれなことを聞いていたらすみません もしわかったら教えてください。よろしくお願いします。
327 :
:02/10/10 23:18 ID:???
>>326 winname.js
var winName = window.name;
if ( winName == "aaa" ){ winName = "あああ"; }
if ( winName == "iii" ){ winName = "いいい"; }
document.write(winName);
<html>
<body>
<script type="text/javascript" src="winname.js"></script>
</body>
</html>
こういうことですか?
>>326 取り込まれるJSファイルは次のような感じに。
var map = { aaa:'あああ', iii:'いいい' };
document.write(map[window.name]);
そしてHTMLの書き出したいところに
<script type="text/javascript" src="なんとか.js"></script>
329 :
:02/10/10 23:30 ID:???
>>327 >>328 ありがとうございます
それでできそうです
body内にも<script type="text/javascript" src="なんとか.js"></script>をおけるんですね
しらなかったです
330 :
Name_Not_Found :02/10/10 23:34 ID:pZS3/pxf
<SCRIPT language="JavaScript"> <!-- function selLink(){ ����selurl=document.myform.mysel.options[document.myform.mysel.selectedIndex].value; ����if (selurl != "" )location.href=selurl; } //--> </SCRIPT> </HEAD> <BODY> <FORM name="myform"> <SELECT name="mysel" onChange="selLink()"> <OPTION value="">メニュー <OPTION value="hoge.htm">ホゲ <OPTION value="../boke/baka.htm">馬鹿 </SELECT> </FORM> </BODY> -------------------------------------------------------- 同一ページ内にプルダウンメニューでリンクするフォームを複数設置する時は、上のソースのどこを変更したらいいのでしょうか?
>>325 別にiframeだってできると思うけどな。フレームの指定間違い
じゃないの?入れ子関係を例題と変えたっていうことだからさ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
var step, timeid = 0;
function stopscrl() { if(timeid) clearInterval(timeid); timeid = 0; }
function startscrl(s) {
stopscrl(); step = s;
timeid = setInterval(function() { frames.f0.scrollBy(0, step); }, 20);
}
</script>
</head><body>
<p><a href="javascript: startscrl(-1)">上へ</a></p>
<p><a href="javascript: startscrl(+1)">下へ</a></p>
<p><a href="javascript: stopscrl()">停止</a></p>
<iframe name="f0" style="height: 100px" src="a.html"></iframe>
</body></html>
>>330 (1) function selLink(myform, mysel) { ... とする。
(2) onchange="selLink('myform', 'mysel')" とする。
(3) いくつでもメニュー追加してonchangeではそれぞれのフォーム名とselect名を指定。
334 :
Name_Not_Found :02/10/10 23:44 ID:pZS3/pxf
>>333 ありがとうございます
教えていただいたことを試してきます。
| サラバ..
|Д´)ノ
| .ノ
| <
335 :
333 :02/10/10 23:48 ID:???
>>334 わー! もう1箇所抜けているのを発見しました。戻ってきて〜!
(4)selurl=document.myform.mysel.options[document.myform.mysel.selectedIndex].value;
の行は次のように。
selurl=document.forms[myform].elements[mysel].options[
document.forms[myform].elements[mysel].selectedIndex].value;
数々の御指導、感謝です。・゚・(ノД`)・゚・。
>>331 レスありがとうございます!
iframe内のページを親ページからスクロールさせることは出来たのですが
そのページ自体をフレームに組み込むと何故か動かなかったのです。
>>337 ボタンはどこに配置しているの?別フレーム?たとえば
frameset name="a"
__frame name="b"
__frame name="c"
____iframe name="d"
だったら、フレームbに配置したボタンからiframeの参照方法は
parent.frames.c.frames.d
になるわけだが…どういう配置なのよ、実際のところ?
>>338 サンプルで言うと、
ボタンのあるframe1.htmlにiframe src="frame2.html" name="f2"を入れる⇒動く
このframe1.htmlをindex.htmlと言うフレームセットに入れる⇒動かない
です!
>>339 ふーん、それは謎だねえ。まさかtop.framesを使って参照してないよね?
そのソースが長すぎないようなら(またはボタンを減らして小さくして)
貼ってみる?
341 :
Name_Not_Found :02/10/11 11:05 ID:KFmeo5eK
例えば掲示板なんかで、書き込みをする前にアラートを出して Yes/NoでNoを押せばCGIは実行されなくてYesを押すとCGIが 実行されるようにするには、どういう事をすればよいでしょうか? いつも文章を書いている最中にエンターを押して誤登録されるんです。
自分で設置するフォームなら、 <form action="***" onsubmit="return confirm('送信してもよろしいですか?')"> 他人の設置したフォームでそういうことをしたいなら、 IEのセキュリティ設定で「暗号化されていないフォームデータの送信」で 「ダイアログを表示する」に設定すれば充分でしょ。
343 :
Name_Not_Found :02/10/11 11:31 ID:KFmeo5eK
こんな簡単なやつだったんですか、 if文とか難しく考えすぎていました ありがとうございます。 逝ってきます。
344 :
:02/10/11 15:12 ID:???
20文字以上だとアラートがでて19文字以下だとform_thanks.htmlにリンクするというのをやりたいのですけど20文字以上でもアラートはでますけどリンクされてしまいます。 どこがおかしいでしょうか? <script language="javascript"> <!-- var ImpressionMax = 20;// function checkalert(Form){ var where = Form.Impression.value; var number = where.length; if(number > ImpressionMax){ alert("文字を"+ImpressionMax+"文字以内でお願いします。"); }else{ Form.submit(); } } function FrmSubmit(){ // location.href="form_thanks.html"; } // --> </script> <form name="FormImpression" method="post" action="JavaScript:FrmSubmit()"> <textarea name="Impression" wrap="hard" cols="32" rows="10"></textarea> <input type="image" onclick="checkalert(this.form);" src="img/form_btn_submit.gif" onMouseover="this.src='img/form_btn_submit_ov.gif'" onMouseout="this.src='img/form_btn_submit.gif'"> </form>
>>345 わかったよ。あんたframe1.htmの中でwindow.parent.f2.scroll(...)
とかって書いているくせに、その同じframe1.htmの中でiframe定義
してるじゃない。同じファイルからってことはwindow.f2.scroll(...)
が正しいの。ただ、このファイルがフレームに入っていない時は
外側の窓っていうのがないわけだから、window.parentとwindowは同じ
ものになってしまう。だから動いていた。フレームに入れたとたんに
その「正しくなさ」が発揮されたわけさ。
>>344 もともとinput type="image"でのクリックはフォームを提出させる機能が
あるから。チェックの結果フォームの提出を止めたい場合は
(1) formのonsubmitにチェック関数への呼び出しを「return checkXX(this)」
とかいう感じで書く。
(2) その関数ではチェックが駄目なら「return false;」、OKならば
「return true;」を実行させる。
というふうにするのがいいよ。
348 :
339 :02/10/11 18:48 ID:???
>>346 なるほど!!早速直してきました!!
ちゃんと動いてます!
2chで質問するの4回目ですが解決したの初めてです(感動)
どうもありがとうございました!!!
349 :
Name_Not_Found :02/10/11 19:05 ID:PQ7PiPMj
すいません。しょうもないことですが、質問させて下さい。 JavaScriptで相手のリモホを変数等に取ってくることはできないんでしょうか? リファレンス見てもそれらしいのが見当たらないもので・・
351 :
Name_Not_Found :02/10/11 19:14 ID:lF9adyZF
ブラウザのアドレス欄にかくと ウインドウサイズがぴょこーんとかわる 1行スクリプトを 教えてください。
resizeTo([width],[height])
>>350 ありがとうございます。クライアントで動くんだから
多分ダメかなと思ってはいましたが。
354 :
Name_Not_Found :02/10/11 19:49 ID:HK0zIeW2
355 :
Name_Not_Found :02/10/11 20:52 ID:TDVKmplJ
form1,form2,form3・・・formN まで一括にfor分で処理したいのですが、 for(i=1;i<=N;i++){ document.form * ・・・ } の「*」の部分はどう書けばよろしいのでしょうか?
s["form"+i]
formsのs
359 :
Name_Not_Found :02/10/12 00:36 ID:nHznOcnH
ファイルの更新日と現在の日付を表示したいのですが、これだとたまに一緒の日付が表示されてしまいます。 どこがいけないのでしょうか? <SCRIPT language="JavaScript"> <!-- today=new Date(); Y=today.getFullYear(); M=today.getMonth()+1; D=today.getDate(); lmDate=new Date(document.lastModified); lmY=lmDate.getFullYear(); lmM=lmDate.getMonth()+1; lmD=lmDate.getDate(); document.write(" 今日:",Y,"年",M,"月",D,"日<BR>"); document.write("最終更新日:",lmY,"年",lmM,"月",lmD,"日<BR>"); //--> </SCRIPT>
「たまに」っていうのが不思議だよね。サーバやCGIによっては document.lastModifiedを返さないものがあるけど、その辺は 毎回同じものでやっているんだよね?
361 :
359 :02/10/12 11:01 ID:nHznOcnH
>>361 とりあえず、document.lastModifiedをそのまま
document.writeln()で表示させるようにしてみて、
表示が同じになっちゃうときにlastModifiedがどう
なっているのか調べて見てはどうでしょう?
363 :
359 :02/10/12 11:18 ID:nHznOcnH
>>362 lmDate=new Date(document.lastModified);
document.writeln("",lmDate,"");
とやったんですけど、パソコンの時計をいじってもそれと同じになりました。
これってサーバがおかしいんですか?
>>363 うーん、なんか違うな。まず
document.writeln(document.lastModified);
をどっかに挿入してちゃんと情報が渡されているか確認することじゃない?
365 :
359 :02/10/12 11:41 ID:nHznOcnH
>>364 だめです。出来ません。
今の日付と時間を表示してしまっています。
>>365 では結論です。お使いのサーバ/CGIはLast-Modifiedヘッダを正しく
返してこないのでその情報は利用できません。おしまい。
367 :
Name_Not_Found :02/10/12 16:25 ID:whrd8/88
フォームのテキスト入力部分に、 文字を入力してenterした情報を、jsでキャッチしたいのですが、 onchangeを設定していても、 enterキーを押すと、送られてしまいます。 送らずにjsで受け取るにはどうすればいいのでしょうか?
>>367 <form ... onsubmit="JSでの処理; return false">...</form>
369 :
367 :02/10/12 17:04 ID:???
370 :
Name_Not_Found :02/10/12 23:03 ID:kMGK2qKA
すみません、初歩的な質問なんですが ページで画像を読みこんでいる時に、javaスクリプトでサイズ固定した ニューウインドウが出るリンクをクリックすると、読みこんでいる途中の画像が 表示されないままになってしまいます。×印になるわけではなく、止まってしまいます。 動画も止まって動かなくなってしまいます。 これは何が問題なのでしょうか…? 使っているソフトはDreamweaver4です。
なぜその質問が「初歩的」だということになるのか… そのリンクのとこのソースはどうなってるのか貼ってよ。 Dreamweaverの問題なら専用スレあるからJavaScriptの言葉で語ってよ。
まだ「初歩的」に突っ込んでる香具師が居るよ
return false;
ともかく、もうちょっと詳しく聞かないとわけがわからん。
>>373 なるほど、鋭い! 370が書いてるコードはこれね?
<a href="javascript: window.open('開くURI',..)">...</a>
この場合window.openからはWindowオブジェクトが返されるから
それをURIと思ってリンク先にジャンプしようとするわけね。だから
読み込みが止まる。が、そんな行き先はないので止まるだけで飛ばない。
これを直すには開くだけでリンクを飛ばないようにする、すなわち
<a href="javascript: window.open('開くURI',..);return false">...</a>
こう直せばよいわけか。やっぱりこうして説明書いてみると初歩的じゃ
ないじゃないか。しかもDreamweaverも関係ないし。
完全に回避できるわけじゃないけど、俗に言う「画像先読み」をヘッダに入れるってのは? 若しくは画像読み込み用のページにアクセスさせてから、location.hrefで本来のページに行かせるとか。
げげ、間違ったぞ。return falseじゃなくundefinedだろ?
378 :
:02/10/13 00:28 ID:???
初歩的の何が気に喰わないんだ?
379 :
370 :02/10/13 00:34 ID:???
<a href="javascript:;" onClick="MM_openBrWindow ('diary.htm','','scrollbars=yes,width=400,height=450')"> こんなかんじです。 説明が判りにくくてすみません…
380 :
370 :02/10/13 00:37 ID:???
わ、すみません。もたもたしてたら説明してくださってましたね…
381 :
370 :02/10/13 00:55 ID:???
解決しました。教えてもらった通り試した所 undefinedをいれると宣言されていませんと出てしまいましたが return falseで試したらリンクを開いても画像の読みこみは止まらずに ちゃんと表示されました。 >371-377 有難う御座いました!
初歩的かどうか本当に分かる奴は初歩的なんて書かないだろう。
つまり初歩的と書いているということは初歩的かどうか分からない
くせに書いているわけで、嘘つきなわけ。自分としては気に
食わないわけじゃなくて嘘つきはやめてくれと言いたいだけ。
>>380 それだったらonClick="MM_openBrWindow(...);return false"とすれば
飛ばなくなるから。そのhref="javascript:;"というのは何の意味も
ないからhref="#"とかしとくのがいいと思うよ。とにかく飛ぼうとして
しまうとロード止まっちゃうからね。
>>381 undefinedを使うのならhref="javascript: undefined"かな?
でもonclickに動作を書いているのならreturn falseを追加する方が
普通だと思うよ。
384 :
:02/10/13 01:27 ID:???
穿ってるねぇ(;´д`)
385 :
厨 :02/10/13 04:58 ID:???
ヨコからすいません。
>>382 さんのおっしゃる、<href="#">に、
document.links[n].href=…
でアクセスして、条件によってリンク先(アドレス)をかえたいんです。
でも、何も代入されていない状況ではおかしくなっちゃうんですよ。
元のページが<target="…">先にコピーされちゃって、同じ画面が二つのフレームに表示されてしまう始末です。
どうしたらよいのでしょうか?
>>384 すみません、煽りっぽくなりました、自粛します…不愉快になった方、
ごめんなさい。
>>385 「#」というのは「このページ」という意味だから…何も代入されて
ない状況をきちんとしたければ「指定されていません」というページ
を用意してそこを指させておくっていうのでどうでしょう。
387 :
Name_Not_Found :02/10/13 13:22 ID:SeUP8HYC
frameじゃなくて、iframeで、 子ページに直接こられた時に 親+そのページと表示させたいのですが、 frameのしか見つかりませんでした。 教えていただけないでしょうか? 検索語句だけでもいいんで・・・
388 :
:02/10/13 13:54 ID:???
iframeのhtmlファイルに <script> if(top.location==self.location){ location.replace('index.html'); } </script> 等と書く。
あるタグで、同じclass名の要素の配列を得たいのですが。 getElementsByTagName()とclassNameとか使うと思うのですが、 よく分かりません。普通、みなさんはどのようにやるのか教えて下さい。 <td class='a'>hoge<td>piyo <td class='a'>fuga<td>huni <td class='a'>foo<td>bar
<span class="a">1</span> <span class="a">2</span> <span class="a">3</span> <script type="text/javascript"> for(i=0;i<3;i++){ document.write(document.getElementsByTagName('span')[i].className); } </script> (↑これは配列じゃない。参考になるかな?)
392 :
Name_Not_Found :02/10/13 17:12 ID:mH07u8gY
>>388 それだと、topに飛んだだけになると思うんですが・・・
そうじゃなくて、topのインラインフレーム内に
「アウセスしてきたページ」を表示させたいんです。
無理なんですかねぇ?
location.pathnameとか使うのかなぁ
なんて思うんですが・・・私の力じゃ、無理なんです。
>>392 URLの末尾に「?」でくっつけてよければたいして難しくはないよ。「?」が嫌だと
するとクッキーとかで面倒になるしクッキーOFFだと駄目だとかあるけど。
--- main.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
function check() {
if(location.search)
document.getElementById('i0').src = location.search.substring(1);
}
</script>
</head><body onload="check()">
<iframe title="?" id="i0" style="width:200px;height:100px" src="a.html">
iframe here...
</iframe>
</body></html>
--- a.html ---
適当に
--- b.html --- 直リン禁止
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
if(self.location.href == top.location.href) {
location.replace("main.html?" + location.pathname);
}
</script>
</head><body>
<h1>B</h1>
</body></html>
>>393 どうも有難う御座います。
んー・・・こんなに難しいことだったんですね。
ちょっとコレで頑張ってやってみます。
メールフォームのSUBMITボタンを押したら同じウインドウで 別のページに飛ぶようにしたいんですけど、どうすればいいのかわかりません… on clickだとウインドウを開くのしか思い付かないんです。 ちなみにCGIじゃなくて<FORM ACTION=mailto:**@**** METHOD=POST enctype=text/plain> で送るやつです。
396 :
not 390 :02/10/13 22:09 ID:+6IhnYaA
>>390 と関係して、ドキュメント全体から
同じclass名のHTMLエレメントを取得したいのですが、
HTMLElement[] getElementsByClassName
みたいなメソッドってないですよねえ?
つくれ
つくった(笑 間違ってない? document.getElementsByClassName = function(className){ var root = this.body; var elts = { length : 0 }; function setElements(elements, parent, className){ var childs = parent.childNodes; var n = childs.length; for(var i = 0; i < n; i++){ var child = childs[i]; if(child.className && child.className.toLowerCase() == className){ elements[elements.length++] = child; } if(child.childNodes.length > 0){ setElements(elements, child, className); } } } setElements(elts, root, className.toLowerCase()); return elts; };
399 :
Name_Not_Found :02/10/14 01:10 ID:gEJWz9vA
マウスクリック時のマウスの位置を得る方法は分かるのですが マウスオーバー時のマウスの位置を得る方法が分かりません
>>398 >間違ってない?
無理やり言いがかりつけてみるなら(笑)。
HTML4 の class 属性は cdata-list [CS] だったと思うけれど、
(1) toLowerCase() しているのは何故?
(2) 複数のクラス指定については考慮しないの?
俺だったら elts は Array にしちゃうけど、その辺はまあ好みの問題かな。
更に関係ないが、いっそのこと getElementsByAttribute ぐらいやってもいいような気がした。
>>399 ほお…同様だと思うんですけど。あなたの使っている「マウスクリック時
のマウスの位置を得る方法」を書いてみませんか。それに合わせてアドバイス
させていただくのが分かりやすいと思いますので。
質問です Yahooジオシティーの上にある広告を消せますか
tripodとかサブウィンドが開くヤツは消せるよね
405 :
402 :02/10/14 10:49 ID:???
ごめんなさい
>>385 href="…"で、
JavaScriptを呼び出し、関数でリンク先を切り分けては?
407 :
Name_Not_Found :02/10/14 13:51 ID:WV5Voe4f
<STYLE type=text/css> .layerX {BORDER-RIGHT: 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: 1px solid; POSITION: absolute; BACKGROUND-COLOR: #eecccc} #layA {Z-INDEX: 3; LEFT: 10px; WIDTH: 200px; TOP: 10px} #layB {Z-INDEX: 3; LEFT: 1300px; WIDTH: 200px; TOP: 10px} </STYLE> <SCRIPT type=text/javascript> <!-- function scroller(px, direction, unif, prev) { if (document.all) { var Y = document.body.scrollTop; var X = document.body.scrollLeft; }else{ var Y = window.pageYOffset; var X = window.pageXOffset; } var s = 0;
408 :
Name_Not_Found :02/10/14 13:52 ID:WV5Voe4f
switch (direction) { case 'vertical': s = Y; break; case 'horizontal': s = X; break; case 'multiple': s = X; break; }
409 :
Name_Not_Found :02/10/14 13:53 ID:WV5Voe4f
var sR = unif; if (sR == 'no') { sR = 0; var f = px - Math.abs(s - px); sR = Math.ceil( (px - f) / 20 ); if (sR < 1) sR = 1; } else { sR = parseInt(unif); } if ( (px - s) > 0 ) { s += sR; if (s > px) s = px; } else if (px == s) { return; } else if ( (px - s) < 0 ) { s -= sR; if (s < px) s = px; }
>>395 こうかね。5秒も待たないでいいかも知れないけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function move() {
setTimeout(function() { location.href='
http://www.yahoo.com '; }, 5000);
}
</script>
</head><body>
<form action="mailto: dareka" method="post" onsubmit="move()"><p>
<input type="text" name="t0">
</p></form>
</body></html>
411 :
Name_Not_Found :02/10/14 13:53 ID:WV5Voe4f
if (prev == s) return; var sY = Y; var sX = X; switch (direction) { case 'vertical': sY = s; break; case 'horizontal': sX = s; break; case 'multiple': sX = s; sY = s; break; } window.scrollTo(sX, sY); setTimeout('scroller(' + px + ', "' + direction + '","' + unif + '",' + s + ');', 20); } // --> </SCRIPT>
412 :
Name_Not_Found :02/10/14 13:54 ID:WV5Voe4f
<BODY>
<DIV class=layerX id=layA> <A
onclick="scroller(1000, 'horizontal', 'no');return(false);"
href="
http://xxx.xxxx.xx/xxxxx/ ">右に減速スクロールする</A></DIV>
<DIV class=layerX id=layB> <A
onclick="scroller(0, 'horizontal', 'no');return(false);"
href="
http://xxx.xxxx.xx/xxxxx/ ">左に減速スクロールする</A> </DIV>
長いのはどっかにアップロードして欲しいんですけど…
414 :
Name_Not_Found :02/10/14 13:55 ID:WV5Voe4f
長すぎてスミマセン(^ ^; ようやくスクロールのサンプルを見ながら完成したと思ったのですが 右への減速スクロールが思うようにいきません。 左へは成功しているのですが、何が間違っているのでしょうか?
>>413 さん
アップロードすればよかったんですね。
本当に申し訳ありませんでした!
しかし、上手くいかないものですね・・・
質問です。 JavaScriptを外部から読み込むことはできるのでしょうか? すぐウチのサイトからパクる人がいるんです。 大多数の人に見られるのがWebの特性だとはわかっているのですが そこのサイト管理人はほぼ100%パクるんで、対策として外部読み込みが できればな、と考えました。もし可能であれば方法を教えていただけませんでしょうか? よろしくお願いいたします。
<link>
>>417 パクったら何か問題あるの?
あと、外部読み込みでも簡単にパクれるので
あまり意味無いかと思います。
title="パクるな!パくったやつは朝鮮人ニダ"
>>417 人にスクリプトパクるなだと!?笑わせるな!
<link>も知らんお前は、そのスクリプトどうしたんだ?
言ってやろーか!?
パ ク っ た ん だ ろー が ! ?
もしパクってないんだったら、
<link>も知らん奴のスクリプトなんてイラネーヨ。
>>421 お前正論を唱えてるつもりだろうが
かなり寒いよ 別にお前がパクるわけじゃ
根拠もないのにお前のスクリプトもパクりだろー とか。
電波ゆんゆん
まぁ もちつけってこった
425 :
Name_Not_Found :02/10/14 14:41 ID:+d6502eF
/\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( .∧_∧ おい、おまいらもちつけ! (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ ) )_)_) (;;;;;;;;;;;;;;;;;;;)(_( ___ ガスッ |___ミ ギビシッ .|| ヾ ミ 、 グシャッ ∩_∧/ヾヽ | ,| ゚∀゚). .| |;, ゲシッ / ⌒二⊃=| |∵. .O ノ %`ー‐'⊂⌒ヽ ゴショッ ) ) ) )~ ̄ ̄()__ ) ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_(
>>417 linkで外部ファイル読み込みにして.htaccessでも使えば。
パクられてむかつくっていうのは分かるけどさ。やっぱここは パクろうとしても直し方が分からなくて使えないくらい高度な ワザを駆使するとかで撃退するのがカコイイと思う。
428 :
414 :02/10/14 14:42 ID:5vyMBjPr
>>416 さん
レスありがとうございます。
>>51 さんのスクリプトだとiframeが入っていますので
できるならば、それを使わずに実行したいんです。
具体的にはボタンを押すことで右の方にずらーっと並んでいる
絵の場所へとスクロールさせようと思っています。その場合
何番目の絵を選ばれるかわからないので、どの絵の場所に行っても
減速スクロールできれば最高です。
「横に並んでいる絵画を好きな物から鑑賞する」といった感じです。
単純なことなのですが、なかなか上手く動作してくれないので
苦戦しています。
>>425 お前正論を唱えてるつもりだろうが
かなり寒いよ
>>429 お前狙ってるつもりだろうが
かなり寒いよ
431 :
Name_Not_Found :02/10/14 14:46 ID:xF9bgttg
>>425 お前正論を唱えてるつもりだろうが
かなり寒いよ
432 :
Name_Not_Found :02/10/14 14:49 ID:xF9bgttg
>>431 お前誤爆してるよ
かなり寒いよ
吊ってくる。
え、、、
>>425 って正論なのか?これが?
>>428 別にiframe外すくらい直せなくちゃだめよー。その絵の幅は
どれも同じなの?左右への移動は1つ右と1つ左へのリンクだけ
でいいの?貼ってたサンプルだと左端と右端へだけ行くように
なってたけど。
>>429 お前狙ってるつもりだろうが
かなり寒いよ
2ちゃんで煽るなとは言わないが。煽るなら一発でカコヨク煽って くれ…同じのを何回も貼ったり誤爆したりじゃスレの浪費だってば。
437 :
414 :02/10/14 14:55 ID:???
>>433 さん
iframeを外すのにも一苦労の私です(^ ^;)>
絵の幅はとりあえず「同じ」と設定しておきます。
例えば200×200くらいです。
その絵が10個くらい並んでいて、下に絵の説明文を入れるので
絵と絵の間はtableで区切った方が良いかもですね。
/\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( .∧_∧ おい、おまいら本当にもちつけ!!! (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ ) )_)_) (;;;;;;;;;;;;;;;;;;;)(_( ___ ガスッ |___ミ ギビシッ .|| ヾ ミ 、 グシャッ ∩_∧/ヾヽ | ,| ゚∀゚). .| |;, ゲシッ / ⌒二⊃=| |∵. .O ノ %`ー‐'⊂⌒ヽ ゴショッ ) ) ) )~ ̄ ̄()__ ) ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_(
439 :
433 :02/10/14 14:56 ID:???
>>437 やっぱり改行が多くて2分割になるなあ。ま、とりあえず。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<style type="text/css">
#d0 { position: absolute; top: 30px; width: 2000px }
</style>
<script type="text/javascript">
var total=2000, unit=200, width = 800, pos = 0, target = 0;
function init() {
if(window.innerWidth)
width = window.innerWidth;
else if(document.body.clientWidth)
width = document.body.clientWidth;
else if(document.documentElement.clientWidth)
width = document.documentElement.clientWidth;
}
function move(t) { target = t; step(); }
function step() {
var t = target;
if(Math.abs(target-pos) > 3) t = Math.round(pos + 0.1*(target-pos));
if(document.getElementById)
document.getElementById('d0').style.left = (pos = t) + 'px';
else
document.d0.left = (pos = t);
if(pos != target) setTimeout(step, 50);
}
</script>
</head><body onload="init()"> <div><a href="javascript: move(0)">左端</a>| <a href="javascript: move(pos+200)">左</a>| <a href="javascript: move(pos-200)">右</a>| <a href="javascript: move(width-total)">右端</a></div> <div id="d0"><pre> <img src="t0.png" width="190" height="190">以下19個同じ </pre></div> </body></html> ちなみにN4、Mozilla、IEでテストしました。
相手がJavaScriptを弄る能力が無いなら、 自サイトでしか動かないようにドメインなどの定数を仕組んでチェックするとか。 その部分はString.fromCharCodeとか使ってね。
すまん「ほんとの433」だね。
444 :
414 :02/10/14 16:04 ID:???
445 :
414 :02/10/14 16:26 ID:???
できましたーーーー!!!ありがとうございました!(^ ^)/ しかし、キャッシュせいか何度もスクロールさせていると 途中から減速プログラムが発動しなくなり、高速で移動してしまいます。 これは何が原因なのでしょうか?検索したのですが なかなか解決につながるものが見つからなかったので(^ ^;)> もしよろしければ、今後の勉強のためにお願いいたします。
>>445 うーん、なぜでしょうね?考えてみます…シュン。とりあえず、「0.1」
を調整するとゆっくり度が変わるのだけど、繰り返し使っていると
速くなるというのは…???
447 :
414 :02/10/14 17:14 ID:???
シュンとさせてごめんなさい|-`) もしかしたら、私のところだけなのでしょうか? 右、左、右、左、右・・・といろいろ見ていると 減速プログラムが発動しなくなりスピードが速い 等速で動いてしまうんです。 動くだけでも凄く感謝しているんですが ほんのちょっとだけ気になったので質問してみました。 キャッシュは関係ないでしょうか?
>>447 とりあえず安易に直してみました。関数stepの先頭2行を次のように…
var t = target, d = Math.round(0.1*(target-pos));
if(Math.abs(d) > 0) t = pos + d;
でもこれでも動き方に気になるところが…動かし方ってむずかしい。
>>447 timerID = setTimeout(...);
clearTimeout(timerID);
この二つ使えばうまくいくはず。
450 :
414 :02/10/14 21:00 ID:???
>>448 なるほど!試してみます。
>>449 それは、どの部分に入れ込めばよいでしょうか?
いろいろ調べてみたんですがキャッシュは無関係でした(^ ^;
前スレの 140-143 で似た話題が出ていたんですが、 別フレームの関数に値を渡そうとしたとき、IE6では 「オブジェクトではサポートされていないプロパティまたはメソッドです。」 となってしまうことに気づきました。 通常は同じドメイン内なら大丈夫みたいなんですが、 このケースでは、CGIを通してリンクを張っているせいか エラーがでてしまいます。(同じドメインと解釈されないんでしょうか) これは仕様なんでしょうか? CGI使ってるんならそっちで値を渡すべきなのかな?
>>451 ドメインが違っていて変数や関数を参照できないような場合は
「エラー:アクセスは拒否されました」 になるはず。
「オブジェクトではサポートされていないプロパティまたはメソッドです。」
は、未定義の変数・プロパティについて更にプロパティを参照しようとしたり
未定義のメソッドを実行しようとしたときに出る。
例えば hoge が null や undefined の時の hoge.fuga や hoge() とか。
つまりエラーの原因はどこかで何かが undefined になっているということ。
まずはそれを突き止めれ。それが仕様なのか否かはその後。
>>451-452 「別フレーム」の参照方法が間違っているのに0.7票。
単に渡そうと思っているものの参照方法が間違っているのに0.3票。
>>452 , 453
ありがとう。
ソースをおっかけまわした挙句、
ふと思い出して別のhtmlで使っていた同じ事をやっているhtmlの
ソースの変数名を変えてペーストした後テストしたら
エラーはでませんでした。
困った。undefinedの原因わからず。
せっかく教えてもらったのにごめんなさい。
>>454 まず、どの行でエラーが出ているかは表示されるはず。その行で
使っているものを頭から順にwindow.alert(...)で表示させてみれ。
>>455 重ね重ねありがとうございます。
仕事終わったらやってみますね(今は職場でこっそり)
457 :
Name_Not_Found :02/10/15 12:51 ID:TMoZACu0
フォームのボタンを押すとダイヤログボックスが出て(OK、キャンセル)、 OKを押した時だけactionを起こす(cgiスクリプト呼び出し) やり方を教えてください。 ネットでいろいろ探したのですが、見つかりませんでした。 宜しくお願いします。
>>399 です。
>マウスクリック時のマウスの位置を得る方法は分かるのですが
>マウスオーバー時のマウスの位置を得る方法が分かりません
>>401 遅くなってすみません。
window.document.captureEvents(Event.MOUSEDOWN);
window.document.onmousedown=func1;
function func1(ev){
var x=ev.pageX;
...
}
とかすると思うんですが、MOUSEDOWNが
>>457 ここの過去スレを見れば絶対にあるけどなあ。submitボタン
でいいのならこれだけだろ。
<form ... onsubmit="return window.confirm('いい?')">
>>458 ああ、分かったよ、あなたN4でやっているでしょ。N4はマウスイベント
やキーイベントで取れないものがあるの。N6/N7/Mozillaでは
MOUSEDOWNをMOUSEOVER、onmousodownをonmousedownにしたら
動いたよ。N4でもページ内にリンクとか入れたら、そのリンクに
マウス重ねた時は動くよ。つまりN4では「もともとのページでその
イベントに感応するものがある場合にのみ、イベントを横取りでき
る」という原則があるわけ。MOUSEDOWNは例外的にOKなのかな。
460 :
Name_Not_Found :02/10/15 16:05 ID:jYwIvbgf
くだらない質問ですみません。 Javascript は、VBみたいに途中で処理止めることが出来ますか? (要は、デバッグ機能が出来ますか?) 何かよいツールは、ありませんか(フリーで)
461 :
262 :02/10/15 16:07 ID:h1P8p/fs
以前にページをスクロールさせるスクリプトについて
>>265 で教えてもらったんですがこれをレイヤーに応用するためには
どうしたらいいんでしょ?
getElementByIdの使い方とかどうにもよくわからないんで
誰か助けてください。よろしくお願いします。
>>460 あれ?Microsofot Script Debuggerあるでしょ。自分は何もしない
でも最初からエラーで止まるとそれが動くようになっていたけどー。
なんで皆さん自分の質問が初歩的とか下らないとか卑下するのか…
>>461 ぜひ
>>440-441 を参考にしてください。ポイントは次の通り。
(1) <div>...</div>をレイヤーにするにはスタイル指定でposition:
absoluteを指定する。
(2) レイヤーオブジェクトにJavaScript側からアクセスする場合は
divにIDを指定し、N4では「document.ID名」N6/N7/Moz/IEでは
「document.getElementById('ID名')」でオブジェクトを取る。
(3)そのレイヤーの位置を(x,y)に移動させたい場合はN4では
「レイヤーオブジェクト.left = x; レイヤーオブジェクト.top = y;」
それ以外では「レイヤーオブジェクト.style.left = x + 'px';
レイヤーオブジェクト.style.top = y + 'px';」による。N4では
単位pxを指定してはならないが、他のブラウザでは指定すべきことと、
styleオブジェクトの有無が違うのがめんどいね。まあがんばって。
そうそう、窓のスクロールは相対スクロール(scrollBy())があるけど
レイヤー移動では絶対位置指定しかないからそこもちょっと面倒だね。
464 :
Name_Not_Found :02/10/15 17:23 ID:jYwIvbgf
>>463 どうもありがとう
最近、JavaScriptを勉強し初めてで、
今後、仕事でJavaScriptを使ったWEBの開発をしなければならなくなりまして。
ところで、このMicrosofot Script Debuggerは、ネットスケープ4.6に対応していますか?
実行環境が、ネットスケープ4.6なもんで
466 :
Name_Not_Found :02/10/15 17:45 ID:OmIPYBbF
JavaScriptでオブジェクトを明示的に破棄するにはどうしたらいいですか?
>>466 そういう方法はない。変数(プロパティ)を破棄(消去)するには
「delete 名前」とかだけど。オブジェクト等の領域そのものは
ガベージコレクションによってのみ回収される。その方が安全だ
し新しい言語はだいたいそうなっている。
このスレには丁寧に答えてくれる方がいてマターリいい感じですね。
469 :
Name_Not_Found :02/10/15 22:14 ID:/PILaTh1
PHPでindex.htmlから読むJSを生成しているのですが、 新しいJSを生成しても、キャッシュを読んでしまいます。 外部JSをキャッシュしないようにするにはどうすればいいのでしょうか?
呼び出すURLにランダムでパラメタを付ける 「.php?xxx」
へー
474 :
Name_Not_Found :02/10/16 22:49 ID:eR2QPMGy
すいません。質問なのですが、 よくチャットで新規発言のみを読み込むシステムがありますよね? あれの仕組みはどのようになっているのでしょうか? 教えていただけると幸いです。
475 :
bun :02/10/16 23:54 ID:???
初心者の質問ですみません。 form で textareaにすでに何か書かれていて (ご意見をどうぞ)とか そのフィールドをクリックすると あらかじめ記入されていた内容(ご意見をどうぞ)がクリアされる というタグがわかりません。 (リセットボタンは使用せずに) どなたかお教えください。 よろしくお願いします。
>>475 > というタグがわかりません。
なんでもかんでもタグ言うなー。
<script type="text/javascript">
<!--
var flag = false;
function defaultClear(){
if ( !flag ) {
document.form1.textArea1.value = "";
flag = true;
}
}
//-->
</script>
<form name="form1">
<textarea name="textArea1" onclick="defaultClear();">ご意見をどうぞ</textarea>
</form>
>476 嬉しいです。何でもかんでもタグ言うてすみません。m(__)m でも、でもメッチャ嬉しいです。(*^^*) 本当にありがとうございました。 明日もあなたに良い事が訪れます様、感謝にかえて お祈りします。 (宗教団体には属してませんが・・)
478 :
469 :02/10/17 02:48 ID:???
レスありがとうございました。 サーバー側での動的な作業を減らすことを考えて、 jsやhtmlを毎回吐くのではなく、変更があった時に生成しておくやり方をとっています。 (phpはかなり軽いそうですが、一応) 外部js自体の中に、キャッシュしない、という情報を書いておくことは できなさそうなので (動的にhtmlを吐くなら、 ランダムにパラメータを付加することもできるんですが) 隠しフレームに、jsを書いたhtmlを読むことにしました。 htmlならば、ヘッダに書いておけるので。
479 :
Name_Not_Found :02/10/17 22:09 ID:UP6NDKlK
NetscapeでinnerTextを実現するにはどうすればいいですか?
>>479 N4ではできません。N6/N7/MozillaではDOM2を使ってノードを
挿入していけばできますが(誰か作っていたな)、代わりに
innerHTMLでもだいたい済むんじゃないですか? 「<」や「>」
があれば「<」や「>」に変換しておけばいいわけだし。
location.hrefなどで移動したときに Refererにウソの情報を紛れ込ます (yahooから来たように見せかけるとか) ことは原理上可能なのでしょうか?
なんの原理上よ
HTTP-Referrer: はブラウザが送るものだから、それをJavaScript から制御できるようになっていることは「原理的には」あり得ると 思うけど。しかし実際にそんな機能がブラウザについてるなんて 話は聞いたことがないので、「実際的には」できないんじゃない?
>>479 innerTextの"ような事"をレイヤに対してなら出来る。
<html><head><script type="text/javascript">
function inn(str){
if(document.layers){
box = document.layers['box'];
box.document.open();
box.document.write(str);
box.document.close();
} else {
//その他、innerTextなど
}
}
</script></head><body>
<div id="box" style="position:absolute;top:3em;">aaa</div>
<a href="#" onClick="inn('<em>bbb</em>');return false;">bbb</a>
</body></html>
>>485 なるほろ! ただそれもHTML解釈されるからinnerHTMLのような、という
方が合っているかもよ。
487 :
Name_Not_Found :02/10/18 15:27 ID:9fn1mowU
IFRAME内にページを呼び出すHTMLがあるのですが、 チェックボックスを付けてそのチェックボックスに チェックを入れるとIFRAME内ではなく、新しい ウィンドウを開くようにしたいのですが。
488 :
Name_Not_Found :02/10/18 15:28 ID:9fn1mowU
あ、ちなみにボタンで呼び出すんです。
489 :
あ〜判らない>< :02/10/18 15:40 ID:PkUurB6v
openで開いた以外のウィンドウ(ブラウザ)を列挙(取得)する方法は無いのでしょうか? ブラウザはIE5以上限定で構いませんのでご存知の方いましたら教えてください
>>487-488 だからさ、そのボタンで呼び出される動作に
「IFRAMEオブジェクト.src = '開くURL';」
というところがあるわけよ。そこのところを
「if(チェックされてる) { これまでの動作 } else { window.open('開くURL'); }」
にとりかえればいいわけ。わかった?それで直せないようなら修行してね。
>>489 方法はないんじゃないかな…
492 :
Name_Not_Found :02/10/19 03:44 ID:tb58zH6f
<span class="foo"><b>へロー</b></span> mouseoverイベントを設定したとき、これで拾えるイベントのソースエレメントは <b>なんですが、この外側のクラスを取得したいときはどうすればいいのでしょうか?
>>492 それがたとえば変数xに入っているとして、x.parentNode.className かな。
>>493 ソース見たら普通のロールオーバー(document.images.名前.src = 'ファイル名';
で差し替える奴)だったけど。テキストは画像として用意してるんじゃないの。
何が分からないのか分からないぞ…
495 :
493 :02/10/19 09:48 ID:???
>>494 さん
ソースに■が入っていてどういじったら良いか分からなかったんです
私は、画像の部分にテキストを挿入したいのですがどうすればいいのでしょうか?
>>495 「■」って? テキストは単に「画像としての文字」だと思う
んだけど。もしかして「画像としての文字」という意味が分か
らない?たとえば画面に文字を表示させて、画面ショット取った
ら文字の入った画像ができるじゃない。それで背景透明にすれば
いい、とかそういうことじゃないの?
ま、画像の上に文字をかぶせたい場合はレイヤーにしてかぶせる
こともできるよ、あのソースではそゆことはしてないと思うが。
してないと思うけど。
497 :
493 :02/10/19 12:17 ID:???
>>496 ありがとうございました
理解できました
498 :
Name_Not_Found :02/10/19 14:43 ID:QOVlUVSe
すみません、どなたかご教授ください。 <A href="javascript:;" onclick="MM_openBrWindow ('123.html','123','width=430,height=320')" onmouseover="MM_swapImage ('001','','images/002.gif',1)" onmouseout="MM_swapImgRestore()"> クリックするとサイトマップを開きます</A> と記述しているのですが、IE6だとウインドウも開かず動作してくれません。 ローカルでテストしている時はIE6も動作しているのに、サーバーにUPして IE6で開くと動かないのです。 ネスケ7では、ローカルでもサーバーにUPしても動作します。 何に問題があるのかわからず困っています。 ちなみに、DreamweaverMXで作っています。
>>498 呼び出しのとこだけ書かれても探求しようがないんだけど。
これだけでDreamweaver使いなら分かる内容なの?もしそう
ならドリウィスレで聞いてよ。
500 :
498 :02/10/19 15:42 ID:???
>>499 すみません。足りなくて。
<SCRIPT language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
続く
501 :
498 :02/10/19 15:44 ID:???
function MM_nbGroup(event, grpName) { //v6.0 var i,img,nbArr,args=MM_nbGroup.arguments; if (event == "init" && args.length > 2) { if ((img = MM_findObj(args[2])) != null && !img.MM_init) { img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src; if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array(); nbArr[nbArr.length] = img; for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) { if (!img.MM_up) img.MM_up = img.src; img.src = img.MM_dn = args[i+1]; nbArr[nbArr.length] = img; } } } else if (event == "over") { document.MM_nbOver = nbArr = new Array(); for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) { 続く
502 :
498 :02/10/19 15:44 ID:???
if (!img.MM_up) img.MM_up = img.src; img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up); nbArr[nbArr.length] = img; } } else if (event == "out" ) { for (i=0; i < document.MM_nbOver.length; i++) { img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; } } else if (event == "down") { nbArr = document[grpName]; if (nbArr) for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; } document[grpName] = nbArr = new Array(); for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) { 続く
503 :
498 :02/10/19 15:45 ID:???
if (!img.MM_up) img.MM_up = img.src; img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up; nbArr[nbArr.length] = img; } } } function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </SCRIPT>
504 :
498 :02/10/19 15:46 ID:???
>>500-503 長すぎとか改行多すぎとかでエラーになっちゃって、
たくさんスレを消費してしまいました。
ごめんなさい。。。
どっかにうpするとか
>>504 そうねえ、やっぱ3レス以上になるならあぷろだして欲しい…
で、MM_openBrWindow()は別になにもしてないし。となると
怪しいのは「href="javascript:;"」で別のとこに飛ぼうと
して開く動作が止められてしまっているという線かな。
「onclick="MM_openBrWindow(...); return false"」としてみて。
507 :
Name_Not_Found :02/10/19 16:43 ID:fhSNI62+
改装なんとか終わりました。ど…どうよ!
今までの奴から大分デザイン一新したつもりです。
もしどこかにエラーがあったら教えて下さると嬉しいです。
あと、リンクページにのょっとした仕掛けに、Javascriptと
onmouseover='gaChaRi12("banner",num)'
onmouseout='gaChaRi12("banner",0)'
というタグを使ったのだけど、
これを手打ち→Composerで開いて保存すると、なぜか
onmouseover="gaChaRi12("banner,num="")
onmouseout="gaChaRi12("banner,0="")
などと正体不明のタグに勝手に書き換えられて非常に腹が立った。
機械の分際で自分の仕事も満足にできないってどういうこと…!
(半ば理不尽な怒り)
もうComposer使わん。メモ帳万歳。
KIRIRI ONLINE since 20020726
webmaster:kirinon
http://kirinon_s.tripod.co.jp/
誤爆か?Composerに怒りをぶつけたければよそでやってくれ。 自分はもちろんテキストエディタしか使わないけどさ。なんせ JavaScriptのためにHTML書いているのが大部分だから。
>>506 ありがとうございました!
動きました!
ああ良かった…やっと先に進めます。感謝です!
次があったら、うPするようにします。
510 :
509 :02/10/19 18:21 ID:???
度々すみません。
>>509 で、動作できたと書いたのですが、また問題が…。
やはりIE6なのですが、最初に読み込んだときに動作しないのです。
リロードして、もう一回クリックすると動作します。
URLを打ち込んだ場合でも、「お気に入り」から飛んだ場合でも、
他のページに貼ったリンクから飛んだ場合でも、一回目は動きません。
何がいけないのでしょうか…。
>>510 うーん、謎だねえ。JavaScriptのエラーが何か出ているっていう
ことはないのね?
512 :
509 :02/10/19 20:03 ID:???
>>511 エラーメッセージは何も出ません。
ただ、クリックしても沈黙したままで、静止しています。
URLさらせ
そうねえ、やっぱ今度こそあぷろだしたら?
515 :
509 :02/10/19 23:05 ID:???
必要があって、ジャパンネットバンクに行きました。 ログインボタンを押したら、同じような状態で静止したまま動きませんでした。 ステータスバーに表示されているのは javascript:;" で、私の問題のページと同じだったので、もしかしたら自分のIEが壊れているのかも と思って、IEを一旦6から5.5SP2に戻してみました。 5.5SP2では、何の問題もなく動作しました。 JNBも、自分のページも両方ともです。 しかし、もう一回IE6をインストールしたら、やっぱり動作しませんでした。 IE6だけで発生する問題ということのようです。 あっぷろーだ、どこかオススメのところありますか?
516 :
509 :02/10/19 23:07 ID:???
すみません。
>>515 にミスがありました。
ステータスバーの表示は
javascript:;
でした。
>>516 あぷろだのオススメは私は知らないので誰かよろしく…
そうか、href="javascript:;" だと何かあるのかな? href="#"
とかしたらどうなる?
518 :
492 :02/10/19 23:48 ID:???
誰も分かりませんか?
520 :
Name_Not_Found :02/10/20 02:01 ID:iCIUqh+L
JavaScriptで、 なんとかしてGET的な(アドレスに付加された) 情報を受け取ることはできないでしょうか?
521 :
Name_Not_Found :02/10/20 02:27 ID:WiUYwtEb
ややマルチっぽいですがすみません。 当方、JavaScriptの知識が無い全くの厨なのですが、HPにジャンプメニュー (プルダウンのやつ)を設置しようと思い立ち、ソースを頂いて来たのですが、 ちょっと分からないことがあるのでご教授下さい。 もらって来たソースは、 <!--JavaScript function gourl2(){ URL=document.menu.text.options[document.menu.text.selectedIndex].value; location=URL; } //--> という感じなのですが、このままだとメニューのあるページが入れ替わってしまいます。 私の場合は、フレームを左右に分け、左にメニュー、右に更新されるページという風に したいのです。おそらく、parentをどこかに入れるんでしょうが、色々やってみたけど 分かりませんでした。 ちなみに、左のフレームが"leftFrame"、右が"mainFrame"という名前です。 どこをどうしたらよいか、ご教授いただけないでしょうか?
523 :
520 :02/10/20 03:36 ID:iCIUqh+L
>522 本当ですか!? やり方を教えて下さい。
525 :
520 :02/10/20 04:21 ID:???
>524 ありがとうございます。 window.location.searchですね。 なんか目からウロコです。面白いことできそうだぁー
だからさ、
>>387-394 を見てないだろ。質問する前に
このスレくらい読んでもバチは当たるまい?
527 :
質問 :02/10/20 18:02 ID:???
Win、IE4以上対象。 スクロール状態そのままでページ内容を更新させるには どうしたらよいでしょう? location.reload(); としてみましたが、スクロールがぺージ先頭に戻ってしまいます。 ユーザが更新ボタンを押したときのように、 ちゃんと元のスクロール位置を復元するには‥‥?
>>527 document.execCommand('Refresh');
IE4でも可能かは知らないけど。
529 :
527 :02/10/20 18:46 ID:???
>>528 いま手元にIE4の環境が無いので試せてませんが
IE5.0ではうまくいきました!
いけそうな予感!ありがとうございました。
>>527 こんなんでも出来たw ご参考までに
<script>
function i() {
if (location.search && location.search.match(/\?(\d+)/))
window.scroll(0, RegExp.$1);
}
function r() {
location.href = (location.href.match(/(.+)\?\d+$/)? RegExp.$1: location.href)
+ "?" + document.body.scrollTop;
}
</script>
<body onload="i();">
<img border="1" src="" width="5" height="1200"><br>
<a href="#" onclick="r();">test</a><br>
<img border="1" src="" width="5" height="1200">
</body>
JSでこんなことできるとは知らなかった・・。 正規表現に条件式か、厳しいな。。
>>530 それだと、ブラウザで更新したときまで、
スクロール位置を変えられてしまうからダメ。
534 :
489 :02/10/21 10:28 ID:tmRfdfMr
お返事遅くなり申し訳ありません
>>491 御回答 有難う御座います
検索等で探していたのですが「できない」との情報が見付からずエンドレス状態でした
次の方法を探す事に致します
535 :
Name_Not_Found :02/10/21 11:10 ID:wnbjkzff
16進数からJISコードへ変換するにはどうしたらいいのでしょうか?
>>535 どんな16進数なのかによって話が変わる。
537 :
Name_Not_Found :02/10/21 13:04 ID:wnbjkzff
escape(str)で取得した16進数です。
>>537 それはつまりUNICODEからJISへの変換ということになるわけで。
ガイシュツだけどJavaScriptだけでやるなら変換表をすべて持た
ないといけないので現実的でない。IE固有の機能で何か使えるのが
あったという話も読んだ気がするけど。
539 :
Name_Not_Found :02/10/21 13:48 ID:wnbjkzff
>>538 そうなんですか。
>>IE固有の機能で何か使えるのが
あったという話も読んだ気がするけど。
こっち調べてみます。ありがとう御座いました。
unescape()で元に戻してencodeURI()かな。
>>537
>>540 IEでやってみたけどこうなるよ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var str = 'あいう', esc = escape(str), unesc = unescape(esc),enc = encodeURI(esc);
document.writeln(str + ':' + esc + ':' + unesc + ':' + enc);
</script></pre>
</body></html>
結果: あいう:%u3042%u3044%u3046:あいう:%25u3042%25u3044%25u3046
542 :
Name_Not_Found :02/10/21 15:32 ID:wnbjkzff
>>540 UTF8をJIS区点コードまで変換できますか?
543 :
Name_Not_Found :02/10/21 15:36 ID:wnbjkzff
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> </head><body> <pre><script type="text/javascript"> var str = 'あいう', enc = encodeURI(str); document.writeln(str + ':' + enc); </script></pre> </body></html> あいう:%E3%81%82%E3%81%84%E3%81%86 これってUTF8ですよね。第一水準、第二水準以外は不可にしたいんですよ。
>>543 これでシフトJISコードが分かるから、
後は好きなように条件分岐するだけ。
execScript('Function VBASC(s)\nVBASC=ASC(s)\nEnd Function','vbs');
function asc(s){
return VBASC(s);
}
alert(asc('あ'));
>>545 今までSJISコード取得は変換表が必要だと思ってたけど
これで解決っぽいなあ。
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
function asc(s){
r = ''; slen=s.length;
for(i = 0; i < slen; i++)
r += VBASC(s.charAt(i));
r = r.replace(/(..)/g,"%$1");
return r;
}
document.write(asc('あいうえ'));
VBScriptの関数呼べばできるというのは前から指摘されて いたよ。Mozilla使いの自分には縁がないだけで。
549 :
546 :02/10/22 13:11 ID:???
使い道はIEの右クリックメニューだな
550 :
Name_Not_Found :02/10/22 14:43 ID:4rDdrP0l
IE5環境下で以下の事は可能でしょうか? また可能であるならその方法を伝授お願い致します ・ブラウザーのコピーを抑制する ※ショートカットキーでCTRL+Nの機能 ・開かれたページ内のスクリプトで自身のウィンドウハンドルを取得する またJavaScript以外のクライアントサイドプログラムでなら可能でしょうか?
>>550 文字列をコピーされたくないなら、
右クリックや文字列の選択を抑制すればいい。
あるいは、例えば次のような感じでクリップボードをクリアしてしまうとか。
function f1(){
clipboardData.clearData('Text');
}
setInterval('f1()',200);
それとも、ファイル(F)→新規作成(N)→ウィンドウ(W)のことを言ってるのか?
ウィンドウハンドルは、何かのActiveXを使ったらできたような気がしたけどもう忘れた。
552 :
550 :02/10/22 18:45 ID:4rDdrP0l
>>551 ちょっと説明不足のようでした
>それとも、ファイル(F)→新規作成(N)→ウィンドウ(W)のことを言ってるのか?
はい、こちらの方が知りたかったです
でも教えて頂いたコピーの抑制も使いそうなのでありがたく頂きます
>ウィンドウハンドルは、何かのActiveXを使ったらできたような気がしたけどもう忘れた。
ActiveXですか、私には敷居が高そうですが早速探してみたいと思います
553 :
Name_Not_Found :02/10/22 20:02 ID:G6m3oFyc
JavaScriptがまったく分からないのですが クリッカブルマップのリンク部にマウスが触れると サウンドファイルを再生するようにしたいんです。 どうすればいいでしょうか?教えてください。
>>552 こんな感じで
<input type=hidden id=input1>
<script>
onload=function(){
if(input1.value){
opener=window;
close();
}
input1.value='1';
}
onbeforeunload=function(){
input1.value='';
}
</script>
555 :
550 :02/10/23 10:38 ID:/ILqPlFC
>>554 有難う御座います!
こんな方法があったんですね、まさに目から鱗でした
やっとこれで次のステップに進めるようになりました
多謝
556 :
hp :02/10/23 11:36 ID:G5lbdmZ6
お気に入りに登録なんですが
これはネスケでは機能しないんですか?
今使ってるソースはこれです。
<A href="javascript:window.external.addFavorite('
http://www.cybergarden.net/ ','CYBER@GARDEN')">お気に入りに登録する</A>
ネスケじゃダメだと思う
おれもダメだと思う
559 :
Name_Not_Found :02/10/23 13:31 ID:G5lbdmZ6
やっぱりそうですか
560 :
Name_Not_Found :02/10/23 13:59 ID:UYHazKVH
ラジオボタンを選択するとリンク先に移動する、ということを したいのですが、leftフレームにラジオボタン、mainフレームに リンク先を表示できるようにしたいです。 同じページ内なら移動できるのですが、フレームでの使用が どうしてもわかりません。どなたかご存じの方、教えてください。 お願いいたします。
<a href="" target="main">
失礼 parent.main.location.href="url";
563 :
560追記 :02/10/23 14:06 ID:UYHazKVH
現在はこのような状態です。 <SCRIPT LANGUAGE="JavaScript"> <!-- function go(link){window.location.href = link;} // --> </SCRIPT> <input type="radio" name="link" onClick="go('---.htm');">
564 :
560 :02/10/23 14:13 ID:UYHazKVH
>>562 さん
「parent.main.locationはオブジェクトではありません」
というエラーが出てしまいました・・・。
>>553 のってそういや見たことねえな。
誰かやらねえかな。
>>560 のやつなんかは配布サイトからこぴった方がはえーな。
あぁだりい。。。。
>>564 そのmainというフレームはどのように切ってあるの?リンクを
入れたフレームと兄弟関係にないとあれでは駄目なんで。一番
外側のフレームセットに入っているのなら
「top.frames.main.location.href = '...'; 」になるけど。
567 :
560 :02/10/23 14:41 ID:???
>>565 さん
元の部分は配付サイトから頂いたのを削ったりつけたりしました。
フレームをまたいでるのはなかったのです・・・。
>>566 さん
leftとmainは同じ階層で、外側は1つ上の階層です。
568 :
560 :02/10/23 15:58 ID:h+pwki58
www.shoppy.net/100/js/frame/4/index.html こちらのページでほぼ同じものを見つけました。 私の環境では少し動作があやしいので、これから 自分で調べてみます。 答えてくださった方、ありがとうございました。
>>567 それだったら「parent.frames.main.location.href = '...';」で
よさそうなもんだけど。もしよかったらframesetを定義しているHTMLを
貼ってみませんか。
<input type="checkbox" name="oya" value="oya"></input>親 <input type="checkbox" name="ko1" value="ko1"></input>子1 <input type="checkbox" name="ko2" value="ko2"></input>子2 親にチェックを入れたらその時点で子1と子2をチェック出来ないようにする、なんて事できますか?
>>570 それは
>>52 みたいなことをすればいいだけ。質問する前に
このスレくらい読んでよ。
574 :
Name_Not_Found :02/10/24 13:28 ID:gGPtwFW+
576 :
574 :02/10/24 14:12 ID:???
>>575 勉強してきます
ありがとうございました。
迷惑かけてスンマセン
577 :
Name_Not_Found :02/10/24 14:24 ID:m3WunDZ9
現在開いているページが履歴の何番目なのかは識別可能なのでしょうか? A=>B=>C=>Dの時にブラウザ戻るボタンによりCに戻した際に「3」を取得したい のですが・・・
578 :
Name_Not_Found :02/10/24 15:23 ID:YXUmnzNc
JavaScriptを他から持ってきて自分のサイトに入れようと思ったのだが 小文字、大文字混ざってる HTMLの様に大文字で統一とかしても大丈夫ですか?
>>578 そのままのほうがよいと思われ。
下手に修正したらエラーでる可能性もあり。
581 :
Name_Not_Found :02/10/24 15:44 ID:m3WunDZ9
>>578 注意しながら変更すれば可能ではありますけど、それだけの工数をかける価値が
あるのか ってとこでしょうね
ま、変更するコードの量にもよりますが
582 :
577 :02/10/24 16:33 ID:???
色々探してみたのですがやはり出来なさそうですね
>>554 で教えて頂いた方法でブラウザの複製を抑制できたのですが、次のページに
移った後ブラウザの戻るボタンでも反応してしまいました
そこで
>>577 の取得が可能ならその併用で戻るボタンでの反応を検出できるのでは
と考えた次第です
運用で「ブラウザの戻るは使わないで」と逃げるしかないのでしょうか
>>578 window.onloadのような実行環境側が用意するイベントハンドラや
if, var, function, undefined等予約語とされているようなものは
絶対変更できません。
>>582 主目的は何?
「同じページを同時に複数ウィンドウで開かれては困る」ということ?
585 :
577 :02/10/24 17:52 ID:???
>>584 >「同じページを同時に複数ウィンドウで開かれては困る」ということ?
はい、サーバーに同時アクセスできるブラウザを1つにしたいのです
サーバー内のデータ変更するページを複数枚開かれてしまうとサーバー側の排他処理
(CGI)が複雑な物になってしまう為クライアント側で抑制しようとしています
以下、現状説明
現在CGI+Cookieの組み合わせでログインによるセッション管理をしようとしています
セッションの継続はCookieの有無で判断しているのですがIEをデスクトップのショー
トカットより起動するならウィンドウ毎に個別のCookieを持たせられるのでブラウザ
毎に識別可能ですが、ブラウザの複製を行うとCookieを共有してしまう為サーバー側
では識別不可能な状態です。そこでJavaScriptを使用して対応しようと悪銭苦闘中
>>585 複製されたウィンドウであれば
それが他ページ、他サイトで複製されたものでもCookie共有が発生するわけだから
該当ページだけでCtrl+Nの抑制が実現してもあまり意味がないと思う。
むしろ、Cookie共有をどう利用するかを考えた方が。
<body onunload="document.cookie='loaded=0;'">
<script type="text/javascript">
if ( document.cookie.match(/loaded=1/) )
opener=window, close(); // エラー
else
document.cookie='loaded=1;';
</script>
安易なところではこんなのとか。
587 :
586 :02/10/24 19:38 ID:???
あ、エラーのときはこうしないとダメか。 onunload=null, opener=window, close();
588 :
Name_Not_Found :02/10/24 23:50 ID:tqS5itCu
JavaScriptからドキュメント中の指定したクラスの要素を抽出することはできますか?
JavaScriptからスレ中の指定したDOC房を抽出することはできますか?
質問です。 ただいまJScriptの勉強をしていてJScriptの質問です。 マイクロソフトHPのJScriptリファレンスを見たんですが、 テキスト文字列を選択状態にするselect()メソッド等が ありません。 で、実際にJScriptでselect()書いてみてブラウザで表示 してみるときちんと文字列が選択状態になりました。 これは、JScriptのリファレンスに不備があるのか、ブラウザの 機能としてJScript拡張機能みたいなのが備わっているのか そもそも別な所に問題があるのか分かりません。 そこらへんに詳しいかたおられませんか?
593 :
ハチ :02/10/25 09:47 ID:???
そんなものを丸投げでやってくれるお人好しがいるとは思えん。
内容も見ずに言うのもなんだが 掲示板改造はJavascriptじゃないと思うよ
596 :
Name_Not_Found :02/10/25 14:05 ID:Uoaky4UE
>>571 >52を見ましたが、NN4だと動きませんでした。
できれば両方動くやつがいいのですが。
597 :
Name_Not_Found :02/10/25 17:36 ID:3mIafGoA
>>593 見ましたが複雑じゃないのでがんがってしらべてください。
てか、ソースめちゃめちゃだし。
598 :
Name_Not_Found :02/10/25 18:41 ID:eFqqZKUn
親フレームのForm変数に子フレームからアクセスする方法ないでしょうか? parent.documnt.FormName.hensu.value = hogehoge; とかだとエラーになってしまいます・・・。
>>598 ×parent.documnt.FormName.hensu.value = hogehoge;
○parent.document.FormName.hensu.value = hogehoge;
どんなエラーが出るのか書きなはれ。
600 :
598 :02/10/25 18:49 ID:???
えらそーにいうなよ
601 :
Name_Not_Found :02/10/25 18:52 ID:eFqqZKUn
エラーは hensuはnullまたはオブジェクトじゃありません。 ブラウザはIE5以降です。 documentまではオブジェクトはあるみたいです。
602 :
598 :02/10/25 18:53 ID:eFqqZKUn
>600 これ自分じゃないですよ。
parent.document.forms.FormName.hensu.value = hogehoge; だとどう? 一応確認しとくけど、親フレームのフォームってことは、子フレームは iframe だよね。
604 :
598 :02/10/25 18:56 ID:eFqqZKUn
親フレームのHTMLはこんな感じです。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <FRAMESET rows="21%,30%,*%,8%"> <frame src="a.html" name="frame1"> <frame src="b.html" name="frame2"> <frame src="c.html" name="frame3"> <frame src="d.html" name="frame4"> </FRAMESET> <BODY> <FORM name="FormName" ACTION="e.html" method="post"> <INPUT type="hidden" name="hensu" value=""> </FORM> </BODY> </HTML>
ちょっとまて。 その body って、 noframes の中とかじゃないの? Form にアクセスできない以前の問題として、 Form として認識されてなくないか? 何をしたくてそういうHTMLを書いたの?
606 :
598 :02/10/25 19:04 ID:eFqqZKUn
>603 iframeってインナーフレームでしょうか? HTML見てのとおりですが、インナーは使ってません。
607 :
598 :02/10/25 19:05 ID:???
>>605 余計な詮索をするな
おまえは黙って答えればいい
608 :
598 :02/10/25 19:09 ID:eFqqZKUn
>605 Formは認識されてません。 これってFrameSetタグの中に<FORM>を書くべきでしょうか? >何をしたくてそういうHTMLを書いたの? 実際はHTMLじゃなくてJSPファイルで、各フレームでいろいろやってるんで こういう形になってます。
>>608 その hensu って e.html に post で送信するようなものなの?
どっちにしろそんなHTMLでは動かないと思うけど。
ただ単に子フレーム間で変数の受け渡しをしたいってことなら
親フレームに普通に変数持たせて
子フレームから parent.hensu = hogehoge; とかすれば済む話なんだけど。
610 :
598 :02/10/25 19:26 ID:eFqqZKUn
解決しました。 FRAMESET より FORMタグを前に持ってくるとアクセスできました。 >609 子フレームから親(このHTML)に変数の値をセットして、その後にe.htmlにPostしようとしてたんです。
611 :
598 :02/10/25 19:28 ID:eFqqZKUn
>609 親フレームと言うより、親ウィンドウでした。 誤解招いてすいません。
>FRAMESET より FORMタグを前に持ってくるとアクセスできました。 できるんだそんなこと… 基本的には「よいこのみんなは真似しないでね」な世界だなぁ。
613 :
Name_Not_Found :02/10/25 19:36 ID:D2deBsHd
JavaScriptで圧縮をしたいのですが、LZやHUFFMANやRANGECODERを実装したいです。 ビット演算のやり方や関数間でポインタを使わずにどう書くか見当がつかないです。 数値←→文字 文字列←→配列 此処まではわかりますた。御教授お願いします
614 :
598 :02/10/25 19:39 ID:eFqqZKUn
>612 なんか他に良い方法ありますか?
>>614 俺だったら幅0%のフレームもう一個作って
そこに method=post target=_parent のフォーム置いてどうにかする。
# 勿論特殊な事情とかあるならしょうがないと思うけどさ。
616 :
598 :02/10/25 19:55 ID:eFqqZKUn
>614 その場合だとロードが掛かった瞬間にアクセスしだす場合だと エラーになる可能性があります。 たとえば、AとBのフレームがあり、 Aが普通のフレーム Bが幅0のフレームだとします。 Aのフレームがロードされた瞬間から変数にアクセスする必要がある場合 Bがまだロードされていないと、エラーになるわけです。 Bの方が小さいファイルになりますから、まずBが先にロードされますが Aより必ずBが先にロードされるという保証が無いんですね。
618 :
Name_Not_Found :02/10/25 20:18 ID:D2deBsHd
>>617 ありがとございます
JSの限界に挑戦してみます
619 :
Name_Not_Found :02/10/26 00:50 ID:Vm5quzYc
ジャバスクリプトでフォーム引数をゲットして ジャバスクリプトで下のHTML書き出して いろんな絵を重ねたいんですけどできるんでしょうか? <html> <style type="text/css"> <!-- img{top : 80px; left : 80px; position : absolute;} --> </style> <img src="wall_1.gif"width=250 height=239> <img src="chair_1.gif"width=250 height=239> <img src="table_1.gif"width=250 height=239> </html>
620 :
Name_Not_Found :02/10/26 01:18 ID:0P9nQO5I
ガイシュツかもしれませんが イベントハンドラ(onLoadとかonMouseoverとか)のつづりの 大文字小文字って意味があるんですか? サイトによって「大文字小文字間違えるな!」とか 「全部小文字でOK」とか書いてあって 実際やってみると全部小文字で打っても動くんだけど…… 絶対大文字小文字を正確に使わないとまずいときっていつなんでしょうか?
明日
引き数取りたい、 HTML書き出したい、 画像重ねたい、ってのわかるが、総合すると何やりたいのか全くわからん。
同じ場所に重ねても見えないじゃん??
>>623 透過GIFなら背景とスプライトを別々に動かす…ってことじゃないかな。
626 :
Name_Not_Found :02/10/26 04:41 ID:MkOGtQEY
外部jsファイルを、アスキーモードで転送した所、 エラーが出るようになったので、バイナリ転送に戻しました。 (するとエラーは出なくなりました) むしろ、アスキーモードで送った方が正しい挙動をするべきだと思うのですが… そこのところどうなのでしょう?
>>624 XML、XHTMLではタグ名も属性名も全部小文字。HTMLでは大文字小文字
区別せず。しかしJavaScriptの話題じゃあないね。JavaScript内では
常に大文字小文字は区別される。
>>626 アスキーモードで何か変換しようとしてくれて漢字が化けて送られて
いるに1票。アスキーモードで送った奴をバイナリで取り寄せてみて
チェックしたらこの予想で合っているかどうか分かると思うが。
628 :
591 :02/10/26 11:06 ID:???
>>592 お返事ありがとうございます。
IEが提供してる機能だったんですね!
ありがとうございます。
新しいページを開くのって window.open と location.href ほかに方法あったっけ?
>>625 なるほど。
>>619 <body><script>
function putImages(img1, img2, img3, width, height) {
var code = "<img src=\"" + img1 + "\" width=\"" + width + "\" height=\"" + height + "\">"
+ "<img src=\"" + img2 + "\" width=\"" + width + "\" height=\"" + height + "\">"
+ "<img src=\"" + img3 + "\" width=\"" + width + "\" height=\"" + height + "\">";
document.writeln(code);
}
if (window.location.search && window.location.search.length >= 2) {
var key = window.location.search.substring(1);
if (key == "set-A")
putImages("img-a1.gif", "img-a2.gif", "img-a3.gif", 100, 100);
else if (key == "set-B")
putImages("img-b1.gif", "img-b2.gif", "img-b3.gif", 100, 100);
}
</script></body>
>>629 document.URLにアドレス代入。
hage
634 :
Name_Not_Found :02/10/26 19:27 ID:XHPq4zQz
635 :
619 :02/10/26 20:31 ID:Vm5quzYc
>>634 気持ちは理解できますが、
>>1 に
|・ユーザーに迷惑となるスクリプトを書かない者
とあるように、たとえ相手がUZeeeeeEEEEE!!!!!!業者としても
荒らし行為に使えるscriptはここに書きたくありません。
そもそも、あなたの要求がよくわかりませんがw
誘導だけならSPAN業者と対して変わらんと思われ。
>>635 だいたい理解した。
つまりは、着せ替え人形みたいなものだよな?
638 :
619 :02/10/26 21:38 ID:???
そんな変態チックな物では無いです。
>>635 ホレ。字のかわりに画像入れればいいだろ。N4/N6/N7/Mozilla/IE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
div { position: absolute;font-size: 400% }
</style>
<script type="text/javascript">
function sel(n, t, l) {
var sel = document.forms[0].elements[n];
for(var i = 0; i < l; ++i) {
if(document.getElementById) {
var e = document.getElementById(n + i);
if(i==sel.selectedIndex) { e.style.top='300px'; e.style.left='100px'; }
else { e.style.top = t + 'px'; e.style.left = (10 + 100*i) + 'px'; }
} else if(document.layers) { //N4
var e = document[n + i];
if(i == sel.selectedIndex) { e.top = 300; e.left = 100; }
else { e.top = t; e.left = 10 + 100*i; }
}
}
}
</script>
</head><body> <form action="#"><p> <select name="sa" onchange="sel('sa',100,3)"> <option>赤</option><option>緑</option><option>青</option></select> <select name="sb" onchange="sel('sb',200,2)"> <option>紫</option><option>黒</option></select></p></form> <div id="sa0" style="top:100px;left:10px;color:red;z-index:3">赤</div> <div id="sa1" style="top:100px;left:110px;color:green;z-index:3">緑</div> <div id="sa2" style="top:100px;left:210px;color:blue;z-index:3">青</div> <div id="sb0" style="top:200px;left:10px;color:purple;z-index:5">紫</div> <div id="sb1" style="top:200px;left:110px;color:black;z-index:5">黒</div> </body></html>
>>624 レス、ありがとうございます。
>>627 JavaScript内でイベントハンドラを書き込むとき
onmouseoverとか書いても動きますよね。
だったら本などでonMouseoverとかonLoadとか書いてあるのは
なんなのかと…
随分調べたけど結局解からなくて…
どなたかイベントハンドラの大文字に何か意味があるときがあるのか
ご存知の方、いらっしゃいませんか?
>>643 え、そうなの?HTMLタグに書くときはonloadでもonLoadでも動くけど
JavaScriptで書く時は全部小文字じゃないと駄目なんじゃなかった?
ごそごそ…うん、やっぱり自分が今使ってるMozillaではそうだよ。
<script type="text/javascript">
window.onload = function() { alert('xxx'); }
</script>
これは動くけどonloadをonLoadにすると何も出ないし。
645 :
Name_Not_Found :02/10/27 00:01 ID:n7oGHqRX
すみません概出かもしれませんが FLASHのプラグインの有無を検出してもしあればFLASHムービーを、 無ければ代替えのビットマップ画像を表示させたいのですが どうしたらいいのでしょうか? (FLASHとビットマップのサイズは全く同じです。) JavaScriptは全く分からないのですがよろしくお願いします。
>>644 レス、ありがとうございます。
MozillaではJavaScriptのソース内では小文字じゃないとダメなんですね。
うむむ…じゃあ、なんて大文字表記してある本が多いんだろう…
ちなみに自分の持っている秀和システムの本では
ソース内でonMouseMove=Cap;とかonClick=Cliとか平気で大文字混ぜてかかれてあります…
647 :
619 :02/10/27 00:51 ID:lhweTB3n
641,641さん本当にありがとうございます!! ここ一週間格闘してたんですが、全然できなかったんですよ・・・ もう1つだけお聞きしてもいいですかね? 今のは選ぶ画像が見えてる状態で重ねられると思うんですけど 選んで重ねるのだけ見えるようにはできますかね? どばぁあぁっといっぱいになっちゃうもので・・・ いろいろいじったら何もでなくなっちゃうし>< 本当に初心者ですいません・・・
分かり易いからじゃないの?と適当なことをいってみる。 とりあえずXML、XHTMLでは全部小文字にすべきなのは確か。
>>646 …ひょっとして
<BODY onload="...">
のことか?
650 :
Name_Not_Found :02/10/27 03:42 ID:y/+Mdv8H
ブラウザを判別したいのですが。 でもwinかmacかieかネスケかではなくて 「PCか携帯電話か」で振り分けたいのですが 「window.navigator.appCodeName」で分けるにしても winだとタブラウザ使ってる人多いだろうし、Macの場合iCabやChimeraがそれなりに流行ってるし 単に「モジラか否か」ではちょっと不十分なんです。 なんかいい知恵ないですか。。
>>650 普通はサーバ側でやるでしょ。
携帯はそもそもJavaScriptなんか動かないんじゃないの?
Webサイト制作初心者用スレッドに質問したのですが、スレ違いみたい だったので、 こちらで質問させてください。 .mpg(.movでも可)をページ内に埋め込み、それをON/OFFそれぞれ のボタンで動画をJavaScriptで再生したり停止したりしたいのですが、 どうすればいいのかわかりません。(ムービーの埋め込みそのものは出来ています) 以下のソースでうまく動作しません。 <script language="JavaScript"><!-- function qtPlay(){document.myMovie.Play();} function qtStop(){document.myMovie.Stop();} // --></script> </head> <body> <embed src="sample.mov" width="160" height="136" name="myMovie" autoplay="false" enablejavascript="true"><br> <form> <input type="button" value="再 生" onClick="qtPlay()"> <input type="button" value="停 止" onClick="qtStop()"> </form> </body> </html> 動作環境は、Mac IE5以上/Win IE5以上です。 (ネスケは考慮しない) 教えてください。お願いします。
>>653 そのプラグインのドキュメントを探すべきなんだろうね。
>>647 その場合は、初期状態では「visibility: hidden」としておいて、
選択されたときにはvisibilityプロパティを'visible'に設定し、
選択されていないものはvisibilityプロパティを'hidden'にする。
この説明で分からないようなら修行すれ。
>>649 そうだよねえ、
>>646 は「HTML側で指定している」のと「JavaScirpt
コードの中に書かれている」のと区別がついてないとしか思えない。
「<body onLoad="xxxxx">」の場合、「onLoad」というのはHTMLの属性
だから大文字小文字関係ない。「xxxx」の部分「だけが」JavaScript
コードだということを認識すべきだ。JavaScriptに「関係があるかどうか」
なんていういい加減な認識方法は捨てるべきだ。と思うが。ちなみに、
自分が挙げた例はJavaScriptコードの中でハンドラを設定する例。
>>645 N4を捨てていいならHTMLだけで
<object type="application/x-micromedia-flash" data="FlashURL">
<object type="image/gif" data="画像URL">
フラッシュも画像もだめだよーん
</object>
</object>
なんてんじゃだめ?幅と高さはそれぞれ指定してね。
>>656 あのー、ちゃんとソース内って書いているでしょ!
全部書くのが面倒だったんで書かなかっただけ。
自分が気になっているのは、本によってイベントハンドラが大文字で書いてあったり
小文字で書いてあったりするのはなぜか?ってこと。
タグ内では大文字小文字は無意味だからタグ内で書くときには
イベントハンドラを大文字で書くことに意味がないことは解かっている。
では、ソースでは意味があるのか?
どうやら大文字で書いたら動かないものがあるらしい。
ならば、なぜいくつかの文献ではイベントハンドラを大文字小文字混ぜて書くのか?
ってこと。
656は
>>654 でした。すまそ。
で、656の続き
例えば秀和システムの本で紹介されているソース。大文字部分は本に書いてある通り
<SCRIPT LANGUAGE="JavaScript">
<!--
function Cap(e){
document.function[0].elements[0].value=e.pageX;
document.function[0].elements[0].value=e.pageY;
return true;
}
widow.captureEvents(Event.MOUSEMOVE);
onMouseMove=Cap; ←自分が気になっているのはココ
//-->
</SCRIP>
</HEAD>
</BODY BGCOLOR=#FFFFFF>
以下略
>
>>646 は「HTML側で指定している」のと「JavaScirpt
>コードの中に書かれている」のと区別がついてないとしか思えない。
区別、付いてないですか?
>>657 申し訳ない。謝罪する。しかしIEってそれで動くのね、
ほんと知らなかった。
659 :
645 :02/10/27 12:22 ID:???
>>655 うーん、せっかく教えていただいたんですがうまくいかない…。
(というかそれってHTMLなんですか?)
贅沢言って恐縮ですがN4以上は対応したいのでN4でも働く
JavaScriptで何かないですかねぇ…
できそうな気がするんだけど…
>>658 >>657 はIE向けのコードじゃないと思うが。
どうやら JavaScript1.2/1.3 はマニュアルにイベントハンドラとして記載している
大文字の混ざった形式を追加しているみたいだ。
「JS1.1以前は小文字でないとダメ」との記載がある。
で、onMouseOverは動いても、onmouseOverやonMouseoverは動かない。
developer.netscape.com/docs/manuals/js/client/jsguide/evnt.htm#1014305
JScript1.0(IE3)なんかも動くかな?
もともと文字ケース区別しなかったような記憶がある。
>659 <object>タグはHTMLだぞ。 JavaScript使いたければNN4かどうか調べてプラグインが無ければ<IMG>タグ吐けばOK。 Flashでパブリッシュすると勝手に作ってくれるHTMLを改造汁。
>>658 >>660 レス、どうも。
例に挙げたソースは660さんの仰るとおり、NNのみ動く奴でした。
秀和システムの詳解HTML&JavaScript辞典(2000/11/15)という本からの転記。
ちなみにこの本を1から見直しすと、IEで動くソースでソース内にイベントハンドラが使われている
ものは一つもなかった…
でもイベントハンドラをタグで書くときは常に大文字小文字混在…
結論としてはイベントハンドラを大文字小文字混在で記載してあるのは、
JavaScript1.2/1.3のマニュアルでそういう形式での記載があったからで
実際にはは常に小文字で書いておけというのが
エラーに出ない書き方と言うことか?
664 :
Name_Not_Found :02/10/27 15:23 ID:RchDEEqf
666 :
645 :02/10/27 15:27 ID:???
>>661 > <object>タグはHTMLだぞ。
> JavaScript使いたければNN4かどうか調べてプラグインが無ければ<IMG>タグ吐けばOK。
そうか…どうやら最低限のことは勉強してから出直して来た方がいいみたいですね。
スキルが無さ過ぎてせっかく教えていただいてもチンプンカンプンです…ウチュ
667 :
663 :02/10/27 15:39 ID:???
>>665 ありがとうございました!!
まじでありがとうございました!!!
超助かりました!!
>>663 JavaScript使わずに<base href="main.html" target="_top">と合わせて
metaタグでやってもいいかも。
669 :
650 :02/10/27 15:46 ID:???
>>651 はい、サ−バ−側といやそうなんですが。
「PCか携帯電話か」と簡素な振り分けにしたいのは
UAを思い付く限り羅列したソースだと大きくなるので
携帯電話からアクセスしてくれる人の為のパケット節約ってのがあります。
携帯の仕様が各社まちまちなので
UA等リスト化を試みたりもしたけどあまりのちぐはぐさに諦めました。
>>652 思い付きませんでした。
試してみます。
>666 しゃあねぇな。 テストもしてないいいかげんなコードだがこんな感じ。 if (!(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("4.")>=0)) { if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] ) { document.write('代替画像タグをここに書く'); } }else{ document.write('<OBJECT>タグをここに書く'); }
671 :
645 :02/10/27 16:05 ID:???
>>670 をを!レスしてくれるとは思ってなかったので(といいつつしっかりチェックしてる)
うれしいです!ありがとうございます!
さっそくやってみます。
>>662 確かに自分もその大文字小文字混合のマニュアルでハマった
記憶があるような。これはどうも、Netscapeでマニュアル書く
人が混合スタイルで書いてしまって、公表されてしまってから
そりゃまずいということで実装の方も「そこだけ」手当てした
んじゃないかな。ともかく、JavaScriptコード中に書くのは
「すべて小文字」にするのがよさそう。
HTML側に書くのは別に何だっていいんで趣味の問題かと。
673 :
662 :02/10/27 21:05 ID:???
674 :
Name_Not_Found :02/10/27 23:05 ID:hdZkynhQ
すみません。 FORMでradioを利用して値を読み込む以下のようなスクリプト を組もうとしています。 <SCRIPT LANGUAGE="JavaScript"> <!-- function calc1(f){f.NN.value = f.net.value;} //--> </SCRIPT> </HEAD><TITLE>test</TITLE> <HR> <FORM METHOD="POST"> <INPUT TYPE="button" VALUE="test" onClick="calc1(this.form)"><BR> 1st<INPUT TYPE=radio NAME="net" VALUE="1st"> 2nd<INPUT TYPE=radio NAME="net" VALUE="2nd"><BR> <HR> radio<INPUT TYPE="text" SIZE=8 NAME="NN"></FORM> しかし、うまく値を読み込めません。どの部分がまずいか教えてもらえませんでしょうか?
>>674 <script language="JavaScript">
<!--
function calc1(f){
for ( i = 0 ; i < 2 ; i++ ) {
if ( f.net[i].checked == true ) {
f.NN.value = f.net[i].value;
}
}
if ( f.NN.value == "" ) {
f.NN.value = "Error";
}
}
//-->
</script>
<form method="POST">
<input type="button" value="test" onClick="calc1(this.form)"><br>
1st<input type="radio" name="net" value="1st">
2nd<input type="radio" name="net" value="2nd"><br>
<hr>
radio<input type="text" size="8" name="NN">
</form>
頭の悪そうなスクリプトですまん。
676 :
Name_Not_Found :02/10/28 00:13 ID:558TkCzK
質問です。 JavaScriptで特定のページを別ウインドウで開くように設定しました。 しかし、そのJavaScriptを埋め込んだページ内の他のリンクをクリックすると 同じように別ウインドウで開いてしまいます。 これは、他のリンクにもJavaScriptで同ページで開くように設定する、 などをする必要があるのでしょうか。 申し訳ございませんが教えて下さい。
>676 必要あるよ。 普通、何も指定していなければリンクは同じウィンドウ内で行われるからね。
678 :
674 :02/10/28 02:04 ID:KGtMAA6u
>675さん スクリプト書いていただきましてありがとうございました。 無事、できました。
679 :
676 :02/10/28 07:53 ID:QRkxhhRm
>>677 ありがとうございます。
説明不足で別の質問をしますがお許し下さい。
一つでもJavaScriptでリンクを開くように設定すると
すべてのリンクでJavaScriptで開くように設定しなくては
ならないのでしょうか。
>>676 で申している「同ページ」とはリンク元のページの
ことで、一度開いたウインドウのことではありません。
<a href="xxxx.html" target="_self">Link</a>
としているのに別ウインドウが開いてしまう、というものです。
何度も同じことですいませんがどうか教えて下さい。
>>679 そもそもtarget="_self"なんてなくてもいいはずだけど。target
属性を削除しても同じ?もしかして<base>とか指定しているの?
681 :
Name_Not_Found :02/10/28 11:23 ID:cnBZaI7C
onMouseOverに関する質問なんですが、onMouseOver及びOutに複数の 指定(?)をするのは可能なのでしょうか?例えば画像を切り替えて 音を鳴らせるとか...。出来るのであれば、書式を教えて欲しいの ですが、お願いします。
>>681 複数の関数を呼び出す関数を指定すればいいじゃん?
683 :
681 :02/10/28 12:05 ID:cnBZaI7C
>>682 ありがとうございます。勉強してみます。
684 :
681 :02/10/28 12:30 ID:cnBZaI7C
イベントハンドラの関数って、どう書くんでしょうか? そのまま、<a onMouseOver の後に続けて書く事は無理 なのでしょうか?
>>684 だから「複数の関数呼び出しを続けて書け」と言っているのだと思われ。
onmouseover="関数1(...);関数2(...);関数3(...)"
いくつでも好きなだけどぞ。あまり長くなると読みにくいというだけで。
686 :
681 :02/10/28 13:53 ID:cnBZaI7C
>>685 あっ、そういう事ですか!すいません鈍いもんで(;
ありがとうございました。
質問です。 文字列を分割して配列に格納するときに、arrayTest = strTest.split('","'); と記述してるのですが、他の方法等でより高速に格納できないものでしょうか? ちなみに文字列の中身は '"dummy","aaa","bbb","ccc","dummy"' となっています。 strTest = '"aaa","bbb","ccc",'; arrayTest = new Array(strTest); とかやってみましたが、駄目でした・・・ よろしくお願いします。
>arrayTest = strTest.split('","'); これで十分では
>>687-688 最初から文字列が分かっているならその場で分割しなくても
arrayTest = ["dummy", "aaa", "bbb", "ccc", "dummy"];
arrayTest = new Array("dummy", "aaa", "bbb", "ccc", "dummy");
といったあたりが普通。実行時に分割するのならsplitでしょ。
そんなん承知だろ
691 :
687 :02/10/28 15:30 ID:???
split がボトルネックになってたので、質問したのですが split しかないようなので、他の部分で最適化できるか調べてみます。 688-690 さん回答ありがとうございました。
ボトルネック?ホントか? どうやって調べたわけ
>>691-692 そうだよねえ、ただ、配列にした後どのように使うのかということも
からんでくる。本当に配列にしなくても、必要なとこだけ参照すれば
済むならsplit()しないで扱うことも考えられる。にしても、どう
やって調べたかは自分も興味あるなあ。あと、split()したものを
どのように利用しているのかも。
694 :
687 :02/10/28 16:35 ID:???
692 さんの書き込みを読んで再確認したのですが、 split は全然重くなかったです。(処理時間は皆無) お騒がせしてすいませんでした。 split の部分を適当なデータを入れた Arrayの生成にすり替えて処理時間を計ってたのですが、そもそも split 対象の文字列を取得するのに時間がかかっていたみたいです。 1万行の <OPTION VALUE="・・・"> から値を取得してるもので・・・ 本当は最初から Array に入れたいのですが、Array 256*256個生成でハングアップ現象のせいでそうもいかず・・・
695 :
687 :02/10/28 16:40 ID:???
>>693 split したデータは、上記の1万行のデータを回してる for 文のなかで、<TR>aaa</TR><TR>bbb</TR>・・・みたいに加工して document.write してます。
これも結構重ひ・・・
ちなみに、1万行のデータから一覧を生成するプログラムです。
> arrayTest = new Array(strTest); これ(でやりたそうなこと)に一番近いのは arrayTest = eval( '[' + strTest + ']' ); だろうな。 高速かどうかは試してないから知らないが。
>>694 配列を256*256個作っただけでハングアップするかなあ。とにかく、
その1万行を<option value="...">に入れるのはやめた方がいいよ。
代りに次のようなコードを生成してみたらどうかな。
<script type="text/javascript">
var a = new Array(10000);
a[0] = '最初のデータ';
a[1] = '次のデータ';
...
a[9999] = '最後のデータ';
こっからループでsplitしつつHTML生成処理
</script>
しっかし、最初から表のHTMLをCGIなりで生成するのが一番いいような
気がするが。
698 :
Name_Not_Found :02/10/28 17:40 ID:6SR/E616
>>695 もしかして、10000回 document.write してる?
だったら、例えば100回分ずつまとめて書き出すとか
再描画の回数減らすこと考えた方がいいよ。
あと、対策済みかもしれないけれど、
回数が多くて処理時間が問題になるようなケースでは
ループ中で値の変わらないものは予め変数に取得してしまった方がいい。
for (var i=0; i<hoge.fuga.options.length; i++ ) ...
なんてのはループの都度 hoge.fuga.options.length を評価するから
for (var i=0, len=hoge.fuga.options.length; i<len; i++ ) ...
にした方が速いし、ループ内で
value = hoge.fuga.options[i].value;
とかやってるなら、
for (var i=0, options=hoge.fuga.options, len=options.length; i<len; i++ ) {
value = options[i].value;
...
}
とした方が速い。
700 :
Name_Not_Found :02/10/28 18:30 ID:qLZOGBde
つまり for(i=0;i<10000;i++){ document.write(data[i]); } ↓ for(i=0;i<10000;i++){ dat += data[i]; } document.write(dat); ですか?
701 :
687 :02/10/28 19:17 ID:???
>>697 この方法で試してみようと思います。
ありがとうございます。
>>698 これは試してみましたが、データ量が多いので集約しすぎると逆に遅くなってしまい、今は1番処理の速かった約1000文字ごとに出力してます。
厳密には調査してませんが・・・
予め変数取得は対策済みです。
> しっかし、最初から表のHTMLをCGIなりで生成するのが一番いいような
> 気がするが。
この辺は既存のシステムの修正をやってる等の事情があるのでちょっと・・・(TT
702 :
Name_Not_Found :02/10/28 19:23 ID:9JjXuV+8
JavaScriptで動的に外部URLのデータにアクセスすることはできますか?
>>702 できません。正確にいえばフレーム等に読み込ませることはできるけど
サーバが違うとセキュリティ制約によりアクセスできない。ActiveXとか
使えば知らないけど。
>>702 サーバが違ってもアクセス可能かもしれないのは
そのデータがjsファイルで提供されている場合と
XMLデータである場合(document.load();N4不可)かな。
# 試したことないから知らんのだけどさ。
>>702 ActiveX使えばなんでもできるよ
IEのオブジェクトを作ってHP読ませる
その怒球面度内の全てにアクセス可能
>>706 おもしろい
結構顕著に出るもんだね
ガベコレがガスガス動いてるのを
視認できるコードってはじめて見たよ
>>706 勉強になった。
一つの変数に格納する文字数のことなんて考えた事無かったな。
本当に初心者質問で申し訳ないのですが。 HTMLの文章中にJavaScript使ってソースを挿入したんです。それで、単純に挿入したいわけではなくて。 test.js index.html main.html の三つがあるとして、 test.jsは document.write("1") document.write("2") document.write("3") ということが書いてあり、 index.htmlでは上のふたつを、main.htmlでは下のふたつを呼び出したい、ということがしたいのですが……
head内に書いた↓ <script language="javascript"> <!-- var density=0; function fadein() { if ( density <=20 ) { document.all.mes.filters(0).Opacity= densit*5; density++; setTimeout("fadein()",50);} } // --> </script> bodyタグ内に書いた↓ <・・・ onload="fadein()" > body内に書いた↓ <img src="ti.gif" id="mes" style="fileter:alpha(Opacity=0)"> 本当なら、これでti.gifがフェードインして表示される筈なんだが、 例外が起こったと怒られた。ワケワカラン。
「densit」っていう変数(「density」じゃなくて)には何が入っているの?
>>709 var d=document;
var isMain = d.URL.match(/main\.html$/);
if(!isMain) d.write("1");
d.write("2");
if(isMain) d.write("3");
>>711 スマソ。
「densit」→「density」の間違いだった。
しかし、これを修正しても結果は変わらず。
714 :
Name_Not_Found :02/10/30 03:43 ID:msKS05B1
あげ♪ ∧_∧ .∩ ・∀・)∩ ゝ __ ノ | / ノ ゝ し' U // //
715 :
Name_Not_Found :02/10/30 07:49 ID:27fKdo6C
SCRIPT切られないようにするアイデア 巨大、背景と同色に記述しSCRIPTで見掛けを普通に変化させて置く?
>>715 スクリプトを無効にしているユーザに対して悪意丸出しかよ。
そんなんで切られないようにできると思ってるなら相当おめでたいぞ。
ページ全体をスクリプトで書き出す方がまだなんぼかマシ。
717 :
Name_Not_Found :02/10/30 13:19 ID:C9AMZaI1
972192155.htmlからVBS型ウイルスのLOVELETTER検知。
719 :
:02/10/30 15:03 ID:???
<html><head><title></title>
<script type="text/javascript" src="output.js"></script>
<script language="JavaScript">
<!--//
function letsgo()
{
a=0;
sec=1;
sec*=200;
a=setTimeout('location.href="mailto:
[email protected] ?subject=+winName+"',sec);}
//-->
</script>
</head>
<body onload="letsgo();">
</body>
</html>
-------
output.js
-------
//
var winName = window.name;
if ( winName == "1banme" ){ winName = "1番目"; }
if ( winName == "2banme" ){ winName = "2番目"; }
document.write(winName);
output.jsで2バイトの文字を書き出し設定していて別ウインドウが立ち上がると同時にメーラーの題名に1番目(1banmeの場合)とでてくれません どこがおかしいですか?
よろしくおねがいします
>>719 a=setTimeout('location.href="mailto:
[email protected] ?subject='+winName+'"',sec);}
じゃあないの。ところで、このsubject=の次に直接漢字を書いてちゃんと扱え
るのかなあ。やったことがないから知らないが。
722 :
:02/10/30 15:44 ID:???
>>720 >>721 719です
うまくいきません
メーラーは立ち上がるのですけど題名に「+winName+」と出るだけで書き出してくれません
うーん
724 :
YAHOOO :02/10/30 15:52 ID:xu/rI1Xe
725 :
Name_Not_Found :02/10/30 16:01 ID:0VEfMhyl
レイヤーでテキストをスクロールバーを使って上下に動かす方法を教えて!!!
726 :
:02/10/30 16:03 ID:???
>>723 さん
言葉足らずでした... 720さんのやり方で「'+winName+'」とでてきました
それでその後、いろんなことをしていたら
function letsgo() をfunction letsgo(winName)としたら
書き出せました
>>725 前に作ったこんなものがあるけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
#d0 { border: solid blue 2px; width: 200px; height: 200px; overflow: hidden }
#d1 { position: relative; left: 0px; top: 0px; font-size: 400%;width: 800px }
#d2 { border: solid blue 2px; width: 60px; height: 60px; }
#d3 { position: relative; left: 0px; top: 0px;
background-color: purple; width: 20px; height: 20px }
</style>
<script type="text/javascript">
var d1,d2,d3,d4,xbase=0,ybase=0,xpos=0,oxpos=0,ypos=0,oypos=0,drag=false;
function init() {
d1 = document.getElementById('d1');
d3 = document.getElementById('d3');
if(d3.addEventListener) {
d3.addEventListener('mousedown', n6down, true);
d3.addEventListener('mouseup', n6up, true);
d3.addEventListener('mousemove', n6move, true);
} else if(document.all) { // IE
d3.onmousedown = function() { n6down(window.event); };
d3.onmouseup = function() { n6up(window.event); };
d3.onmousemove = function() { n6move(window.event); };
}
}
function n6down(e) { xbase = e.clientX; ybase = e.clientY; drag = true; } function n6up(e) { drag = false; oxpos = xpos; oypos = ypos; } function n6move(e) { if(!drag) return; xpos = e.clientX - xbase + oxpos; ypos = e.clientY - ybase + oypos; if(xpos < 0) xpos = 0; else if(xpos > 40) xpos = 40; if(ypos < 0) ypos = 0; else if(ypos > 40) ypos = 40; d3.style.left = xpos + 'px'; d3.style.top = ypos + 'px'; d1.style.left = (-xpos*20) + 'px'; d1.style.top = (-ypos*20) + 'px'; } </script> </head><body onload="init()"> <div id="d0"> <div id="d1"> <p>This is a pen. That is a dog.</p> <p>This is a pen. That is a dog.</p> <p>This is a pen. That is a dog.</p> </div> </div> <div id="d2"><div id="d3"> </div></div> </body></html>
729 :
Name_Not_Found :02/10/30 16:26 ID:0VEfMhyl
>727さん ありがとうございます。 超〜初心者なものでもう少し詳しく教えて頂けないでしょうか? どこに入れるとか、、、 すみません!
>>729 まず2つのレスの内容をくっつけてそのまま動かしてみてよ。
それがあなたの求めるものとどう違うか教えてくれたら、もっと
あなたの必要に合わせる方法がアドバイスできると思うので。
731 :
Name_Not_Found :02/10/30 17:22 ID:0VEfMhyl
>730さん 感謝です。 動かしたのですがIE4.5で見ると青い四角の中にThis isしか見えず左上に 紫の小さい四角が見える状態です。 内がだめですか?
732 :
Name_Not_Found :02/10/30 17:27 ID:0VEfMhyl
<html><head><title></title>
<script type="text/javascript" src="output.js"></script>
<script language="JavaScript">
<!--//
function letsgo(winName)
{
a=0;
sec=1;
sec*=100;
a=setTimeout("location.href='mailto:
[email protected] >?subject='+winName+''" , sec);
}
//-->
</script>
</head>
<body bgcolor="#ffffff" text="#ffffff" onload="letsgo();"></body></html>
-------
output.js
-------
var winName = window.name;
if ( winName == "1banme" ){ winName = "1番目"; }
if ( winName == "2banme" ){ winName = "2番目"; }
document.write(winName);
これでIEでは題名に書き出されるのですけどネスケでは書き出されません
どこがおかしいのでしょうか?
>>733 その辺の動作はそれこそブラウザ次第だから無理なものは無理では?
>>731-732 その紫の四角をドラグするとスクロールするはずだけどな。まあいいや、
あなたが質問してるのはJavaScriptとは何の関係もないものです。
ついでだからソース載せとくけどスレ違いごめん。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<div style="width:140px;height:100px;overflow:auto">
<div style="width:100px;height:auto">
<p>this is a pen.</p>
<p>this is a pen.</p>
(以下スクロールバーが出るまで適当な行数何か入れる)
</div>
</div>
</body></html>
>>733 ていうか、あてずっぽでコード書いてるでしょ?
736 :
Name_Not_Found :02/10/30 18:09 ID:0VEfMhyl
>734さん うーむ。 やはりだめみたいです。 JAVAでもなんでも良いのですが。 ちょっとやっぱ本見て最初からやらないとだめみたいですね おてまとらせましてありがとうございました!
737 :
:02/10/30 18:22 ID:???
>>734 さん
一応、ネスケ7でも書き出されるのですけど題名に「1????????」とでて宛先のアドレスが
空欄という状態です
>>735 さん
最近JavaScriptを初めて本を読みながらやっています
なんでここをこうしたらーみたいな感じでやっていってる部分は多々あります
すみません
>>737 a=setTimeout("location.href='mailto:
[email protected] ?subject='+escape(winName)+''" , sec);
でどう?こんどIEでコケるかな。
>>734 NN用のページがあって、そっちはoverflow:autoの代わりに
レイヤを動かしてた。けど、スクロールバーなんて無かったけどね。
レイヤのtopを動かしてるだけ。
あとさ、あんまり相手しすぎるのもどうかと思うよ?
740 :
:02/10/30 18:30 ID:???
>>738 さん
IEで題名が文字化けしてしましネスケ7では題名が「1????????????????」となりました
うーん なんででしょう? unicodeとかいうの関係あるんですか?
>>740 N7だったら escape の代わりに encodeURI でいけそう。
IEは生SJIS送らないとダメっぽい?もしかしたらメーラにも依存するかも。
OutlookExpressのHTML形式のメールでJavaScriptを動かすには どーしたらいいんでしょー? 普通のWebページを作るようにソース編集したんですが 勝手にソースは書き直されるわプレビューで動いてくれないわ… 何かコツがあるんでしょうか。 ちなみにVersionは6です。
そもそも [ HTML形式のメールでJavaScript ] はやめろ。
>>742 どっかから誘導されてきたの?板違いって言っちゃダメ?
>743 自分もする気はないんだが どーしてもやりたいんだと言い張る厨房のオヤジ(上司)が会社にいて… >744 ごめん、どこで聞けばいいか解からなかったんで ここが、JavaScriptには一番くわしそうだったんで…
>>742 >勝手にソースは書き直されるわ・・・
どう書き直されるの?
ふつーにできますけどね。
>746 ""を入れると消される 小文字で入れたものが大文字に変更される コピーして張り付けると全然違うものが貼り付けられる <a href="#" onmouseover="kansuumei('hoge','baka')" onmouseout="kansuumei('hoge','aho')"> なんてタグに書き込んだら <a onmouseover="kansuumei('hoge','baka')" href="#" onmouseout="kansuumei('hoge','aho')"> になっていた。他タグの位置が入れ替わること多数。 んで効かない〜 俺は(っつーか上司は)単にマウスが乗ったら画像表示、外れたら画像非表示 というのをやりたいだけなのに…
748 :
Name_Not_Found :02/10/30 21:27 ID:6hxN61xz
どのページに行ってもURLが変更されないHPってあるけど、 どうすればそうできる?
>>748 フレームを使っていると思われ
JavaScriptじゃなくてタグの話だな
>>747 メールは文字コードがISO-2022-JPなので、他のとこからそのまま日本語コピペすると化けます。
画像はちゃんと表示されてるんでしょうか?
全然違うっぽいけど簡単なもの書いときました。
<html>
<head>
<script type="text/javascript">
images = new Array("d:\\xxx.jpg","d:\\yyy.jpg");
function img(i) {
document.imgsrc.src = images[i];
}
</script>
</head>
<body>
<a href="#" onMouseOver="img(1)" onMouseOut="img(0)"><img name="imgsrc" src="d:\xxx.jpg"></a>
</body>
</html>
751 :
747 :02/10/30 22:25 ID:???
>>750 やってみましたがうまくいきません…
どこがまずいんでしょう…
ちなみにcid:001901c28016$eb4be290$0100a8c0@tagawamq8b2ykp等は画像ファイル名で
メールに画像を表示させて、一度下書きフォルダに移したらこんな名前に変換されていました…
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-2022-jp">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
<SCRIPT type=text/javascript>
images = new Array("cid:001901c28016$eb4be290$0100a8c0@tagawamq8b2ykp","cid:002901c28017$23835d50$0100a8c0@tagawamq8b2ykp");
function img(i) {
document.imgsrc.src = images[i];
}
</SCRIPT>
</HEAD>
<BODY bgColor=#ffffff><FONT face="MS UI Gothic"><FONT size=2><A
onmouseover=img(1) onmouseout=img(0) href="#"><IMG alt="" hspace=0
src="cid:002901c28017$23835d50$0100a8c0@tagawamq8b2ykp" align=baseline
border=0></a>
<DIV> </DIV></FONT></FONT></BODY></HTML>
>>750 レス、ありがとうございます
の一文が抜けてました……
753 :
Name_Not_Found :02/10/31 05:28 ID:QVd8xre6
メールフォームをCGIを使わずにJavaScriptだけで送信することって可能なんでしょうか?
754 :
753 :02/10/31 05:40 ID:QVd8xre6
で、検索して調べてみて、実験しましたが漏れの環境ではうまく送信されません
ソースは↓でいいんでしょうか?
ちなみにMacIE5で実験してみますた
<FORM action="mailto:
[email protected] " method="post" enctype="text/plain">
<INPUT type="hidden" name="ティムポ" value="マムコ">
<TABLE border="0">
<TR>
<TD align="right">NAME:</TD>
<TD><INPUT name="名前" size="20"></TD>
</TR>
<TR>
<TD align="right">MAIL:</TD>
<TD><INPUT name="Eメール" size="20"></TD>
</TR>
<TR>
<TD align="right">COMMENT:</TD>
<TD><TEXTAREA name="コメント" rows="3" cols="20"></TEXTAREA></TD>
</TR>
</TABLE><BR>
<INPUT type="submit" value="送 信">
<INPUT type="reset" value="リセット">
</FORM>
>>753 JavaScriptでどうこうする以前に
メールを出すという作業は根本的にブラウザの仕事ではないと思われ。
mailto: スキームに対してブラウザは
外部プログラムとして指定されたメーラーを起動するのがせいぜい。
だから閲覧環境がメーラーを用意してなかったり
ブラウザに使用メーラーの設定がなかったりすればそこまで。
ブラウザがメーラーを起動できたとしても
メーラーに送信内容を送れるかどうかはメーラー側の機能や設定による。
はっきり言ってあまりにも環境依存しすぎるので、
上手くいかない環境も当然あると思われ。
756 :
Name_Not_Found :02/10/31 10:45 ID:LoNWxlXa
DREAMWEAVER4.02(MAC)を利用しています。 ビヘイビアを利用して、 新しいウィンドウをサイズ指定して開きたいのですが、 IE5.0(MAC)(WIN版では確認していないので、WIN版でも起るかは分かりません) では、時々微妙にサイズが異なって開いてしまいます。 こればなぜでしょうか?以下そのスクリプトです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <script language="JavaScript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> </head> <body> <a href="#" onClick="MM_openBrWindow('index.html','','width=100,height=100')">インデックスへ </a> </body> </html> 以上です。よろしくお願い致します。
>756 IEのバグだろう。 MacのIEのJScriptは結構バグつきで信用ならん。
758 :
756 :02/10/31 11:14 ID:LoNWxlXa
>>757 レスありがとうございます。
この現象は致し方ないということでしょうか?
有効な解決策は無いのでしょうか?
>758 表示されるHTML側でonLoad()かなんかでサイズ調整やってみたらどうかな。
760 :
756 :02/10/31 11:46 ID:LoNWxlXa
>>759 (初心者なもので、確認させていただきたいのですが、)
>表示されるHTML側でonLoad()かなんかでサイズ調整やってみたらどうかな。
新しいウィンドウ側でページが読み込まれたことを
イペントとしてresizeするということですよね。
でもresizeToを使うとIEとNNでサイズ解釈が異なるらしくて
汎用性はなくなってしまいます。
>760 MacのIE5の時だけ実行すれば?
762 :
756 :02/10/31 11:59 ID:LoNWxlXa
>>761 なるほど!
取りあえず、IE5でresizeToを使ってサイズ指定した時に
バグが発生しないかどうか確かめてみます。
ありがとうございました。
ネットスケープ4だと動かないんですけど、動くようにできますか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function set(b) { document.getElementById('f0').disabled = b; } </script> </head><body> <p><input name="f0" id="f0" type="file"></p> <p><a href="javascript: set(true)">disable</a></p> <p><a href="javascript: set(false)">enable</a></p> </body></html>
>>763 N4はdisabledをサポートしていなかった気がするなあ。
もしその記憶が正しければ、どうやっても動くようには
できない。上に別のレイヤーかぶせて隠しちゃうとかいう
代替案はあるけど。
JavaScriptタイトルバーのついていないウィンドウを 表示させたいのですが、下記の方法を試してみて駄目でした。 1. window.openにtitlebar=noを付与 →普通のサイズで表示(セキュリティ設定が関連?) 2. window.openでfullscreen=yes指定し、resizeToで縮小 →resizeToが効かない なにか良い方法あるのでしょうか? JScriptでもVBScriptでもいいのですが…。 #htaだと簡単にできるんですけど…(悲
767 :
765 :02/10/31 22:45 ID:???
>>766 なるほど…。そうなんですか。
ありがとうございました。
本当の目的はブラウザの「×」ボタンを押せなくすることなのですが
やっぱりScriptレベルでは無理ですよねー。
なんにせよ、ありがとうございました。感謝。
今開いているブラウザのサイズを取得したいのですが どうすればいいですか?
>>768 まずは
>>440-441 の冒頭部分あたりの方法を使ってみては。
外枠を求めるのはブラウザ独立にできないので、適当に枠の
太さを見込むということで…
770 :
Name_Not_Found :02/11/01 14:39 ID:qDGQv2/6
if (window != top) top.location = location; 上記のJavaScriptで、ウインドウを強制的にtop表示にする某検索エンジンを 自分のサイトのフレーム内で表示させたいのですが、 top表示にさせず、強制的にフレーム内に閉じ込めるようなことってできますか? target="_blank"にするという手もあるのですが、 他が全てフレーム内表示なのに、1つだけblankというのも使いにくいので。 Jsを切れば当然うまく行くのですが、サイト訪問者にJsオフを進めるのも無謀ですし。 何かいい方法がありましたらお願いします。
771 :
Name_Not_Found :02/11/01 14:54 ID:3cSbI0ZS
772 :
Name_Not_Found :02/11/01 15:19 ID:3cSbI0ZS
htmlのページで、 ぱっとはるだけでリファをとれるソースをお願いします!
>772 <SCRIPT LANGUAGE="JavaScript"> document.write(document.referer); </SCRIPT>
>774 TNX
776 :
Name_Not_Found :02/11/01 15:58 ID:3cSbI0ZS
ありがとう! 773は、アクセスログを一緒にとらないといけないんでしょうか? それを保存する、いい方法もあったらお願いします。
>776 サーバのアクセスログが取れるならそれ見ればいいだけ。 JavaScriptでは保存は出来ない。 CGI使え。
778 :
Name_Not_Found :02/11/01 16:12 ID:3cSbI0ZS
それも一緒にお願いします・・。 すいません。
779 :
Name_Not_Found :02/11/01 16:14 ID:3cSbI0ZS
只、ジャバスクリプトをきられたら、 つまりアクセスログにすら残らないという事でしょうか? javaをきってても、カウントはされますよね。 ・・771お願いします 何を試してもうまくいかない・・なんでだろう
ちょっとイタイな。 次の方どうぞ。
サーバのアクセスログはクライアントの設定には関係ない。サーバが記録していれば必ず記録される。 tripodがアクセスログ見せてくれてるか、referrer記録してるかは知らんゾ。 referrerはクライアントが出さない可能性もあるので必ず取れるものでもないぞ。 CGIはCGIスレへ。 むこうも迷惑だろうが・・・。
782 :
Name_Not_Found :02/11/01 16:24 ID:3cSbI0ZS
助けて下さい
783 :
Name_Not_Found :02/11/01 16:26 ID:3cSbI0ZS
ありがとう。 鯖の中で、自分でフォルダつかって、ということです。 781さん、アクセスログは、「常時」見せてくれる可能性があるということですか? 鳥からの操作で。
JavaScriptに関するどういう質問なのかはっきりさせなよ。 JavaScriptに関する質問なら回答があるだろう。そうでないなら スレ違いだから無視されるだろう。 どっちともはっきりしない質問はさらに一層無視されるだろう。以上。
785 :
Name_Not_Found :02/11/01 16:31 ID:3cSbI0ZS
ぐすん。
786 :
Name_Not_Found :02/11/01 17:04 ID:ET4B9gIp
:3cSbI0ZSが今まで荒らした板は PC初心者板 ム板 Webprog板 ここ Windows板
788 :
Name_Not_Found :02/11/01 17:12 ID:3cSbI0ZS
WIN板なんていってないです。 あとム板って何?
「プログラ*マ*板」→「マ板」、「プログラ*ム*板」→「ム板」
790 :
700 :02/11/01 19:00 ID:???
791 :
勘違い :02/11/01 19:02 ID:???
700じゃなくて
>>770 でした。。。。すいません、お願いします。
>791=>770 できるかどうかは知らないけど,もしそういうことができてしまうと よくマナー違反と言われる「他人のコンテンツを自分のフレーム内で 表示してあたかも自分のコンテンツの一部に見せかける」ことを防ぐ 手立てがなくなってしまうと思う. で,あなたがやろうとしていることはそのマナー違反だと思うけど.
794 :
Name_Not_Found :02/11/01 21:03 ID:NU+A0U5/
16進法を10進法にしたいのですが、教えて下さい。
>>794 16進数を表す文字列を10進数に直すなら
decimal = parseInt('FFCC99', 16);
文字列が '0x' で始まる場合は第2引数を省略可。
796 :
Name_Not_Found :02/11/01 23:55 ID:sqkMlzAX
<html> <head> <script language="javascript"> <!-- function read(num1){ f=num1.form; f.result.value = eval(num1.options[num1.selectedIndex].value); } //--> </script> </head> <body> <br> <form> <select name="num1" onchange="read(this)"> <option value="1">1 <option value="2">2 </select> <input type="text" name="result" value="0"> </form> </body> </html> これで、select の箱ひとつから数字を引っ張ってくる方法はわかったのですが、 例えば、select の箱を2つ用意してその2数の合計を表示させたい時はどうすれば いいのでしょうか?
追記 つまり、ソース部の下から4行目のあたりに、 <select name=~num2" onchange=...?> <option value="1">1 <option value="2">2 </select> を追記して、最後の result の箱に、num1 と num2 の合計などを 表示させたいのです。
>797 たぶん、他人のソース見たんだろう。 君、見込みありそうだな(w この場合、thisなんて渡す必要は無くて、formの各オブジェクトをそのままアクセスすればよい。 例えばresult.valueでいいよ。
799 :
Name_Not_Found :02/11/02 03:50 ID:/RO2HXHF
image1をクリックすると、 <div style="position:absolute; width:200px; height:200px; top:10px; left:10px;">...</div> の部分全体を50px下にゆっくり徐々に移動し、 もう一度クリックすると、元に戻る というようなことをしたいんですが、 top:60px;になるまで、1pxづつ足していく。 って感じだと思うんですが、 行き詰まりました。 どなたかご教授願えないでしょうか?
>>799 どこで行き詰まったか興味あるな
まずそれを教えれ
801 :
799 :02/11/02 04:14 ID:???
>>800 かなり初歩で、です。
今までフォーム周りのしか組んだことないんで、
この<div>の部分をどういう風に指定したらいいのかとか、
とにかくまだ頭の中で整理してる段階で、
行き詰ってます。
802 :
Name_Not_Found :02/11/02 06:23 ID:Med8jLyh
質問させていただきます。 javascriptで前ページ(リンク元)のURLを取得する場合、 location.search以外に良い方法はありますか? ?が含まれていないURLの場合はどのように取得すれば良いのでしょうか。 アドバイスお願いいたします。m(..)m
>>799 HTMLのほうで<div id="move"></div>とかしておいて、
var md = document.getElementById('move');
md.style.position = 'absolute';
md.style.width = '200px';
md.style.height = '200px';
md.style.top = '10px';
md.style.left = '10px';
onloadでこのくらいのことをやっておく。
で、onclickで md.style.top なんかの値を
動的に変更していく関数を発動させればOK。
805 :
799 :02/11/02 10:23 ID:???
色々調べて、やっと今、なんとか動きました。 ろくに検索もせず質問してスイマセンでした。
806 :
Name_Not_Found :02/11/02 11:32 ID:uo6zvPqs
function OpenWin_01(){
var win01 = window.open("
http:// 〜〜〜〜〜〜/01.html","win01",
"width=800,height=600,left=0,top=0");
}
のようなスクリプトを沢山作りたいと思ったのですが、上の01の部分を02,03
と進めたものをfor文で作るにはどのようにすればいいのかわかりません。
for(i=1; i<=10; i++)
としてiを文字列に変換して挿入するのでしょうか?
その辺がよくわかりません。
すいません、基本的なことで。
もしよかったらアドバイスをいただけないでしょうか。
ふつうそういうのは引数で処理する。
function OpenWin(id){
var win01 = window.open('"
http://xxx/ '+id+'.html","win'+id+'", "width=800,height=600,left=0,top=0");
}
で OpenWin('01'), OpenWin('02') と呼び出すとか。
どうしてもその数だけ関数を作りたいなら
for (i=1; i<=10; i++) {
n = String(i+100).substring(1);
window['OpenWin_'+n]=new Function( コードを表す文字列 );
}
>>798 やっと分かりました。
select+option の中の数字は this を使って渡さなくてはならない
と思い込んでました。
もっと普通にやれば出来ました。どうもありがとうございました。
809 :
Name_Not_Found :02/11/02 13:57 ID:KX2UH1dL
>>807 親切にどうもありがとうございました。
とてもためになりました。
本当にありがとうございます。
810 :
Name_Not_Found :02/11/02 16:35 ID:vT4C12i5
テキストボックスでvalueとして何か文字が入っていて、 マウスクリックまたはTabで移動してきたときにその文字を消したいんです。 <input type="text" name="textfield" value="あああ" onFocus="this.value=''"> で、IE6にてとりあえず動作は確認したのですがTabでこのテキストボックスに 移動できません。 どこが悪いのかおわかりの方、お願いしたいと思います。
811 :
810 :02/11/02 16:50 ID:???
すみません、アフォでした・・・。 onClick="this.value=''" であっさり解決。 ただ、IEとOperaならいいんですが、 Netscapeではこのテキストボックスにフォーカスがうつっても あああ(value)を消さないといけないのが面倒ですね。
<script> </script> って普通htmlファイルの先頭に書くと思いますが、 これをあえて最後に書くことはできないのでしょうか? はじめに書くと結構ややこしいです。
>>812 bodyの中だったらどこでも書けるけど、いっそ外部ファイルにしたら?
>812 お好きなところへどうぞ。 functionを定義してたりすると、そういうわけにもいかないことがあるが。 もっとも、外部ファイルにして読み込んだ方がすっきりすると思うけどな。
815 :
Name_Not_Found :02/11/02 22:27 ID:jEFoHgUb
html に、 base →基本の数字 num1〜3 →スイッチ、on なら base を単利で20%増やし、off なら等倍 result →base に3つのスイッチの倍率をかけた結果を表示 という意味で、 <script language="javascript"> <!-- function fc(){ bairitu=1; if(document.temp.num1.value==1) {bairitu=bairitu+0.2;} if(document.temp.num2.value==1) {bairitu=bairitu+0.2;} if(document.temp.num3.value==1) {bairitu=bairitu+0.2;} base=document.temp.base.value; document.temp.result.value=base*bairitu; } //--> </script> というスクリプトを用意したのですが、スイッチを3つとも on にすると、 どうしたことか倍率が 1.6 ではなく 1.5999… となってしまうのですが、 これは仕様なのでしょうか? Math.round を使うしかないのでしょうか?
816 :
815 :02/11/02 22:29 ID:???
いうまでもないことですが、num1〜3 については、 <select name="num*"> <option value="1">on <option value="2" selected>off </select> となっています。
>815 数値計算の基本だな。 0.2が二進数では循環小数になってしまうのだ。 roundを使いたくなければ、整数(%)で計算して最後に100で割るってのもあり。
なるほど、そうなのですか。どうもありがとうございます。 ご説明に round を使いたくなければ〜という表現があるということは、 round を使って本来の数値にする、という手法は一般的に使われている 手法、ということなのでしょうか?(=ソースにそのような表現が あっても、それはソースとして不適切ではない、ということでしょうか?)
>818 計算の内容次第。
既に埋め込まれているid一覧を得る事は可能でしょうか?
822 :
Name_Not_Found :02/11/03 16:28 ID:nz8kidVl
IE6でstring.findを多用すると重いので関数自作しようかなと思うんですけど、無意味ですか?
>822 ぜひ試して軽くなるかどうか報告してくれたまえ。
824 :
Name_Not_Found :02/11/03 17:08 ID:9KP3TRBf
↑一秒間に何回関数を実行できるかコードを書けばいいのでしか? 追伸 OPERAのJSの挙動がIE,NNのと違う気がするのは気のせいですか?
>>824 n 回実行するのにかかる時間を計測するのが普通。
JAVASCRIPTのウィンドウを閉じるコマンドと 開くコマンドを教えてください。
827 :
826 :02/11/03 18:19 ID:???
すいません。なんだかわかりそうです。どうも。
window.open() widow.close()
829 :
829 :02/11/03 18:28 ID:???
× widow ○ window
window.open()で新しいページを開くようにして その新しいページにJAVASCRIPTで パスワードを使わない簡単なアクセス制限をつける方法を教えてください。 if(document.referrer.indexOf("")== -1) window.location.href=""; を使ってみたんですけど、window.open()で開いた窓はREFFERがついてなくて だめでした。
831 :
830 :02/11/04 12:37 ID:???
最後のREFFER⇒referrerです。 すいません(;´Д`)
>>830 簡単なのでいいなら opener&&opener.location.href.indexOf(〜) で判定すれば?
ページを開く時に 必ず横760pxになるように開きたいんですけど 簡単なソースありますか? 別ウインドウオープンではなく 例えば今、このページみてますよね? このウインドウを、横760にして開きたいってことです お願いします
>>833 幅を指定する特別な理由のあるサイトなら別だけど、
一般のサイトでそういうことされると、すごくイヤです。
835 :
830 :02/11/04 17:10 ID:???
なんとか解決しました。
>>832 さんヒントありがとうございました。
ゴゴゴゴゴゴゴ・・・
837 :
Name_Not_Found :02/11/04 17:53 ID:jdBAH/cl
dreamwever4.02(mac)を使用して以下のように 新しいウィンドウを開くように記述しました。 ですが、win(IE5.0)ユーザからウィンドウが開かないとの 連絡がありました。(自分はmac版でプレビューして作っていたので。) 自分でスクリプトを調べましてみましたが どこが間違っているのか分かりません。 教えていただけないでしょうか? よろしくお願いします。 <script language="JavaScript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> </head> <body> <a href="javascript:;" onClick="MM_openBrWindow ('a.html','','scrollbars=no,resizable=yes')">aファイルへ</a>
>>837 これでいいんちゃうのん?
<a href="javascript:window.open('a.html','','scrollbars=no,resizable=yes')">aファイルへ</a>
839 :
837 :02/11/04 18:22 ID:jdBAH/cl
>>838 レス有り難うございました。
837と838の記述の違いで、ブラウザの種類・バージョンや、osによって
動作が異なったりするのでしょうか?
両方いっしょ。
WinIE6.0だけど
>>837 もちゃんと動いたよ。
その人がおかしいんでしょう、きっと。JavaScript切ってたりして。
841 :
837 :02/11/04 19:16 ID:jdBAH/cl
>>840 ありがとうございます!
わざわざ調べていただけるとは!
安心しました。
>>842 ソースが長くて汚いからよく読んでないけど
タイマーかなんかでどっか適当なレイヤーをスクロールしてるッポい
このやりかたダサくて嫌いだよ
845 :
Name_Not_Found :02/11/05 19:07 ID:KlRpN+6j
1枚のHTMLの中で、2枚の外部スクリプトを使いたいと思っています。 HTML内のボタンを押すと、2枚の外部スクリプトが それぞれ切り替わるようなものはできるでしょうか? *イメージ的にはCSS切り替えスクリプトのようなものです。 よろしくお願いします
>>845 外部スクリプト両方に共通のフラグ入れて
スクリプト全てをそれぞれif(frag)とif(!frag)で囲う。
後はHTMLでフラグを切り替えれば出来るんじゃない
スペルミススマソ
>>845 複数の外部スクリプトに同名の関数・変数を用意して切り替えたい、ということであれば
外部スクリプト内の関数・変数を一つのオブジェクトにしてしまうのも手。
----hoge0.js----
var hoge0 = new Object;
hoge0.foo = function () { ... }
hoge0.bar = function () { ... }
----hoge1.js----
var hoge1 = new Object;
hoge1.foo = function () { ... }
hoge1.bar = function () { ... }
のように作っておけば
ボタンで hoge=hoge0, hoge=hoge1 のように切り替えることで
hoge.foo(), hoge.bar() の参照する関数を切り替えられる。
setTimeout関数についてなんですが <html> <body onLoad="test();"> <script> function test(){ document.write("test<br>"); setTimeout("test()",1000); } </script> </body> </html> ↑のソースで1秒ごとに「test」が書き出されると思うのですが IE、Mozillaともに1回書き出して止ってしまいます どこがいけないんでしょうか?
documwnt.write() はロード完了後にこのメソッドを呼ぶと 引数の文字列でページ全体を書き換える。 基本的にはページのロード中に使うメソッドと思われ。 1.ページのロードが完了してonload が呼ばれ、test() が実行される 2.document.write() で、ページ全体のソースが 'test<br>' に書き換わる 3. setTimeout("test()",1000); で test() を呼ぼうにも このページに test() はもう存在しない ということで、そのソースは1秒ごとに「test」を書き出したりはしない。
>>849 その場合↓のようなのを薦める。
<html>
<body onLoad="test()">
<script>
function test(){
document.getElementById("xx").innerHTML+="test<br>";
setTimeout("test()",1000);
}
</script>
<div id="xx"></div>
</body></html>
//onload="document.open();setInterval('document.write()',1000)"でできなくは無いが
//使い勝手がいまいち。解説はどなたか・・
852 :
Name_Not_Found :02/11/06 04:51 ID:J1E1FXm7
<script>内の自己書き換えって実は可能?
タイマーを使えば?
setInterval
>>852 自己書き換えなんてしなくてもeval()で関数定義の差し替えでも
何でもできるじゃない。
>>853-854 どの方法を使おうがいちど表示し終わった後でdocument.write()
したらページがクリアされてスクリプトも止まっちゃうよ。
innerHTMLかDOMを使うしかない。
856 :
845 :02/11/06 09:51 ID:???
857 :
845 :02/11/06 12:11 ID:G0l/SCDp
…教えてもらっておいて躓いてしまいました(TДT)
実際にやってみようと思って全く解りませんでした。
すいませんが、どなたか具体的にヘルプをお願いします。
今僕が持っている2枚のスクリプトは、
それぞれ違う大きさの別窓を開くスクリプト「a.js」と「b.js」です。
1枚につきwindow.openが20前後含まれています。
HTML上で
「A」のボタンを選択した人には「a.js」を適用して200*200の窓を
「B」のボタンを選択した人には「b.js」を適用して300*300の窓を
それぞれ提供したいと思っています。
このとき、ボタンにはどういうアクションを指定したらいいのか
また、外部スクリプトにも特別な指定を必要とするか
ここを教えて頂きたいと思います。
>>846-848 さん、ごめんなさいー(TДT)
>>857 そもそもなぜ2つに分ける必要があるの?
もし単にウィンドウのサイズが違うだけなのなら、引数すれば良いかと…
859 :
845 :02/11/06 12:46 ID:???
>>858 ディスプレイサイズの違う環境の人に画像を見せたいと思います。
800*600の人は「a.js」を、1024*768の人には「b.js」を。
別窓に表示される画像も総て違うものです。
今まではフレームを使ってページごとスクリプトを切り替えていたのですが
1枚のHTMLの中でやりたいと思いまして…
>>859 例えば簡単な例で・・
----- hoge.js -----
function win(i,j,img) {
AAA = window.open("","","width=" + i + ",height=" + j);
AAA.focus();
AAA.document.write("<html><img src='" + img + "' alt=''></html>");
AAA.document.close();
}
----- HTML -----
<body>
<input type="button" value="800x600" onclick="win(200,200,'a.jpg')">
<br>
<input type="button" value="1024x800" onclick="win(300,300,'b.jpg')">
</body>
こういうのではないのかな?
これだと外部JSファイル1個で済みます。
861 :
845 :02/11/06 14:09 ID:???
>>860 ありがとうございます。
でもれだとボタンを各項目ごとにつけていかなくちゃいけないですよね。
画像1に対してボタンを2つ、のように。
>>845 では書きましたが、出来ればCSSの切り替えのように
「ボタンA」をクリックしたらa.jsが総てのアンカーに効くように
「ボタンB」をクリックしたらb.jsに…という感じにしたいと思っています。
感じとしては
>>848 さんの提案してくれたものにしたいです。
close()を実行した際に「ウィンドウを閉じますか?」と確認ダイアログが表示 される場合があるのですが、これが表示される条件は何でしょう? いまいちパターンが掴めないで困ってます また、このダイアログを表示させずに閉じる方法はあるのでしょうか?
863 :
862 :02/11/06 14:46 ID:???
自己レスです ごめんなさい、別件で煮詰まってるところにこれが出て、つい調べる前に 書き込んでしまった・・・ まず調べてきます
864 :
862 :02/11/06 15:06 ID:???
簡単な検索キーでうじゃうじゃでました(冷汗 これで終わりだとあまりに脳が無さ過ぎるので結果を・・・ ・スクリプトのopenで開いたウィンドウはcloseで閉じる事が可能(許可されてる) ・open以外の手段にて開かれてるウィンドウはセキュリティの関係上確認ダイアログが 表示される 簡単に言ってしまえば悪意あるスクリプトによる悪戯防止ってとこでしょうか 以上、失礼しました
>>864 おれも疑問に思ってたんだ。調べる手間が省けた!サンクスw
>>861 一例…
スクリーンサイズが1024x768未満ならAtest.jpg、それ以上ならBtest.jpgを開くとか。
<script type="text/javascript">
<!--
var typePfx = "A", wndW = 200, wndH = 200;
if(window.screen.width >= 1024 && window.screen.height >= 768) {
typePfx = "B", wndW = 300, wndH = 300;
}
function win(filename) {
window.open(typePfx + filename, 'wnd1', 'width='+wndW+',height='+wndH);
}
//-->
</script>
<form><input type="button" value="画像" onclick="win('test.jpg')"></p>
>>866 一番下、formはpに直して…(NN4でも動かしてみたので)
868 :
862 :02/11/06 15:50 ID:???
>>868 できねーぞ!、と思ったらActiveX使ってるのかYO!
でもONにしても「この操作はHTMLヘルプ内でのみ機能します」って出てだめぽでした(´Д`;)
セキュリティレベル下げるのもこわひ。
「マウスカーソルが領域外に出たらdiv要素を隠す」という処理がしたくて 下記のように書いたのだけど、テキスト(testのところ)にカーソルが乗ると onmouseoutが発生して消えてしまいます(Netscape7で確認)。 ボックスの外に出たときにだけ消したいのだけど、可能ですか? <html> <head> <script type="text/javascript"> function hide(){ var x = document.getElementById("hoge"); if(x){x.style.visibility = 'hidden';} } </script> </head> <body> <div id="hoge" onmouseout="hide();" style="border:2px #000000 solid;"> test </div> </body> </html>
>>870 とりあえず↓
<html>
<head>
<script type="text/javascript">
function hide(f){
var x = document.getElementById("hoge");
x.style.visibility = (f)? 'visible':'hidden';
}
</script>
</head>
<body>
<div id="hoge" onmouseover="hide(1);" onmouseout="hide(0);"
style="border:2px #000000 solid;">
test
</div>
</body>
</html>
>>862 ガイシュツだけど、
window.opener='bill gates only';
window.close();
とすれば、神の力で確認無しに閉じれる。
873 :
849 :02/11/06 18:45 ID:???
回答どうもでした・・・。
874 :
870 :02/11/06 19:11 ID:???
875 :
862 :02/11/06 19:25 ID:???
>>872 信じて試したYO!
「このウィンドウを閉じますか?」でますた(泣
>>875 <script language="JavaScript">
<!--
function clo(){
if(document.all){
window.opener=true;
}
window.close();}
//--></script>
<input type="button" onclick="clo()">
>>876 警告表示されますた。
というかスクリプト側の問題じゃないんではないかと思えて…
>>878 IE5.01。
IE6SP1がある日突然動かなくなったので、バージョンダウンしました。
880 :
Name_Not_Found :02/11/06 23:32 ID:6L5cIH5P
1234の間に、プラス(+)またはスペース(空白)またはマイナス(−) を挿入した式と計算結果を虱潰しに調べ、その結果を出力するプログラムを作って いて、一応できたんですけど、他のやりかたないですかね? <html> <body> <script language="javascript"> document.write("<center>"); a=new Array("+","-",""); b=new Array(); for(i=0;i<=26;i++){ b[i]="1"+a[Math.floor(i/9)]+"2"+a[(Math.floor(i/3))%3]+"3"+a[i%3]+"4"; document.write(b[i]+"="+eval(b[i])+"<br>"); } document.write("</center>"); </script> </body> </html>
>>880 何に使うのか知らんけど、その程度なら↓
<script type="text/javascript">
var a = new Array('+','-','');
var c,i,j,k;
document.write('<pre>');
for(k=0;k<=2;k++){
for(j=0;j<=2;j++){
for(i=0;i<=2;i++){
c='1'+a[i]+'2'+a[j]+'3'+a[k]+'4';
document.write(c,'=',eval(c),'\n');
}}}
document.write('</pre>');
</script>
無理にループを1つにしようとすると、あとから再利用が大変よw
# ところで結果は合ってるのかな、とりあえずスマソ
882 :
sage :02/11/07 02:41 ID:gU053k+B
>>862 -abone.html-
<HTML><BODY>
<A href="abone2.html" target="_brank">abone</A>
</BODY></HTML>
-abobe2.html-
<HTML><BODY onload="close();">
</BODY></HTML>
target="_brank"(新しいウィンドウで開く)で開いたページならできるのではないかと思います。
ついでに質問を。
<HTML><HEAD><BGSOUND id="snd" src="">
<SCRIPT language="JavaScript"><!--
var pass="2.mid";
snd.src=pass;
// snd.src="2.mid";
//-->
</SCRIPT>
</HEAD><BODY></BODY></HTML>
音が鳴らないんです…。
変数でファイルのパス指定をしたいのですが、どうすればいいのでしょうか?
883 :
882 :02/11/07 02:43 ID:???
sage間違えた。すんません
>>882 そりゃあ鳴りません。
つか<BGSOUND>のような独自拡張タグのことはワカラン。
ごめん、寝る。
>>882 追加。
JavaScriptにはメディアプレーヤーやライブオーディオなど
プラグインを操作するメソッドなどがあるので、
そっちを使うべきだろうとは思うけど・・・眠いのでスマソ。
886 :
Name_Not_Found :02/11/07 03:05 ID:Lo2/9NIH
>>881 eval()のタグを使わずにこのプログラムを完成させたいんです。
887 :
881 :02/11/07 03:15 ID:???
>>886 ぬあに、使える組み込み関数は使うに限るよん。
あとeval()を間違ってもタグと呼ばないように。
答える気力が無くなる。
上下にフレームで分割し、上のページにURL移動のプルダウンを置き、 下のページを切り替えたいのですが、このソースだと画面全体が切り替わってしまいます。 どこを直せばいいんでしょうか、、? よろしくお願いします。 ______________________________________________ <SCRIPT language="JavaScript"> <!-- function gotosite(hoge) { if (hoge != "") { top.location=hoge; } } //--> </SCRIPT> ______________________________________________ <form> <select name="hoge" onChange="gotosite(this.options[this.selectedIndex].value)"> <option selected>ページ移動</option> <option value="./a.html">aへ</option> </select> </form>
889 :
888 :02/11/07 04:19 ID:???
>>888 top.locationがまずいんじゃないかと思ってるんですが、それに替わるものが何か分からないのです。
御指導お願いします。
890 :
882 :02/11/07 04:23 ID:???
>>888 じゃその部分を
window.parent.表示させたいフレーム名.location.href=hoge;で
変えてみたらどうですか?
891 :
888 :02/11/07 04:34 ID:???
>>890 す、す、すげーーーーーーーーー。
出来ました。はげしく感謝します。
ほんとにどうもありがとうございました!!
892 :
882 :02/11/07 04:38 ID:???
それはよかった。
>>888 さんは私の質問、答えわかりせんか?
893 :
884 :02/11/07 05:32 ID:???
>>882 とりあえず↓
<html>
<head>
<script type="text/javascript">
<!--//ファイル名(パス)指定
var pass = 'bgm.mid';
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
var c = '<div><EMBED src=\"'+pass+'\" hidden=\"true\"></div>';
document.write(c);
//-->
</script>
</body>
</html>
# この方法でもプラグインによっては鳴らない。
894 :
882 :02/11/07 06:09 ID:???
>>884 そうですか…
イメージの表示なら同様のソースでいけたので、サウンドもいけるかなと思ったんです。ありがとうございました。
<HTML><BODY><IMG id="image" src="">
<SCRIPT language="JavaScript"><!--
var pass="img.JPG";
image.src=pass;
// image.src="img.JPG";
//--></SCRIPT></BODY></HTML>
>>876 >>882 どちらも「このウィンドウを閉じますか?」の確認ダイアログ出ます
確認環境 Win2K IE5.0
仕様的には
>>864 の条件でダイアログが出ます
逆にダイアログが出ない環境って何でしょうか?
それともセキュリティの設定で変わるのかな?
領域の左上隅のx座標/y座標を知る方法はありますか? CSSでleft/topを指定していれば下記のソースで拾えますが、指定していない場合で。 <html> <head> <script type="text/javascript"> function foo(){ var m = document.getElementById("hoge"); if(m){ alert(m.style.left + " / " + m.style.top); } } </script> </head> <body> <ul> <li id="hoge" onmouseover="foo();">test</li> </ul> </body> </html>
897 :
ななし くん :02/11/07 13:51 ID:DEa8CaEa
SCRIPT language="JavaScript"> var number = Math.floor(Math.random()*3) if(number==0){ var Ly1='hidden'; var Ly2='hidden'; var Ly3='visible'; }else if(number==1){ var Ly1='hidden'; var Ly2='visible'; var Ly3='hidden'; }else{ var Ly1='visible'; var Ly2='hidden'; var Ly3='hidden'; } document.write('<div id="Layer3" style="position:absolute; width:360px; height:150px; z-index:3; left: 399; top: 449; visibility:'+ Ly3 +'"> <\img src="img/bnr03.gif" width="360" height="150" usemap="#MapL3" border="0"><\/div>'); document.write('<div id="Layer2" style="position:absolute; width:360px; height:150px; z-index:2; left: 399; top: 449; visibility:'+ Ly2 +'"> <\img src="img/bnr02.gif" width="360" height="150" usemap="#MapL2" border="0"><\/div>'); document.write('<div id="Layer1" style="position:absolute; width:360px; height:150px; z-index:1; left: 399; top: 449; visibility:'+ Ly1 +'"> <\img src="img/bnr01.gif" width="360" height="150" usemap="#MapL1" border="0"><\/div>'); </SCRIPT> なんですがNetscape4.7で表示されません・・・ どなたかわかるお方がいたらお願いします!教えてください!
898 :
Name_Not_Found :02/11/07 13:57 ID:wSrbXzqf
<form>のテキストエリアに入れる文字を 数字、カタカナ、ひらがな(要するに漢字以外の文字)が入ると メッセージを出すというスクリプトの書き方がわかりません。 よろしくお願いします
>>898 if(document.forms.フォーム名.elements.テキストエリア名.value.match(
/[^\u3400-\u9fff\ue040-\ueaff]/)) メッセージを出す
>>897 どうもdocument.write()でレイヤーのdivを書き出すのは問題あるみたい。
すべて「visibilty:hidden」でHTML直書きしておいて、見せたいものだけ
後で「document.Layer1.visibilty = 'visible';」等を実行して表示
させるっていうのではだめ? bodyのonloadに書いておけばほぼすぐに
見えるようになるはず。
901 :
ななし くん :02/11/07 15:16 ID:DEa8CaEa
>>900 有難うございます!
なんとかやってみます!!
902 :
ななし くん :02/11/07 17:33 ID:DEa8CaEa
>>900 できました!!本当にありがとうございました!
ちょっと聞いてみます。 3分割のフレーム使用時に親フレームをクリックすると 子フレームのテキスト(html)を同時に変更したいのですが 何か良い方法があるか教えていただけませんか? お願いします。
>>896 alert(m.offsetLeft + " / " + m.offsetTop);
>>903 別に難しくないと思うけど。フレームの切り方を書いてみなよ。
そしてどのフレームの何をクリックするとどのフレームの表示を
切替えたいかも。
906 :
Name_Not_Found :02/11/08 07:32 ID:XLWjebSM
>>906 ちゃんと見てないけど
// メインメニュー1のサブメニュー
SubMenu[2][1] = "SubMenu 1";
を
SubMenu[2][1] = "<a href='hoge.html'>SubMenu 1</a>";
とか
SubMenu[2][1] = '<a href="hoge.html">SubMenu 1</a>';
にすればいいんじゃねーの?
SubMenu[2][1] = "<a href="hoge.html">SubMenu 1</a>";
はスクリプトの「"」とHTMLの「"」がかぶるので×。
908 :
896 :02/11/08 08:41 ID:???
JavaScriptのことで質問なんですが、リンクのところの文字に カーソルをかさねた時にフォームに文字がでるヤツについて、 文字が1瞬で出てしまうのではなくて、左から順に1秒くらいかけて出るようにするには どうすればいいですか? 言葉の使い方おかしかったらごめんなさい。
910 :
Name_Not_Found :02/11/08 22:09 ID:vp5OHpbV
911 :
age :02/11/09 08:53 ID:???
上(up)、下(down)の2つのフレームがある時、 上のフレームをボタンも押さないでリロードするJavascriptを 下のフレーム内に書く方法を教えて頂きたいのですが、、。 Bodyにonloadを入れてもMETAタグにtarget入れてもダメだったので、、。
>>911 「下のフレームのHTMLから上のフレームをリロードする」のは
parent.up.location.reload();
だけど、「ボタンも押さないでリロード」って言われても解らん。
下フレームのロードが完了した時とか
なんかのタイミングでリロードするんでしょ?ランダムなタイミングなのか?
913 :
911 :02/11/09 09:22 ID:???
>>912 下フレームのロードが完了した時です。
Bodyにonloadで入れられますかね?
>>913 入れてみな。下フレームのHTMLのbodyに
onload="parent.up.location.reload();"
って。
915 :
911 :02/11/09 09:31 ID:???
916 :
Name_Not_Found :02/11/09 11:03 ID:5LsDVHmx
<EMBED>タグについての質問です。 javascriptを用いて document.open() document.write("ここに<EMBED>タグを記述してMIDIを埋め込みたい") document.close() と思い、実行してみたのですが、なぜだかエラーになりプラグインが 正常に作動しません。 できたソースをそのままコピーしてHTMLファイルとしてオープンすれば まったく問題なく再生できるのですが、これはjavascriptの仕様の問題 なのでしょうか? もしよければ、アドバイスをいただけないでしょうか?
>>916 もしかして、ページを表示し終わった後で自分のページに対して
これをやっているの?document.open()した途端にそのページの
内容はJavaScriptコードも含めてすべてクリアされてしまうって
知ってる? <script>...</script>の位置に埋め込むのであれば
open()やclose()を削除してdocument.write()だけにすれば動作
すると思うよ。
もしdocument.open()をしたいのであれば、別窓や別フレームに
対して行うようにする。見せたくなければ隠しフレームとかでもいい。
質問です。 <html xmlns:v="vml1.0"> <style>v\:*{behavior:url(#default#VML);cursor:default}</style> <body> <v:line from=50,200 to=250,200 strokeweight=10pt></v:line> <script> function mm_Event(){ var wX = window.event.offsetX; var wY = window.event.offsetY; document.title="Pos :" + wX + "," + wY;} document.onmousemove=mm_Event; </script></body></html> マウスを動かし、座標を取るのですが、 線の上にカーソルを置くと、座標が正しく解釈されません。 どうすればスクリーンの座標を正確に解釈できるようになるのでしょうか?
919 :
Name_Not_Found :02/11/09 11:25 ID:5LsDVHmx
>>917 返信ありがとうございます。
私の場合は上下フレームに分けて、上側のフレームの中の
フォームに記述されたテキスト(タグを含む)を下側に
表示するというものなのですが、
下側にはフォーム内の内容を
<HTML>
<HEAD>
〜〜
</HEAD>
<BODY>
ここにフォーム内の内容
</BODY>
</HTML>
として表示させるという、いわばタグの練習用に作ったもの
なのですが、
<EMBED>タグだけがうまく作動しません。
(<EMBED>タグでもFLASHファイルなどを埋め込むのは正常に
作動します。MIDIファイルだとなぜだか動きません)
フレームの下にできたソースをそのままコピーして新たに
HTMLファイルとして作ってそれを開いた場合は問題なく
MIDIのプラグインを表示して再生することはできるのですが…
おそらく文法的には正しいのではないかと自分では思っている
のですが、やはり見落としがどこかにあるのだろうか…
もしよければアドバイスお願いします。
>>918 offsetX/Y はイベントの発生したオブジェクト内での座標。
ウィンドウ内での座標が欲しいなら clientX/Y。
自分の書いてるコードが何を意味しているのを調べた方がいいYO。
>>920 恐らく解決しました。ありがとうございます。
>>919 なるほど…とすると、MIDIプラグインの問題かも。ちょっと解決方法
については分からないです。
923 :
909 :02/11/09 14:12 ID:???
>>910 よろしければもう少し具体的にお願いできますか?
924 :
909 :02/11/09 14:17 ID:???
>>924 こうかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var str, count;
function show(s) {
document.forms[0].elements[0].value = '';
str = s; count = 0; setTimeout(step, 100);
}
function step() {
document.forms[0].elements[0].value = str.substring(0, ++count);
if(count < str.length) setTimeout(step, 100);
}
</script>
</head><body>
<form action="#"><p><input type="text"></p></form>
<p><a href="#" onmouseover="show('あいうえおかきくけこ')">test</a></p>
</body></html>
927 :
Name_Not_Found :02/11/09 23:05 ID:IIcxPvgy
今表示しているホームページが 見られているかどうかを調べるにはどうしたらいいでしょうか? おっと!意味不明だとかキレないで! setTimerでカウントダウンを表示するスクリプトを動かしているんだけど ブラウザを最小化したりタブブラウザなら他のタブに切り替わってて 表示されてない状態などではカウントダウンをストップしたい そんなことをやりたいのですよ
>927 window.onblur
心配するな、いつでもあんちゃんが見ていてやるから。
931 :
927 :02/11/09 23:38 ID:???
>>928 それだと、フォーカスを失っただけで発生するのでまずいです
フォーカスが無くても見えている状態のときはカウントダウンさせたい
そんなん無理だから 電波くんさよなら
>>927 トランポリン方式を使え。
おっと!意味不明だとかキレないで!
frame内のiframeのsrc URLを変えたいのですがうまくいきません。 frame内に変えたいURLが表示されるのみです。 JavaScriptエラーはでてないようです。 frame1とframe2があり、frame2に表示したHTMLの中にiframe1が あります。 <a href="javascript:self.iframe1.location.href='URL';">Go</a> <iframe name='iframe1' src='...'> ブラウザはMozillaです。宜しくお願いします。
935 :
Name_Not_Found :02/11/10 01:45 ID:0h2jo30M
テーブルのセルに入ってるテキストボックスの内容の縦/横それぞれの 集計を取るにはどうしたらいいのでしょう? ……まぁ、数値チェックを行った上でハードコーディングして全部足せば いいのは判りますが、テーブルの列数/行数(特に行数)がCGIで変化 するので、それになるべく左右されない方法があればと思い、こちらに お邪魔した次第です。 なにか情報をお持ちの方がいらっしゃいましたらアドバイスをお願いします(拝)
JSで別窓を開いて画像を見せるのですが その画像がみんなサイズが違うのです。 サイズの合わせてブラウザを開かせる指定などは可能ですか? 画像が100枚以上あってできれば一つ一つ指定しなくても scriptの指定でできればと思うんですが。
>>934 ×self.iframe1.location.href='URL';
○self.frames.iframe1.location.href='URL';
でどうよ?
939 :
903 :02/11/10 09:50 ID:???
>>905 さんにスレ返して戴いてたのですが返信遅くなりましてすみません。
<HTML><HEAD><TITLE></TITLE></HEAD>
<FRAMESET cols="70%,30%">
<FRAME src="parent.htm" name="main">
<FRAMESET rows="50%,50%">
<FRAME src="child1.htm" name="up">
<FRAME src="child2.htm" name="down">
</frameset>
<NOFRAMES><BODY></BODY></NOFRAMES>
</FRAMESET></HTML>
でpaerent.htm内のリンクをクリックすると
child1とchild2が同時に切り替わるようにしたいんですけど。
教えて君でごめんなさい。
940 :
903 :02/11/10 09:55 ID:???
子窓のターゲット属性まではわかるんですが 1つのリンク先で2つ同時に別のファイルにリンクしたいもんで・・・ なぜ1つにまとめないのかは上窓に画像で 下窓にテキストの解説が入る形式にしたいだけなんですけど。
>>934 関数作ればできるけど <a href="javascript: ではできないですね。winIE
理由はシラソ。
>>940 ----- parent.htm -----
<head>
<script type="text/javascript">
function Win(i, j) {
parent.up.location.href = i;
parent.down.location.href = j;
}
</script>
</head>
〜〜〜
<a href="javascript:Win('上に表示したいもの', '下に表示したいもの')">くりっく</a>
ボタンなら、
<input type="button" onclick="Win('上', '下')">
って感じで。
943 :
934 :02/11/10 12:49 ID:???
ありがとうございます。 <a href="javascript:...">をやめて <span onclick="...">にしたらできました。 ????
>935 計算もCGIでやらない理由は?
945 :
936 :02/11/10 13:15 ID:???
>>942 サンクスです。
こういう風に考えるのですね。
勉強になりました。
この手の質問は二度としません。
ありがとうです。
947 :
Name_Not_Found :02/11/10 17:05 ID:rHs81Itj
ウィンドウが次々開くタグおしえてけろ
>947 for文でも使え ↓はい、次の方どうぞー
>>947 タグだったらHTMLだからスレ違いですね。しかも窓を開きまくるのは
迷惑なんでやめて欲しいね。
ときに950踏んだ人新スレ立てよろしくね。
950 :
927 :02/11/10 17:54 ID:???
>>933 できました!
グーグルで検索してやっとさっき出来ました。
ありがとうございます
JavaScriptで別フレームのページ(CGIによって表示)をリロードしたときに リロード前まで見ていた場所へスクロールするようにpageYOffsetで位置を 保存しておいてscrollTo()で移動させたいのですが、reload()とscrollTo() を続けて書くとスクロールしてくれません。 reload()とscrollTo()の間にalert()を挟んだらできました。 ページを完全に読み込んでからでないとscrollTo()で指定した位置まで スクロールできないのでしょうか? 解決策あったらお願いします。
>>951 まあ最低限スクロールする位置までは描画してないと
スクロールのしようがないだろうなあ。
CGI出力HTMLの方で onload から scrollTo() 呼ぶとかは?
953 :
Name_Not_Found :02/11/10 19:32 ID:GmzZEVKu
DOMかなんかでDoctypeを後から指定したいのですが方法をお願いします。
>>953 DOM で doctype を指定できる唯一の機会は
DOM2 以降の DOMImplementation.createDocument による Document オブジェクトの生成時のみ。
生成済みの Document の doctype の変更は不可能。
document.doctype が readonly であるだけでなく
replaceChild や removeChild を使っても例外が発生する様に規定されている。
使ったことはないけど、DOM2ではDoctypeオブジェクトを作るのは document.implementatin.createDocumentType(文字列, 文字列, 文字列) でできるとしている。最初の文字列はqualified name、2番目がpublic identfier、3番目がsystem identifierだそうだ。それでDoctypeを作った 後どうするのかは知らない。
>>955 おいおい、document.doctypeはreadonlyとなっているけど?
しかしDOM2について蘊蓄を垂れたい奴が3人はいることが分かった。
>>950 はスレなんか立ててくれそうにないけどどうするよ?
みなさまありがとうございます。readonlyということは、 始めに宣言しておかなければいいということでしょうか。 それとも無理ということ?
>>958 最初からそのように決まっているので無理ということ。ときに
なぜ途中でdoctypeを変更したいのか聞かせて欲しいな。
>>958 文書型宣言がない場合は document.doctype は null で readonly。
>>959 むしろ compatMode を変更したがっている、に一票。
Doctypeの書き忘れやページに合わない指定かどうかを すべてチェックするのが面倒なので。
おおっとお、これはまた予想外な答えだったねえ。そんなスクリプト 組むよりこまめにチェックすれって感じ。ただ、チェックして駄目なら 「ダメ」とか画面にでっかく表示するとかならreadonlyでもJavaScriptで できそう。
WSH+JScriptで書けば1クリックでチェック・修正・保存まで 全部やってくれるのを作れたりするかな。 # 門外漢なので憶測
964 :
Name_Not_Found :02/11/10 21:33 ID:9TTpyceB
>>952 onload で対処しました。ありがとうございました。
967 :
Name_Not_Found :02/11/10 22:39 ID:3hPLrTLa
<BODY onUnload=゙window.open(location.href);゙> これでブラウザからWEB上のページは閉じられなくなる。 HTMLENCODERを使えばほぼ最強の秘密ページが完成する
969 :
. :02/11/11 09:35 ID:MY7gsXcK
CGIにかんする質問の板ってどこですか? 大変申し訳ないですが教えて下さい スクリプト バンザイ!
>>969 おまえなんか、WebProg板にこなくてイイ! (w
972 :
969 :02/11/11 14:45 ID:MY7gsXcK
すいません、CGI作成がうまいこといったので、教えてくれなくていいです。 お手数かけました。 (レスがなくってほっとしたw)
旧スレをあげないでほしいんですけど…
記念パピコV(^o^)V
>>973 只今1000ゲッター募集中につき age
976 :
Name_Not_Found :02/11/12 14:45 ID:Z1nRZFR2
1000get だれか次スレ貼って
978 :
Name_Not_Found :02/11/14 17:05 ID:+WqADvdz
次スレいつ立つの?
980 :
manma :02/11/14 18:26 ID:oLClPp5A
質問です。 初心者なんですが、 全角スペースのキー入力方法がわかりません。 日本語入力モードでスペースキーを押しても入りません。 どうやるんですか?
記念パピコV(^o^)V