+ JavaScript の質問用スレッド vol.31 +
>>810 そんなことが出来たら、ブラクラの比じゃないな。
>>810 移動させたい位置にポップアップウィンドウを出して、
中にここをクリックというボタンを用意してそれをクリックすると
ポップアップウィンドウwが閉じるようにしておく。
なんかオレオレ詐欺みたいだな。
>>810 とりあえずIEでの話。
擬似的なカーソルを作る。
たとえば、<DIV>でもなんでもいいが、画像含んだものをマウスカーソルの変わりにする
Windows(OSだもちろん)のマウスカーソルをチャプチャーしこれに合わせて、オリジナル擬似カーソルを移動させる
当然、楽に移動範囲も制御できるな、よくある目玉が動くサンプルの流用だ。
この擬似カーソルでないと機能しないことを示しておく。
結局の所、2つカーソルがあるということw
これじゃダメって言うならActiveXやJAVAでもやるんだな。
これでもたとえ、というかできるならここで聞かないわな。
どっちにもしてセチュリティ設定のおかげで万人には機能しないだろう。
DHTMLでのスクリプティングの範囲ではないので論外。
エレメントへのフォーカス固定やクリックシュミレートはできる、
できる範囲でよく考えろ。IEの英語リファレンスを熟読し、IEだけでも極めろw
encodeURICompoinent()/decodeURIComponent()
って使ってる奴いるの?
816 :
Name_Not_Found:04/10/28 10:24:29 ID:zlj0ta1y
質問があります
document.write('<scr'+'ipt src=
http://www.XXXXXX.jp/co/category.js></scr'+'ipt>');
document.write('<scr'+'ipt src=
http://www.XXXXXX.jp/co/adlist.js></scr'+'ipt>');
みたいなスクリプトを組んでいて、上のカテゴリーのファイルは
new Array("Sun", "Mon", "Thu"); みたいなのがたくさん入ってて、下のファイルで
new Array(1)とかを指定しています、時々上のファイルの読み込みが遅くなってるせいか
new Arrayは宣言されていませんみたいなエラー(new Array(1)に要素が入っていない)がでます
例えば 読み込み時間を遅らすとか if文とかで対処できる方法はありませんか?お願いします
817 :
Name_Not_Found:04/10/28 10:36:12 ID:xsbIQ3hj
フレームで作ってるサイトの途中のページ(フレームのトップじゃないページ)
に検索等で直リンで飛んできた場合に
フレームが外れますよね?
これをどのページに直リンで飛んできてもフレームを表示させたいのですが
良い方法ありますか?
質問です。
Aウィンドウからwindow.openで別ウィンドウ(B)を開き、
Bウィンドウの中のTextボックスにAウィンドウから値を入れようとしています。
・Bウィンドウのオブジェクトは以下のとおりです。
<form name="hoge_form">
<input type="text" name="hoge_name">
</form>
・Aウィンドウのスクリプトは以下のとおりです。
function loadTosubwin(url,strValue){
var win = window.open('hoge2.htm','win2'");
win.document.forms.hoge_form.elements.hoge_name.value=strValue;
}
うまくいくときといかないときがまちまちといった感じになってしまいます。
おそらくBウィンドウが開く前にBウィンドウのオブジェクトを見に行って
しまっています。Bの方はいじることができません。
なにか回避する方法はありますでしょうか?
>>818 「setTimeout(function() { win.document.forms.hoge_form.elements.hoge_name.value
= strValue; }, 500);」とかにしてみたらどうかな。
>>817 「if(top == window) location.replace('フレームURI');」でどお?
>>816 本当にその解釈で合っているのかな?エラーメッセージを*そのまま*
貼ってみれ。
>>815 使っているよ。つかescape()/unescape()はブラウザ互換性の問題あった
と思うよ。
820 :
Name_Not_Found:04/10/28 11:22:16 ID:zlj0ta1y
>>819 ファイルの中身をソース読み込まずそのまま描いたら
エラーがなおるので間違いはないかと・・・
>>820 どうかなあ。あんたのプログラムとエラーの説明があまりにもヘン
なんで納得が行かなかっただけで。ふつう、<script></script>は
1つ完全に評価し終わってから次が評価されるはずだよなあ。
document.write()せずにHTML中に直にscriptタグ2つを書いたら
どうなるわけ?
822 :
Name_Not_Found:04/10/28 14:40:32 ID:C3RXwJ/Z
質問です。
雪を降らせるものの様に、不規則に左右に揺らしながら落ち葉(画像)を複数降らせる
javascriptはありますでしょうか?
アドバイスお願いします。
ありません。自分で作ってください。
824 :
822:04/10/28 14:46:04 ID:???
825 :
Name_Not_Found:04/10/28 18:44:59 ID:fWCU7Um2
初歩的な質問ですみませんがお願いします。
Perlで言う
open FH , "text,txt";
close FH;
という処理はjsではどうやるのでしょうか?
CGIで使っているファイルをjsからでも、参照したいのです。
>>825 JSは「ブラウザ上で」動作するんで、CGIで使っている「サーバ上の」
ファイルはネット経由で取り寄せて読むしかない。過去ログに例が
あったと思うよ。その質問が初歩的ってことは全然ない。
数号前の雑誌WebDesigningの特集に以下のような事が書いてあったのですが、
例えば
document.forms[0].elements[0].value
にアクセスするコードがスクリプト内に何度も出現するのであれば、
一度
var foo = document.forms[0].elements[0].value;
と変数に入れてfooにアクセスする方が実行速度が向上すると。
これを踏まれば、
documentオブジェクトのみたいな上位に位置するブラウザオブジェクトも一旦
var doc = document;
として次回からはdocにアクセスする方が速くなるのでしょうか?
エロイ人の解説をキボンします。
828 :
825:04/10/28 20:26:10 ID:fWCU7Um2
>>826 過去ログですか。何か検索のいいキーワードありますかね?
>>827 withがおすすめかな。
>>827 テキストファイル、とかかね。
iframeとかを駆使して読むのだよ。
830 :
825:04/10/28 20:34:44 ID:fWCU7Um2
>>829 あぁ。もしかしてiframeとして読ませておいて表示上には見せないでjsでだけ中身を使用するみたいな
感じですかね?
動作環境IE4,NN4っていうのを目指してるんですがiframeだと無理っぽいですね。
js自体にはPERLのopen関数と同じような機能をするものはないんですよね?
せめてHTML側でLINKで読ませておいて、それをjsから読みとれればなぁ^^;
831 :
827:04/10/28 20:34:48 ID:???
何か質問の意図を理解していただいてないようなのですが・・・・
>>825 またIEの話wそこで言う、jsがWinIEのJScriptならばでの話。
基本的にJScript単体はプログ言語してはファイル入出力はサポートしない。
この点を補うためMSはWin仕様の拡張機能としてCOMコンポーネントの参照を導入している。
いわゆるActiveXと呼ばれるものが代表的なもの。
なんでも利用できるわけではないが、スクリプト用に考慮されたものは利用できる。
とりあえずFSO(=FileSystemObject)が可能。ただしバイナリデータは扱えない。
var ObjFSO=new ActiveXObject("Scripting.FileSystemObject");
var ObjTS=ObjFSO.OpenTextFile ( ファルパス , オープンモード , 未存在ファイル作成フラグ );
ObjTS.Close();
これをIEのDHTML上で扱う場合、ActiveXのセキュリティに当然かかる。
HTAファイルとして起動する方法もあるが、環境が管理できるLAN内向き。
そもそもJavaScript固有の問題ではなく、特定プラットフォームの問題なのでここまで。
Webでのクライアント動作がこの板の問題なので、
ASPやWSHとして動作させるサーバー上の動作にはついてはここでは触れない。
興味があれば自分で調べる。
>>828 with文はお勧めされないかも。ブラウザによってはドキュメントに
「遅くなるよ」なんて警告が書かれていたりするし。
>>827 doc.formsでもdocument.formsでも速度は同じ。
var f = document.formsとしてfを使うなら速度は向上する。要は
「.」を減らせばよい。でもそんなことして速度を稼いで得するような
場面はほとんどないと思うけどね。
>>832 あんた、ローカルのファイル読む話を一生懸命解説しないでよ。
元質問はサーバ上のファイルを読みたいって話だよね。
835 :
827:04/10/28 21:05:27 ID:???
>>830 普通のframesetでもええがな。
NN4はレイヤで他のページ読み込めたような。
837 :
832:04/10/28 21:15:14 ID:???
さぁ?w
サーバーサイド動作の事言ってるんじゃないか?
と警告しただけだ。
そもそもサーバー上のファイルをブラウザで参照したいならばCGI動作のPerlのほうで操作すればいい
それが一番早いと思うが?って板違い。
ネットワーク経由でファイルをどうこう?WSHでもなんでもやってくれ。
これまた板違い。ここはDHTMLではないのか?
838 :
825:04/10/28 21:48:08 ID:fWCU7Um2
>>836 フレームセットはショートカットなど色々とユーザビリティを下げるのでイマイチです。
>>837 出力は基本的にないです。
ただ同じデータを参照できればかなり便利なのです。
通販サイトなどを作っている時に、全部CGIではなくて、注文部分だけCGIで
その他はjavascriptでかご機能をやるときとかがあるのですが、そういうときでも
商品データなどのファイルを複数作ると管理が面倒なので、一つ作ってそれを
読み込んでハッシュを作成する。みたいな形にできないものかと思って質問しました。
つまりPerlとjsで同じファイルを読み込んで、〜みたいな感じです。
親身になっていただいてありがとうございました。それでは失礼します。
質問よろしいでしょうか?
もしかしたWebProg板で聞くべき事かも知れないのですが・・・
a.htmlにVBでつくったActiveXが張り付いてます
a.htmlからb.htmlを開き
b.htmlのJavaScriptからa.htmlにあるActiveXのプロシージャを実行したいのですが出来るでしょうか?
おそらく
b.htmlのJavaScriptで
window.opener.ActiveX名.プロシージャ名;
みたいな感じにすると思うのですが
ご教授おねがいします
>>839 まずはa.htmlの中からだったらどうやって呼べるのか聞いてみたい。
alert出した時出る音をダイアログ出さずに音だけ出すことって出来ますか?
>>841 出来る。
サウンドファイルを再生しろ。
alertメソッドを使っても表示されないテクではないがw
843 :
Name_Not_Found:04/10/29 12:38:11 ID:8+kRs4H1
印刷時にリンク先のURLが自動挿入されるスクリプトが欲しいんですけど、
どこか配布しているサイトがあったら教えてください。
ググってみたんですけど、印刷用cssばかりが出てきて・・。
cssだとIEが未対応な為、結局意味なくて・・・。
よろしくお願いしたします。
845 :
844:04/10/29 13:01:37 ID:???
846 :
Name_Not_Found:04/10/29 13:30:21 ID:QRlrbmbw
画面Aで画面Bへ遷移するための<submit>ボタンを押した時に、
画面Bを表示する前に大量のデータ処理を行っている為に画面Bを表示するまでかなり時間が掛かります。
そこで、画面Bが表示されるまでの間マウスカーソルを砂時計に変えることで画面Aで余計な操作をさせないようにしたいです。
どうなたかわかりますでしょうか?
また、別の方法で画面Bを表示するまで画面Aで他の処理をさせない方法などがありましたらご助言お願いします。
>>846 画面Bの表示は2回やっても計算は1回ですむようになってるの?
もしなっているのなら、画面Bを隠しフレームに読ませてその
onloadハンドラで画面Aのカーソルなりを変更すればよいのでは。
>>839 またIE専でしかもJavaScript固有とは言い難いw
参照はそれでいい。
ただし、
異ドメインサイトページ間での参照にセキュリティがかかる
IEの思いやり仕様だw
簡単に言えばAページとBページが異なるサイトにある場合だ。
同じなら問題ない。
ActiveX、JAVAアプレっトなど外部コンポーネントは
署名なしのものは動作チェックが厳しいぐらいは知ってるよな。
ってここじゃねー問題だなw
フォームの入力内容のチェックを送信ボタンを押した時にまとめてしたいのですが、
間違っていた場合に送信をキャンセル(return false)すると
入力内容がクリアされてしまいます。
入力内容を残したまま送信をキャンセルするにはどうすればよいのでしょうか。
>>849 クリアされないと思うけど?return falseに失敗してない?
onsubmit="return check()" とかしてそのcheck()の中で
間違いがあったらreturn false する、だよね。
851 :
Name_Not_Found:04/10/29 15:47:14 ID:6B3ifqn4
HTMLで一時的に(部分的に)Javascriptを無効にすることは出来ますか?
アホかこいつは?
HTMLで無効にする。
って意味わかんねーよ
うーん。
Webサイト制作初心者用質問スレ Part 106
http://pc5.2ch.net/test/read.cgi/hp/1097985300/928 928 名前:Name_Not_Found[] 投稿日:04/10/29 14:53:24 ID:6B3ifqn4
テキストエディタでXHTML1.1+CSSを書いているんですが、
XHTML1.1+CSSでは「target="〜"」が使えないので、代わりになるようなタグとかCSSは無いですか?
初心者なんで、文に誤りがあるかもしれませんが、よろしければ回答お願いします。
>>851 初心者スレでもレスついてるけど、
「意地でもXHTML1.1にしたい」→別窓で開こうという考えを捨てる
「意地でも別窓で開きたい」→XHTML1.1への謎の執着を捨てる
無効にしたくなった時に人間がブラウザの環境設定で無効にして
戻したくなったときに戻すしかないだろ。
>>853 <body onload="a=document.links;for(i=0;i<a.length;++i)a[i].target='_blank'">
JavaScript でいじった後もstrictであるべきだ、
というのがティムたんの所に書いてあるが、いかがか。
まあどうしたいかは結局当人が決めればよいと思うよ。
>>851 IE6以上での話。
部分的という意味ならばブラウザの設定とは関係なく、
<FRANE>、<IFRAME>では
SECURITY属性
="restricted"と設定したフレームはスクリプトを実行しない。
なお、この属性値は読み取り専用。
MacIEでの動作についての質問ですMacIEは input生成ができないそうなので
innerHTMLに書き換えたのですが
ソースの一部
\\javascript部分
document.getElementById('modeView2').innerHTML="";
base2 ="<input type=\"submit\" id =\"smt\" value=\"更新/発言\">";
if(chmod==0 ||(chmod ==1 && sayCount!=20)||(chmod ==2 && think!=10)){
document.getElementById('modeView2').innerHTML=base2;
}
\ここまで
HTML部分
<form action=どこどこ method="post">
<div id="modeView2"></div>
</form>
こんな感じでダイナミックに発言ボタンを生成しても
ボタン押しても反応しません。
ほかのWinIEやOpera7、NN7 Mozillaなどでは反応したのですが・・・。
原因がわかりますでしょうか?
<html><head><title></title>
</head>
<body>
<form action="xxxx.php" method="post" enctype="multipart/form-data" name=upload>
<input type="file" name="fl"><input type=button onClick="javascript:document.upload.fl.click();" value="参照(2)">
<input type="submit" value="アップロード">
</form>
</body>
</html>
参照ボタン→ファイル選択→アップロード押下だと正常にサーバへアップロードできるのですが、
参照(2)ボタン→ファイル選択→アップロード押下するとテキストフィールドにはいっていた
ファイル名が消えてしまいます。
どうしてもこのように間接的に参照ボタンを押させる処理が必要なのですが、
何かいい知恵はないものでしょうか。