+ JavaScript の質問用スレッド vol.30 +
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・FAQ・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
(質問時、回答時にはなるべく対象環境を明記しよう)
前スレ
http://pc5.2ch.net/test/read.cgi/hp/1087889503/l50 FAQ・過去ログ・関連資料・その他質問スレは
>>1-10
【質問を書く上で】
弱気な表現は避ける
弁解じみた表現は良くない。また、まわりくどい。
ex) 超初心者で何もわかりませんが……
<そんなことより自分で試したことをた方が答えやすい>
情報を小出しにしない
読み手は馬鹿にされた気分になる。
無駄な倒置も不要だ。
使用したブラウザ、バージョン、OSくらい書こう。
感情的にならない
何の説明なく決め付ける文はよい印象を与えない。
また態度の大きい人は嫌われる。
ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ>
無視するべきものは無視する
無能、知ったかぶり、宗教的主張、煽り、ぬるぽ等。
表記ミスに注意
内容がどんなにすばらしくても文字使いにミスがあると誤解を招く。
曖昧文は書かない
いくつにも解釈できる文章は絶対に書かない。
ex) ここではきものをぬいでください。
「」など無駄な強調は避ける
読みにくい。♪や顔文字も同様である。
ソースは要点を整理して出す。
そのまま貼って動かせると試してもらいやすい。
長い場合はアップロードしてURIを貼る。
setTimeout使って重い処理と軽い処理を同時にやらせたいんだけど、
下のようにやってもheavy()終了後にしかlite()を呼んでくれない。
setTimeoutって時間になったら処理を実行してくれるわけじゃなくて、
単に処理待ちの最後に予約を入れるだけってこと?
ブラウザはIE6.0です
var heavyEnd = false;
// 軽い処理
function lite(){
alert(heavyEnd); // trueが表示されてしまう。
}
// 重い処理
function heavy(){
for (var i = 0; i < 2000000; i++){}
heavyEnd = true;
}
function onclick(){
setTimeout(lite, 0);
heavy();
}
document.onclick = onclick;
>>8 そりゃそうだ、ブラウザ上のJSがマルチスレッドで実行されるっていう
わけじゃないから。重い処理をいくつかに分割して順次setTimeout()
で自分の続きを呼ぶようにしたらどうかな。
【FAQ】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. HTMLとCSSがきちんと理解できてない人にはDOMでの操作は難しいですね。
11 :
8:04/07/31 16:14 ID:???
>>9 マルチスレッドだと思ってたからスレッドセーフだとか色々難しく考えてた。
ありがと、楽になりました。
>>12 「0は規格外」はどこを見れば分かりますか。
14 :
8:04/07/31 16:40 ID:???
15 :
Name_Not_Found:04/07/31 16:48 ID:5O+9h8wu
test.htm
<SCRIPT LANGUAGE="VBScript">
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad",,True
Set WshShell = Nothing
MsgBox "おわったよん"
</SCRIPT>
test.vbs
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad",,True
Set WshShell = Nothing
MsgBox "おわったよん"
なんですがtest.htmを開くと
「オブジェクトがありません。'Wscript'」
というエラーが発生してしまいます。
なぜでしょう?
Windows Scripting Hostだから
>>15 ><SCRIPT LANGUAGE="VBScript">
IEの右クリックメニューって.htmしか呼び出せないの?
.vbsはだめ?
>>18 vbsでもtxtでもいいがhtmlとして解釈される。
どうせまたすぐセキュ穴指摘されて修正版出すんだろ・・。
23 :
Name_Not_Found:04/08/01 02:10 ID:P46FY6Lf
script要素について質問です。
<body>
〜中間色々なHTMLソース〜
<script type="text/javascript"><!--
obj = new Test();
document.write( obj.method1() );
--></script>
〜中間色々なHTMLソース〜
<script type-"text/javascript"><!--
document.write( obj.method2() );
--></script>
</body>
IE6ではオブジェクトが入ってる変数objが別の<script>要素内でも問題なく使えましたが、
他のIE/NN/Opera/safariなどでも使えるんでしょうか?
グローバル変数なら、変数を宣言した<script>要素以外のscript要素でも可能だと思いますが
ローカル変数としてしまうと、宣言した<script>要素内だけで参照できるというのが
仕様に忠実なブラウザということになるんですか?
それともスコープチェーンにscript要素は無関係で、関数内のようなスコープの変動をするわけではないのですか?
>>23 バグやブラウザ仕様も含めて、閲覧可能なスクリプトを目指してるのか、
仕様準拠はどうあるべきかという議論好きなのかハッキリしろい。
関数の中で宣言してるのでなければ、ローカルとグローバルの宣言に
ブラウザ間で違いは無かったと思ったが、それが正確な実装かは知らない。
25 :
23:04/08/01 03:00 ID:P46FY6Lf
>>24 すみませんでした。一応なるべく多くのブラウザで動作可能なものを目指してます。
<script type="text/javascript">
var a = 1234;
</script>
<script type="texr/javascript">
document.write(a);
</script>
少し例を変えてみました。これはIE6では
1234
と表示されますが、ほとんどのブラウザでも通用するのでしょうか?という質問です。
グローバル変数は通用すると思いますが、ローカル変数の場合は<script>要素ごとに
名前空間が別のものと解釈してしまうブラウザが存在するのでしょうか?(もちろんみなさんそんなブラウザご存知でしょうか?という意味です)
>関数の中で宣言してるのでなければ、ローカルとグローバルの宣言に
>ブラウザ間で違いは無かったと思ったが
script要素毎にスコープが切り替わってしまうようなブラウザは知らないといういみですよね?
ありがとうございました。こんな遅くにすみませんでした。
スコーンスコーンこいけやスコーン スコーンスコーンこいけやスコーン
パリっとさくっとおいしいサンコン
>>25 その「やってみろ」というのはありとあらゆるブラウザを
集めて自分でテストしろという意味なのか。それは意地悪杉
だろ。質問者は手元のIEでテストして、持っていない他の
ブラウザについてどうなのかこのスレで質問している。
それくらいでふつうだろ。
ちなみに複数の<script>...</script>間でもスコープが共通
というのはどっかに定められていたような気がするんだけど、
探してみたが見つからない。誰か知ってる人情報キボン。
>28
少なくともNN/Operaはタダで簡単に手に入るんだから、最低限それぐらいは自分で試してみるべき。
自分でやれる事まで丸投げはどうかと思う。
うーん、洩れは確かにGecko、IE、Operaの3つは手元に
置いて確認している。ブラウザの互換性について気にする
ならその3つくらいは入れておけってことか。
個人運営で見たくない香具師は見ないでいーよってサイトなら
自分が使ってるブラウザだけで確認して
他のは丸投げで良いと思うけどね
自分が使ってるブラウザでしか確認しないなら、丸投げでなく
「多くのブラウザで見られるように」という部分を諦めるのが当然。
漏れはIE以外切り捨て。
それってWin IEのみってことだよな。Mac IEは別物だし。
うん。
要するに糞スクリプト。
え
が
し
ね
40 :
Name_Not_Found:04/08/02 13:06 ID:ZxyXXCzP
すいません。webprog板から誘導されてきました。お願いします。
パスワードに関する質問です。
ユーザーIDとパスワードのログイン画面を作ったとき、IEやネスケで
「パスワードを覚えさせる」という問いに「はい」と答えてしまうと、
オートコンプリートが効いてしまい、次からの入力時にID入力しただけで
パスワードがはいってしまいます。JavaScript等でこのオートコンプリート
をパスワードの記憶確認のメッセージも出さずに全く無効にする方法はない
ものでしょうか?
できれば、IEとネスケでできれば・・・
すいませんあげますね。わかる方お願いします。
Javascriptとは関係なし
ブラウザの設定でオートコンプリートをOFFにしましょう
42 :
40:04/08/02 14:36 ID:???
>>41 お返事有難うございます。
説明不足ですいません。ブラウザの設定でオートコンプリート
がONでもOFFでも、強制的にOFFの状態にしたいのです。
例えば、HTMLの記述で、AUTOCOMPLETE="off" としても、
それを確認するダイアログがIEの場合、でてしまいます。
ああいったものを表示させずに強制的にオートコンプリートを
OFFにしたいのですが、やはり無理なのでしょうか。
43 :
Name_Not_Found:04/08/02 14:59 ID:573OAutV
みなさ〜ん、夏厨が来ましたよ〜〜〜
44 :
Name_Not_Found:04/08/02 18:48 ID:rC6zTqhN
>>42 <style type="text/css">
name{
ime-mode: disabled;
auto-complete: baka;
}
</style>
<script language="javascript">
alert("aho");
</script>
<input type="text" id="name">
<input type="password" id="pass">
>>42 よく考えろ。ユーザが「どうしてもこうしたい」と設定
しているものをOFFにできるようなスクリプトが書けるなら
そんな迷惑なものは誰もが切ってしまうに決まってるだろ。
洩れの推奨は<input type="password">をやめて別の方法
でパスワード入力させること。それだったらブラウザ側で
それを記憶させようとはしないから。
ブラウザによってはご丁寧に入力してくれるものもあるかもね。
CGI使って動的に入力画面を吐き出すとかはどうよ。
もち吐き出すページは少しづつ変えてオートコンプリートが貴下内容に知る
質問です。
<a href="リンク先のURL" onMouseOver="window.status=' '; return true">
<img src="bannar.gif" width="88" height="31" border="0" alt="サイト名"></a>
上記のように88×31のバナーにリンクを貼って、バナーの上にマウスポインタを乗せた時に
ステータスバーにリンク先のURLが表示されないようにしていたのですが、
先日サイト訪問者の方から「うちのブラウザではバナーが表示されない」という報告を受けました。
(「onMouseOver="window.status=' '; return true"」を使っているのはサイト内のその一ケ所だけです)
「onMouseOver="window.status=' '; return true"」を使うと、
閲覧環境によってはバナーが表示されない、なんてことはあるんでしょうか?
その報告して来た訪問者はIE6.0、WinXPの環境でサイトを見ていました。
広告消し機能のあるFWとかノートンとか使ってるだけじゃないの?
50 :
age:04/08/03 10:01 ID:???
window.confirm("登録してもよかとですか?")
で[OK][キャンセル]ボタンを
[はい][いいえ]
に変更することってできますか?
できません
それが出来たらすごく危険だってのが分からんのか
53 :
age:04/08/03 10:26 ID:???
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ | なんで危険なの? >52
ヽ:::::::::::::::::::. \/ ノ
例えば[OK] [キャンセル] を [いいえ] [はい] に変更できたとしたら・・・
[Y] [y]
56 :
age:04/08/03 12:39 ID:???
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ | できたとしたら? >54
ヽ:::::::::::::::::::. \/ ノ
あとは自分で考えよう!
ショーバイショーバイ
56にワロタ
60 :
Name_Not_Found:04/08/03 19:20 ID:KF2qVnuN
質問です。
ある要素の小要素の中から特定のモノを取得するメソッドを作ろうと
勉強していて、とりあえず、組み込みオブジェクトの Object に
Object.prototype.f = function(a,b){
return a + b;
}
として、
window.onload = function(){
var obj = document.createElement("img");
window.alert(obj.f(1,1));
}
と実験してみたところ、NN7では2がアラートされましたが、
MSIE5〜(Mac含む)では、そのメソッドは未定義、的なエラーになりました。
こういう場合、どのオブジェクトのprototypeに定義したらよいのでしょうか?
61 :
Name_Not_Found:04/08/03 20:20 ID:KOnTPFQB
あらかじめ<DIV>とかで用意されてない状態のHTMLで、
動的な画像の増殖ってできますか?
こう、ボタン押したら既存の画像がポン、ポンって出てくるような。
>>61 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function mk(s) {
var img = new Image(); img.src = s; document.body.appendChild(img);
}
</script>
</head><body>
<form action="#" onsubmit="return false"><p>
<input type="button" value="make" onclick="mk(this.form.elements.t0.value)">
<input type="text" name="t0" value="t0.png"></p></form>
</body></html>
63 :
61:04/08/03 22:05 ID:LZbbgRkS
> 62
感謝感謝感謝感謝感謝感謝感謝
フエタ━━━━(゚∀゚)━━━━━ッ!!
感謝感謝感謝感謝感謝感謝感謝
64 :
Name_Not_Found:04/08/03 23:31 ID:cMJtA9K/
ちょっと気になってるのでご教授ください。
フォームのアクション先をサブウィンドウで開きたいのですが、
JavaScriptで一度サブウィンドウをブランクで開いて、
そのウィンドウをターゲットにしてフォームをサブミットしてます。
こんな感じでいいですか?もっとスマートなやり方なんてあれば教えてください。
<form target="new_win">
とあるプロパティの値が変化したそのときに アクションを起こしたいのですが、
プロパティの変化を見張るようなイベントとかはありませんか?
例えば
window.location.href
window.location
document.URL
などの値が変化したときに関数を呼びたいのですが、onUnload に反応してくれません。
タイマーで定期的にチェックするしか方法はありませんか?
67 :
63:04/08/04 00:11 ID:OmplPyqn
>>64 レスありがとうございます。
それだと通常のウィンドウが開いてしまいますよね?
ツールバーとかアドレスバーが無いサブウィンドウで表示させたいのです。
68 :
60:04/08/04 00:30 ID:zv/fdIQn
よろしくお願いします。orz
>>68 JavaScriptのようなプロトタイプ型のオブジェクト指向
言語では「どこかに置けば必ず共通のメソッドと使える場所」
が保証されてるわけじゃないから。確実にやるなら
createElement()した後そのつどメソッドを設定したら?
>>69 どうもです。その後いろいろ調べてみたのですが、
Moz系は Object.prototype(または HTMLElement.prototype)を
全てのエレメントが継承してくれるようです。
逆に、MSIE は、Object() をコンストラクタに生成したオブジェクト
しか、駄目なようです。
ご多分に漏れず、getElementsByClassName メソッドを作ろうと
試みた訳なんですが… o...rz
>>70 そういう風に「集めて来る」なら全部のノードをたどって
集める関数を作って使う方が楽だし確実だと思うけどね。
>>66 locaiton.hrefが変化するときっていうのは別ページへ移動する
から現ページのスクリプトはすべて実行を強制停止させられるよね。
別フレーム/別窓から監視するってこと?にしても、ふつう、
onunloadかonbeforeunloadで済むところだけど。とんでもない勘違い
を何かしてるんじゃないですかね?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function init() {
window.onunload = function() { alert('Unload'); }
window.onbeforeunload = function() { alert('Before Unload'); }
}
</script>
</head><body onload="init()">
<p><a href="
http://www.yahoo.com">Yahoo</a></p>
</body></html>
>>71 やっぱそうですかねー。
今、手元で関数版 getElementsByClassName は出来ていて、
引数に、タグ名とクラス名をとって要素を検索して配列で返す
ようにしているのですが、検索対象が document に限定されちゃうし、
class 名をスペースで区切って検索しなきゃいけないので、
ループの回数も馬鹿にならないような気がして考えてみました。
ともあれ、ありがとうございました。
74 :
Name_Not_Found:04/08/04 18:22 ID:/Gu2sMUa
JavaScriptは普段さわっていないので見当違いな質問かもしれませんが、
ウインドウのfocus()はせずにテキストフィールドのfocus()のみをしたいです。
setIntervalを使って一定時間ごとにFORMのテキストフィールドにfocus()しておきたいのですが、
ウインドウが背面にいるときでもfocus()が動いて前面に切り替えられてしまいます。
ウインドウにfocus()したいのではなくその中のテキストフィールドにfocus()しておきたいだけなので
ウインドウが背面にいるときに前面にしてほしくありません。
IEを別プロセス(?)で立ち上げているとウインドウは背面のまま切り替わらないのですが、
Ctrl+N等で子プロセスとして起動した場合は背面から前面に切り替えられてしまいます・・・。
75 :
74:04/08/04 18:38 ID:???
補足です。
「別プロセス」や「子プロセス」で立ち上げているウインドウは自作ソースと関係ない内容を表示しているウインドウです。
自作ソースを表示しているウインドウとYahoo!等を表示しているウインドウの二つを立ち上げているときに
別プロセスで表示しているウインドウが前面に来ていても切り替えられることはないのですが、
子プロセスのウインドウで他サイトを見ている場合には背面のウインドウ(自作HTML)を前面に切り替えられちゃう、という感じです。
>>74-75 あんたはWindowsのユーザインタフェース部分を全部改造
するしかないようなことを要求してるね。無理ぽ。むしろ
UNIX/Linuxにでも乗り換えればできるかもよ。
>>74-75 とりあえず、そのテキストフィールドにフォーカスを当てて
何をしたいのかを聞こうか。
78 :
Name_Not_Found:04/08/04 21:10 ID:/Gu2sMUa
>>77 二つのフレームに分けたページで、上フレームにはFORM、下フレームには書き込んだ結果を表示してます。
で、ユーザが入力する際にはテキストフィールドをクリックさせる手間をできるかぎりなくしたいという要望から、
指定のテキストフィールドにfocus()させる動作をsetIntervalで入れてみました。
このIE単独で使用していたり、別プロセスで立ち上げたIEのときは思ったとおりに動いてくれますが、
このIE(ウインドウ)からCtrl+Nなどで開いたIE(ウインドウ)が前面にきていると、
setIntervalで背面にしていたウインドウがfocus()されて前面に出てきてしまうのです。
ウインドウの表示に関係無くテキストフィールドにfocus()できたらな〜と思ったので・・・。
JavaScriptでウインドウが最前面にいるかどうかって判断できますか?
それができるならウインドウが背面にいるときはfocus()しない、って方法もできるかも?
>>77 onfocus、onload、onmouseup、onkeyup あたりでエレメントにfocus()して
やれば事足りるのでは?
80 :
77:04/08/04 21:23 ID:???
81 :
Name_Not_Found:04/08/04 21:51 ID:/Gu2sMUa
>>79 結局、setInterval時のfocus()は外してonLoad時とユーザーアクションのときだけにしちゃいました〜(´ー`;)
onLoadではすでに入れてあって、onFocus・onMouseup・onKeyupでやると、動作に不安がのこるというのと
あまり効果は少ないようなので・・・
ありがとです。(^ー^)
82 :
66:04/08/05 00:51 ID:???
>>72 onbeforeunload でいけました。ありがとうございます。
表現が 分かりにくかったようで すいません。
私がしたかった事は、ページ上のどこかに
<script type="text/javascript"> window.location.href = "
http://www.google.co.jp/"; </script>
のよう部分があった時に、ページが切り替わる前に関数を呼びたかったということです。
この場合
<body onunload="test();"> ではだめで、 <body onbeforeunload="test();"> ではうまくいきました。
onbeforeunload というイベントがあるのを知りませんでした。
またIE専用か。
84 :
66:04/08/05 01:55 ID:???
>>83 IE6.0 と Firefox0.9.2 では onbeforeunload は動作しました。
専用というわけではないようです。
いつからかよく分からんけどGeckoはonbeforeunloadを
サポートしているよね。
>>85 20040210頃のビルド以降からなので、
stableなものではMozilla1.7/Firebird0.9以降かと。
んでOperaはどうすんの?
Operaはonbeforeunload対応していないね。で、Operaを捨てるか
何とかするか決めるのは質問者の裁量なんでしょ。
>・対象環境や使用技術は質問者の裁量であることを理解する者
洩れ的には「IE専」は恥ずかしいけど「IEとGeckoのみ対応」は
まあいいんじゃないのっていう気分だね。人それぞれだろうがね。
つーか普通に書けばIE・Moz・Opera対応は当たり前じゃん・・・
みんなどんなコード書いてんだ?
>>90 そうだけど、今回の場合onbeforeunload使いたかったんでしょ。
あとイベント系とDOMスタイルシート系はIEが標準準拠してないから
「普通に」じゃなく「意識して」振り分けないと。
92 :
Name_Not_Found:04/08/05 14:20 ID:P3EMSDun
クライアントサイドでドラクエが実現できるぐらいすごいスクリプト
ドラえもんでよければ(画像があれば)表示できます。
テーブルアートでドラえもん描いて
JavaScriptで動かせねーかな(w
>>94 ドラえもんじゃなく四角だけどホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var w = 6, h = 6, x = 0, y = 0, dx = 3, dy = 7;
function step() {
var t = document.getElementById('t0');
var ix = Math.floor(0.1*x)%(w+2)-1, iy = Math.floor(0.1*y)%(h+2)-1;
for(var j = 0; j < h; ++j)
for(var i = 0; i < w; ++i)
if(i >= ix && i < ix+2 && j >= iy && j < iy+2)
t.rows[i].cells[j].style.backgroundColor = 'red';
else
t.rows[i].cells[j].style.backgroundColor = 'white';
x += dx; y += dy;
}
</script>
</head><body onload="setInterval(step, 100)">
<table summary="test" border="2"><tbody id="t0">
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
<tr><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th><th>○</th></tr>
</tbody></table>
</body></html>
onloadについて質問です。
onload="aaaa()"
と書くと思いますが、onloadに2つ以上書きたい場合、
onload="aaaa();bbbb();cccc();"
という書き方でいいでしょうか?
99 :
94:04/08/05 17:38 ID:???
>>97 こんなやり方も。
window.onload = function(){
//ここにやりたいこといくらでも好きなだけ書いてくれ。
}
彼女とやりたい。
ゃぁ…生理来てるからダメだってば…
window.onmenses = function() { location.href = '別の彼女'; };
♀のブラウザにのみ実装されております。
>>96 あれぇ?僕のFireFoxだと動かないぞ??
106 :
質問:04/08/05 23:23 ID:???
過去ログで見つけられなかったので質問します。
document.form.test(i).value のような感じでtextboxのオブジェクト配列を持っているとき
現在選択されているtextboxのインデックスを取得するにはどうすればいいのでしょうか?
お願いします。
>>106 選択というのはselectionなのfocusなの?focusならonfocusと
onblurで何番のがfocusされてるか追跡するんじゃないの。
場合によっちゃ onfocus でthisを保存しとくとか
後でそのオブジェクトにアクセスしたい場合とか
企業ページで無ければ、Operaなんてサポートしてもコストに合わないな。
エレメントの値取得、書き換えさえバグがあって。
俺はOperaユーザだけどOperaでjs使ったページが正しく動くなんて思ってないから
対応してくれなくても別にどうとも思わない。 IEで開き直せばいいだけだし。
本物の走りを見たいんか?
113 :
Name_Not_Found:04/08/06 10:16 ID:Gooa9VSH
すいません、まだJavaScript初心者です。
質問なんですが、
PHPでプログラムを作っているのですが、
Form内に複数あるname属性が可変な(PHPの変数がはいる)ラジオボタンを、
一斉に変えたいんですが、どうもうまくいきません。
具体的なソースは下のような感じ。
<input type="button" onclick="func" value="ここをクリック">
<input type="radio" name="<?php echo $groupCode ?>" value="rw" >
<input type="radio" name="<?php echo $groupCode ?>" value="r" >
また、Form内にはtextareaなんかもあって、radioボタンだけではないんです。
ラジオバタンの数も可変ので。。。
下は、自分で考えたソース。。。どうも動かない・・・
function func(){
for(i=0; i < document.catsel.elements.length; i++){
if(document.catsel.elements[i].type = "radio"){
if(document.catsel.elements[i].value = "rw"){
document.catsel.elements[i][0].checked = "true";
}
}
}
}
114 :
Name_Not_Found:04/08/06 10:25 ID:V+0Viw/B
>>113 等価比較演算子は = ではなく == だ。
それから checked の値は "true" ではなく true。
116 :
113:04/08/06 11:00 ID:Gooa9VSH
すいません、初歩的な間違いで。
修正しましたが、動きません。
elements[i][0] って何?
119 :
113:04/08/06 11:17 ID:Gooa9VSH
>>118 ラジオボタンを指定するには、
name属性と、いくつめのラジオボタンかを指定する必要があるのではないんですか?
<input type="radio" name="<?php echo $groupCode ?>" value="rw" >
<input type="radio" name="<?php echo $groupCode ?>" value="r" >
上の二つを識別する通し番号のつもりなのですが。
elements[i][0]が、valueがrwのラジオボタンで、
elements[i][1]が、valueがrのラジオボタンを指すと考えていますが。
認識が間違ってますか?
>>119 elementsから数字でアクセスされるものは個々のコントロール。
elements[name]でアクセスされるような名前でグルーピングされたコントロール群ではない。
>>119 質問がちょっとまだ曖昧すぎるかな
>ラジオボタンを、 一斉に変えたいんですが
変えるとは?コード見る限り任意のものにチェック入れたいのだろうけど
ラジオボタンは排他的選択しかできないから「一斉」という表現はおかしい気が
document.catsel は親のForm要素だよね?
だったらdocument.catsel.$groupCode でOKな気が
122 :
113:04/08/06 12:43 ID:Gooa9VSH
>>121 すいません。
まず、ラジオボタンが以下のような感じで並んでいると思ってください。
○ ● ○ Group0
○ ● ○ Group1
○ ● ○ Group2
○ ● ○ Group3
デフォルトは、真ん中にチェックはいってます。
1行の3つのラジオボタンは同じグループ(name属性が一緒)です。
ここで、ボタンを押すと、
下のような状態にしたいわけです。
● ○ ○ Group0
● ○ ○ Group1
● ○ ○ Group2
● ○ ○ Group3
これで、わかるでしょうか?
name属性は、いくつになるかわからないですし、
113で書いたソースのようにPHPの変数が入るようになっています。
for(var i=0, x=document.castel.elements; i<x.length; i++){
if (x[i].type == "radio" && x[i].value == "rw") x[i].checked = true;
}
124 :
113:04/08/06 14:02 ID:Gooa9VSH
>>123 うまく実装できていないのか、それでも動きません。
ブラウザ:IE6.0
OS:WinXP pro
>>123 name でアクセスしないのがいいんじゃない?
例えば一列目だけ全てチェックする場合、
<ul id="hoge">
<li><ラジオ><ラジオ><ラジオ>文字列</li>
<li><ラジオ><ラジオ><ラジオ>文字列</li>
:
<li><ラジオ><ラジオ><ラジオ>文字列</li>
</ul>
var tmp = document.getElementById("hoge").getElementsByTagName("input");
for(var i=0 ; i<tmp.length ; i++){
if(i%3 == 0) tmp[i].checked == true;
}
name は関係ないので、php でお好みのものを付ければ。
ほらよ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html><head>
<title>test</title>
<script type="text/javascript">
function chkradio(){
var f = document.getElementById('myform');
var fe = f.elements;
for(var i=0; i < fe.length; i++){
if(fe[i].type == "radio" && fe[i].value == "A") fe[i].checked = true;
}
}
</script>
</head>
<body>
<form id="myform" name="myform">
[Group0]<input type="radio" name="foo" value="A">A <input type="radio" name="foo" value="B" checked>B <input type="radio" name="foo" value="C">C<br>
[Group1]<input type="radio" name="bar" value="A">A <input type="radio" name="bar" value="B" checked>B <input type="radio" name="bar" value="C">C<br>
[Group2]<input type="radio" name="baz" value="A">A <input type="radio" name="baz" value="B" checked>B <input type="radio" name="baz" value="C">C<br>
<input type="button" onclick="chkradio()" value="chkradio">
</form>
</body></html>
リンクをクリックした時に出る枠を消したくて
<a href="〜" onClick="blur();">
としました。
ウィンドウが一つのときは問題がなかったのですが、
リンククリックで新しいウィンドウ(windowB)を開いて
その中のリンクにもblue();をつけました。
そうしたらMacのNC4.7だと
windowBのリンクをクリックする度に
windowBが背面へまわってしまうのです。
windowBの中で展開したいのでコレだと困ってしまうのです。
枠を消しつつwindowBを背面にまわらせない方法はありますか?
そんなことして何か価値ある?
よーく考えてごらん、まったく無駄な行為だよ
129 :
127:04/08/06 16:14 ID:???
windowBの中でページは切り替わらずにリンクをクリックしたら、
配置してある画像を切り替えるという動きなので
枠が残ってるとかっこわるいかなと思ったのです。
動き自体は出来ているので無駄な行為と言えば無駄な行為ですね(・∀・)
130 :
113:04/08/06 16:18 ID:Gooa9VSH
>>125,126
丁寧に答えてくださって、ありがとうございます。
なんとか、動くようになりました。
w
133 :
Name_Not_Found:04/08/07 00:58 ID:iF49nsrC
質問
<frameset>
<frame name="left" src="left.htm">
<frame name="right" src="right.htm">
</frameset>
で、left.htm内に<iframe name="tips">という、1ページに3枚ウィンドウがある状態で、
right.htmでボタンを押すとtipsにファイルが読み込まれるようにするにはどうすればいいでしょうか。
普通にopen('test.htm','tips')でIEはOKなのですが、Operaだとtipsという新しいウィンドウが開いてしまいます。
top.left.tips.open(url);でもだめな様子。
>>133 top.left.tips.src = url;
動作確認はしていないが
135 :
Name_Not_Found:04/08/07 04:17 ID:orLZX64T
>>134 top.left.tips.location.href=url;
動作確認はしてないが
Macのドックの効果を再現したようなスクリプトはないですかね?
海外も探しましたが見つかりません。
137 :
Name_Not_Found:04/08/07 09:26 ID:ggg1aAQP
ハイパーリンクの前に<input type="checkbox">をつけて
リンクをクリックするとチェックが入るようにしたいのですが
どうすればいいでしょうか?
>>137 GoogleのTopで使ってるようなやつか?
>>137 何をやりたいのかよくわからん。そのリンクをクリックしても別のページに飛ばさずチェックだけ付けたいのか
リンクをクリックするとチェックした上で飛ばすのかで変わってくる。別のページに飛ばさないのなら
<input type="checkbox" name="NAME" id="ID" value="VALUE"><a href="javascript:void(0);"><label for="ID">TEST</label></a>
というか
>>137は<label for="ID"></label>を知らなかっただけだったりして?
140 :
Name_Not_Found:04/08/07 10:51 ID:ggg1aAQP
即レス有難う御座います。
リンクを巡回するためのチェックボックスなので、
>リンクをクリックするとチェックした上で飛ばす
ことが必要です。宜しくお願いします。
>134-135
あー、locationへ行ったか。
頭が固かった。thx!
>>140 と言うことは、飛ぶ先は新しいウインドウの方が都合が良いのかな?
function testfunc(xxx)
{
if(document.getElementById(xxx).checked == false)document.getElementById(xxx).checked = true;
}
と
<input type="checkbox" id="ID"><a href="URI" target="TARGET" onClick="testfunc('ID')">TEST</a>
でどうかな。
TARGETはそのままでもいいし_blankでもいいし。好きな方で。
関数名とかは適当なんで好きに変えてくれ。
143 :
Name_Not_Found:04/08/07 16:04 ID:abpyxjmB
onSubmitで連続クリックを防止するにはどのように記述すればよいでしょうか
Button1.enable := false;
:-)
>>143 まずは検索の仕方を覚えたらどうだね?
「JavaScript 二重送信」で検索してみな
149 :
Name_Not_Found:04/08/07 18:27 ID:ggg1aAQP
>>142 お陰様で上手くいきました。有難う御座います。
Javascriptで$aなどのperlの変数を扱うことはできますか?
出来ると思うのかね?
152 :
Name_Not_Found:04/08/07 19:14 ID:abpyxjmB
間接的にできそうなきがするんですが
普通にできないんだったらどうにかしてください
やだ。
>>150 具体的にどういうことがしたいのか書いてみれば。そもそも
CGIはサーバ上で動いて、その結果生成されたものがブラウザ
に送られて来て作用する、JavaScriptコードもその一部なわけ
だよね。ということは、Perlの変数の内容も送られて来た時点
ではもう展開ずみなわけだが。でもやりたいことによっては
その値をどっかに入れて扱うとかできることはできる。とに
かく具体的なやりたい内容によるよ。
156 :
Name_Not_Found:04/08/07 23:04 ID:abpyxjmB
>>155 さきほどsubmitを連クリできないようにする方法を教えていただいたのですが
もし連クリが行われた場合、$sogoに66という数字をいれるように動かしたいです
>>156 あのさあ、連クリ制御はJavaScript、つまりクライアント側だよね。
そして$sogoという変数はCGI上にあるんだよね。クライアント側
からサーバ側に具体的にどうやって情報を渡すつもりか書いてよ。
念力や超能力という回答は遠慮するからね。
俺は超能力でcookieに入れるかな。
俺はハンドパワー使えるから。
俺なんか手でキーボード打っちゃうよ、ホレホレ。
俺も手をキーボードで打てるぞ。
俺は指だぜ!
163 :
Name_Not_Found:04/08/08 11:58 ID:OqX2+r1L
JavaScript でIPアドレスやリモートホスト名を扱うには
どうすればいいのでしょうか?
164 :
Name_Not_Found:04/08/08 12:01 ID:OqX2+r1L
>>163 すみません。IPアドレスやリモートホスト名を取得する方法に
関する質問です。
取得できません
ゴールデンハンマーでゲットして下さい。
167 :
Name_Not_Found:04/08/08 21:42 ID:QdXZk3Gv
167
>>163 ASP
<%
rm_addr = Request.ServerVariables("REMOTE_ADDR");
rm_host = Request.ServerVariables("REMOTE_HOST");
%>
>>156 <input type=hidden name=sogo>
を用意して連クリされたら
document.myform.sogo.value = 'hoge';
とか何でもいいから値代入して
CGI側でクエリ参照するしか無いんじゃないの?
と思ったけど、連クリ判定するのはsubmitした後だからタイミング的に無理かも。
同一ホストからx秒以内の呼び出しを連クリと判断するとか。
170 :
Name_Not_Found:04/08/09 01:13 ID:6WF9N2Im
かちゅ〜しゃのスキンを作っていて、その上で文字列をいじくりたいのですが、
Shift_JISだと正規表現がうまくマッチしない場合があり、困っています。
euc-jpにいったん変換してから処理し、Shift_JISに戻したいと思ったのですが、
Shift_JISとeuc-jpのコード変換をする関数ってどうやったらいいのでしょうか?
そんなあなたにunicode
>>170 JSだけでやる方法あればいいんだけどね。
>>170 >Shift_JISだと正規表現がうまくマッチしない場合があり、困っています。
script要素の前で
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
を記述してる?
')
なになに? かちゅってAとaを同じものと認識するようにしてるわけ? アフォじゃん。
> なになに? かちゅってAとaを同じものと認識するようにしてるわけ?
誰がそんなこと言ったんだ? お前こそ アフォじゃん。
今まで見たスゴイスクリプト挙げてよ
過去スレvol.16の190-232番。これは通常のページをリロードせずに
フレームの中に入れるというもので、そんなことができるのかと驚愕した。
180 :
Name_Not_Found:04/08/09 19:13 ID:/rephvwd
ご存知の方ご教示願います。
以下のようでは
if(parent.フレーム名.document.location=="'basket.html"){
parent.フレーム名.document.location='basket2.html'
}
locationの条件になってしまいます。
ファイル名を条件にしたいのですが、可能でしょうか。
可能であればご教示願います。
181 :
172:04/08/09 19:38 ID:???
どうしてしft_じsだと近藤真彦しないの?
>>180 質問の内容が理解できないので、ソース内容からの推測でしかありませんが、
ファイル名を条件としたい、ということは「location」の末尾が「basket.html」と
なっているかどうかを判断したいということでしょうか。
おそらくパスが変わっても正常に動作するように、とのことなのでしょうが、
locationを「/」で分割し、ファイル名をチェックすればよいのではないでしょうか。
var path=window.location.href;
var file=path.substring(path.lastIndexOf('/',path.length)+1,path.length);
183 :
Name_Not_Found:04/08/09 20:13 ID:/rephvwd
言葉足らずで申し訳ありませんでした。
フレームで表示しているファイル名を知りたかったのです。
分割の方法でやってみます。
ありがとうございました。
184 :
Name_Not_Found:04/08/09 20:49 ID:D2FPJOus
明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。
日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。
1.努力を放棄すること
いやしくも「教えてクン」たるもの、努力をしてはならない。
過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。
辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、
他人の努力の結果を搾取するのが、正しい「教えてクン」である。
また、「もう何が悪いのかサッパリ分かりません。」と言って
ふてくされるのも有効である。「サッパリ」という単語が
「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと
自己の積極性が現れてしまうので、「教えてクン」失格である。
2.情報を開示しないこと
使用OSや、機器構成などの必須の情報を知らせてはならない。
マザーボード名やBIOSのバージョンも同様だ。
具体的なアプリ名やバージョンも隠蔽すべきだ。
「DVD再生ソフト」のように曖昧に表記しておけばよい。
反対に「前から欲しいと思っていた○○」とか「安売りされていた
○○」 等の「どうでもいい情報」は、どんどん書いてやれ。
トラブルの場合は、状況を正確に記述してはならない。
「なんだかうまく動きません。」とか「エラーが出ます。」等と
具体的なことは何も書かないことが重要である。
また、自分の試してみた事も具体的に書いてはいけない。
考えられる組合せのマトリックスを作成し、状況を整理するなど
もってのほかである。最悪の場合、それだけで問題が解決してしまう
こともあるのだ。
「いろいろやってみたけど、動きません。」が理想的だ。
3.答える人間のことを考えないこと
「教えてクン」は、孤高の戦士である。相手のことを考えるようでは
教えてクン失格というものだ。
以下のような行動が、望ましい。
初心者であることを高らかに宣言し、初心者向けの丁寧で
分かりやすい説明を強要する。専門用語の使用を禁じておくと
さらに効果的である。簡潔な説明を禁じられたヲタクどもは、
同じ内容を説明するのに、何倍もの労力を強いられる。
自分は努力せず、相手には多大な努力をさせることこそが
「教えてクン」の真骨頂である。
マルチポストも有効である。そのBBSを信用していないことを
明確に示せる。「どうせ、お前らじゃ分からんだろう。」という
意志表示として高く評価できる。もちろんマルチポストの非礼を
あらかじめ詫びてはならない。それでは、単なる「急いでいる人」
になってしまう。それは、教えてクンではない。
質問のタイトルは、「教えてください。」で良い。
タイトルを読んだだけでは「何に関する質問」か全く分からない。
そういう努力は、答える人間にさせれば良いのだ。
とにかく、答える人間が答えやすいように気を使って質問しては
ならない。傲慢で不遜な態度が必須である。
「聞きたいことがあります。」など、プロの仕事であろう。
最後に、言うまでも無いことだとは思うが、答えてくれた人達に
お礼の言葉を返すなど言語道断である。
せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っている
ようでは、臥竜点睛を欠いていると言わざるを得ない。
質問だけしておいて、後はシカトが基本である。
上級テクニックとして、「そんなことはもう試しました。」とか、
「そこまで初心者じゃありません。」などと言って、回答者の
神経を逆なでしておけば完璧である。
以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。
ビバ!教えてクン! 教えてクンに栄光あれ!!
そのサイトのURI貼ってよ、直接見てみたいな。
190 :
185:04/08/09 21:41 ID:???
<body onload="alert('ぬるぽ')">
<form>
<input type="button" value="1回100円" onclick="alert('ガッ! >> body')">
</form>
ツマンネー
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var t = 1000, n = 1; c = 0, msg = ['ぬるぽ','ガッ!'];
function gen() {
var e = document.createElement('div');
e.style.position = 'absolute'; e.innerHTML = msg[c]; c = 1 - c;
e.style.left = Math.floor(1000*Math.random()) + 'px';
e.style.top = Math.floor(800*Math.random()) + 'px';
document.body.appendChild(e);
}
function step() {
if(t > 5) { gen(); t = Math.floor(t * 0.95); setTimeout(step, t); }
else { for(var i = 0; i < n; ++i) gen(); ++n; setTimeout(step, 5); }
}
</script>
</head><body onload="setTimeout(step,1100)">
</body></html>
ダセー
禿道
DOM 使うなら、innerHTML は ダセー
いいじゃん動けば。
>>195-196 どっちにしようかと思ったんだよな、でも短い方を選んじゃった。
e.appendChild(document.createTextNode(msg[c])); だよね。
198 :
Name_Not_Found:04/08/10 14:26 ID:ejsgMkGU
<li>を使わずに番号を振る方法はありますか?
>>198 1. テキストで直に番号を振る(ベタ書きまたはサーバサイドで処理)
2. スタイルシートで指定
3. クライアントサイドスクリプトで文字列処理
3.を選ぶならこのスレの範囲内。環境依存しないのは1。
200 :
Name_Not_Found:04/08/10 14:50 ID:ejsgMkGU
>>199 レスありがとうございます。
具体的にはIDに番号を自動的に振りたいのですが、
DOMを使わないとダメでしょうか?
スタイルシートは初耳です。少し探してみます。
>>200 「番号を振る」という意味が不明なんだが…。たとえば
id="i01" id="id01" ... というふうに連番でidを振るのなら
それは<LI>ではできないけど。なんで<LI>が関係あるのか
よく分からん。そして次に「どういう要素に」順番に振る
わけ? すべての要素に手あたり次第に振るとか?
一行質問は無視でいいよ。
203 :
Name_Not_Found:04/08/10 16:01 ID:ejsgMkGU
><li>を使わずに番号を振る方法
という訊き方が悪いようですね。
要するに簡単かつ自動的に連番を振る方法なのですが
具体的には先日見つけた
>>142を
JavaScriptで生成させたいのです。
例えばこういう風に
<td>番号</td><td><input type="checkbox" id="番号"></td><td><a href="配列1" onClick="testfunc('番号')">配列2</a></td>
DOMで振る方が簡単ならそちらでも良いので
宜しくお願いします。
>>203 あんたの脳内の「簡単かつ自動的」がまったく説明されてないので誰にも
分からないんだってば。そんなのdocument.write()でどーにでもなるだろ。
あんたの訳わからんサンプルから「番号」だけループ変数化したがこれでいいのか。
<table summary="test"><tbody><script type="text/javascript">
for(var i = 1; i < 100; ++i) {
document.write('<tr><td>' + i + '<\/td><td><input type="checkbox" id=" + i + '">');
document.write('<\/td><td><a href="配列1" onclick="testfunc(\''+i+'\'">');
document.write('配列2<\/a><\/td><\/tr>');
}
</script></tbody></table>
ちなみにidを数字だけにすんのはinvalidだから何が起きようと知らん。
これが読めないのなら何説明しても無駄だからひとりでおとなしく勉強すれ。
さいなら。
205 :
Name_Not_Found:04/08/10 16:59 ID:ejsgMkGU
206 :
Name_Not_Found:04/08/10 17:03 ID:ejsgMkGU
↑取り消します。
リンクは上手くいきました。
207 :
Name_Not_Found:04/08/10 17:12 ID:ejsgMkGU
ただfunction testfuncが機能していないようで
チェックが入りません。document.getElementByIdなので
JavaScriptで書き出されたリンクはdocument.getElementByIdでは
ダメなのでしょうか?
>>207 そんなのダメなわけがない。振ったIDと関数が使うIDが一致してない
とかが一番ありそうだけどな。あとFAQ
>>10 のQ5/A5は大丈夫なのか。
おっと、
>>204 のループ内の1行目、「'」が1個抜けてるよな、5個しか
ないもんね。それも大丈夫?
209 :
ど素人:04/08/10 18:00 ID:4hEzz08p
すいません。皆様にお聞きしたい事があるのですが、パソコン上にあるスクリプトの解析
というのはどうやったらできるのですか?知識がいるのはわかってるんですが、どうしても
パスワード入力して見てみたいサイトがあるので。
210 :
Name_Not_Found:04/08/10 18:02 ID:ejsgMkGU
懲りずにお付き合い頂けて幸いです。
DOMのせいではないということですね。
ちょっと時間が掛かりそうなので、ソースを張っておきますので、ご指摘を頂けると幸いです。
<html><head><title></title>
<script type="text/javascript" src="address.js"></script>
<script language="JavaScript">
function testfunc(xxx){ if(document.getElementById(xxx).checked == false)document.getElementById(xxx).checked = true;}
</script></head><body>
<table border="1" cellpadding="0" cellspacing="0" summary="test">
<script type="text/javascript">
for(var i = 0; i < 9; ++i) {
document.write('<tr><td>' + i + '<\/td><td><input type="checkbox" id="'+ i +'">');
document.write('<\/td><td><a href="'+linkURL[i]+'" target="_blank" onclick="testfunc(\''+ i +'\'">');
document.write(linkName[i]+'<\/a><\/td><\/tr>');
}
</script></table></body></html>
>>209 パスを破る方法が知りたい、というのなら、
まず、おまえさんのカードの番号やら利用期限やらを教えてくれ。
話はそれからだ。
>>210 そのonclickのところ、文字列の中で改行されてるとまずいかも。
そゆときはdocument.write()を複数に分けたら?
>>210 多分関係ないが、id は数字で始まってはいけません。
214 :
Name_Not_Found:04/08/10 19:02 ID:ejsgMkGU
)が抜けていただけでした。
出来ました。ありがとう
216 :
Name_Not_Found:04/08/10 19:38 ID:ejsgMkGU
何の誰ですか?
あんちゃんを忘れたのか!この恩知らずが!とっととくたばっちめえ!
218 :
Name_Not_Found:04/08/11 03:48 ID:p2bRye2O
あんちゃんはとっととくたばった。
草葉の蔭からおめえらを応援してるだよ〜。
>>216 質問したレス番を名前欄に書けって言ってるんだよこのタコヤキマントマン。
おまえが何の質問したヤツかID検索しねーと解からねーだろうがこのぱっきゅんこ。
あと質問はageていいけどレスの時はsageでやってくれ。
ageとsageが分からないなら分かるまで2度とくるな。
222 :
Name_Not_Found:04/08/11 15:23 ID:gY1Ox1Y1
javaスクリプトの解説サイトをかなり調べてみたんですが
どうしてもわかりません。どなたかお教えください。
http://www.sekisuihouse.com/products/steel2/index.html このページで使われているスクリプトなんですが
商品名をクリックするとページ下へ自動スクロールし、ゆっくり停止
右横のPAGE TOPという小さい画像をクリックすると
ページの先頭へ自動スクロールし、スピードダウンして停止する、というものです。
ただページの先頭などにポンッと飛ばすのはわかるんですが
自動スクロールしてゆっくり停止、というのが、どうしてもわかりません。
どうかお教えください。よろしくお願いいたします。
>>222 過去スレvol.13の440-441。
>>223 右、左 は逆に動くし 右端 を押すと画面から消えちゃうね。
スクリプトに間違いがあるか古いブラウザでないと動かないのか…
225 :
222:04/08/11 16:28 ID:???
>>223さん
ありがとうございます。
過去ログにあったんですね(汗
やってみます、、
>222のリンク先のソースをパクったほうが早いと思ったけどjsファイルが
見れないようになってる… でもブラウザで実行出来てるんだがらなんとか
すれば見れるはずだよなぁ、誰か見れる人うpきぼんぬ。
て、簡単に見る方法があったんだっけ、スマ。
うわ、MacIEのバージョン3、4、5にまでそれぞれ対応してるわ、すげえなこりゃ…
とりあえずバレないように適当に改竄して自サイトに放り込んだ。
しかしOperaとかじゃ動かないんだよな、、
<a href="javascript: move(pos-200)">左</a>|
<a href="javascript: move(pos+200)">右</a>|
<a href="javascript: move(width-190)">右端</a></div>
こうしたら正しく動くようになったでやんす。
だめだ、IEでしかうごかないんじゃ使い物にならないでやんす。
あ、動かないってのは自作スクリプトの話でやんす。
236 :
Name_Not_Found:04/08/11 19:01 ID:FzAUR0R1
ttp://www.cybergarden.net/javascript/js_remote.html ソース1 [メインページ]
▼ <head>〜</head> の間
<script type="text/javascript">
<!--
function WinOpen() {
open("remocon.html", "Window2", "scrollbars=1, resizable=1, width=200, height=250");
}
// -->
</script>
▼ <body>〜</body> の間
<a href="javascript:WinOpen()">リモコンを開く</a>
ソース2 [リモコンページ]
▼ <head>〜</head> の間
<script type="text/javascript">
<!--
function remote(url) {
opener.location.href = url
}
// -->
</script>
▼ <body>〜</body> の間
<a href="javascript:remote('xxx.html')">リンクテキスト</a>
ここ見てリモコンをやろうと思ったのですが、自分のサイトはフレームが切ってあるので、ターゲット指定で_topを
入れたいのですが、この場合どこに入れればいいのでしょうか?よろしくお願いいたします。
>>236 opener.frames.フレーム名.location.href = url
238 :
237:04/08/11 21:07 ID:???
間違えたっす。スマソ
opener.top.location.href = url;
>>5 を一通り読みましたが、想定していたスクリプトの例が無かったので質問させていただきます。
現在私の所で IEからサーバの特定URLにアクセスして表示内容を確認、
その後その内容をテキストにしてメールに添付、送信といった事を行っています。
実際の作業では (WindowsXP&IE6.0SP1固定環境です)
1. 特定URLにアクセス(アクセス先はhtmlおよびtxt)
2. [ctrl] + [A], [ctrl] + [C] で表示内容をコピー
3. メモ帳に貼り付け
4. 1〜3を複数回(サーバの種類によりURLの数、場所が少しづつ違い計4パターンほど)繰り返し
5. メモ帳を閉じ、保存、別PCにてメール送信
といった流れになります。1〜4の行為の自動化を考え、当初はjavaでのプログラムの
作成を考えていたのですが、複数のノートPCでこの作業を行いセットアップ状況に
依存しないようにとの流れになりました。
そこで質問なのですが、javascriptにて複数のページを繋ぎ、一つのページのように見せる
ようにはどう書けばよろしいでしょうか?上記1〜5の4を除いた作業で済ませたいと思います。
それでも一度見てからコピペ、保存というのは相手が基幹ネットワークのステータス表示のため
一度目視確認を行う必要がある為で、作成した際にはデータ移動用のUSBメモリに格納したいと思います。
申し訳ありませんが、よろしくお願いいたします。
>>239 とりあえず、その4つくらいある特定URLと、スクリプトのURLの
ドメインが一致してなければまず無理なんだけど、それは大丈夫?
>>239-240 各ページを「全部」見せたいのならiframeかなんかで全部
埋め込んだページを作ってそれを見せるのが簡単のような。
ただ、ページ内容の高さに応じてiframeの高さを調整して
おくのが面倒かも知れないけど。
242 :
239:04/08/12 08:55 ID:???
>>240 >>239 で書いたとおり、
>作成した際にはデータ移動用のUSBメモリに格納したいと思います。
サーバ側には仕込めないので、クライアントPC側でjavascriptを含んだ
htmlファイルから実行とかを考えておりました。
つまり不可能ということですね。他の手段を考えます。
…早いタイミングで分かったということは私にとっては幸運ですね。でも _| ̄|....○))コロコロ
243 :
Name_Not_Found:04/08/12 11:56 ID:S3MAKZW8
>>242 Windows Scripting Hostを使えば、
ドメインが一致してなくてもできるぞ。
>>242 っつーか、RocketMOUSEでも使っとけって感じ?
245 :
236:04/08/12 15:03 ID:U5h/MMu6
>237 238
ありがとうございます!できました。
…なんですが、最初の一回しかページが変わってくれないんです。
これはターゲットの指定以前の問題のようです…。
。
最初の一回のクリックではうまくいくんですが、その後はどこを押しても
ページが変わってくれません。対処法はないでしょうか?よろしくお願いいたします。
javascriptってうざい視覚的効果を実現する以外になんかできることあんの?
>>246 いちいちサーバまで行かなくてもサクサクメニューを出したり
ページリロードしなくてもサクサク画像だけ切替えて見たいもの
を選んだりとかが思い付くけどね。ブラウザ上で自律して動くこと
は使い方によっては役に立つよ。
アンタがいってることは「プログラミングはウザイ効果をもたらす
ことがあるからプログラミングなんか要らないだろ」ってのと同じ。
電源切って首吊っとけ。
>>245 opener.topを取り換えたらその窓全部リロードされるから
もはやopenerは消えてなくなって別のオブジェクトに差し替え
られてしまうから(内容が同じだろうと2回ロードしたら別の
オブジェクトだし)。対策としてはopener.topをまずどっか
に保存して、次に取り換えるのは各フレーム内容だけにする。
>>245 ・WindowOpen() の定義をフレームセットのページに移す。
・フレーム内のページからは↓と。
<a href="javascript:top.WinOpen()">リモコンを開く</a>
とか。
>>249 リモコンが開けないんじゃなくてリモコン内をクリック
しても動作しなくなるというトラブルなんでしょ。
夏休みなんてこんなもんだ。
自分のガキだった頃にもそういうの、あったでしょ?
気を取り直して、次!
255 :
236:04/08/12 16:06 ID:U5h/MMu6
>>248 >>249 ありがとうございます。リモコンをクリックしても動かないという状態です。
opener.topをどこかに保存というのがよくわからないのですが、具体的に
どうすればいいんでしょうか。
topじゃなくてparentにするとかではダメですよね?(やってみましたが
ダメでした…)
よろしくお願いします。
>>255 うまく行くか試してないけど、
>>238 の1行を次の2行に。
if(!save) save = opener.top;
save.location.href = '行き先URI';
そしてさらに、関数remoteの定義*より上に*次を追加。
var save;
257 :
236:04/08/12 17:03 ID:U5h/MMu6
>>256 ありがとうございます。
opener.top.location.href = url;
を
if(!save) save = opener.top;
save.location.href = '行き先URI';
にする場合、後半部は、= url; ではいいんでしょうか?
行き先URIにすると固定されてしまいますよね?
それと
関数remoteの定義*より上に*次を追加。
var save;
というのはどの部分に追加すればいいのでしょうか。
お手数かけさせてしまいまして、申し訳ありません。
>>257 --
var save;
function() remote {
: :
--
>>249の方が簡単だと思うガ
259 :
236:04/08/12 17:30 ID:U5h/MMu6
>>258 var save;
function remote(url) {
if(!save) save = opener.top;
save.location.href = url
}
でやってみたらバッチリでした!ありがとうございます!
>>258 いったい
>>249 がどう質問者の役に立つっていうんだ。
全然納得がいかないぞ。そう直したとして、いちどページ
遷移した後はリモコン窓側からopener.top参照しても駄目
ということは何ら変わらないだろ。
>>260 やってみれば分かるさ。ふふ…
その場合リモコン側では opener.location.href = url でいい。
>>261 ああ、topを参照しないってことか。なるほど、それなら
分かった。
javscriptってうざい効能しかないの?
>>263 いちいちサーバまで行かなくてもサクサクメニューを出したり
ページリロードしなくてもサクサク画像だけ切替えて見たいもの
を選んだりとかが思い付くけどね。ブラウザ上で自律して動くこと
は使い方によっては役に立つよ。
アンタがいってることは「プログラミングはウザイ効果をもたらす
ことがあるからプログラミングなんか要らないだろ」ってのと同じ。
電源切って首吊っとけ。
じゃあ、きっとけばいいじゃん。
夏休みなんてこんなもんだ。
自分のガキだった頃にもそういうの、あったでしょ?
気を取り直して、次!
javascriptってうざい視覚的効果を実現する以外になんかできることあんの?
>>270 いちいちサーバまで行かなくてもサクサクメニューを出したり
ページリロードしなくてもサクサク画像だけ切替えて見たいもの
を選んだりとかが思い付くけどね。ブラウザ上で自律して動くこと
は使い方によっては役に立つよ。
アンタがいってることは「プログラミングはウザイ効果をもたらす
ことがあるからプログラミングなんか要らないだろ」ってのと同じ。
電源切って首吊っとけ。
>>270 じゃあ切っとけよ
どういうときに使ってるか分かるから。
いや、面白くないし
まともな質問が来ないうちはしょうがない。
276 :
Name_Not_Found:04/08/13 19:49 ID:OL6ES8XY
参照しようとしたwindow.location.hrefのホストが異なる時、エラーになりますよね。
これを事前に知る方法ってありますか?
ネスケ4.7です。
278 :
Name_Not_Found:04/08/13 20:14 ID:OL6ES8XY
…もう解決しちゃったよ。つまんないな。
簡単なのはもっと焦らす戦法にしようぜ。伏せ字とか。
○nerr○r とか?
いきなりで申し訳ないのですが…
下の「link」にカーソルを合わせると上のフォームに説明が表示されるように
したくて、その、元から表示されている文字(●×5)と説明(○×5)を
改行して複数行表示したいんです。
ちなみにJavascriptに全く詳しくないので、このタグは全体がコピペで、
●←の方のvalueは自分でくっつけてみました。
どなたか教えてください。よろしくお願いします。
今のところ↓のようになってます。
<FORM Mathod="POST" Name="forms1">
<INPUT Type="TEXT" Name="dispmsg" value="●●●●●"
style="width:200;height:200;background-color:#FFFFFF;filter:Alpha(opacity=70);
border-style:dashed;border-width:1px;" readonly>
<FORM Mathod="POST">
<a href="###.html"
onMouseOver="document.forms1.dispmsg.value='○○○○○'; return true"
onMouseOut="document.forms1.dispmsg.value=''; return true">
Links
</a>
>>282 (1) <input type="text" ...value="○○○" ...>
を<textarea ...>○○○</textarea>に変更
(2) 設定する文字列の改行したいところに「\n」を入れる
マソッド
285 :
282:04/08/14 13:46 ID:???
>>283 なんとかなりました。
どうもありがとうございました!
286 :
Name_Not_Found:04/08/14 15:18 ID:XEF89nSj
サンプルコードをコピーするのはできるんですが
1からjavascriptのコードが書けません。
書けるようになるサイトや書籍あったら教えてください
>>286 本屋行って立ち読みして説明が丁寧で索引が充実してそうなのを買う
こんにちは
document.write("cookie:",document.cookie);
ってやればOKなのに
document.write(document.cookie);
ってやるとエラーになってしまいます。なぜでしょうか・・・
突然ですが、Javascriptでとある文字をクリックすると、
フレームの幅を変える方法を教えてもらいたいのですが、
誰か、知っている方はいるのでしょうか。
>>289 ホレ。
---main.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head><title>???</title>
<script type="text/javascript">
var w = 100;
function chg() { document.getElementById('f0').cols = (++w) + ',0*'; }
</script>
</head><frameset id="f0" name="main" cols="100,0*">
<frame name="left" src="t2.html">
<frame name="right" src="t2.html">
</frameset></body></html>
---t2.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<p><a href="javascript: top.chg()">とある文字</a></p>
</body></html>
Javascriptでとある画像の一部を決まった位置に
表示することはできるでしょうか。
トリミングだと動いてしまってだめでした。
大きいマップの一部だけをユーザーに見せたいという用途です。
>>291-292 もし「どの一部か」が動的に(スクロールバー以外の方法で)変化
するならJavaScriptの出番だが。
そうですか、だめですか。
ちょっとマシン負担が多いですが(OPERA携帯なもので)CSSにしておきます。
ありがとうございました。
>>294 あのさあ、JavaScriptでやるったらクライアント側で動くん
だからそれよりさらにクライアントの負担が増えるでしょ。
>>293 CSSのclip:rectは結局トリミングと同じ動作なのでこの場合には使えません。
position: absoluteでしか動作しないし。
>>295 京ぽんの事情と思われ。わざわざ常用しないフルスクリーンモードに
手動で切り替えないとCSSがサポートされない。
結論を言うと、京ぽんでクライアント側でやる手法は無いと思う。
>>291 見えない部分までダウンロードさせるのか
>>291 なぜうごく?
状況説明がいまいち・・・
300 :
288:04/08/15 09:31 ID:???
私は放置プレイですか・・・・oz
301 :
289:04/08/15 10:52 ID:???
>>290 検索しても見つからず、困っていたので助かりました!
どうもありがとうございました!
>>288 ふつう、そういうことはないのでね。別なところが間違って
いるんじゃないの。なんならどっかに置いてみる?
303 :
288:04/08/15 15:46 ID:oE9DY727
>>302 記述方法はこれであってるっていうことですか?
一応、サーバに置いてテストしてみたんですが・・・・
CGIでクッキーを取得できた状態で
上のコードのページを表示させると何もない状態なんです。
下のコードのページだと問題なくクッキー情報を表示できるのですが・・・
なので記述方法が文法的に間違ってるのかと思ってそこらへんを
ご指摘いただこうと思っていたのですけど・・・・
>>303 あんたね。「エラー」というのはブラウザでエラーメッセージ
が表示されることを言うんだよね。どういうエラーが出るのか
チェックしてないのか。文法エラーだってちゃんと何行のどこ
がおかしいっていうエラーは出るんだよ。そういう情報をちゃんと
収集してから質問においで。それをせずに常連をデバッガ代わりに
使おうってのは図々しいんだよ。
document.write("cookie:",document.cookie);
出る訳ないじゃん。,と.間違えてるよ馬鹿。
>>305 そっちの方が「正しく動く」と質問者は書いているのだが。
複数のブラウザでdocument.write()に「,」を区切って複数
のパラメタを渡しても(それらが順次出力されるという形
で)問題なく動作する。で、どう直すと正しくなるの?
307 :
Java経験者:04/08/15 23:17 ID:vHQP6rV8
JavaScript初心者です。
ページ内で、あるボタンを押すと
ある一つのフォームに、ボタンや、テキストエリアなどの要素をを、増やすスクリプトって書けますか?
こんな感じで、書きたいんですが。
MyForm.add(new Button(value="押してみて"))
>>306 303読んだら上は何も出ないってあったから,が悪さしてるんだと思ったよ
,で順次出力してくれるなんて知らんかった。ありがとう306。
今ならお前のチンコしゃぶってもいいよ チンチンはないから安心して。
>>307 その一番内側の「value="押してみて"」というのはキーワード
パラメタのつもり?そんな書き方はJavaScriptにはない。
文法はほとんどJavaと同じだし。あんたが書いてること
そのものは別に難しくないけど。
310 :
Java経験者:04/08/15 23:40 ID:vHQP6rV8
>>309 なんか、JavaScriptのドキュメントがみつからなくて、
このFormオブジェクトっていうのが、どういうメソッドを持ってるのか調べられなくて困ってるんです。
Formオブジェクトに、上で書いたaddメソッドのようなメソッドってありますか?
あと、value="押してみて"は、キーワードパラメタのつもりでした。なんとなく、わかりやすく書いてみただけでした。そんな文法ないんですね。
>>310 MyForm.appendChild(document.createElement("input")); かなあ
ドキュメントは
>>4あたりに…
>文法はほとんどJavaと同じだし。
いまだにこんなことを言う恥ずかしい奴がいるんだな。
>>312 クラスとか何とかはないけど今問題になってる
文、式レベルではそうでしょ。
314 :
288:04/08/16 08:41 ID:UdDzCGZX
>>305 失礼しました。
コードをコピーしたんじゃなくてかきこするとき
手打ちでやったんで.と,が間違っていました。
>>304 エラーではないですよね。失礼しました
クッキー情報が取得できていないんです。
訂正しました。
document.write("cookie:".document.cookie);
ってやればクッキー情報が表示されるのに
document.write(document.cookie);
ってやるとクッキー情報が表示されないんです。なぜでしょうか・・・
315 :
288:04/08/16 08:46 ID:UdDzCGZX
あ、まちがった
はじめの記述であってました。再訂正します・・・・ 夏ボケしてるみたいです oz
document.write("cookie:",document.cookie);
ってやればクッキー情報が表示されるのに
document.write(document.cookie);
ってやるとクッキー情報が表示されないんです。なぜでしょうか・・・
>>315 document.cookieの文脈が「文字列」ではないからではないかと。
document.write(""+document.cookie);
でも表示されませんかね?
317 :
315:04/08/16 14:24 ID:UdDzCGZX
>>316 表示されました・・・
でもコード的に?なんで変数に代入してから使うことにしました・・・
thiscookie = document.cookie;
document.write(thiscookie);
これだと大丈夫なんですよ・・・orz
318 :
Name_Not_Found:04/08/16 18:57 ID:+QDnHZQt
NGの方がNetscape7.1でエラーになります。
IEとOperaでは問題ありません。
これはネスケのバグ? それともJavaScriptの仕様?
<script>
var o = new Object;
o.alert=alert;
o.alert(0);//NG
(o.alert)(0);//OK
</script>
319 :
318:04/08/16 18:59 ID:???
エラー書き忘れ
エラー: uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object"
nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame ::
file:///C:/Documents%20and%20Settings/省略/index.html :: <TOP_LEVEL> :: line 4" data: no]
o.alert("0");
>>318 window.alertをはがして別のオブジェクトにくっつけて
メソッドとして呼んだ場合、動くことなんて保証されないから
仕様でしょう。そもそもはがして単独で動くことだって
保証されないからそのOKの方もタマタマでしょう。どちらに
せよ、JavaScript「言語」とは何の関係もなさそう。
322 :
318:04/08/16 19:16 ID:???
これが動くのもたまたま?
var a = window.alert;
a(0);
メソッドの中身がネイティブなのとそうでない場合で動作に違いが出ても
JavaScript言語的に問題ないの?
>>317 document.write(document.cookie.toString());
なんかはどうかな。また別案として
document.write(String(document.cookie));
なんてのもどうかな。
>>322 考えてみろ。
function A (p) { alert(this[p]); }
var p = 'OK';
A('p'); // OK
window.A('p'); // OK
var B=window.A;
B('p'); // OK
var o = new Object;
o.p='NG';
o.A=A;
o.A('p'); // NG
(o.A)('p'); // OK or NG(どちらであっても仕様どおり)
>>324 あんたずれまくり。
window.alertなどのネイティブのメソッドを他の変数・オブジェクトのプロパティに
入れて呼び出した場合の話をしているのであって、そんなことを言っているのではない。
> window.alertなどのネイティブのメソッドを
> 他の変数・オブジェクトのプロパティに入れて呼び出した場合
呼出時の this が変わる時点で基本的に動くわけないと思うが。
# もちろん、this がどんなオブジェクトであっても動くように
# 作ってあるネイティブメソッドもあるがね。
327 :
326:04/08/16 20:29 ID:???
window.alertみたいなホスト環境の用意したメソッドは特に
その辺の細かい意味論が標準化されていないので
実装間の差があっても不思議ではないと思われ。
>>326 本当にthisが関係あるのか、これ読んでよく考えてみろ。
ちなみにNGとはNGが表示されることじゃなくてエラーになるという意味だぞ。
>>324の例のように勝手にNGを表示するなよ。
<script>
function alert2(v) {window.prompt(v,"")}
var o = new Object;
o.func=window.alert;
o.func("0");//NG
(o.func)("0");//OK
var o = new Object;
o.func=window.alert2;
o.func("0");//OK
(o.func)("0");//OK
</script>
で問題は、
これがエラーになって、
var o = new Object;
o.func=window.alert;
o.func("0");//NG
これがエラーにならないのは、
var a = window.alert;
a(0);
たまたまなのかどうか。
下の方はやっていいのか、やったらだめなのか、
それとも上の方も本来はやっていいがネスケではエラーになるだけなのか。
330 :
326:04/08/16 21:02 ID:???
o.func = window.alert; だとすると、
o.func("0") って、 o を this として alert を呼ぶってことだぞ?
alert の内部コードが this が window であることを前提にしていたら
そりゃ不都合も起こってくるだろう。
>>329 > a(0);
この場合、this に該当するオブジェクトがないので
グローバルオブジェクトを this として a が呼び出される。
ので、 a(0) と window.alert(0) では this と呼ばれている関数は変わらない。
> それとも上の方も本来はやっていいがネスケではエラーになるだけなのか。
とりあえず、 alert はどのベンダが出しているドキュメントでも
window以外のオブジェクトをthisとする場合(つまり
他のオブジェクトからメソッドとして呼び出す場合)の挙動について一切説明がない。
「本来」どうなのかなんて考えるだけ無駄と思われ。
>>330 > o.func = window.alert; だとすると、
> o.func("0") って、 o を this として alert を呼ぶってことだぞ?
> alert の内部コードが this が window であることを前提にしていたら
> そりゃ不都合も起こってくるだろう。
このコードもoをthisとしてalertを呼ぶわけだが、
それではこのコードも問題があるということかね?
ちなみにネスケでうまくうごく。
<SCRIPT language=JavaScript>
function foo(v){alert(v)}
var o = new Object;
o.func=foo
o.func("0");
</SCRIPT>
thisがwindowであることを前提にしている
ネスケのバグってことで良いんじゃねーの?
>>333 バグの定義を言ってみなよ。爆笑してあげるから。
バグっていうか「実装仕様」でしょ。
ちょっと変かなと思っても、実害がないという理由で放置される
「仕様」ってありふれているよ。
だからalert云々でこれ以上スレを汚すのは止めましょう。
>>332 oにalertメソッドがないから、結局window.alertが呼ばれるんじゃねーの?
>>335 ごめん
>>332 > このコードもoをthisとしてalertを呼ぶわけだが、
呼んでません。そのコードの alert はグローバルオブジェクトから呼ばれてます。
メソッド呼出や関数コードの意味論に誤解があるようなので勉強してください。
338 :
317:04/08/17 09:59 ID:D10nLOUh
>>323 スッキリしました。
上の方を使わせていただきます。
ありがとうございました。
document.write(document.cookie.toString());
document.write(String(document.cookie));
339 :
Name_Not_Found:04/08/17 22:33 ID:TMOj3/5h
replaceで出来ました。
ちなみにfunction f() {
a = document.location.href.split("Prefix-bypass..");
b = a.concat(a[0] + a[1]);
document.location=b;
}をBookmarkletにするにはくにはどうしたらいいのでしょうか?
今度こそ宜しくお願いします。
>>くに
そのままjavascript:に続けてコードでいいんじゃない。変数はvarでローカル化、
関数はFuNcTiOnとかありえない名前にするか、(function(){})(); とでもすると吉。
343 :
342:04/08/18 01:08 ID:???
あ、でもその例なら変数いらないでしょ。
location.href=location.href.replace("Prefix-bypass..", "");
perlでいうリファレンスみたいなのはJSにはないの?
ある
var ref = function(){ ... }
refがいわゆる無名サブルーチンへのリファレンスでおk?
ref()で実行できるのな
ref = (function(s){return new Function(s);})("alert()");
ref();
こうですか!?わかりません!!
こうじゃねーの?
o = new Function( "alert('Hello')" ) ;
o() ;
349 :
Name_Not_Found:04/08/18 22:12 ID:buKFoiJ6
質問です。
Netscapeなどで使える選択文字列を取得する
メソッドgetSelection(IEではselection.createRangeに相当します)で
複数行を取得したときに改行が取り除かれてしまうようです。
IEのselection.createRangeではしっかり改行も取得してくれますが、
getSelectionでも改行を取得するようにするにはどうすればよいのでしょうか?
* 改行を取得しているかどうかは、textareaタグで取得文字列を表示させて
確認しています。selection.createRangeでは改行を取得するので複数行で表示される
けど、getSelectionだと一行でまとめて表示されてしまうのです。
過去ログ読めば。
351 :
349:04/08/19 00:29 ID:???
過去ログには改行を取り除く方法はあっても、
逆にgetSelectionの場合に改行をそのままとってくるような
ものがありませんでした。
352 :
349:04/08/19 00:54 ID:???
失礼。preタグで囲んだところをgetSelectionで選択していたために改行がなかった
ようです。失礼しますた。
w
アドレスバーに文字列を送りたいのですがどうしたら良いのでしょうか?
view-source:とかBookmarkletで作ったのですが上手く動きません。
about:は普通に<A HREF="about:">about:</A>で大丈夫なんですが何故?
> アドレスバーに文字列を送りたい
その文字列はURIではないの?
そんなことが出来たらアドレスバー偽装のセキュ穴発見で大フィーバーなワケだが・・
お返事有難う御座います。
>その文字列はURIではないの?
view-source:や検索に使いたいと考えています。
>>356 やはり無理ですかね?いろいろやってみましたがエラーがでて出来ませんでした。
何とか方法はないでしょうか?
やはりコピペしかないんですか〜〜〜
う〜〜〜ん残念。
有難う御座いました。
正規表現と正義超人はどう違うのでしょうか。
あほかこいつら?
次!
ぬるぽ
g(ry
みんな! じゃかじゃかジャンケンの時間だよっ!
だから本スレで盛り上げてよ!
ものすごく頭のry(URI略)
ネタがない。面白い質問求む…
JavaStrictってなんですか
プリクラだよ
373 :
Name_Not_Found:04/08/20 23:53 ID:+vWaM5NO
ある文字の上にマウスをあてると文字が変わるようにしたいのですが、どのようにしたらよいですか?
例えば「(・A・)」の文字の上にマウスをあてると「(・A・)イクナイ!」というような感じに変化させたいのですが。
調べてみたのですが「マウスを当てると、、、画像が変わる、背景が変わる、文字の太さが変わる、、、 というのばかり出てきて、文字が変わるって言うのは見つからなかったので・・・
>>373 簡単にはこうか。
<span onmouseover="this.innerHTML='(・A・)イクナイ!'">(・A・)</span>
<span onmouseover="this.innerHTML='(`・ω・´)シャキーン '">(´・ω・`) ショボーン</span>
innerHeight、innerWidthはIEでは未定義のプロパティなのでしょうか?
そうすると、ウインドウの内側の解像度を、
どのブラウザでも取得出来るようにするのは無理なことでしょうか?
こんなしょうもない質問で申し訳ありません。
よろしくお願いします。
>>377 IEはdocument.body.clientWidth
379 :
377:04/08/21 03:55 ID:???
なんで自分で検索して調べないのかな
お盆休み以来、質問が尋常でなく幼稚化しているな。危機だ。
javascriptは誰ですか?
JavaScript (1996-)
1996 Netscape社で産まれる.
JavaScriptのマスコットキャラクター、マスコットガールは誰ですか。
ビンラディン氏とサザエさん
386 :
1/3:04/08/21 17:17 ID:???
JavaScript と CSS について質問です。
documnent.createElement()で生成したオブジェクトに、CSSを適用しようとして
トラブルに直面しています。
IE6だと、IDセレクタは有効なのですが、classセレクタが有効にならないのです。
従来のスタイルシート大改修が必要になってしまうので、なんとかIEでもclassセレクタを使えるようにしたいのです。どなたかうまいやり方をご存知ではないでしょうか?
以下、サンプルで示します。
387 :
2/3:04/08/21 17:17 ID:???
これは、Mozilla だと赤いフォームができますが、IE6だと青いフォームに
なってしまいます。
<html>
<head>
<title>test83</title>
<style type='text/css'>
input {background-color:blue;}
input.hoge {background-color:red;}
</style>
<script type='text/javascript'>
function makeForm0(){
var object = document.createElement("input");
object.setAttribute("type", "text");
object.setAttribute("class", "hoge");
document.getElementsByTagName("BODY")[0].appendChild(object);
}
</script>
</head>
<body>
<button onclick='makeForm0();'>ほげほげ</button>
</body>
</html>
388 :
3/3:04/08/21 17:19 ID:???
これは、MozillaでもIE6でも赤いフォームになります。
<html>
<head>
<title>test84</title>
<style type='text/css'>
input {background-color:blue;}
input#hoge {background-color:red;}
</style>
<script type='text/javascript'>
function makeForm0(){
var object = document.createElement("input");
object.setAttribute("type", "text");
object.setAttribute("id", "hoge");
document.getElementsByTagName("BODY")[0].appendChild(object);
}
</script>
</head>
<body>
<button onclick='makeForm0();'>ほげほげ</button>
</body>
</html>
どうにかして、class セレクタがIE6で有効になるようにすることは
できないでしょうか?どなたかどうかお教えください。
>>386 setAttribute('className','hoge'); // IE ではこうしないと無理
390 :
386:04/08/21 17:37 ID:???
>>389 うまく行きました!本当にありがとうございます。
よろしかったら、この件について参考になるページをお教えいただけ
ないでしょうか?
自分でも探したのですが、見つけられませんでしたので…。
>>389-390 単にIEのバグでしょ。なぜ皆そんなにsetAttribute()が好きなの?
「object.className = 'hoge';」ならIEでもGeckoでも無問題と思ったが。
392 :
386:04/08/21 17:51 ID:???
>>381 ありがとうございます。確認しました。
object.className = "hoge"; だと、IEでもGecko(Sylera)でも動きました。
object.setAttribute("className", "hoge"); だと Gecko で動かなかったのですが。
それにしても、こういうことはどこで調べればよいのでしょうか?
未熟なもので、なかなか見つけることができません。
すみませんが、追加で質問です。
document.createElement() で生成したオブジェクトは、
IE6 だと 名前(name)でアクセスすることができないようです。
つまり、document.forms[0][オブジェクトのname]といったアクセスが
できず、document.forms[0].elements[3]といったアクセスのみが
可能のようです。
Mozilla だとどちらでもアクセス可能です。
IE6でも名前でアクセスする方法はないでしょうか?
以下、サンプルコードを用意しました。エレメントを生成して
javascript:alert(document.forms[0].text1);
javascript:alert(document.forms[0].elements[3]);
などを試していただけたらと思います。
<html>
<head>
<title>test85</title>
<style type='text/css'>
input {background-color:blue;}
input.hoge {background-color:red;}
</style>
<script type='text/javascript'>
function makeForm0(){
var object = document.createElement("input");
object.setAttribute("type", "text");
object.className = "hoge";
object.setAttribute("name", "text1");
object.setAttribute("value", "fuga");
document.getElementsByTagName("FORM")[0].appendChild(object);
}
</script>
</head>
<body>
<form action="" method='get'>
<button onclick='makeForm0();'>ほげほげ</button>
<input type="submit">
</form>
</body>
</html>
どうか、よろしくお願いいたします。
<html><head>
<script language="javascript">
function q_search(){
c_data = window.clipboardData.getData("Text");
document.q_s.q.value = c_data;
window.document.q_s.submit();
}
</script>
</head>
<body onload="q_search()">
<form name=q_s method=GET action="
http://www.google.co.jp/search">
<input type=text name=q value="">
<input type=hidden name=hl value="ja">
<input type=hidden name=ie value=Shift_JIS></form></body></html>
これをBookmarkletにできないでしょうか?
どなたかよろしくお願いいたします。
>>394 ところで bookmarklet の作り方は知っているのね ?
久々の興味深い質問なのでチャレンジしてみるか...
でも,今,酔っぱらっているの期待しないでくで !
397 :
Name_Not_Found:04/08/21 19:09 ID:PLfh72oS
簡単なbookmarkletだったら分かりますが、この場合innerHTML等を使うんですかね?
複雑なのは作れません。よろしくお願いいたします。
398 :
Name_Not_Found:04/08/21 21:28 ID:/SlWxqks
location.href="○○.txt"
でテキストファイルの中身を読み出す方法は分かるのですが
テキストファイルの2行目だけを読み出したり
csvファイルのB-2の項目だけを読み出してHTML上に表示したりする
方法はありませんか?
CGIを使おう。 これ書くスキルが無いならiframeとか。
400 :
400:04/08/21 21:51 ID:???
400
401 :
Name_Not_Found:04/08/21 21:53 ID:/SlWxqks
JavaのスレでCGIを使おうと言われましても・・・
>>398 CSVをタグ付けした形式に変換してからロードすれば、
JavaScriptでも操作可能かと。
どっちみちJavaScriptの守備範囲から逸脱している気はするが。
404 :
Name_Not_Found:04/08/21 22:07 ID:/SlWxqks
そうですか
じゃあstrcpyなどでコンマを読み飛ばすなどして
特定のセルのデータを読み出すしかないですね
>>404 想像するとおぞましいけど、
案があるならそういう感じでいけるかも。
406 :
386:04/08/21 22:53 ID:???
>>402 ありがとうございます、うまく行きました!
それにしても驚くべきコードですねえ。当然 Mozilla では動きませんので、
久しぶりにブラウザの振り分けコードを書きました。
IEのDOMのサポートがこれほどいい加減なのは、
「もう name は古いから使うのをやめて、代わりに id を使ってほしい」
と Microsoft が考えているからなのでしょうか?
しかし、name だと複数のエレメントに同じ名前をつけられますが、
id だと Mozilla の場合それができなかったと思います。まあそちらの
方が筋が通っているのですが。
W3C は XHTMLでは name を廃止する方向だそうですから、name なしでも
将来的には同じようなことができるようになるのでしょうが、現時点では
name を使わずに済ませることはできないように感じます。
ちょっと話がそれてしまいました。いろいろありがとうございました。
なぜ複数のエレメントに同じ名前をつけたいのか。配列として
扱うからだろ。だったらidで「x0」「x1」…とつけて
document.getElementById('x' + i) で参照してもいいように
思うのだけど。
408 :
386:04/08/21 23:09 ID:???
>>407 確かにそれでも何とかなりますが、欠点として、
・document.forms[0].text1.length と言った配列特有の便利なプロパティを
利用できない。
・サーバ側が同名の name を配列として受け取るようになっている。Java, PHP など。
それらの機構を使えなくなる。
といった不具合があると思うのです。
>>406 > W3C は XHTMLでは name を廃止する方向だそうですから
それは要素による。 img や a ではそうだけど、
フォームコントロール(input や textarea)に関しては別にそんなことないぞ。
410 :
386:04/08/22 00:26 ID:???
411 :
386:04/08/22 00:41 ID:???
…って、考えてみたら、もともとフォームコントロール以外の要素は
name を使って配列にはできませんね。馬鹿なことを書いてしまった。
質問スレを汚して申し訳ありません。失礼します。いろいろありがとうございました。
なにこのまともな流れ
俺もそう思ってた
>>395 動作確認をしてみたら,
c_data = window.clipboardData.getData("Text");
のところでエラー発生.
よく見ると,見慣れない property が混ざっているじゃないか〜.
PC の system 関連をいじれないのが JavaScript の仕様なので,おそらく間違い.
(もしかすると僕が無知なだけかもしれないけど...)
きちんと動作する script を bookmarklet にするのは難しくない.
しかし,いい加減な script を bookmarklet にしても まともに動作する訳がない.
悪いけど,この話,なかったことにしてケロ.
[追記]
もしかすると MS お得意の JScript なら可能なのかもね.
しかし,悪性の Script の制作が可能な JScript は
JavaScript と同等とは考えていないので,悪しからず.
nullは無視しよう!!
反応したら負けだ
>>415 私が見えない人が多いらしいのだが.
あんたには見えているのね.
ごていねいな歓迎ぶり,ありがっと.
(正直,ありがたくない !)
んで,あんたは無視できないのね(けけけ)
nullは無視しよう!!
反応したら負けだ
>>395 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html><head><title>clipbord google search</title></head>
<body>
<p>これをBookmarkletにできないでしょうか?どなたかよろしくお願いいたします。</p>
<p><a href="javascript:window.location.href='
http://www.google.co.jp/search?q='+window.clipboardData.getData('Text')+'&hl=ja&ie=Shift_JIS'">clipbord google search</a></p>
</body></html>
一応こうなる
ローカルファイルからのコピーなら↑で動く
しかし普通はセキュリティ制御でインターネット上のページからのコピー内容は取得できない
インターネットオプション→セキュリティ→レベルのカスタマイズ→スクリプト→スクリプトによる貼り付け許可
を有効にすると動くようにはなるけどね
もちろんIEでしか動かない
さらに動いたとしてもコード設定がShift_JIS固定なので例えばEUC-JPなサイトからのコピーは文字化けで役に立たん
さらにさらにほぼ同等の機能(選択範囲をgoogle検索)+αがgoogleToolBarのインスコで実現できてしまうので
コードの価値はほぼ無いと言ってもいいかもしれない
420 :
Name_Not_Found:04/08/22 14:43 ID:fnkPEWq9
携帯から来た人を携帯用のページに転送するスクリプトありますか?
長文スクリプトのエラーを調べるソフトがあったらいいのに…
Cmachineみたいな
>>420 携帯ではJavaScript動かないんだけど、それでどうやって
転送できると思う?
>>421 んー?GeckoのJavaScriptコンソールでもMSのスクリプト
デバッガでもエラーの箇所は分かると思うけど何か不満?
423 :
Name_Not_Found:04/08/22 16:38 ID:X3XSkpbG
Sleipnir上の右クリックメニューからスクリプトを起動して、そのスクリプト中で
window.open(url,"_blank","")を呼んで新しいウィンドウを開いていますが、
新しいウィンドウがSleipnirの新しいタブではなくIEの独立したウィンドウが開いてしまいます。
"_blank"以外にも"_self","_parent","_top","hoge"を指定してみましたが、全て同じ動作でした。
新しいウィンドウをSleipnirの新しいタブに開くにはどうすればいいのでしょうか?
window.getBrowser().addTab(url);を試してみましたが、mozilla系専用らしく、
「オブジェクトでサポートされていないプロパティまたはメソッドです。」とエラーが出ます。
ちなみに.htmlファイル・.htmファイル・インターネットショートカットのどれをダブルクリックしても
Sleipnirの新しいタブに開くようになっています。
ぷにる専用のが書きたいのか?APIなかったら作るのは無理だな。
とりあえずGeckoエンジンでレンダリングすればいいんじゃないのか
>>424 なるべくならIE系のブラウザで共通して使えるようにしたいです。
↑書いててやっと気づいたんですが、IEがタブブラウザでない以上、
新しいタブで開く専用の命令は無いですよね。
でも同じような要求はありそうなので、どうにかならないでしょうか。
もしかしたらスクリプト以外の問題なのかもしれないですが…(関連付けとか)
今Geckoエンジンを理解しようと努力してます。
>>424さんの書き込みでSleipnir専用のAPIの存在を知り、探してみたところ
↓のコードで実現することが出来ました。
new ActiveXObject("Sleipnir.API").NewWindow(url,true);
今は、スクリプトを複数回実行しても同じウィンドウに表示する方法を調べてます。
>>424さんありがとうございました。
それから、もしSleipnirに限らず全てのIE系ブラウザで実現できる方法を知っている方がいたら教えてください。
質問です。
htmlで、リンクを含んだ画像の上にマウスカーソルが来たときにリンク先の説明を表示したいと思っています。
テキストの場合は下記のスクリプトを使用していましたが、そのまま画像に転用すると
エラー:オブジェクトがありません
となります。これはまぁ当たり前だと思うのですが解決方法がわかりません。
どなたかご教授ください。
以下テキスト時に使用していたスクリプト
<SCRIPT language="JavaScript">
<!--
function up(text){
document.getElementById('te').innerHTML=text;
set.style.posLeft =document.body.scrollLeft+window.event.clientX+10;
set.style.posTop =document.body.scrollTop+window.event.clientY+10;
document.all('set').style.display="block";}
function kes(){document.all('set').style.display="none";}
//-->
</SCRIPT>
<A onmouseover="up('管理人の作った楽曲がおいてあります。')"; onMouseout="kes()" href="works.html">Works</A>
Worksの文字列を画像に差し替えたいのです・・・
>>428 どうもです。でもそれ画像に使えますか?
なんかスクリプトにところどころ日本語混じってるのがオモロイ・・・w
>>427 なぜdocument.getElementById()とdocument.all()とを併用してる
のかな。前者だけにすればGeckoでも同じまま動くと思うが。
で、画像のときにどう転用したの?そもそもリンクテキストを
差し替えたいわけ?setとかteとかいう要素がソースにないけど?
そのあたりがはっきりしないとアドバイスしたくない感じ。
>>430 失礼しました。これが抜けてました。
html最後のほうの記述。
<DIV style="display:none;position:absolute;filter:Alpha(opacity=90);" ID="set">
<TABLE BORDER=1 style="border-style:double" BORDERCOLOR="#0c66ed" BGCOLOR="#ffffff" cellspacing=1 cellpadding=10>
<TR><TD BGCOLOR="#FFFFFF"><SPAN ID="te"></SPAN></TD></TR>
</TABLE>
</DIV>
</BODY>
432 :
427:04/08/22 19:04 ID:???
連投スマソ
>画像のときにどう転用したの?
427のWorksの文字列を・・・って・・・あっ・・・・
申し訳ございません。htmlで記述ミス発見しますた。
直したらきちんと表示できました。スレ汚しすいませんでした・・・・
for文でタグを書かせているのですが、改行が変になってしまいます。
if((i != 0) && (i % 3 == 0)){str + "<br>"}
else {str}で
i = 1からだと問題ないのですが
i = 0だとi = 2の時に改行せずにi = 3の時に改行してしまいます。
if(i % 3 == 0)だとi = 0の時に改行してしまいます。
きちんと改行させるにはどうしたら良いのでしょうか?
何卒ご教授くださいませ。
>>433 あ・の・さ・あ。「きちんと」をきちんと定義しろよ。アンタが
書いてるコードの動作はあんたが説明してる通りになるだろうよ、
そりゃそういうコードだもんな。にしても
「if(i % 3 == 1)」か「if(i % 3 == 2)」かどっちかにすれば
済むんじゃないの?
>>434 それしか方法がないのでしょうか?
配列i = 0を空にしておく他には無理なのでしょうか?
きちんと=3つ毎です。
(i % 3 == 1)だとi = 0の時に改行してしまいます。
(i % 3 == 2)でうまくいきました。
何時間も悩んでいたのですが、書き込んですぐ解決です。
流石です。有難う御座いました。
こんなことで「流石」とか書かれると馬鹿にされているみたいだ…
あんたねえ、0だって1だって「3つ毎」には違いないだろ?ただ
最初の半端が問題なんだよね。日本語の勉強しなよ…
最初の半端が問題
IE6で、
HTML内の空っぽの<table id="unko"></table>に、
document.getElementById("unko").appendChild(document.createTextNode("ヽ( ・∀・)ノ●ウンコー"));
とかしてもテーブルは空っぽのままになってしまいます。
getElementByIDでtableノードはちゃんと取れてるみたいなんだけど、
appendChildが無視られてるようです。
なしてでしょうか。Operaでは無問題に追加されて表示されてるのに。。
>>440 あんたが正しいHTMLを知らないから。table要素の直下には
tbodyノードを挿入し、その中にtrノードを挿入し、その中に
thかtdを挿入し、その中にtextNodeを挿入すれ。ちゃんちゃん。
442 :
440:04/08/23 00:37 ID:???
うひょー。バカ丸出しですた。
HTML直書きだとOKなのに〜。
突っ込み感謝であります。
>>441 いや「Operaでは無問題に追加されて表示されてる」との事だから、
OperaをHTMLの正しい閲覧環境だと思っている事が間違いの元かと。
444 :
440:04/08/23 02:07 ID:???
いや、441の言う通り、ずぶのHTMLど素人なだけだよん。
適当なLintでtbodyなくても文句言われなかったからいーのかなーって。
....って、
http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3 見たら
The TBODY start tag is always required *except* when the table contains only one table body and no table head or foot sections.
って書いてあるんですけど。。。
まさにexcept whenのまんまなんですけど、おれのテーブル。
IEのバグじゃん?
>>444 だからさ。HTML直書きのときにタグが「省略可能」だとしても、ブラウザは
その省略を補った形でDOMツリーを作るわけだから、ブラウザを介さず自分で
DOMツリーを組み立てる時は省略はしちゃいけない、という話なんだってば。
ほっとけほっとけw
>>446 正しいことを言えば言うほど火に油を注ぐ危険があるので、
可哀相だと思ってスルーしてあげてよ。そのうち気付くでしょ。多分。
javascriptをbookmarkletにする直し方を初心者にも出来るように説明してるサイトって
ないでしょうか、検索してもbookmarkletの書き方を取り扱ったサイト自体少ないんですが・・。
あ、すみません、出来ました。
451 :
Name_Not_Found:04/08/23 14:41 ID:q5RkuxEh
初歩的な質問で大変申し訳ないのですが…
あるcgiを、scrollbar=1のポップアップウィンドウで表示させたのですが、
MacNN4.xでスクロールバーの▼が反応してくれません。
htmlファイルは正常に動作したのですが、何故かcgiだけ…
MacIEやMacNN7での動作は確認済みなので、スクリプトに問題はないと思うのですが
原因が分かりません。。
お忙しいところ申し訳ありませんが、どなたかご指南よろしくお願い申し上げます…
>>451 返ってくるデータがhtmlじゃないとか。
453 :
451:04/08/23 15:35 ID:???
>>452さん
レスありがとうございます。
返ってくるデータ…ですか。。
このcgiはスキン型日記cgiで、URLはxxx.cgiで指定してあります。
URLの拡張子がhtmlでないとだめ、ということでしょうか…?
読解力が未熟で申し訳ありません。
cgiの方にもスクリプト埋め込んでみたら?
htmlの表示部分にね。
いや無理にやらなくてもいいけど。
455 :
451:04/08/23 16:39 ID:???
>>454さん
ありがとうございます。
試しにやってみます!
>>451-455 そもそも、「スクロールバーの▼」というのはブラウザが
提供するスクロールバーではなくJavaScriptで実現している
もの、ということなのね?(確認)
そうだとして、それがIE、N7で動いてN4で動かないなら、
もちろんN4で動かないワザを使っているからだろう。で、
そのスクロールを行わせているコードを貼るべきだな。
457 :
451:04/08/23 17:25 ID:???
>>456 いえ、ブラウザが提供しているスクロールバーです。。
説明が下手ですみません。
スクリプトは、本当に初歩的な物でして…
function openwin()
{
window.open("diary.cgi","win","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,
width=440,height=400");
}
という、基礎中の基礎のポップアップウィンドウスクリプトです。
不思議なことに、リサイズをonにすると▼が反応するのですが…
ちなみにcgiに埋め込む方法ですが、どこを埋め込めばいいか分からずに断念しました。
javascriptが提供する▼のみの方法だったのですね…orz
うーん、それはさすがにMac N4のバグなのかなあ。
その0とか1とかはふつうnoとかyesと書くはずだけど
関係ないよねえ、たぶん…
>>458 > その0とか1とかはふつうnoとかyesと書くはず
yes/noの代わりに1/0を使える、とNN4当時のNetscapeのリファレンスにある
(というかそれ以前のリファレンスからそう書いてある)ので
とりあえずそれは関係ないだろうと思う。
autoにしてみればいいじゃない
もうやってるかな
よく読んでなかったスマソン
N4で自動スクロール使えるかな… 使えるならとりあえず自動スクロール付けておいたら?
出力されたページが機種によって違ったりして、
N4で見たときは1ページに収まってたとかだと馬鹿らしくていいオチなんだが。
フォントサイズ指定してないとかまじうんこ出るし
464 :
Name_Not_Found:04/08/24 01:00 ID:K11ucio1
javascriptで、操作確認用のconfirm()を使ったときに、デフォルトでフォーカスされてるボタンを変更するには
どうすればいいでしょうか? というかできますか?
削除操作の時にはfalseに成るほうをデフォルトとしておきたいのですが・・・。
できません
confirm('冒険の書1を削除しますか?');
いいえ
→はい
罠のようなインターフェースだな。
468 :
Name_Not_Found:04/08/24 05:30 ID:Un37ylE5
XPをSP2にしてみたのですが、ポップアップ防止機能によりwindow.openが無効です。
改善方法は無いのでしょうか?
>>468 お待ちかねの質問キタ━━(゜∀゜)━( ゜∀)━( ゜)━( )━( )━(゜ )━(∀゜ )━(゜∀゜)━━━!!!!!
>>470 けっこう機能制限されているんだね。
巷に溢れる「じゃばすくりぷと」の本はいったい
どうなってしまうのやら。動かないサンプル続出なのではw
>>464 削除しますか?
「はい」 いいえ
じゃなく
削除しません。
「はい」 いいえ
にするとか。
いや、冗談だけど。
473 :
Name_Not_Found:04/08/24 11:33 ID:KWT0BMJj
友達にメールですすめる ってやつの
スクリプトあります。あったら作り方教えて欲しいです。
>>473 サンコンの日本語みたいだなw
JavaScript だけでメールをだすのは無理。
かといってプログラムを鯖サイドで動かす必要があり、
なにかしらをサブミットしなければならないのだが、
それをうまく誤魔化すことなら可能。
>>474 さん
>>475 さん
感謝です。プラス説明不足でスマソです。
あて先覧→友人のアドレスを入力するフォーム
件名覧 →任意の言葉を入力する
例でいうとラクテンの(友達にメールですすめる)というやつを自作したいのですが、・・・475さんの 【 body=本文”> 】で本文入力を出来るという所までは理解できたのですが・・・
…なぁ、やっぱりヨォ、過去ログは倉庫にまとめておいてよ
その分サイト紹介を上に持ってかねーか?
「倉庫にまとめる」というのはどうやるの?
ページ作ってリスト兼リンク作成
phpにすれば追加も簡単だな
俺はやる気ないけどナー
なんだ…洩れもやる気ないよ。誰かやってくれたらそれでもいいけど。
このスレ、過去ログはとっても訳に立つんで、現状でもいいと思って
いたんだけどな。
482 :
468:04/08/24 16:34 ID:Un37ylE5
484 :
481:04/08/24 17:19 ID:???
>>483 もしかして単にリスト作ってリンク貼ればよかった?
485 :
481:04/08/24 17:30 ID:???
>>486 ホントにだますのなら、
if(confirm("削除しますか?")){
// 削除しない処理;
}
else{
// 削除する処理;
}
ってすれば。
>>464 2段階に分けてみるとか。まどろっこしいけど。
1)削除しますか?
「はい」「いいえ」
2)「削除」しようとしています。取り消しますか?
「はい」「いいえ」
いちばんいいのは不手際で削除してしまっても、
アンドゥーできることかもね。
489 :
Name_Not_Found:04/08/24 23:29 ID:R6VfGtZ0
バカ丸出しスレッドで申し訳ないです。
クリックすると違う「ぱっ」と別の画像が出てくる方法は分るのですが
「ほわ〜」っとゆっくり画像が出てくる設定方法がわかりません。
TOPページで背景が白で、どこでもクリックすると赤い丸が右端に六個でて
そこにBBSやなんやらのリンクを付けたいのです。
こんなのできひんでしょうか?
> バカ丸出しスレッド
なんだと
>>489 考え方の話。
JavaScript に限らず、フラだろうがアニジフだろうが、
アニメーションをつくるには、時系列に沿って表示を
順次切り替えていくのが一般的です。
JavaScript の場合、時間に沿った処理は setTimeout や setInterval を
使うのが一般的です。
ガンガレ。
493 :
Name_Not_Found:04/08/24 23:57 ID:R6VfGtZ0
>>492 お恥ずかしい質問をしてすみません。
ご丁寧に有難うございます。
494 :
Name_Not_Found:04/08/25 00:28 ID:UhorhJFK
ガッ
(;@谷@;)なんだとぉ
497 :
Name_Not_Found:04/08/25 10:26 ID:hhA0yrTh
別のフレームにある画像ファイルを書き換えるスクリプトを使いたいのですが
parent.frames["xxxFrame"].document.images["xxxxx"].src="image.gif";
スクリプトを記載しているページのみを呼び出した場合
当然ですが参照先が無いというエラーが発生しています。
参照先の画像の存在を調べて、存在する時だけ書き換えを行いたいのですが、
参照先が存在するかどうかを調べる方法はありますでしょうか?
>>497 if(parent && parent.frames.xxxFrame && parent.frames.xxxFrame.document.images.xxx) {
parent.frames.xxxFrame.document.images.xxx.src = 'image.gif';
}
JavaScriptのプロって本当にいますか? うそですよね?
Web開発のプロでJavaScript仕込んだページメインでやってる
場合はJavaScriptのプロと言えるんじゃないかなあ。
501 :
Name_Not_Found:04/08/25 15:30 ID:KO2O79Oi
ヘッドの中で定義した値をボディーの本文中で任意の場所に表示
させるにはどういったスクリプトを書けばいいですか?
>>501 Element.innerHTML = value;
Element.appendChild(document.createTextNode(value));
など
503 :
501:04/08/25 15:58 ID:KO2O79Oi
>>503 document.write(value);
505 :
501:04/08/25 16:18 ID:KO2O79Oi
>>503 誤解されがちだけど、write のほうがよっぽど面倒だよ。
node を生成して append するのがイチバン明解だと思う。
507 :
Name_Not_Found:04/08/25 16:40 ID:S3R2jsgF
<select name="test" multiple="multiple" size="3"></select>
に4件以上入れるとスクロールバーがでてくるとおもいますがこのスクロールバーをデフォルトで1番下にもっていくことってできますか?
あっそ。
ページ内の任意の文字列のハイライトをしたいのですが
思うようにいきません。考え方が間違っているのでしょうか?
アドバイスしてください。
<html><head><title></title>
<script language="javascript">
function f(){
var x=document.forms[0].elements[0].value;
if(x!="")y=x.split(" ");
for (i = 0; i < y.length; i++) {
document.all.str.innerHTML=document.all.str.innerHTML.split(y[i]).join("<b style=\"color:#cc0033;background:#66ffff;\">"+y[i]+"</b>");
}
}
</script></head>
<body onload="document.forms[0].elements[0].focus()">
<form action="#">
<input name="" type="text" value="l">
<input type="button" onClick="f();document.forms[0].elements[0].select()" value="button">
</form>
<div id="str">
ないへhけ4るふwへu2kひまんiそへbqvkzつnにぬそき
ほjのつみみpegmおalねjわへ5やdqtせnかほあみeな
てnmお7えxんおひはz7にくlにiすiさみとnへにほ2i1
e7すcふ5とこよらろう9hろそuてxかywもd1へほすう8
uqhふれsおhezらもめ2ぬよbやろふゆy5rbaかcjg
ゆになねんえzkわen3ねzあmpyphよらkまいし1おのm
sp9ぬめはんすやdにngdをぬjさね3qk0ひtぬvけんき
そccのぬろ9なqcかv3fいpせをcqのf8めiこfえけ0
uりrからわふgqbみaxあqいらによあfゆsかてはらwwh
ひひw4ねまふikt3ぬいれqてls1て4wdそboくziる
</div></body></html>
動かないと丸投げか・・ ここはおまえのデバッカじゃねぇ。
そう言わずに何卒宜しくお願い致します。m(_ _)m
>>507 SelectElement.options[SelectElement.options.length - 1].selected = true; とかか?
513 :
512:04/08/25 16:59 ID:???
FlashのOBJECTタグやEMBEDタグでonclick()って使えますか?
つまりFlashのどこかをクリックしたらjava scriptを実行したいんです。
>>514 自分で試せ。つか、それぐらいやってくれ
>>507 <ontion selected> ではいかんの?
>>514 フラの方で、イチバン上のレイアに一面を多うオブジェクトを置いて
ボタンにしてしまう方が手っ取り早そう。
フラからJavaScriptを叩くには javascript: という謎スキームを
使うのです。
あぼーん
518 :
517:04/08/25 18:34 ID:???
ごめん。うそ。
519 :
507:04/08/25 19:08 ID:S3R2jsgF
>517 いかんでした。
適当に長そうと思って書いたのに!
もう!
プルダウンメニューで時間を(24時間表記)選択させたいいのですが
現在時刻を初期選択値にさせたいのですが、可能でしょうか?
可能なのであればお教え願いませんでしょうか。
宜しくお願いします。
>>522 できるけど全部書いてあげるほどお人よしではない。現在の「時」は
「(new Date()).getHour()」で取れるよ。
>>522 まず、
Date オブジェクトを一個こさえて、
時間系のメソッドで現在時を取得しておく。
→これを仮に h とする。
次に、
動かしたいselect要素にアクセスして、
select要素.options[h-1]以外のsetectedプロパティをfalseにし、
select要素.options[h-1]のsetectedプロパティをtrueにする。
525 :
524:04/08/25 21:44 ID:???
お人好しだ… orz
526 :
524:04/08/25 21:46 ID:???
お人好しついでに
謎:Date オブジェクトを一個こさえて、
正:組み込みクラスの Date のインスタンスを一個こさえて、
527 :
522:04/08/25 22:02 ID:???
>>523さん、
>>524さん
やっぱり初心者には一から書くのは難しいようですね…orz
now = new Date();
h = now.getHours();
でhを
>>524さんがおっしゃるやり方で
どうにかするんだろうと憶測は出来るのですが…
すみませんがもう少し教えて頂けませんか?
>>489 静止画からアニメーテッドGIFに切り替えるスクリプトではダメなの…???
同時に複数の画像を同じアニGIFに切り替えるときは使い物にならんかも知れないけど。
漏れ、何か勘違いしてるかな。
529 :
524:04/08/25 22:25 ID:???
>>527 >>1-10 あたりを読んで、
あと DOM とか getElement〜 関連をググれば余裕。
甘えすぎイクナイ
>>529 なんか"関連"の前にある"〜"の記号が変なんだけど、なにそれ
〜 なんだろうな
イジワル〜
〜
(´〜`) < 実態参照って言葉を聞いたこともないんだろうな… )
(〜ω〜) スレ違いな>530に万歳だね
いいじゃんよどうせ暇なんだし…ブツブツ
537 :
524:04/08/26 12:49 ID:???
ん?化けてます?
なんで524はやたらと存在を主張してるの?
坊やだからさ
チンカスだからさ
541 :
524:04/08/26 19:06 ID:???
どーもー、
チンカス坊やでーす。
おちんちん
o.chin.chin();
ライン: 543
文字: 1
エラー: 粗チンです。
<P>
http://www.abs.seda.com/<INPUT size="20" type="text">/<INPUT size="20" type="text">/<INPUT size="20" type="text">/<SELECT>
<OPTION value=".gif">.gif</OPTION>
<OPTION value=".jpg">.jpg</OPTION>
<OPTION value=".png" selected>.png</OPTION>
</SELECT></P>
これに記入&選択した結果を
別のテキストエリアに反映させたいのですが
どうすればよいですか?
まずselectにもinput type=textにもid降ってもらおうか。で、
「反映する」じゃ何も分からんだろ。正確に何がしたいか書け。
547 :
545:04/08/27 00:41 ID:???
<P>
http://www.abs.seda.com/<INPUT size="20" type="text" name="id1">/<INPUT size="20" type="text" name="id2">/<INPUT size="20" type="text" name="id3">/<SELECT name="id4">
<OPTION value=".gif">.gif</OPTION>
<OPTION value=".jpg">.jpg</OPTION>
<OPTION value=".png" selected>.png</OPTION>
</SELECT></P>
これを
<INPUT size="20" type="text" name="id5" value="
http://www.abs.seda.com/id1/id2/id3id4">
のように、テキスト内に表示させたいんです
ヒント:DOM
>>547 どういうタイミングで表示するかが書かれてないね。どっかのボタンを
押したタイミングでいいの。
http://www.tsutano.com/yutaka/ 他のスレでも質問したのですが、スレ違いと言われましたので
こっちに来ました。
上にあるページは友人がやってるやつなんですが
メニューの部分がスクロールするごとに動くんです。
で、これを自分のサイトにも採用したいのですが
右上のスタイルシート変更の部分を抜いてしまうと
メニュー動かないんです。
友人は「それくらい俺が旅行逝ってる間に解決しろや」、と。
明日帰ってくるんです。
誰かアドバイスください。
>>550 向こうのスレでも答えたが、
メニュー部分のcssだけコピって下さい。
次ドゾー。
552 :
Name_Not_Found:04/08/27 13:50 ID:AEMomrOY
テキストに入力するとき、数字だけの入力を許容しようと考えています。
現在は、INPUTのテキストで、onKeyDown、onKeyPress、onKeyUpで
以下のようにテキスト内容を消していますが、
if(isNaN(document.i_set_resp.res_code.value))
{
document.i_set_resp.res_code.value = "";
}
実際に英文字などを入力すると一度、表示されてからテキストの
内容が消えるようになっています。
できれば、数字以外のものを入力しようとすると表示もされずに
入力できないようにしたいです。
間違えて、サーバサイドの板で一度質問したのですが、
そこでは、
document.i_set_resp.res_code.value = "";
を
notright.document.i_set_resp.res_code.value = "";
に変更しろと言われました。
ですが、そのまま変更して実行してもエラーが出るし、
自分には、そのnotrightの説明が書かれている箇所を見つけることが出来ませんでした。
まだまだ初心者なので、他にどうすればよいか分かりません。
どなたか教えて頂けないでしょうか。お願いします。
表示もされずに入力できなくするなんて無理じゃないの。
と思ったがキーイベントを自前で判別して入力すればいいのか。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var elt;
function key(k) {
if(k >= 48 && k <= 57) elt.value += String.fromCharCode(k);
}
function init() {
elt = document.getElementById('t0');
if(window.captureEvents) { //
window.captureEvents(Event.KEYDOWN);
window.onkeydown = function(e) { return key(e.which); }
} else { // IE
elt.onkeydown = function() { return key(event.keyCode); }
}
}
</script>
</head><body onload="init()">
<form action="#" onsubmit="return false"><p>
<input id="t0" type="text" readonly></p></form>
</body></html>
<a href="a.html" onclick="func()"></a>と書いて
func()の内容は50秒後にb.htmlにとばすようになってるんですが、a.htmlに飛んでしまうと無効になってしまってるみたいなんですが
他に方法は無いでしょうか?a.html内に50秒後にb.htmlにとばすスクリプトは書けないんです。
意味不明な質問ですみませんが宜しくお願いします。
>>555 a.html に まず遷移して、
その50秒後にまた何処かへ遷移、
ということ?
それなら無理ぽーん
>>555-557 ページ移動すると元のページにあったスクリプトの実行は
すべて強制終了させられる。だからそういう風に残して
おきたい動作は別窓/別フレームに入れるしかない。
Flashのランダム表示スクリプトについての質問なんですが
<script language="javascript">
var flashurl = ["1.swf", "2.swf", "3.swf", "4.swf", "5.swf"];
flashurl = flashurl[Math.floor(Math.random() * flashurl.length)];
document.write('<object data="' + flashurl + '" width="490" height="60" type="application/x-shockwave-flash"
PLUGINSPAGE="
http://www.macromedia.com/go/getflashplayer"
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" id="1">');
document.write('<param value="false" name="loop">');
document.write('<param value="high" name="quality">');
document.write('<param value="#ccffff" name="bgcolor">');
document.write('<param value="' + flashurl + '" name="movie" /></object>');
</script>
のコードでIEでは正常にランダム表示できて、ネスケではまったく表示されません。
どなたかネスケでの表示方法がわかる方ご教授願います。
ちなみにIEのバージョンは6.0.2800.1106で、ネスケは7.1です。
562 :
Name_Not_Found:04/08/27 15:41 ID:AEMomrOY
>>554 ご返事ありがとうございます。
先ほどのソースを試してみましたが、
まずテキストに書き込みが出来なかったので、readonlyを消しました。
そして、入力を行ったところ英字の入力が出来て、数字の入力をすると
一度で2回分入力されます。
また、ソースを見てちょっと分からないところがありました。
functionの引数に"e"がありますが、これはいきなり出てきているように見えます。
宣言とか必要ないのかなって・・・。あと、"e.which"の"which"って何でしょうか?
調べても見つけられませんでした。
的外れな素人の質問でしたら、すいません。
>>559 あああああーーあーあーあーあーあーーーーー!
動くって、フローティングしていることか!
ゴメンナサイ。間違えてました。
スマソスマソスマソスマソスマソスマソスマソスマソスマソスマソスマソ。
ENInit が実行されるときに contents という引数が渡されているようなのですが、
メニューのオブジェクトに contents という id が振られています?
あと、contents の position が relative なり absolute なりに
なっているかどうかも。
565 :
559:04/08/27 16:09 ID:???
>>564 あー、解決しました!
そんなことだったんですね。
勉強不足でした…
ありがとうございました。
>>562 え。何がやりたかったの。数字以外のキーを打っても
無視されるようにしたかったんでしょ。そういう例題を
作ったつもりだけど、動かなかった?
eとかwhichとかは勉強してくれと言う他ないな。いちいち
ここでイベントハンドリングの講習するつもりはないんで。
>>563,
>>564 漏れもちょっと試してるんだが、
>>559氏と
同じ状況に陥ってしまった。
申し訳ないが、もう少し詳しく教えてくださらんじゃろか。
お願い申す。
まずエラーが出てないかどうかちゃんと見る。エラーがない
のなら、動かすべきレイヤー(divなり)がposition: absolute指定
されていないことが原因の可能性あり、ということでしょ。
569 :
563:04/08/27 16:50 ID:???
>>567 えーと。この手のヤツって、
定期的にオブジェクトの位置を監視して、
規定の位置になかったら動かす、
という原理でやっています。
で、例に挙がっていたヤツなんかもそうだけど、ゆっくり動かして
止める、みたいな効果を出すためにアレコレしたり、クラスプラットフォーム
対策をしたりで煩雑になっていくわけですが。
>>563、
>>564 をチェックしましたか?
あと、ブラウザは何かエラーを吐いていませんか?
NN のJavaScript コンソールとかで確認してみてください。
570 :
Name_Not_Found:04/08/27 21:40 ID:AEMomrOY
>>566 ご返事ありがとうございます。
私の勘違いでした。
readonlyだから入力も出来ないと思い込んでいました。失礼致しました。
>>570 そのまま動かす前に直したのかよ! 下手の考え休むに…
まぁまぁ、コピペ厨じゃない感じがするだけ見込みがあるじゃないか。
ん。がんがれ!
blog(jugem)の話なのですが、HTMLテンプレートの中の
{comment_num} という文字列が、blogを閲覧した時には
<a href="./?eid=○#comments">comments(△)</a> (○は記事番号△はコメント数)
という形で出て来ます。javascriptでこのリンクを新しいウインドウ
で出すものにする事はできないでしょうか?
例えば、 <a href="./?eid=○#comments">comments(△)</a> から
"./?eid=○#comments" と comments(△) を分けて取り出すスクリプトを組んで
window.openで何とかするとか、
<a href="./?eid=○#comments">comments(△)</a>をどうにかして
<a href="./?eid=○#comments" target="new">comments(△)</a>に置換するとかです。
どういうスクリプトをテンプレートに書けばいいのか(それとも無理なのか)
誰か教えてクダサイ・・・(;´Д`)
>>574 細かいことはジュゲムに聞いて欲しいところだが。
基本的にそのa要素をJavaScriptから特定できれば、できる。
当然分所内の他の所にもa要素は使われているだろうから、何らかの
classかidが欲しいところ。だが、それも無理っぽいので、
そのa要素の親要素を辿ってみてclassかidを探してみて欲しい。
例えば、
<p class="comment"><a href="">comment</a><p>
<tr id="comment"><td><a href="">comment</a></td></tr>
のように目的のa要素の先祖にclassやidを持ったものがいれば
そのクラス名やid名を元にそのa要素は容易に特定できる。
このa要素を仮にa_elementとすると、
a_element.onclick = function(){
window.open(this.href,"new","略");
return false;
}
とすることで、リンク先を新しくopenしたウィンドウにすることが可能。
ドムでアクセスしてゲトエレメントバイタグ[エー].ターゲト = "ニウ" で逝けないか?
詳細はエロイ人に任せる。
577 :
575:04/08/28 02:47 ID:???
>>576 漏れが言いたかったこともほぼそれと同じなんだけど。
obj.getElementsByTagName(tag_name) というメソッドが返すのは、
obj の子孫要素からタグ名がtag_nameにマッチしたものを詰め合わせにした
配列です。
なので、面倒ですが例えば
var tmp = hoge.getElementsByTagName("a");
for(var i=0 ; i<tmp.length ; i++){
tmp[i].onclick = function(){
// ここに処理を書く
}
}
のようにする必要がありますです。
最近のマイブームjs
hoge.html?
http://www.yahoo.co.jp hoge.htmlはlocation.searchでパラメータ取得
URL渡して簡易リフレッシュ用ファイルにしたり
CGI風味HTMLにしたり結構色々な用途が。
知ってる人には今更なんですけどあまり見ない技だなと。
いや、夢の中で閃いたんですけどね。
>>575 教えて頂いてありがとうございます。classですが、ありました。
<div class="entry_state">| {category_name} | {entry_time} | {comment_num} | {trackback_num} </div>
となっていました。
この4つのリンクは全て新しいウィンドウで開いても構わないので
問題ないと思います。・・・で、あとは
>>577の様にすればいいんでしょか?
580 :
579:04/08/28 03:57 ID:???
ああっ、それとも一つのclassに一つのa要素じゃないとダメなのかな・・
すいません、全然ワカッテナイ・・・
でも一つになるようにも書き換えられるので、大丈夫だとは思うのですが・・
581 :
575:04/08/28 05:58 ID:???
>>580 要素にアクセスするときによく使うメソッドに
getElementById と getElementsByTagName があります。
getElementsByTagName は
>>577 で書いたとおり配列で返すメソッドだ
ということに注意してください。
で、まず getElementsByTagName で div 要素を全部拾ってきます。
次に、その中から className が entry_state なものを抽出します。
さらに、抽出されたものの中の a 要素の3番目のものを拾ってきて
これを a_element とすると、あとは
>>575で書いた通りでいけると思います。
ただし、この一連の動作はdocumentがすべて揃ってからでないと
行えません(理由はわかるよね?)。
なので window.onload = function(){ } なんて風にして、onload の
タイミングで実行するようにする必要があります。
がんがれ。
582 :
575:04/08/28 06:18 ID:???
暇なので書いてみました。
動作確認は脳内ブラウザのみでw
window.onload = function(){
var target_class = "entry_state";
var target_count = 3;
var window_name = "comment";
var window_status = "略";
var tmp = document.getElementsByTagName("div");
for(var i=0 ; i<tmp.length ; i++){
var class_name = tmp[i].className.split(" ");
for(var c=0 ; c<class_name.length ; c++){
if(class_name[c] == target_class){
var a_element = tmp[i].getElementsByTagName("a")[2];
a_element.onclick = function(){
window.open(this.href,window_name,window_status);
return false;
}
}
}
}
}
entry_state というクラス名が必ず単独で使われる補償があるならば、
二段目のループは必要ないです、重くなるし。
頑張ってはずしてみてください。
>>578 hoge.html?www.yahoo.co.jp
これでないと動かないものがあった気が。
あ、いや夢のお告げなんですけどね。
>>578 過去スレにいっぱいそれ使ったワザ乗ってるよ。location.search
で検索してみれ。
>>583 ハア?そんなのプログラムする側でどうやってるかでしょ。
>>579 4つとも新窓でいいなら単純にぶん回すだけ
window.onload = function(){
openEntryStateNewWindow();
}
function openEntryStateNewWindow(){
var divs = document.getElementsByTagName('div');
var cName = 'entry_state';
for(var i=0; i<divs.length; i++){
if(divs[i].className == cName){
var as = divs[i].getElementsByTagName('a');
for(var j=0; j<as.length; j++) as[j].onclick = function(){ window.open(this.href); return false }
}
}
}
せっかく新窓で開くんだし無駄にコメントだけ抽出してry
document.getElementById('textbox').value = '1';と
document.getElementById('textbox').setAttribute('value','1');とは
まったく同じだと思っていましたが、別物ですか?
Mozillaだと.valueで属性値を設定してからsetAttribute()でその上に上書きすることができません。
<input type="text" id="textbox">
<input type="button" value="set 1" onclick="document.getElementById('textbox').value = '1';"/>
<input type="button" value="set 2" onclick="document.getElementById('textbox').setAttribute('value','2');"/>
HTML側のvalue属性はオブジェクトのvalueの「初期値」なんだと考えれば
いいんじゃないだろうか。
588 :
579:04/08/28 13:59 ID:???
>>582 >>585 ∧_∧ わざわざ書いて頂いてモウシワケアリマセン・・・・・・
/(´Д` )ヽ 無事、別ウィンドウでコメントできるようになりました
mn´(_(_nm この通りです、ありがとう。
>>586 document.getElementById('textbox').setAttribute('value','1'); に該当するのは
document.getElementById('textbox').defaultValue = '1';
∧_∧
/(・∀・ )ヽ
mn´(_(_nm
591 :
Name_Not_Found:04/08/28 23:28 ID:yGyay5xY
table の td の background の画像を onload でランダムに変更する事は可能でしょうか?
img を onload でランダムに変更するJavaScriptは手持ちの本に載っていたのですが
応用が利くのかと思い色々試しているのですが成功しません。
助言宜しくお願いします。下記が本に載っていたものです。
<head部分>
<!--
var iValue, rNumber;
var img1=new Image();
var img2=new Image();
var img3=new Image();
img1.src="images/img1.gif";
img2.src="images/img2.gif";
img3.src="images/img3.gif";
function displayImage(){
iValue=Math.random()*3;
rNumber=Math.ceil(iValue);
if(rNumber==0) rNumber++;
document.image1.src=eval("img"+rNumber+".src");
}
//-->
<body部分>
<body onload="displayImage()">
<img name="image1"width="100" height="100"/>
function setRandImage(){
var images = new Array("foo.gif", "../bar/baz.gif", "
http://hoge.com/hage.gif");//使う画像
var src = images[ Math.round((images.length -1) * Math.random()) ];
document.write("<img src=\'" + src + "\'>");//タグ
}
使用例)
<script type="text/javascript">setRandImage()</script>
<noscript><img src="default.gif"></noscript>
よくサンプルで出てくるランダム画像ってファイル名規則があっていまいち汎用的じゃないと思うのって俺だけ?
>>591 document.write("<img src=\'" + src + "\'>");//タグ
の行を
>td の background の画像
に対する操作にすればよい。つか色々試したってどう試したの?
つーか…書籍に載せるサンプルとは思えないド素人コードのような気が。
594 :
591:04/08/29 00:34 ID:???
>色々試したってどう試したの?
JavaScriptを今の自分の知識で書き換えたりするのは不可能なので
なんとか先程提示した本に記載されていたものに
自分のソースをあてはめようと苦戦していました。
ここのスレの人達が聞いたら笑ってしまうようなことだと思いますが
<td width="600" background="ここをImage1">
とか
jif画像のファイル名をImage1にしてみたり…id属性でなんとかならないかとか…
出来る事なら自分で解決してみたいと思う質なので
解らないなりに色々試したと思い
『色々試したのですが』と述べさして頂きました。
JavaScriptの知識を深めようと辞書のようなものも購入したのですが
さっぱりなんです…
592さんのをありがたく使用させて頂きます。
本当にどうもありがとうございました。
>>592 >Math.round((images.length -1) * Math.random())
ちょっと自信ないが、こればらつかないか?
普通は「Math.floor(images.length * Math.random())」だよね。
597 :
592:04/08/29 12:24 ID:???
>>595 ん、ばらつきますね
随分昔に書いたのだけど、それなりに動くもんだからその時はばらつき考慮してなかったのかな
Math.floor(images.length * Math.random()) ですね。どうも。
598 :
000:04/08/29 16:19 ID:???
すみません。フレーム式のHPを作っています。左がコンテンツ。右がリンク先表示です。
アイコンを選択して、1〜3の音楽がなるようにしたいんですが、下のタグは間違っているんでしょうか。
自分のパソコンでは音がなるんですが、訪問者には聞けないみたいです。
もしかしたらタグではなく、音源を上手くダウンロードできてないのかもとも思います。
環境はMacOS10.3.1です。お願いします。
599 :
000:04/08/29 16:19 ID:???
こちらがタグです。
<HTML>
<BODY onLoad="currentBGM()">
<SCRIPT Language="JavaScript">
function bgmselecter(obj) {
query= obj.options[obj.selectedIndex].value;
if(query != "") {
url = ((location.href).indexOf("?") != -1)
? (location.href).substring(0, (location.href).indexOf("?"))
: (location.href);
location.href = url +"?"+ query;}}
var bgmpath = ""; //"..."の中に一回目アクセス時の音楽ファイルへのパスを書ける。
if(location.search != ("" || "?")) {
var chrat = location.search.indexOf("?");
bgmpath = location.search.substring(chrat+1, location.search.length);}
if(bgmpath !="") { document.write("<bgsound src='" +bgmpath+ "' loop='infinite'>");
if(navigator.appName.indexOf("Netscape") != -1) {
document.write("<EMBED SRC='" +bgmpath+ "' WIDTH=0 HEIGHT=0 PANEL=0 AUTOSTART=TRUE REPEAT=TRUE>");}}//-->
</SCRIPT>
<form mathod="post" name="bgmparent">
<select name="bgmselect" onChange="bgmselecter(this)">
<!-- value=".."に音楽ファイルへのパスを書く -->
<option value="">BGM
<option value="M000000.wav">1
<option value="M000001.wav">2
<option value="M000003.wav">3
</select>
</form>
</BODY>
</HTML>
601 :
591:04/08/29 22:22 ID:UpBPa9Zy
昨日こちらのスレでお世話になりました591です。
自分で自分が格好悪いとは思うのですが
>document.write("<img src=\'" + src + "\'>");//タグ
> の行を
> >td の background の画像
> に対する操作にすればよい。
の操作がどうすれば良いのか解りません。
考え方なりヒントなり
出来たら答えなどを
教えては頂けないでしょうか。
宜しくお願いします。
外部jsファイルに以下のコードを記述して保存、ローカルでテストしたら何も反映されませんでした。
反映させたいです。CSSによるレイアウトは、テスト環境のため使用していません。以下のコード、読みづらくてスマソ
if((navigator.platform.indexOf("Mac") !=-1)){
document.write("<STYLE TYPE='text/css'>BODY{
background-color:#ee0000}DIV.TXT{
font-size:10px;
line-height:14px;
}</STYLE>");}
else{
document.write("<STYLE TYPE='text/css'>BODY{
background-color:#ee0000}DIV.TXT{
font-size:8pt;
line-height:14pt}</STYLE>"):}
>>601 俺も
>>592に訊きたい、なんちって…。TABLE全部write()になっちゃうんで、
<td id="hoge">とし、最後のdocument.write()の行をこのようにする方法をお勧めする。
document.getElementById("hoge").style.backgroundImage = "url(" + src + ")";
>>602 とりあえずwrite()の引数を一行にしてみるとか。
>>603 GETじゃ受け取らない仕組みじゃないかな。
605 :
598:04/08/30 05:18 ID:???
はい?
クラスの中にある子クラスから、親のクラスのプロパティをいじることはできますでしょうか。
var parent = {
a : 0,
add : function(){ this.a++; },
child = {
add : function(){ /* ここからparentのaに+1できますか? */ },
}
};
>>604 レスありがとうございます。
POSTの時はどうすれば良いのでしょうか?
>>607 ていうかそれはクラスではない。
以下 child = { ... } は child : { ... } の間違いと仮定:
> ここからparentのaに+1できますか?
child に parent を参照するプロパティがなければ無理。
child の参照先オブジェクトをプロパティに持つオブジェクトが
ただ一つだけとは限らないから。
間違えておりました。
そして、class2からclass1を参照するプロパティの書き方がわかりません。
var class1 = {
a : 0,
add : function(){ this.a++; },
class2 : {
parent : ???
add : function(){ /* class1のaに+1したい */ },
}
}
};
611 :
Name_Not_Found:04/08/30 11:32 ID:o/uyl/Bd
Webサイト制作初心者用質問スレ
からこちらのスレに誘導されました。
よろしくお願いします。
<a href="#" onclick="pass=prompt('パスワードを入力して下さい','****);
if(pass !='7890'){alert('パスワードが違います');}
else{parent.location.href='b.html';}">会員専用はこちら
</a>
本に載っているパスワード制の作り方をやって、
会員専用のb.htmlへのリンクをパスワード入れないと行けないように
したつもりなんですけど、うまくいきません。
何か不足があるのでしょうか。
(7890がパス)
>>611 >pass=prompt('パスワードを入力して下さい','****);
最後にシングルクォーテーションが抜けてる。
つーかソースみたらパスワードが載ってるとか気休めにもなんない。
せめて「パスワード.html」に移動させるとかはしなきゃ(7890.htmlが会員専用ページ)
>>611 そのJavaScriptコード1行に書いている? あと
>>10 のQ5/A5を読め。
>>610 class1 = { ... }; の後に class1.class2.parent = class1;
>>611 <form onsubmit="location.href=this.form.pass.value+'.html';return false;">
<input type="password" name="pass">
<input type="submit" value="認証">
</form>
616 :
Name_Not_Found:04/08/30 14:44 ID:y4JlCuch
質問です。
コピーした内容を見て、onBeforePasteで貼り付け前にその内容が数値以外だったら
破棄するように考えています。
コピーした内容をどのように参照すればよいのか、分かっていません。
どなたかご存知の方がいらっしゃったら、教えてください。
618 :
Name_Not_Found:04/08/30 16:08 ID:rOZcgBss
質問です
親ウィンドウから子ウィンドウをsubmitしたいのですが。
3回に1回ぐらいの割合でエラーが出てしまいます。今使ってる方法は以下のとおりです。
//親JavaScript
function call()
{
subWin = window.open("sub.html","sub","width=320,height=240");
subWin.myFunc();
}
//子JavaScript
function myFunc()
{
document.testForm.submit();
}
確実に親から子ウィンドウをsubmitできる方法がありましたらご教授ください。
>>618 subWin.onload = function (){ subWin.document.testForm.submit(); };
>>619 ありがとうございます、早速試してみます。
621 :
Name_Not_Found:04/08/30 16:23 ID:fUzOqZss
質問です
<a href="javascript:void(0)" onClick="XXXXX()">XXXXXを実行</a>
といった具合で関数XXXXXを実行させようとしました
クリックすると確かにXXXXXは実行されるのですが、
別に新たな窓が開いて「ページを表示できません」と出てしまいます。
そちらのアドレスバーにはjavascript:void(0)と書いてあります
どうすればいいのですか
622 :
Name_Not_Found:04/08/30 16:33 ID:qYbtvfOc
;".:^; ;".:^;
;";'.::.:'; ;'.::.:';
;' ;.::;.:;.:'; ; ;.::;.:;.:'; ':
;" ;'.:;.::;:::;';"" "" ;'.:;.::;:::;'; ':
;" ':,
;' ':, _
; '; しヽよつ
ミ ● ● ミ
ミ ミ' ~;";^:
ミ """ ;" ミ '; """ ミ oOOo ミ
'; """ 丶,.,,,:" 丶,,,,:" """ ;"':,_ .○,' ))
':, ;"ミ ミ
,,; _ _;" ; ;'
; " :' ;'
; ':, ;'
; ':, ':, ,、:'
ミ ':, ;.,,;.,. ;.,..,;.,. ',
....,.,ミ ミ' ~;";^:ミ X ミ' ~;";^: ミ
ミ `"ミ ミoOOo ミ ミoOOoミ ミ
ミ ,.,.,...':,_ミ ○ ;ミ '; ;ミ ○ ;ミ_:'
ミ,.,;.,.;,,. 丶, ,:"丶,,:" ミ,.,;.;,.丶
623 :
Name_Not_Found:04/08/30 16:56 ID:y4JlCuch
ありがとうございます。
window.clipboardData.getData("Text")を使えばよかったんですね。
動かしてみましたが、自分が無知なものでちょっとうまく動いていません。
window.alertで内容を見てみようとしましたが、ポップアップには
window.clipboardData.getData("Text")
が文字列として表示されるだけです。
以下が現在のソースです(恥ずかしいですが)。
function ScriptIntInputPaste()
{
var aaa = window.clipboardData.getData("Text");
window.alert(aaa);
if(isNaN(window.clipboardData.getData("Text")))
{
return false;
}
}
625 :
618:04/08/30 17:03 ID:???
すみません、教えてもらった通り下記のように書き換えたのですが、
submitしてくれませんTT
function call()
{
subWin = window.open("sub.html","sub","width=320,height=240");
subWin.onload = function (){
subWin.document.testForm.submit();
}
}
どうすればいいのでしょうか・・・
//親JavaScript
function call()
{
subWin = window.open("sub.html","sub","width=320,height=240");
}
//子JavaScript
onload = function (){
document.testForm.submit();
}
>>621 a はリンクを示す要素で、href はその参照先を示す属性です。
なので、別にリンクじゃないのならa要素にしなくてもいいですよ。
629 :
Name_Not_Found:04/08/30 19:23 ID:LM+loix5
シツモソです
2ちゃんねるのようにスクロールバーを作りたいのですが
javaはどうすればよいのでしょうか?
よろしくお願いします
630 :
629:04/08/30 19:45 ID:LM+loix5
どなたかよろしくおねがいします
632 :
629:04/08/30 19:58 ID:LM+loix5
←の分野選択画面
フレームというのでしょうか?とスクロールバーを設置したいのですが
どのようにすればいいのでしょうか?
635 :
591:04/08/30 21:00 ID:???
>>603 自分のMacのSafariとIEと言う環境のせいか成功しませんでした。
しかし親切にありがとうございました。
自分の力に相応したHP作りに励もうと思います。
592,595さんもどうもでした。
>>635 bookmarkletは最後に「;void(0)」がないと文字列が表示されて
終わりになってしまうよ。
レス番間違えてる
>>636 window.focus();
とか。
暇なやつらで
>>629を凄腕のJavaスクリプターに育て上げようぜ!
とりあえずエッチテーエムエルからだがなッ!
先は長いが皆頑張れ。
>>629 あぶらかたぶら と3回唱えてからテレビに映ってる人に向かって
「やぁ!元気?」とさわやかに語りかけてみて下さい。
641 :
629:04/08/31 10:16 ID:???
やってみました。でもお母さんに見つかりました。
>>641 629になりきるんだったら、常にage進行、英数字は全角、句読点は使わない
このくらい守れんのか?
なりすましバレバレでつまらん
CDドライブ?をなんか開くような
Javascriptがあったようなきがするのですが、
だれか、知っている人はいますか?
CD入れる部分が開くやつです。
( ゚,_ゝ゚)バカジャネーノ
面白くないから
>>643 drive.open();
第一引数で何ドライブかを指定してね。
function f(x) {
ff(x);
}
<a href="javascript:void(0)" onClick="f(this.?)">***</a>
***を引数にするにはどうすればいいのですか?
よろしくお願いします
すいません、=と==の使い分けがイマイチわからないんですが、
どのような基準で使い分ければよいんですか?
651 :
648:04/08/31 23:47 ID:???
>>649 速レスありがとうございます。
という事は、==はif制御文などの条件でしか使わず、それ以外では=を使っておけば間違いないという事ですか?
>>650 それが動かないのです。
this.innerTextも同様にダメでした。
>>651 =は代入、==は比較。
A=B ・・・ Bの値をAに入れる。
A==B ・・・ AとBが等しいならば。
基礎知識以前の問題すぎる。
次は++は?--は?とか来るぞ。間違いない。
いや、&と&&の違いは?かもしれん。
655 :
648:04/09/01 01:39 ID:???
>>654 javascriptってOOするのに適してますか?
最高です。
Javascriptで彼女が出来ました!
ねずみこう (・A・)イクナイ!!
今ならもう1つjavascriptがついてきてお値段そのまま。
いらねーよ
661 :
648:04/09/01 07:07 ID:???
アクセスメソッド作るのにperlならAUTOLOAD使ってるけど、JAVASCRIPTだと何使うの?
JSはモジュールとかってないの?
>>661 > モジュールとか
ないよ。現状では。
此処って検索出来ないんですけど
なんでやねん
<FORM method="GET" action="
http://www.google.co.jp/search" target="_blank">
<INPUT type="text" name="q" size="31" maxlength="255" value="">
<INPUT type="submit" name="btnG" value="検索">
<INPUT type="hidden" name="sitesearch" value="f54.aaacafe.ne.jp">
<INPUT type="hidden" name="as_epq" value="~oldlog">
<INPUT type="hidden" name="hl" value="ja">
</FORM>
ワロタ
>>664 name="sitesearch" value="f54.aaacafe.ne.jp"
name="as_epq" value="~oldlog"
此処ら辺かな
>>666 おまいはJavaScriptとHTMLの区別すら出来んのかね?
もうね、見てらんない
>>669 そういうことね
単にgoogleが拾ってないだけじゃないの?
だったら、JavaScriptでサイト内検索を実現すればいいじゃん
試しにやってみよっかな。。
>>670 どーやるのよ。サーバ側JavaScriptならわかるが。またはページ内な
ら分かるが。サイト内を?クライアント側スクリプトで?
出来るのは分かったからソースの要点を晒せ。
>>673 は無知なのを棚に上げて傲慢ですね
教えてもらいたいならそれ相応の態度で臨むべきです
とりあえず、orzぐらいしなさい
話はそれからです
675 :
Now_loading...774KB:04/09/02 01:23 ID:tZmrO0Mk
ttp://emugif.emu-zone.org/ このページの左端のLINKSにマウスを持っていくとリンクが開き、離すと 閉じる
といったJavaスクリプトがありますが、似たような素材でプログラムを公開しているサイトは
ありませんでしょうか?
ご存知の方教えてくださいm(_ _)m
>>675 site:www.dynamicdrive.com
>>674 JavaScriptでサイト内検索をするにはサイト内の検索データを
クライアント側に全部取り寄せる必要がある。そんなの効率悪いし
損すぎ。やめた方がいいと思うよ。
alert() で全ての配列xxx[i]を呼び出す事は可能でしょうか?
どう記述すれば良いのですか?
よろしくおねがいします
ページ内の全てのforms[i].elements[i].をクリアーするJavaScriptお願いします。
var xxx = new Array();
...
...
var buf = new String();
for(var i=0; i<xxx.length; i++) buf += 'xxx['+ i +'] = '+ xxx[i] +"\n";
//cf. for(var i in xxx) buf += i +' = '+ arr.i +"\n";
alert(buf);
>>679 そんな手抜きなことしてどうする?大量すぎて見られないと思うが大まかに。
var s = '';
for(var k in window) if(window[k].length) s += window[k].toString();
alert(s);
>>681 出てきました!!!画面いっぱいに(爆)。
ブラクラにも使えるようです(笑)。
有難う御座いました。
for(変数 in オブジェクト){処理}
は初めて見ました。3つとも試してみましたが、
全て動きました。お二方ともご親切にどうも有難う御座いました。
>>680 for(var i in document.forms)
for(var j in document.forms[i].elements)
document.forms[i].elements[j].value = '';
ボタンのラベルなんかも消えそうだけどね。
>>679 え〜?「すべての配列」じゃなく「配列xxxのすべての要素」なのorz
それだったら「alert(xxx.toString());」だけでしょ。
(爆)。
(笑)。
array.toString は見づらくて話にならん
気に食わないならjoinでも何でも使えば。沢山書きたければ
そうすればよい。誰も止めない。が、alert()でチェックする
のに頑張ってもしょうがないと洩れは思っている。
>>685 レス有難う御座います。 早速鏖殺すべく試みましたが、
オブジェクトでサポートされていないプロパティまたはメソッドです。
がでます。
>>689 うーん。IEはfor-inが使えないのか。
for(var i = 0; i < document.forms.length; ++i)
for(var j = 0; j < document.forms[i].elements.length; ++j)
document.forms[i].elements[j].value = '';
>>690 見事に消えました。ラベルも(爆)。
となると使えないので、
IDをつけて、そこだけを消すようにした方がいいんですかね〜?
(爆)。って何だ?
693 :
Name_Not_Found:04/09/02 19:54 ID:PVCljSKz
まったくの初心者ですが、>>1-
>>10で調べまわった結果、
JavaScriptを使用して文字ををクリックしたらサブウィンドウを開かせ、
そこに自分の見せたい画像を入れる、ここまで出来ました。
ですが、そのサブウィンドウを画像の大きさにに合わせて開くには、
どこを弄ればいいのかが分かりません。
window.onerror=null;
function WinOpenD13(HLP1,HLP2,W,H){
var WinD13=window.open('',(W+'')+(H+''),'scrollbars=1,width='+W+',height='+H+'');
この中にあるのかなとは思うのですが。。。
よければどなたか教えていただけないでしょうか?
推して知るべし。
695 :
675:04/09/02 20:08 ID:???
>>691 あのさあ、フォームを初期状態に戻すのならresetってのがあるんだが。
for(var i = 0; i < document.forms.length; ++i) document.forms[i].reset();
>>693 それ間違いやすいから
w = window.open(...);
で普通に開いてしまってから
w.resizeTo(幅, 高さ);
で変更したらどうかね。とりあえずさ。
JavaScroptのサンプルを色々と見てみたけど、類似した機能を持つスクリプトでも書き方が沢山あって大変だわ
皆はこんなのどうやって理解してるのさ
>>698 それは違うな。表面的なことだけ覚えるんじゃ上達しないよ。
どういうオブジェクトはどういう機能があるとかどういう動作を
したければ何を活用するとか、そういう関連性を頭に入れる。
で、具体的なオブジェクト名とかメソッドとかは覚えてなくても
そのつど調べればいいわけ。
700 :
Name_Not_Found:04/09/02 21:21 ID:Rrn8lkU+
自分の出来得る限り(ぐーぐるなどで検索)で調べたのですけど、出てこなかったので質問させていただきます。
JavaScriptを使って、音楽のリズムに合わせて、キーを押していくゲームを作っているのですが、
音楽を play() 関数を使って開始する際に、「未定義のエラー」が出て、動かないのです。
調べてみると、どうやらEMBEDがダウンロードしきっていないのが原因らしく、onLoadイベントでゲームが始まるようにしている都合上、解決のしようがないのです。
なので、EMBEDの中身がダウンロードし切るまで動かない・・・としたいのですが、そのようにする方法が見つからず、一向に進めません。
どなたか、EMBEDオブジェクトがダウンロードし切った時に、イベントを発生させる方法を知っておられるならば、是非とも教えてください。
大人しくFlash使いなさい
そっちのが楽
>>697 度々有難う御座います。これなら完璧です。
それでついでにBookmarkletを作ったのですが、
上のとこれ
javascript:for(i=0;i<document.getElementsByTagName('form').length;i++)void(window.document.getElementsByTagName('form')[i].reset())
両方ローカルでは動きますがYahooとかGoogleでは動きません。なぜですかね?
703 :
700:04/09/02 21:39 ID:???
>>701 Flashは、いままで作ったことが無いので、全く無知である故、
自分でも作れるJavaScriptで作ってみようかと思ったのですが・・・
あれから、まだ検索しているのですが、どこにも無いみたいです。
EMBEDでダウンロード完了したときに、イベントを発生させるのは、どうやら存在しないようですね・・・。
速レス、ありがとうございました。
がんばってFlashを学んでみます。。。
>>700 EMBED に onLoad イベントはつけられないの?
705 :
Name_Not_Found:04/09/03 02:05 ID:dtZ/crD9
質問です。
アプレット上からディスク上にファイルを出力しようと試みたんですが、
アクセス権限エラーが発生してうまくいきませんでした。
調べた結果、ポリシーファイルをクライアント上に用意されてあるらしく、
それにアクセス権限を追加し、うまくいきました。
問題は、JavaScriptからアプレットを呼び出したときのみ、
なぜかうまくいきません。これは、仕様なのでしょうか?
どうやって呼び出したの?
ロッカーに「果たし状」を置いてきたんです。
以外と古風なので好感が持てました
意外と
古風なら下駄箱だろ。
>>702 アフォ
空になることを期待してんだろ?
検索フォームに文字列打ってサブミットしたら
ググルは value に初期値として検索文字列を入れている。
reset はその名の通り値を元に戻すだけで空にするわけではない。
712 :
Name_Not_Found:04/09/03 07:32 ID:14gEnS96
JavaScriptから呼び出しすれば、当然JavaScriptのセキュリティーポリシーにより
ローカルアクセスは不可。
どーしてもやりたいなら、AppletからJavaScriptを監視して、Appletから動くようにする。
thredを使えば可能。
713 :
712:04/09/03 07:37 ID:???
ageスマソ。ついでに補足。
>当然JavaScriptのセキュリティーポリシーにより
ブラウザの設定に従うって事ね。
時間によってCSSを切り替えたいのですが
エラーはでませんがスタイルが適用されません。
ご指摘お願いします。
<html><head><title>xxxxxxx</title>
<script language="javascript">
today=new Date();
h=today.getHours();
function test()
{
var doc=document.body;
if((h>0)&&(h<=1)){doc.className="t00";}
else if((h>1)&&(h<=2)){doc.className="t01";}
.
...
else if((h>21)&&(h<=22)){doc.className="t21";}
else if((h>22)&&(h<=23)){doc.className="t22";}
else{doc.className="t23";}
}
</script>
<style type="text/css">
.t00{@import url(css/t00.css);}
.t01{@import url(css/t01.css);}
.
...
.t21{@import url(css/t21.css);}
.t22{@import url(css/t22.css);}
.t23{@import url(css/t23.css);}
</style></head><body onload="test();"></body></html>
勝手な解釈でした。.t00{@import url(css/t00.css);}
なんて言う記述はないですね。お騒がせいたいますた。
通常のハイパーリンクは<a href="
http://www.hoge/">hoge</a>のような記述で
切り替えスイッチかボタンで、リンクを全て別窓開きにするようなものは可能でしょうか?
>>716 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg() {
for(var i = 0; i < document.links.length; ++i)
document.links[i].target = '_blank';
}
</script>
</head><body>
<form action="#" onsubmit="return false"><p>
<input type="button" onclick="chg()" value="別窓"></p></form>
<p><a href="
http://www.yahoo.com">やふー</a></p>
<p><a href="
http://www.google.com">ぐーぐる</a></p>
</body></html>
質問ですが、ラジオボックス、リストボックスの選択している値を直接引っ張り出すにはどうすればよいのですか?
例えば<FORM NAME=FORM_1>で
<INPUT TYPE="RADIO" NAME="R1" VALUE="R1_1">
<INPUT TYPE="RADIO" NAME="R1" VALUE="R1_2">
で上が選択されていたらR1_1を返すにはどうすればよいのですか?
又リストボックスならselectedIndexを使って、その変数をoptions[n].textのnに入るという2度手間をかけなければいけませんか?
直接option.selectvalueみたいな関数で直接引っ張れませんか?
さらに質問です。
クリップボードのデータを読み込み、書き込みすることは出来ますか?
3つ一気にですがよろしくお願いします。
>又リストボックスならselectedIndexを使って、その変数をoptions[n].textのnに入るという2度手間をかけなければいけませんか?
n が selectedIndex なら options[n].text とは options[selectedIndex].text なんじゃないかな?(・∀・)
>直接option.selectvalueみたいな関数で直接引っ張れませんか?
聞いたこと無いから引っ張れないんじゃないのかな?
>クリップボードのデータを読み込み、書き込みすることは出来ますか?
このスレの前の方で出てたような気がしたんだけどな?読んで見たのかな?(・∀・)
>>719 options[selectedIndex].text (value)が「2度手間」と感じる
ようだったらあんた向いてないよ。地道にこうやって調べるしかない。
クリップボードはセキュリティ上の制約で駄目じゃないかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.forms.f0.elements.r0;
for(var i = 0; i < a.length; ++i)
if(a[i].checked) alert(a[i].value);
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><p>
<input type="radio" name="r0" value="x" checked>X
<input type="radio" name="r0" value="y">Y
<input type="radio" name="r0" value="z">Z
<input type="button" onclick="test()" value="test"></p></form>
</body></html>
>>720-721 面倒っていうか1行でキレイに出来ないかな。と思って
クリップボードは出来ませんか……
>>721はラジオボタンを1つずつチェックしてあるかどうかを調べているんですね。
うーん、1行じゃ無理か……
どうもありがとうございました。
>>722 キレイにしたくて現状与えられているものがこうだったら
関数をどう作るとかそこが腕の見せどころだろうが。どんなに
複雑でも関数にすれば呼ぶところは1行つかほんの十数文字。
>>718 ごめん便乗質問
target="_blank"状態から元に戻すには何を足せばいい?
_selfでは。
>>711 ァ
'`,、
'`,、
'`,、
'` ('∀`)
ほんとにアフォだわ。何にも考えていませんでした。
レスありがとう。
728 :
Name_Not_Found:04/09/03 17:14 ID:+CjS7FsB
JavaScriptで非常に安易なベンチマーク的なものを作ってみようと
思うのですが、一番重い処理は何になりますか?
思うに、match() で回したほうが適当かなと思ったのですけど
何か重い処理ってありますか?
document.write()でタグを書きまくる
自作のカラーピッカーで16^3個ほどfontタグ書き出してるけどPen3、FireFoxでCPU使用率100%いくよ
730 :
714:04/09/03 17:52 ID:???
>>714が動かないので
if((h>0)&&(h<=1)){document.write('<link rel="stylesheet" type="text/css" href="css/t00.css">');}...
としたら空のページに
<link rel="stylesheet" type="text/css" href="css/t00.css">となってしまい
次に
<link href="aaa.css" rel="stylesheet" type="text/css" id="ttt">としてIDをつけ
if((h>0)&&(h<=1)){document.getElementById("ttt").outerHTML = '<link rel="stylesheet" type="text/css" href="css/t00.css">';}
としましたがこれも動きません。
どなたかお助けおねがいします。
<html>
<head>
<script type="text/javascript">
//時間を取得
//どのCSSファイルを使うか決める
document.write('<link rel="stylesheet" type="text/css" href="目的のCSSファイル">');
</script>
</head>
以下略
732 :
714:04/09/03 18:18 ID:???
>>731 もうそれは試しています。
>>730 そうすると空のページに
<link rel="stylesheet" type="text/css" href="css/t00.css">となってしまいます。
1時間毎に切り替わるようにif〜elseまで24行あります。functionの上にテスト用の
document.write(h,"時",m,"分",s,"秒","");を書いても表示されません。
何が問題なのでしょうか
CSSの切り替えスクリプトのことなんですが、
MacIEに対応させるにはどうすれば良いのでしょうか?
当方Macを持っていないので、出来ません。
どなたか追加ソース下さると光栄です。
>>733 えーと、代替スタイルシート萌えスレってもうないの?
そこがいちばん適切と思うが。
>>734 ありました。そっちでお願いしてきます。
どうも有難う御座いました。
736 :
Name_Not_Found:04/09/03 20:16 ID:u0MGZB0s
IE6.0ベースで作っています。
画像を表示したら、その画像の縦横サイズを入力フィールドの中に入れたいと思っています。
画像サイズを取得するまではわかったのですが、どうすれば入力フィールドの中に表示できるのかが
わかりません。
その方法をご教授ください。
■HTMLの内容
<img src="gorky100.gif" name="IMG" >
<script language="javascript"><!---
document.write("高さ:");
document.write(document.IMG.height);
document.write("<br>");
document.write("横:");
document.write(document.images[0].width);
//---></script>
width<input name="img_width" type="text" id="img_width" size="4" maxlength="4" >
>>736 べつにHTMLでinput書き出す時value="値"をつけとけばいいんでは。
738 :
736:04/09/03 20:27 ID:u0MGZB0s
>>737 画像は参照でローカルから呼び出す予定です。
サイズが固定で決まっているわけではないので、表示された画像の
サイズを取得して、さらに入力フィールドに表示させたいのです。
別のやり方でも構わないのですが、画像サイズを入力フィールドに
表示させる方法があれば、教えてください。
>>738 だったら
document.forms.フォーム名.elements.フィールド名.value = 値;
しかしそんなの何百回も登場してるんだけどな。もしかして
画像の幅を取得する方法ってこと?
回答者も夏バテか?
>>739 幅取得は分かってるらしいよ。
>>736 documentwriteじゃむりじゃないかな。描画後だし。
1)縦横の数値入れる空テキストフォームを2個用意。
2)ローカルファイルを選択するボタン&onchangeで幅取得。
3)取得した値を739のような方法でぶち込む。
でもさ、やった事ないから想像だけどローカルのファイル選択で
画像の幅と高さって取れるの?
<img>タグから画像の幅と高さなら簡単に取れるけど一緒だと思ってないよね?
741 :
Name_Not_Found:04/09/04 01:40 ID:RGCaBMuc
ブラウザごとに読み込むファイルを分けるJAVASCRIPTってありますか?
>>690 for-inはIEでも使えるけどformsコレクションを回すとループ変数にlengthプロパティまで入ってしまうので「document.forms.length.elementsはオブジェクトでサポートされていないプロパティまたはメソッドです」
普通のforで回すのは<form name="length">があると酷いことになるかもしれません
>>743 なるほどlengthが入ってしまうわけか、納得しますた。
formの名前にlengthなんてつけるような奴はスルーでいいでしょ。
過去にも結構いたよね、そういう衝突しそうなname属性使う奴。
>>732 なんか全然伝わってなかったみたいだね
どこに
>>731をonloadで動かせって書いてるかね?
>>732 はまずFAQ
>>10 のQ3/A3を読んでdocument.write()と
決別するべきだな。
>>745-746 あ〜恥ずかしい。条件反射的にまたやってしまいました。動かないので諦めて
CGIで動くようにしたのですが、function を削ったらあっさり動きました。
情けないです。いろんなものと「決別」しなければならないようです。
貴重なアドバイス有難う御座いました。
748 :
724:04/09/04 21:17 ID:???
>>718 ゴメン聞き方が悪かったみたいだ。
同窓、別窓切り替え機能みたいなのを付けたかったんだよ。
ラジオボタンでも普通の文字リンクボタンでもいいんだけどね。
mugiさんのやつね
<script language="javascript"><!--
var defaultTarget="_top"
var checkedTarget="_blank"
function setTarget(b){
for(var i=0;i<document.links.length;i++)
document.links[i].target=b?checkedTarget:defaultTarget
}
//--></script>
<input type="checkbox" name="checkbox" id="tcheck" onclick="setTarget(this.checked)"><label for="tcheck" style="cursor: hand;" accesskey="n">new window</label>
>>745-746 ちなみにお聞きしたいのですが、
<link href="aaa.css" rel="stylesheet" type="text/css" id="ttt">としてIDをつけ
if((h>0)&&(h<=1)){document.getElementById("ttt").outerHTML = '<link rel="stylesheet" type="text/css" href="css/t00.css">';}
こうして書き換えようとしたのですがこちらは動きません。
回答頂けると幸いです。
document.writeと決別したいのだが.....
753 :
Name_Not_Found:04/09/05 02:43 ID:1hX7c01V
<link href=...>って、outerHTML属性もってるの?
インラインフレームをスクロールするスクリプトのことなのですが、
<iframe src="fm.html" id="f1" name="f1"></iframe>
<script text="javascript"><!--
var stp = 5; var spd = 5; var rep;
function fmv() {f1.scrollBy( 0,-1*stp );rep = setTimeout("fmv()", spd );}
function fst() {clearTimeout( rep );}
//--></script>
<div onmouseover="fmv()" onmouseout="fst()" >ここにマウスを置いてね</div>
とすると、インラインフレーム「f1」をスクロールすることができますが、
これを
<div onmouseover="fmv('f1')" onmouseout="fst('f1')" >ここにマウスを置いてね</div>
というふうに都度、対象のフレーム名を呼ぶようにしてスクリプト自体に汎用性を持たせるには
どうしたらよいでしょうか。ちなみに、
window.frames[nm].scrollBy( 0,-1*stp );
として最初の5ピクセルだけまでは動いたのですが、繰り返し呼び出すことが出来ていません。
>>754 クラス(function)定義して引数にすればいいやん。
><div onmouseover="fmv('f1')" onmouseout="fst('f1')" >ここにマウスを置いてね</div>
って書いてるから出来てるじゃん。何が問題なの?
どうもありがとうございます。
繰り返し呼び出すことが出来ていません。
setTimeout("fmv()", spd );
setTimeout("fmv(nm)", spd );
どちらでも動きません。(最初の5ピクセル分だけは
window.frames[nm].scrollBy( 0,-1*stp );
で動きますが、
setTimeoutでもう一回呼び出すと見つけられないのです。
なにか根本的に間違っているようなのですが、わかりませんでした。
どう記述したら繰り返し呼び出してスクロールしているように
見える動きが実現しますでしょうか。
setTimeout("fmv(nm)", spd );
↓
setTimeout(function(){fmv(nm)}, spd );
直感だけど
ともかくsetTimeout()で文字列渡すのはダサイしトラブルの元
だからやめとくのが吉だな。
>>759 のように関数で渡すべし。
setTimeout("fmv('"+nm+"')", spd );
どうもありがとうございます。
('"+nm+"')
なるほどです。文字列の代入の書式を誤って理解していました。
問題なく動作しましたのでご報告いたします。
setTimeout(function(){fmv(nm)}, spd );
こちらは動きませんでした。しかしご回答のお手間には本当に感謝しています。
いろいろ勉強になりました。ありがとうございます。
初めてcaseを使ってみたのですがndefinedになってしまいます。
何がいけないのか教えてください。
<html><head><title></title>
<script language="javascript"><!--
function ff(num){
var youbi=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
Now=new Date;
switch(num){
case 0 : var z=Now.getYear()%100;if (z < 10){z = "0" + z;}break;
case 1 : var z=Now.getMonth()+1;if (z < 10){z = "0" + z;}break;
case 2 : var z=Now.getDate();if (z < 10){z = "0" + z;}break;
case 3 : var z=youbi[Now.getDay()];break;
case 4 : var z=Now.getHours();if (z < 10){z = "0" + z;}break;
case 5 : var z=Now.getMinutes();if (z < 10){z = "0" + z;}break;
case 6 : var z=Now.getSeconds();if (z < 10){z = "0" + z;}break;
case 7 : var z=Now.getMilliseconds();if (z < 10){z = "00" + z;}else if (z < 100){z = "0" + z;}break;
break; }
document.forms[0].elements[0].value += z + "/";
}
//--></script>
</head><body onload="">
<form><textarea name="textarea" cols="22" rows="9" wrap="VIRTUAL"></textarea><br>
<input type="button" onClick="ff(this.value)" value="0">getYear()<br>
<input type="button" onClick="ff(this.value)" value="1">getMonth()<br>
<input type="button" onClick="ff(this.value)" value="2">getDate()<br>
<input type="button" onClick="ff(this.value)" value="3">getDay()<br>
<input type="button" onClick="ff(this.value)" value="4">getHours()<br>
<input type="button" onClick="ff(this.value)" value="5">getMinutes()<br>
<input type="button" onClick="ff(this.value)" value="6">getSeconds()<br>
<input type="button" onClick="ff(this.value)" value="7">getMilleseconds()<br>
</form></body></html>
>>763 よくわからんけど、parseIntとかevalがいるんじゃない?
それか、caseの数字を "" で囲むとか。
>>764 stringとして送られたのですね。ありがとうございました。
しかしこうするとオブジェクトを指定してください。というエラーになります
<button type="button" onClick="ff(eval(this.value))" value="0">getYear()</button>
<button>のvalueは送れないのでしょうか
>>764 × case 0
○ case "0"
じゃねーの?
ついでにevalはいらないと思うが。
>>766 parseInt(this.value)もeval(this.value)もcase "0"も全て動きました。
しかし
>>765なんです。
>>765-767 そもそも「どこで」エラーが起きているの? buttonのvalueは
問題なく取れると思うが。
>>763はeval(this.value)にして解決しましたが、
inputをbuttonタグに替えるとvalueが送れません。
で現在switchをやめてif elseにしたのですが、うまく動作しないので
恥ずかしいのですが、一つずつのfunctionにしています。
どんな書式にも対応出来るマルチな日付入力スクリプトを作りたいのですが、
もう少し時間が掛かりそうです。
全角半角混じりな俺流書式にも対応してくれますか?
>>770 いやoutputのみなので用意したやつからだけです。
順番を入れ替えられるぐらいです。
772 :
Name_Not_Found:04/09/05 23:42 ID:iCQkFSeE
質問です。
onmouseoverイベントハンドラが割り当てられていない要素に、
onmouseoverイベントが発生した瞬間に動的にイベントハンドラを
割り当てるようなことは可能でしょうか?
もし可能ならどういうスクリプトを書けばよいのでしょうか?
よろしくお願いいたします。
>>769 こういう「関数の配列」とかはどう?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var y = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'], a = [
function() { return zfil((new Date()).getYear()%100, 2); },
function() { return zfil((new Date()).getMonth()+1, 2); },
function() { return zfil((new Date()).getDate(), 2); },
function() { return y[(new Date()).getDay()]; },
function() { return zfil((new Date()).getHours(), 2); },
function() { return zfil((new Date()).getMinutes(), 2); },
function() { return zfil((new Date()).getSeconds(), 2); },
function() { return zfil((new Date()).getMilliseconds(), 3); }];
function zfil(s, n) { s = String(s);while(s.length < n) s = '0' + s; return s; }
function calc(e) { e.form.elements.a0.value += a[parseInt(e.value)]() + '/'; }
</script></head><body><form name="f0" action="#" onsubmit="return false"><p>
<textarea name="a0" cols='22' rows='9'></textarea><br>
<input type="button" onClick="calc(this)" value="0">getYear()<br>
<input type="button" onClick="calc(this)" value="1">getMonth()<br>
<input type="button" onClick="calc(this)" value="2">getDate()<br>
<input type="button" onClick="calc(this)" value="3">getDay()<br>
<input type="button" onClick="calc(this)" value="4">getHours()<br>
<input type="button" onClick="calc(this)" value="5">getMinutes()<br>
<input type="button" onClick="calc(this)" value="6">getSeconds()<br>
<input type="button" onClick="calc(this)" alue="7">getMilleseconds()
</form></p></body></html>
>>772 なんか分からない。最初から割り当てときゃいいんじゃ?
>>765 そもそも button の場合の value って
<button>value</button>
だったように思うんだけど…あぁ、これは解決してるのか。ごめん。
ぬるぽ
> buttonのvalue
IEのバグまたは独自仕様。
標準仕様上はBUTTON要素にはvalue属性があるし
valueプロパティはvalue属性を示し、内容のテキストとは別だが、
IEはBUTTON要素についてはvalueとinnerTextを区別しない。
# getAttribute('value') で要素の内容のテキストが出てくるくらいだ。
779 :
778:04/09/06 08:19 ID:???
追伸。 getAttributeNode('value').nodeValue なら
IE でも value 属性の値が取れるっぽい。
FIrefoxでデバグすると XULのパーミッションデニーなエラーが表示されます。
これらのエラーは無視してもいいんでしょうか?検索しても海外サイトが多くて
いまひとつはっきりと把握できませんでした。
動作的には問題なし(Mozillaではエラーも出ない)。命令はalertとかfocusとかです。
例えば、アラートで"を出すときってどうするんですか?
alert("abc"def");
でabc"defと出したいのに途中の"で終わっていると誤認してしまいます。
お助けを……
>>780 エラー発生位置でスクリプトの評価が停止しても構わないかどうかでは。
気になるなら try-catch 等で例外処理。
>>781 'abc"def' とか "abc\"def" とか。
初心者で基本的な質問かもしれませんが、調べてもわからなかったので
どなたか教えてください。
チェックボックスの値を別のウインドウにあるテキストエリアに縦に並
べたいのですが、どのような方法が考えられるでしょうか?
>>783 チェックボックスのvalueプロパティの値を取得して、
別のウィンドウにあるテキストエリアのvalueプロパティに代入する。
といえばよろしいか?
785 :
783:04/09/06 21:57 ID:???
>784
仰ることはわかるんですが…
できればサンプルソースなどあると、ありがたいです。
釣りかと思ってたら本気で言ってたのかよ
ナビゲーションボタンの画像などのプリロードを行う際のことなのですが、
function PreImg( ImgArr ) {
for ( i=0; i < ImgArr.length; i++) { LoadImg( ImgArr[i] ); } }
function LoadImg( imgNm ) { if ( document.images ) ( new Image()).src = imgNm; }
あるページでは以下のような3つのgifを読み込み、
var setImg = new Array( "img/first_1_over.gif", "img/first_2_over.gif", "img/first_3_over.gif")
別のページではまた別のgifを読み込んでいます。
var setImg = new Array( "img/second_1_over.gif", "img/second_2_over.gif", "img/second_3_over.gif")
これらの画像のパスをすべてひとつのリストにまとめて、 「このページの時は何番目から何番目までの画像を読み込む」、 というふうに new Array() の中身を、ページによって都度置き換えることは
できますか?
ページの特定には self.location.href.IndexOf を使えばいいのではないかと
思いますが。ほかにベターな書式があったら教えていただきたいです。
788 :
784:04/09/06 22:39 ID:???
>>783 どの辺がわからないのかを書いてください。
じゃないと、教えようがないっすYO!
ちなみにtextareaにvalue要素はプロパティは
ちなみにtextareaにvalueプロパティは
>>787 1つの配列にまとめても良い事無いと思うけど
使う画像が変わった時・ページを追加したい時・共用の画像があるとき、などなど配列の編集&コードの書き換えがめんどくさそう
俺なら・・・
var imgs = new Object();
imgs['index.html'] = new Array('foo.gif', 'bar.gif', 'baz.gif');
imgs['hogehoge.html'] = new Array(...);
..
って感じで要は連想配列で組んで
あとはページのファイル名取ってきて PreImg(imgs[ページ名]) ってしちゃうけど(↑のコードは書式合ってるかワカランw)
でも普通に PreImg は外部ファイルに置いといて<script>内で PreImg に使いたい画像の配列投げればいいと思うけど・・・?
792 :
784:04/09/06 23:16 ID:???
>>789-790 おぉぅ、おぉぅいぇすっ!(シャンプーの宣伝風に)
回線切って、
首吊って、
こらえて、
はずして、
トイレにいって、
ごはんを食べて、
お風呂に入ってきます。
ページ内の全てのアンカーにaccesskeyを自動で割り振りたいのですが動作しません。
どこの記述がまずいのでしょうか、宜しくお願い致します。
var a_key = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","*","@");
function seq_a_key(){
a = document.getElementsByTagName('a'),
for(var i=0; i<a.length; i++){
a[i] = document.createAttribute('accesskey');
a[i].nodeValue = '[' + a_key[i%38] + ']';
}
}
>>793 for 文のの中が無茶苦茶。a[i] が何か解ってる?
a[i].accesskey = a_key[i%38]; で十分だろ。
DOM2Coreだけでどうにかしたい場合でも
a[i].setAttribute('accesskey', a_key[i%38]);
どうしてもdocument.createAttributeを使いたいなら
var attr = document.createAttribute('accesskey');
attr.nodeValue = a_key[i%38];
a[i].setAttributeNode(attr);
796 :
783:04/09/07 08:22 ID:???
>784
784さんの仰るとおりやってみました。
解決しました。
お騒がせいたしました。
>>794 accesskeyに割り振っても動かないようなので、こうしてみましたがダメです。
どなたか正解ソースお願いします。
/*
<a href="(URI)">(アンカー文字列)</a>
<a href="(URI)"accesskey="(値)">(アンカー文字列)<kbd class="accesskey">[(値)]</kbd></a>
*/
var a_key = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","*","@");
function seq_a_key(){
a = document.getElementsByTagName('a');
a_ack = new Array(a.length),
a_kbd = new Array(a.length),
a_txt = new Array(a.length);
for(i=0; i<a.length; i++){
a_ack[i] = document.createAttribute('accesskey');
a_ack[i] = document.setAttribute('accesskey', a_key[i%38]);
a_kbd[i] = document.createElement('kbd');
a_kbd[i].className = 'accesskey';
a_txt[i] = document.createTextNode('a_key[i%38]');
if(a[i].accessKey){
a[i].nodeValue = a_key[i%38];
a_txt[i].data = '[' + a[i].accessKey + ']';
a_kbd[i].appendChild(a_txt[i]);
a[i].appendChild(a_kbd[i]);
}
}
}
カンマの後に改行って良いんだっけ?
>>797 a.accesskey = "..."; と a.setAttribute("accesskey", "..."); を
IE6、Mozilla1.0、FireFox0.8で試してみたが、
ForeFoxがsetAttribute()でaccesskey設定できただけだったよ。
他もDOM操作自体はできてるみたいだけど、なぜか使えないや。
accesskeyを割り振るのはDOMでしか出来ませんし、ダメなんでしょうか?
var a_key = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","*","@");
function seq_a_key(){
a = document.getElementsByTagName('a');
for(i=0; i<a.length; i++){
a[i].accessKey = a_key[i%38];
var kbd = a[i].appendChild(document.createElement('kbd'));
kbd.appendChild(document.createTextNode( '[' + a_key[i%38] + ']' ));
kbd.className = 'accesskey';
}
}
少なくともうちの環境(Win2K, Moz1.7.1/IE6)では動作を確認。
なるほどKeyかい。ちゃんと仕様書読めばよかった……。
質問でも回答でもないけど
var a_key = new Array("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*@".split(''));
とか便利。
>>803 split の戻り値は新規Arrayオブジェクトなので
new Array( ) は不要。てかそれだと期待した動作にならない。
# var a_key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*@" としておいて charAt() でもいいね。
805 :
803:04/09/07 19:21 ID:???
誤情報ごめん。
>>804 こういう事ですか?だいぶコンパクトになりますね。
var a_key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*@"
function seq_a_key(){
a = document.getElementsByTagName('a');
for(i=0; i<a.length; i++){
a[i].accessKey = a_key.charAt(i%38);
var kbd = a[i].appendChild(document.createElement('kbd'));
kbd.appendChild(document.createTextNode( '[' + a_key.charAt(i%38) + ']' ));
kbd.className = 'accesskey';
}
}
>>801 ソースありがとうございます。
ですが私の環境では何故か動きません。(Winxp, Firefox0.8/IE6)
<a href="(URI)">(アンカー文字列)</a>
<a href="(URI)"accesskey="(値)">(アンカー文字列)<kbd class="accesskey">[(値)]</kbd></a>
の<kbd class="accesskey">[(値)]</kbd>も表示されませんです。
>>807 seq_a_key() はちゃんと呼び出せてるの?
m(_ _)m大変申し訳ありません。呼び出すの忘れてました。m(_ _)m
Firefox0.8だといきなり開きますが、IEはちゃんと動作します。
お陰様で便利に使えそうです。有難う御座いました。m(_ _)m
Firefoxがいきなり開くのは仕様だ
811 :
Name_Not_Found:04/09/08 12:37 ID:+oacHXSS
定期的にサーバ側CGIから文字列を取得してHTML内のテーブルを書き換えたいのですが、
ページ展開後にjavascript内からサーバCGIにリクエストする方法が分かりません。
そういった関数かメソッドはありますか?
>>811 別フレーム、別窓、隠しフレームのいずれかにサーバからの
送信内容を読み込み、JavaScriptで取り出せばよい。過去スレに
複数例があったよ。
まぁ別フレーム、別窓、隠しフレームがダサいってんならDOMでごにょごにょ
あ、リクエストはsetIntervalでsubmit
814 :
Name_Not_Found:04/09/08 15:33 ID:+oacHXSS
レスありがとう。
できれば別フレームとかはやりたくないんです。
イメージとしては(動くかどうかは別として)、
var result = httpRequest("hoge.php?value=hoge") ;
みたいな事がしたいのですが。
意味分かんなかったらゴメン。
任意の文字、例えば「●」をクリックしたらA1()を行い、カーソルが上にある(つまりonMouseOver)時はA2()を行いたいのですが
<HREF="#" onclick="A1()" onMouseOver="A2()">●</A>
として、クリックしてもポインタを通過させてもA1,A2どちらも実行されません。
クリックした時はA1,A2両方が実行されると思いますが、ifで片方を始めに止めています。
どうすれば両方のイベントを実行できますか?
それと中身が
<form name=F1><input type="text" name="A1"></form>
なhtmlファイルを作ってブラウザで見てみると
作ってもいないのに勝手にsubmitボタンがテキストボックスの下に出現しますがこれが表示してしまう条件とは何ですか?
どのようにすれば消すことができますか?
<HREF
これ
HREF="#"
↓
HREF="javascript:void(0);"
<form name=F1><input type="text" name="A1"></form>
↓
<input type="text" name="A1">
dedouyo
818 :
Name_Not_Found:04/09/08 17:07 ID:BT9egj23
これのパスワード何か分かってしまいます?
function _HpbChkPwd(keyin,escEncrypted,defaultUrl,target)
{
varencrypted = unescape(escEncrypted);
var indexbase = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var passlen = keyin.length;
var enqlen = encrypted.length;
var decrypted = "";
var decryptedPassword = "";
var decryptedPath = "";
var targetUrl = "";
var i, j, k, chr1, chr2, nbase;
var needPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u3092%u5165%u529B%u3057%u3066%u304F%u3060%u3055%u3044%u3002";
var badPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u304C%u6B63%u3057%u304F%u3042%u308A%u307E%u305B%u3093%u3002";
819 :
Name_Not_Found:04/09/08 17:08 ID:BT9egj23
if (passlen <= 0)
{
alert(unescape(needPassword));
return ;
}
for (i = 0, j = passlen - 1, k = 0 ; i < enqlen ; i++, j--, k=0)
{
if (j < 0)
{
j = passlen - 1;
}
chr1 = indexbase.indexOf(keyin.charAt(j));
chr2 = indexbase.indexOf(encrypted.charAt(i));
if (chr2 < (chr1 + j))
{
nbase = (chr1 + j - chr2) / 0x5f;
k += (0x5f * Math.ceil(nbase));
}
k += (chr2 - chr1 - j);
decrypted += indexbase.charAt(k);
}
if (typeof(opener) == "undefined")
{
window.close();
return ;
}
820 :
Name_Not_Found:04/09/08 17:09 ID:BT9egj23
if ((typeof(opener.closed) == "unknown") || opener.closed)
{
window.close();
return ;
}
opener.document.isOpened = false;
decryptedPassword = decrypted.substring(decrypted.length - passlen, decrypted.length);
if (keyin == decryptedPassword)
{
decryptedPath = decrypted.substring(0, decrypted.length - passlen);
passlen = decryptedPath.length;
for (i = 0 ; i < passlen ; i++)
{
chr1 = decryptedPath.charAt(i);
if (chr1 == "%")
{
chr2 = decryptedPath.substring(i, i+6);
targetUrl += chr2;
i += 11;
}
else
targetUrl += chr1;
}
821 :
Name_Not_Found:04/09/08 17:11 ID:BT9egj23
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.self.location.href = unescape(targetUrl);
window.close();
}
else
{
if (defaultUrl.length)
{
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.self.location.href = unescape(defaultUrl);
}
else
{
alert(unescape(badPassword));
}
window.close();
}
}
長いの貼るなよ。ちっとは人の迷惑ってもんを……
こんなに長いならtxt形式でうpろだに
そんな知能あったらこんなコトしないと思われ
すみません、自分ではどうしても突き止められなかったので
間違いをご指摘いただけませんでしょうか?
str01 = document.myForm.a.value;
str02 = document.myForm.b.value;
num01 = parseFloat(str02) - parseFloat(str01);
str03 = "" + num01;
alert(str03);
この時、str01に"1"、str02に"0.67"が入力されると
str03に"-0.32999999999999996"という結果が返ってきてしまいます。
str01が"1"以外の他の数だと問題ないようで、str02の方は小数点以下2桁以上の数の時
場合によって結果がおかしくなります。
("0.11""0.75"だと正常。"0.55""0.83"だと結果がおかしい。)
parseFloat()という関数を使ったのは初めてなのですが、なにか使い方が間違っていますでしょうか?
よろしくお願いいたします。
>>825 そういうものなのです。
適宜丸めて使ってください。
JavaScript 固有の関数としてではなく、
数値の用語としてflaotは一般的なので
調べてみると良いかも。
>>815 まず FAQ
>>10 のQ5/A5を嫁。次に <HREF>なんてタグはないが。
そしてアンタのやりたいことをやるならAタグは使わずに
<span onclick="A1()" onmouseover="A2()">●</span>
がいいと思うが。N4対応だと<A>タグが必要になるけど。
829 :
825:04/09/08 18:25 ID:???
>>826 レスありがとうございます。
調べてみて納得しました。
>>827 すみません、"小数"”float”で検索しただけでちゃんと読んでいませんでした。
これから気を付けますm(__)m
830 :
Name_Not_Found:04/09/08 18:29 ID:hUuYGUN0
教えてください。本当に悩んでいます。
サーバーに.emlファイルをアップしておいて、webページ上で.emlファイルを
呼び出して、定型文をメーラーのメール作成の中に表示させたいのですが
なかなか出来ません。 どなたか、過去にやった事のある方などいれば教えてください。
なかなか出来ないのですか
どの辺までは出来たんですか?
ジャバスクリプトでクッキーが有効か無効かって調べること出来ますか?
>>834 いい感じの本だね。今度買ってみます。
このスレの住人って、WEB制作系と開発系とどっちが多いんだろう。
JavaやPerlは出来るけどJavaScriptは全然って開発の人多いし、
スクリプトわかりませ〜ん、みたいな制作の人も多い。
ウチの会社はJavaScriptまともに出来る人がいなくて俺ばっかり。
もちろん派遣系やSI系に人材のアサインしてもJSも強いって人はほんといないね。
スレ違い&愚痴になってすまぬ。
>>835 個人で趣味でやってる人が多いのではないかと。憶測だけど。
>>834 そのページからたどって目次だけ見たけどフローチャートって…
洩れは今時フローチャートなんかで教える入門書は死刑! と思って
いるのだが。それに題名からして超初心者を対象にしているのだ
ろうけど、それにしちゃ様々な話題がテンコ盛りすぎないかね?
深さはともかく狭い奴はプログラミング向いてないよ
>>837 ほぼ同意だけど、
フローという概念すらない人が読むような本だと思うので
それもありかと。
それにしても
>>834 のような浅さでちゃんと手順的な
考え方のトレーニングができるのか疑問に思う。説明だけ
ならそりゃ1ページでもできるだろうけど、ちゃんと書ける
ようになるためにはトレーニングが必要だから。
理論と実践
どっちが欠けても進歩は遅い
プログラミングの本とかって、専門用語を身近な物に例えたりするけどさ
あれってわかりにくい例えだと逆効果だよね
しかも、タイトルに「はじめて」とか「初心者」とか「わかりやすい」とかいう文句が付いてる本にそういうのが多い
なんつーか著者必死杉
>>834 書名からすると常識程度のプログラミング用語辞典として使えば良さそう。
用語が理解できれば勉強もしやすいだろうし。
書名とデザインがいいな。
>>844 著者乙
なるほど、つまりプログラミングに入門はしない(「以前」だから)。
そういうことなら納得するが。
そういや随分前に「はじめてのC」ってタイトルの本を見つけた。
は じ め て の … C
エロいなぁって思った
847 :
834:04/09/09 21:27 ID:???
ただの皮肉のつもりで書いた
今は反省している
ハァ? 死刑だチメェ!
2段オチかよ。
ボタンでフォーカスを飛ばすのを作っています。
alert(document.links.length)とすると値がきちんと出て来るのですが、
alert(ll)とすると何も出てきません。
何故なのでしょうか?
var ll = document.links.length;
var i = 0;
function next() {
i++; if(i >= ll) i = 0;
document.links[i].focus();
}
function previous() {
i--; if(i < 0) i = ll-1;
document.links[i].focus();
}
function next10(){
i = (i + 10) % ll;
document.links[i].focus();
}
function previous10() {
i = (i - 10 + ll) % ll;
document.links[i].focus();
}
検索フォームをつくって、入力できる文字を制限したいので
javascriptのmatch()で入力されたフォームのvalueを検索して
していた文字が入っていたらalertを出すようにしました。
function hogehoge(){
n = form1.elements[2].value;
if(form1.elements[2].value.match("hoge")){
alert("「"+n+"」は検索出来ません");
return false;
}
}
上記のスクリプトで動いたのですが
制限する文字に「\」を追加することになりました。
〜
if(form1.elements[2].value.match("hoge|\")){
〜
イメージ的には上記の書き方なのですが
"がエスケープされてしまいます。
「\\」としてみたのですが反応しませんでした。
どうしたら「\」をmatchの対象にできるか教えてください。
よろしくお願いします。
Regexpは「"..."」で囲むのではなく「/.../」で囲む。
つまり ...match(/hoge|\\/) だと思うな。
>>850 どこにalert(...)を入れたのさ。
bodyにアンカーから呼び出したのですが...
>>850 <body>
<script>
alert(document.links.length); //無効。ここまでにリンクがないから。
onload=function(){alert(document.links.length);}; //有効。
</script>
<a href=></a><a href=></a><a href=></a><a href=></a>
<script>
alert(document.links.length); //有効
</script>
</body>
>>855 有難う御座いました。<script>をリンクの下に移動したら動作致しました。
cfNo = 0;
function nextAnc(){
Key = event.keyCode;
len = document.links.length;
if (Key == 39){
cfNo++;
cfNo %= len;
document.links[cfNo].focus()}
if (Key == 37){
cfNo--;
if(cfNo < 0) cfNo = len-1;
cfNo %= len;
document.links[cfNo].focus()}
}
window.document.onkeydown = nextAnc;
同時にこういうのも作っています。SHiftキーなどの修飾キーを使って
10個飛ばし等をしたいのですが、
if(event.keyCode == 9 && event.shiftkey == true)等は動作しません。
探しているのですが参考になるようなページが見つかりません。
こちらの方も宜しくお願いします。
857 :
Name_Not_Found:04/09/10 01:36 ID:X733ogvp
以下のような正規表現で、Bもマッチするにはどうすれば良いのでしょうか。
multilineを指定したのですが、うまく効きませんでした。
src = "A\nB";
RegExp.multiline = true;
reObj = new RegExp("(.*)","g");
result = src.match(reObj);
alert(RegExp.$1)
>>857 mをつけるところは
("(.*)","gm");
試してないけど。
問題:正規表現のメタ文字「*」はどんな文字にマッチするか答えよ
肛門
>859-861
お前らはアホかw
863 :
851:04/09/10 12:32 ID:???
>>852さま
レスありがとうございます。
でも、できません。
「\\」と入れて実行すれば引っ掛かるのですが
「\」ひとつだと無視されてしまいます。
[]カッコの中に入れたりもしてみましたがダメでした。
...match(/\\/)
試しにこの様に、「\」だけで書きましたがダメでした。
864 :
851:04/09/10 12:38 ID:???
windowsのIEだと「\\」で認識されました。
MacのIEではされません。
OSのせいですか?
>>864 うーん、こんなことで…「/\\/」の代わりに「/\u005c/」だとどお?
>>857 まず「.」には改行コードがあてはまらないことを理解すれ。
次にRegExp.multilineだとかRegExp.$1だとか古くさいものを使うな。
alert(src.match(/([\u0000-\uffff]*)/m)[1]);
これ1行で十分だろ。
>866
ありがとうございました!
868 :
851:04/09/10 14:40:06 ID:???
>>865 レスありがとうございます。
試してみましたがダメでした。
フォームに「\u005c」と入れればalertが出ます。
ムムム...
>>868 ええ?フォームの側が「\」1つだと駄目ってこと?それだったら
>>865 は見当違いだったスマソ。ブラウザのバグじゃないのかなあ。
870 :
851:04/09/10 14:59:32 ID:???
>869
書き方が悪かったです。ごめんなさい。
>869の言う通りフォームに「\」1つだとダメって事です。
....match(/\\/)と記述して
winのIE6でフォームに「\」を1ついれて実行すると
alertがでました。
MacのIE5.1.7では「\」を1ついれて実行すると
alertはでませんでした。
「\\」といれて実行したらalertがでました。
バグですかorz... では、どうしようもないですね...
871 :
815:04/09/10 15:56:33 ID:???
>>828 なるべく古いブラウザでも動くようにしたいのですが……
その場合どのようなコードを書けば良いのでしょうか?
コードを丸々書いていただけないでしょうか。
>>871 <a href="#" onclick="A1();return false" onmouseover="A2()">●</a>
874 :
851:04/09/10 17:53:54 ID:???
>>870 レスありがとうございます。
実はちょっと考え方を変えたら動いてるようなのですが
何か問題はあるでしょうか?
function hogehoge(){
n = form1.elements[2].value;
z = escape(n)
if(form1.elements[2].value.match(/hoge/)){
alert("「"+n+"」は検索出来ません");
return false;
}else if(z.match(/%A5|%5C/)){
alert("「\\」は検索出来ません");
return false;
}
}
875 :
Name_Not_Found:04/09/10 19:24:01 ID:R0nFfgOF
xpのsp2で困っている人いませんか・・・
876 :
Name_Not_Found:04/09/10 19:32:54 ID:oid68eF4
すいません、お邪魔します。
ちょっと質問なんですけど、
HPで診断テストみたいなものを作ってるんですが、
ちょっと壁にぶつかってます。
例えば、
チェックボックスでチェックされた項目に対して
それぞれ別々のコメントを返し、尚且つチェック項目数の総合計で
総合診断結果を出す
という診断テストをjavascriptでやりたいのですが
全然分からなくて困ってます。
誰か教えていただけませんか?
よろしくお願いします!!
>>876 1.htmlでチェックボックス用意して、
2.それぞれに呼応したコメントも意しておき、
3.チェックされたら2のコメントを返し
4.チェック項目数の総合計を計算し、
5.総合診断結果も出す
スクリプトを書けばいいのです。
これでわからなかったら、テンプレのサイトをよく読んで、
再度質問してみてください。
×:意
◎:用意
すまそ。
879 :
876:04/09/10 20:27:24 ID:oid68eF4
>>877 レス、ありがとうございます。
具体的なスクリプトの書き方が分からなくて。。。
一応自作で作ったときは
Q1がチェックされたらその答えが、
Q2がチェックされたらその答えが、
という具合にできたんですが、
Q1とQ2が両方選択された場合Q1しか答えが出てこないのです。
どーしたらいいんでしょう?
javascriptは初心者なもので、
できたらスクリプトを載せていただけたら
うれしいのですが。。。
よろしくお願いします。
そんなんifでいいよ
881 :
877:04/09/10 20:59:10 ID:???
>>879 >>877 をもう一度よく読んで欲しい。
> これでわからなかったら、テンプレのサイトをよく読んで、
と書きました。
あなたがわからないで困っているのは、JavaScript 初心者だから、
というよりも、プログラミングの基礎がないからです。
基礎的なことはテンプレサイトを読む方が、こんなプレーンテキスト
しか書けない掲示板よりよっぽどわかりやすいです。
意地悪で言っているのでは内です。
基礎がない人に特定の言語について説明しても、理解するのは困難だと
思うからです。
がんがれ。
>>879 たぶんこんな感じかな?
if(check1){
msg = "ほげ<BR>";
}elsif(check2){
msg = "ほげ2<BR>";
}
と if 〜 elsif の構成だったら分割して、
msg = '';
if(check1){ msg += "ほげ<BR>"; }
if(check2){ msg += "ほげ2<BR>"; }
とか。
>>882 Perlじゃないんだからelsifじゃなくelse ifと書いてよ。
ヽ(`Д´)ノ ごめん
フォームのオプションに現在の日付とその前後を入れ、
そのselectedIndexのtextにプロトコルと拡張子を付加して、
ページに飛ばしたいのですが思うように動作してくれません。
前に選択したオプションに飛んでしまいます。どのような工夫をすれば良いのでしょうか?
<script>
function jump(uri)
{
location = "
http://"+uri+".htm";
}
</script>
<FORM name="qqq">
<SELECT name="www">
<OPTION>
<OPTION selected >
<OPTION>
</SELECT>
<script>insert();</script>
<input name="go" type="button" onClick="jump();" value="Go">
</FORM>
>>885 なんか省略されすぎててわからんぞ。uriって引数で取るのか?
function jump(uri)のuriはselect onChangeで使ったやつで消し忘れです。
すいません。上の方には日付取得関数がずらずらとありますので、省略させて頂きました。
ただ今日の日付に+1したり-1したりすれば良いと思っていたのですが、浅はかでした。
>>885-887 全然、まったく、何がやりたいのか分からん。日本語をまず勉強して欲しい。
> フォームのオプションに現在の日付とその前後を入れ、
> そのselectedIndexのtextにプロトコルと拡張子を付加して、
現在の日付やその前後の日付を入れる方法が分からないのか?
しかし日付取得関数は作ったということだし。日付と飛び先の
ファイル名は対応しているのか?「20040911.html」みたいに?
筋道立てて説明できないヤシは向いてないぞ。
説明の稚拙をお許しください。ボタン無し版のジャンプ(onChange)では成功しています。
しかしボタンでのジャンプ(onClick)だと選択項目にジャンプするのではなく、
1回前に選択した項目にジャンプしてしまいます。
例えば今日の日付だと初期状態で<OPTION selected>になっているのでそのまま押すと0911.htmになります。
これならOKなのですが、次に項目を変えて前日(0910)にしてボタンを押すと0910.htmに飛ばずに0911.htmに飛んでしまいます。
同様に次に項目を変えて明日(0912)に変えても0912.htmではなく、前に選択した0910.htmに飛んでしまいます。
要するに1回分ずれて飛んでしまうのでどう選択項目を読み込ませれば良いのか悩んでいます。
分かって頂けますでしょうか、是非とも貴重なご指摘を頂けると幸いです。宜しくお願いします。
表を作らせようと思い
DATA[i][k]
を使用したいのですが、iが151個、kが6個もあります
いきなり
alert(DATA[120][5])とやっても、初めに定義しないと使えないらしいのです
DATA=new Array(150)
DATA[0]=new Array(5)
DATA[1]=new Array(5)
DATA[2]=new Array(5)
:
:
:
と永遠と150回定義しなければなりませんか?
なるべく容量を削りたいのですが……
>>892 ループループ……
DATA=new Array(151)
for(X=0;X<=151;X++){
DATA[X]=new Array(7);
}
DATA[0][0]="名前";
DATA[0][1]="性別";
DATA[0][2]="形式";
中略
DATA[150][6]="アッシー";
alert(DATA[150][6]);
でもエラーが……
jsファイルに保存してダブルクリックしています。
間違い指摘お願いします。
配列の定義(初期設定?)ってのはCみたいなものじゃなくてもいい。
>>800付近。
大量のデータを配列に格納する時は…
配列にデータ追加する関数作っておいて
f("名前","性別","形式");
f("おすぎ","オカマ","アッシー");
とすればバイト数抑えられるかも。
jsダブルクリックは・・VisualStudio入ってるかどうかで変わるのかなあ。
>>893 よくあるバグじゃん! 「for(X=0;X<=151;X++)」ではDATA[151]をアクセス
してしまう。150までしか用意していないんでしょ。
>>889 1回分ずれるっていうのはあんまり普通じゃないなあ。どうやって
selectからその日付データを取っているのかが分からないとデバッグ
できない。その部分を含んだソースを貼って欲しい。
>>885 では
呼ぶ側で渡していない引数uriにジャンプしているのでその肝心の部分
が分からない。
>>895 それならどの様に書けば良いのでしょうか?
間違いを指摘されても
それをどう直したら良いかわからないってのもダメだなぁ〜俺
配列はイマイチ理解していないし……
>>896 えーと…「X<=151」を「X<151」にするべきなんですが、これ以上
ここにたむろしてないで入門書でも1冊買って通読してください。
読み終わったらまた来てもいいです。
898 :
教えてください。。:04/09/11 13:17:24 ID:FJ1ZQcyJ
ページを開いた時にブラウザの文字のサイズを自動的に「小」に調節
するようなスクリプトはあるのでしょうか?
もしあるようなら方法を教えてください。。。
899 :
898の教えてください。。です。:04/09/11 13:19:39 ID:FJ1ZQcyJ
追加です。
使用ブラウザはIE5です。
ありません
文字サイズは見る人が自由に決めれるべきだと思いますが
>>897 出来ました。
入門書読んだんだけどな。
今からコードじっくり読ませていただきます。
それとhtmlファイル内に書いたらうまく動いたけどjsファイルだとエラーが出ました。
jsファイルはまだ早いか……
とにかくありがとうございました。
普通jsファイル単体じゃ動かないから
次はホームページの作り方勉強しなさい
903 :
898の教えてください。。です。:04/09/11 13:36:35 ID:FJ1ZQcyJ
>>900さん
社内のパソコンのブラウザの文字サイズを「小」に
統一したくて考えていたんですが、
(普通に他人様のブラウザの文字サイズを変えてご迷惑を!
ということではありません。。(私の表記が悪くて。。誤解の無いように。。))
出来無かったんですね。。。
ふぅ。。。ではまた何か方法を考えます!
ありがとうございました!
>>903 だから「他人様の…」になるようなことはJavaScriptはそもそも
できなくしてあるんだってば。できるようになってたらアンタが
やらなくてもやる奴は必ず現れるからね(エロサイトとかさ)。
ごめんなさい。。
ブラウザの画面サイズの変更が可能だから
文字のサイズも可能かと思って。。
ところでここってsage進行なんですか??
zoomって絶対値指定できなかったっけ?
質問はageていいんじゃないの?
はてなアンテナのような、他サイトのHPの最終更新日を
取得するにはどうしたらよいのでしょうか?
>>908 JavaScriptではできません。おしまい。
もうバカばっか
>>895 レスありがとうございます。
SELECTからはこのように取っています。この場合は正常に動作します。
<SELECT name="www" onChange="jump(this.options[this.selectedIndex].text)">
onChange=""のないボタンで飛ばす方は
this.options[this.selectedIndex].textが使えないので
P = document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].text;
と定義し
<input name="go" type="button" onClick="jump();" value="Go">
からfunction jump(){location.href = P+".htm";}としています。
この場合はずれてしまいます。
>>911 だから〜、その「p=」の行をいつ実行するように定義してるのさ。
もしかしてその「p=」の行をfunction jump()の最初の文として
挿入すればおしまいじゃないの?
functionの上に定義していました。下に入れたらエラーが出たので上に移したような気がしますが
勘違いでした。お陰様で無事動くようになりました。有難う御座いました。
最初は10分で出来ると思ったのですが、32日とかが出てきたり、日付の計算は面倒ですね(笑)。
>>905 というかHTMLやらCSSでやらない理由がわからない。
>>914 それはあんたの読解力がないから。質問はブラウザの文字サイズ
メニューの設定をいじくりたいというもの。HTML+CSSでできるわけない。
JavaScriptでもだめだけどWSHとかならできるのかも。
916 :
914:04/09/12 09:45:18 ID:???
>>915 >898の質問で「ページを開いたとき」とあり、動的なフォントサイズ変更ではないため、HTMLやCSSで事足りる(質問者が満足する)のではないかと思ったのです。
文字サイズ勝手に固定すんなバカ!
以上!
>>915 もしWSHでできるなら、OSをNT系で統一して、グループポリシー+ログオンスクリプトで動かすのも手だな。
919 :
社員:04/09/12 12:59:35 ID:???
>>903 他のサイトみんな豆文字になっちゃうじゃないですか!
そんな迷惑なことやめてください!
>>903 おたくの会社は全てのパソコンの解像度が同じなのか?
おたくの会社は全ての従業員の視力が同じなのか?
そういうこと言うのはずるいんじゃ
まぁぶっちゃけCSSでやりゃそれで十分なんだろうけど
>>925 うわ、ありがとうございます!
参考にさせてもらいます。
JavaScriptだけの時計なんて意味ねぇだろ
オレの口から言えることはただ一つ。意味があるかないかを決めるのは
本人次第ということだ
むしろ観覧者だと思うが
やりたい盛りなんだろ
やりたくなる時期があるもんだ。そのうち全部剥がすことになる。
そんな日々もあったねと笑える日が来るだろう
あるページに、時間がたつと自動的に閉じるというスクリプトを入れたいんですが、
そのページが親ウィンドウで表示されてしまうせいなのか、
「ウィンドウを閉じるのか?」というダイアログが表示されてしまいます。
ダイアログを表示せずに強制的にウィンドウを閉じるようにするにはどうしたらいいのですか?
ちなみにブラウザはIE6です。
>>935 ダイアログが表示される条件はその通り。子ウィンドウで行おう。
>>936 やはり親ウィンドウだとダイアログが表示されてしまうのですか…。
でも、スクリプトを仕込みたいhtmlは親ウィンドウになってしまうんですよ。
親ウィンドウを擬似的に子ウィンドウと認識させることは
JavaScriptではできるでしょうか?難しそうですが…。
なんで擬似的とかひねくらたことするんだよ。
子でやれと言ってるだろうが。
>>937 セキュリティ制約から出るダイアログを止めることは*不可能*。
アンタが
>>936 のアドバイスを無視するのならできることは*何もない*。
終了。
方法はあるけど(すぐ見つかる)、やめとけ。
>>937 親ウィンドウから子ウィンドウの操作はJavaScriptで基本のうち。
オブジェクトのてっぺんに子ウィンドウの名前がつくだけだ。
質問です
データの検索システムを作ろうと思います。
正規表現の.testを使ってテキストボックスに入れた文字が存在するかどうかをtrue,falseで出力したいのです。
下の例で言うとatai2の"検索対象文字列"を対象にして例えば"文字列"があればtrueをアラートで出したいです。
(実際はatai2は配列ですが)
functionのエラーだと言われてしまいます。
一体どうすればよいですか?
<SCRIPT type="text/javascript">
function SEARCH_S(atai1){
atai2="検索対象文字列"
kekka=atai1.test(atai2);
alert(kekka)
}
</SCRIPT>
<FORM NAME=SEARCH>
正規表現<INPUT TYPE="TEXT" NAME="KENSAKU_TEXT"><BR>
<INPUT TYPE="BUTTON" VALUE="検索開始" ONCLICK="SEARCH_S(document.SEARCH.KENSAKU_TEXT.value)">
</FORM>
>>942 atai1 に string 値が渡ってるじゃん。 RegExp オブジェクトにしなきゃ。
944 :
942:04/09/14 17:45:16 ID:???
>>943 訂正版を提示してもらえないでしょうか?
atai1じゃなくてatai2がstring値になってるな。
atai2=new RegExp("検索対象文字列",""); かな。
あと .test ってよく分からんかったから .match に置き換えた。
946 :
61:04/09/14 18:05:45 ID:???
ありがとうございます。
でもtestってないですかね?
マッチしたかどうかをtrue,falseで返すやつですが……
自分のガイドブック古いからもう無いのかなぁ……
でもありがとうございました。
>>944 atai1 = new RegExp(atai1,'');
atai2 = '検索対象文字列';
kekka = atai1.test(atai2);
>>945 > あと .test ってよく分からんかったから .match に置き換えた。
解らんかったら調べろって。回答するなら特に。
949 :
945:04/09/14 18:27:08 ID:???
"str".test(re)で試して判断してしまった。
ごめん。
>>948 やりたいことを正確に書いてくれれば、子窓で普通に動かせる
可能性もあるよ。別に無理にとは言わない。
次スレは975超えたら。FAQの項目追加/削除等あればご意見を。
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. HTMLとCSSがきちんと理解できてない人にはDOMでの操作は難しいですね。
Q11. 無理だということですね…。
A11. 別に無理にとは言わない。
>>953 それ意味がよく分からないな…
あと行数一杯なんで何か入れるなら何か削る必要があると思われ。
Q11. 無理だということですね…。
A11. お前には一生無理。
parseIntの使い方がよく分かりません。
document.write('<meta http-equiv="refresh" content="3;URL=');
document.write(parseInt(location.href.substr(location.href.length-7,3))+1+".htm");
document.write('">');
どうすれば飛べますか?宜しくお願いします。
javaスクリプトに手を出したばかりなので、至らないところがあるかもしれませんが、質問させてください。
画像が並んでいて、各画像毎のマウスの位置が取得したいので、以下のようにしてみました
function getPos(e, obj) {
if (document.layers) {
offsetX = e.layerX;
offsetY = e.layerY;
} else if (document.all) {
offsetX = event.offsetX + 2;
offsetY = event.offsetY + 2;
alert(offsetX + " ; " + offsetY);
} else if (obj.getElementsByTagName) {
offsetX = e.pageX - parseInt(obj.style.left);
offsetY = e.pageY - parseInt(obj.style.top);
} else if (document.getElementById) {
offsetX = event.offsetX;
offsetY = event.offsetY;
}
}
mapタグから<onMouseMove="getPos(event,this)">として使用しています。
IEなどはいいのですが、safariでどうしても相対的な位置が取得できません(ブラウザの絶対ポジションになる)
safariでも動作をさせる方法はあるでしょうか。
よろしくお願いします。
>>956 parseInt は Int 型にするもの。
location.href.substr(location.href.length-7,3) が数値以外のものを
返していないか確認してください。
つか、そんな回りくどいことせなんでも、
function f(){
var url = parseInt(location.href.substr(location.href.length-7,3))+1+".htm";
window.location.href = url;
}
setTimeout("f();",3000);
ではいかんの?
960 :
959:04/09/15 15:48:38 ID:???
だからあれほどリロードしろと… orz
>>959 レスありがとうございます。お騒がせ致しました。
959の方がパラパラアニメには時間を調節できて良いですね。
ありがたく頂戴させて頂きます。
>>956だとタイミング合わせられません。
>>957 そんなぐっちゃぐっちゃにすること自体不要だろ。
IEはe.offsetX, e.offsetYだがこれは特殊で普通は
e.clientX - document.images[番号].offsetLeft,
e.clientY - document.images[番号].offsetTop
を使うんだと思った。その2種類以外のブラウザはN4とか
どのみち機能不足で駄目なものじゃないかな。
ラジオボタンの1個目と2個目が動きません。間違いの指摘よろしくお願いします……
<SCRIPT type=text/JavaScript>
NAGURU="説明"
function A1(ATAI){
alert=(ATAI)
if(document.HOUHOU.HYOUJI[0].checked==true){
alert=(ATAI);
}
else if(document.HOUHOU.HYOUJI[1].checked==true){
}
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI);
}
function A2(ATAI){
if(document.HOUHOU.HYOUJI[2].checked==true)
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI)
}
</SCRIPT>
<BODY BGCOLOR=WHITE TEXT=BLACK>
<FORM NAME=HOUHOU>
<TABLE BORDER=1>
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、アラートで効果を表示。</TD></TR><!--ここと-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、下のテキストエリアに効果を表示。</TD></TR><!--ここが動きません-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●の上をマウスが通過した時、下のテキストエリアに効果を表示。</TD></TR>
</TABLE></FORM>
<TABLE BORDER=1 BGCOLOR=0000FF>
<TR><TD BGCOLOR=FFFFA0><A HREF="#1" onmouseover="A2(NAGURU)" onclick="A1(NAGURU)">ここ</A></TD></TR>
</TABLE>
</CENTER>
<FORM NAME=TEXTAREA_FORM><TEXTAREA NAME=TEXTAREA_NAKAMI COLS=100% ROWS=5></TEXTAREA></FORM>
</BODY>
>>963 > alert=(ATAI)
これは?
title=""の項目に 配列を入れたいのですが、今日の日付からどう番号を得たら良いのでしょうか?
src=の方は4桁の月日として得られています。 今日なら0916という値です。366の配列のの何番目という値を得たいのですが...
宜しくお願いします。
966 :
956:04/09/16 08:19:04 ID:???
一応
var TergetDate = new Date("2004/1/1");
var num = Math.ceil((today.getTime() - TergetDate.getTime()) / (24*60*60*1000))-1;
で出来ましたが、間抜けなので良い方法をお教え頂けると幸いです。
取り敢えず、targetかな。
968 :
956:04/09/16 08:42:20 ID:???
間抜けです。スマソです。%366ぐらいしか思いつきません。
宜しくお願いします。
>>965 ハア?「title=""の項目」って何さ。自分のプログラムの中だけの
話を唐突にされても。配列を入れるって、「""」は文字列だけど
どういう配列を入れるの?「src=の方」ってどっちの方さ。
読んだ人に分かるように質問しなければ回答もない、分かるだろ?
あんたが質問すべき文章は「"MMDD"という月2桁、日2桁の文字列
からその日がその年の何日目かを求めるにはどうしたらよいでしょう?」
だよな。
で、常に「今年の」でいいのなら次のように。
y = (new Date()).getYear(); m = parseInt(str.substring(0, 2));
d = parseInt(str.substring(2));
days = (new Date(y,m,d).getTime()-new Date(y,1,1).getTime())/(24*3600*1000);
>>966 自分でうるう年や月ごとの日数の処理するよりDateオブジェクトに
頼む方が吉だと思うよ。自分もその方法を推奨する。しかし4桁の
文字列から月と日を求める方法が知りたかったわけ?
>>968 「%366」って何さ。もしかして来年以降も使えるようにするため
2004年決め打ちにしたら366の剰余を取るってことか。ほんとアンタ
口数は多いくせに日本語が分からなさすぎ〜。もっとモノを考えて
的確に質問してくれよ。
971 :
957 :04/09/16 09:21:39 ID:???
>>962 レスが遅くなりすみません。
safariの事が書いてあるページがあまり無いようで苦戦していました。
試してみたいと思います。
ありがとうございました。
972 :
956:04/09/16 09:51:09 ID:???
%366は冗談です。969さんのを参考にさせて頂きました。
でもparseIntを使うと頭に0があると
ゼロを返すのでパスしました。
やはり私の日本語可笑しいですね。そちらの方も勉強します。
即レスありがとうございました。多謝。
973 :
965:04/09/16 12:38:09 ID:???
>>964 あー間違えました。本当はもっと長いソースを削るときにミスった……
<SCRIPT type=text/JavaScript>
ATAI="説明"
function A1(ATAI){
alert=(ATAI)
if(document.HOUHOU.HYOUJI[0].checked==true){
alert=(ATAI);
}
else if(document.HOUHOU.HYOUJI[1].checked==true){
}
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI);
}
function A2(ATAI){
if(document.HOUHOU.HYOUJI[2].checked==true)
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI)
}
</SCRIPT>
<BODY BGCOLOR=WHITE TEXT=BLACK>
<FORM NAME=HOUHOU>
<TABLE BORDER=1>
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、アラートで効果を表示。</TD></TR><!--ここと-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、下のテキストエリアに効果を表示。</TD></TR><!--ここが動きません-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●の上をマウスが通過した時、下のテキストエリアに効果を表示。</TD></TR>
</TABLE></FORM>
<TABLE BORDER=1 BGCOLOR=0000FF>
<TR><TD BGCOLOR=FFFFA0><A HREF="#1" onmouseover="A2(NAGURU)" onclick="A1(NAGURU)">ここ</A></TD></TR>
</TABLE>
</CENTER>
<FORM NAME=TEXTAREA_FORM><TEXTAREA NAME=TEXTAREA_NAKAMI COLS=100% ROWS=5></TEXTAREA></FORM>
</BODY>
です。何でかなぁ……。指摘よろしくお願いします。
parseInt()って先頭に0があると0が返っちゃうんだ。
知らなかったよ。
>>973 アンタも説明が足らなすぎ。「ラジオボタンの1個目と2個目が動かない」
というのは具体的にどうなるはずだったのにどうなってしまうのか、
書いてくれないと。アンタの代わりにテスト実行する気無いからね。
(そもそも抜粋だし動かせないしね。)
確認するけど、ブラウザからエラーは出てないよね?
>>973 > ATAI
> alert=(ATAI)
まず直せよ。どうせエラーも見てないんだろ
>>977 もしかして
> alert=(ATAI)
でエラーが出ると思ってるのか?
>>979 いや別にそれでは出ないけど一般論としてさ。
。
(´-`).。oO(まず直せじゃなくて回答した上でついでに直せよと言うべきだろうに・・・)