1 :
デフォルトの名無しさん :
2007/10/12(金) 18:52:21 ジャバスクリプト
2 :
デフォルトの名無しさん :2007/10/12(金) 18:53:28
自身のウインドウのターゲット名を得る方法を教えてください
自身はthis ターゲットは this.document.all.item(id:String) 違うな…ターゲット名か? this.document.getElementByほげほげ(tag:String) かな?
4 :
3 :2007/10/12(金) 20:01:05
ウィンドウのターゲット名かw window.nameでどうだorz
板違いだ、ボケ。
getElementByが使えるブラウザは糞
7 :
デフォルトの名無しさん :2007/10/13(土) 00:03:12
8 :
デフォルトの名無しさん :2007/10/13(土) 01:09:04
まあgetElementByが出てくるのは板違いっぽいけど。
>>7 のスレと重複になるし
>>10 WSHでMsxml2.DOMDocumentとか使っててもgetElement〜が登場するよ?
>>7 そっちじゃなくてweb制作に誘導しろ。
というかとっとと削除依頼だそうな
>>1
クリップボードのテキストを取得する方法は?
import System.Windows.Forms; var cb : IDataObject = Clipboard.GetDataObject(); var text : String; if (cb.GetDataPresent(DataFormats.Text)) text = String(cb.GetData(DataFormats.Text));
それJScriptだから
ニコニコ動画にログインするjsをつくりたいのですが まったく見当がつきません。 ご存じの方教えてください。
20 :
デフォルトの名無しさん :2007/10/16(火) 03:29:48
>>17 今見てきたけど、それ俺も同感。
どういうことだろ、教えてエロい人
>>20 文字列で渡せるのは,グローバルスコープのオブジェクトだけ。
23 :
デフォルトの名無しさん :2007/10/18(木) 09:35:20
24 :
デフォルトの名無しさん :2007/10/18(木) 17:09:56
prototype.js使ってるんだけど、 var hoge_obj = new Hoge("hello"); setTimeout(hoge_obj.printMsg.bind(hoge_obj), 1000); ↑こんな感じで書いてるんだが、なぜか”hoge_obj.printMsg.bind is not function ”てエラーが出る… なにがいけないんだろ…orz printMsgは printMsg: function(){ 〜処理〜 } こんな感じでほぼサンプルどおりなのにー
>>24 setTimeoutしない場合に、 hoge_obj.printMsg は、ちゃんと呼び出せてるか?
27 :
デフォルトの名無しさん :2007/10/19(金) 02:16:20
>>24 bind は prototype.js による Function オブジェクトの拡張だろ?
クロージャー使って
var hoge_obj = new Hoge("hello");
setTimeout(function(){return hoge_obj.printMsg()}, 1000);
でおk
それはクロージャーとは違うよ
クロージャーは勝手に使って欲しかったんだが ここまで書けば満足か? (function(){ var hoge_obj = new Hoge("hello"); setTimeout(function(){return hoge_obj.printMsg()}, 1000); })();
何をもってクロージャとは違うと言っているのかよくわかりませんが、 javascriptの関数はどれもクロージャですよ。
クロージャーには苦労しますじゃ
JavascriptでProlog処理系を作れませんか。 "Rubyで作るProlog処理系"なんていうのを、 見かけますが。
グリモンスレはどこでつか。
36 :
デフォルトの名無しさん :2008/01/03(木) 16:36:07
dojoスレありますか?
JavaScriptって意外と奥が深いんだな。
38 :
デフォルトの名無しさん :2008/01/07(月) 14:34:56
意外と難しい
連装配列とオブジェクトが同じなのはいいアイデアだと思う
40 :
デフォルトの名無しさん :2008/01/11(金) 19:38:31
あまり詳しくないので、ここで質問します。 FireFOX のツールバーに EXCELの拡張ボタンを追加しました。 初期設定コードの記述は launchProcess : function(path){ var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath("C:\\Program Files\\Microsoft Office\\Office\\excel.exe"); file.launch(); } ところが、これでは EXCEL が立ち上がってきません。 先頭部分の記述がおかしのでしょうか?
41 :
40 :2008/01/11(金) 22:10:18
質問するスレを間違えたようですので、初心者スレで 質問してきます。 大変失礼しました。
42 :
デフォルトの名無しさん :2008/01/12(土) 13:17:47
ifやfor等の制御構文キーワードを||と&&とarguments.calleeの再帰で代用したのち、 順番に実行する処理を[]の中に書いてセミコロンを駆逐すると、 すべての処理をone-runnerでかけてしまうことに気づいてしまった。
それくらい普通だろ
one-runner?
1回実行されただけで捨てられてしまうプログラム、それがone-runnerだ!
>>39 そのシンプルさがJavaScriptの良さだと思っていたんだが、
JavaScriptも静的型にするらしいね。
そうなったらもう使う気しねーな。
SchemeはJavaScriptのパクリ
48 :
デフォルトの名無しさん :2008/01/17(木) 15:21:48
知ってる人教えてくれ <script language="JavaScript"> <!-- var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp.open("GET", someurl, false); xmlhttp.send(null); if (xmlhttp.status == 200) { // xmlhttp.responseBody を使う } //--> </script> …てな感じのをやってるんだが、someurl の対象が shift_jis のファイルなのだ。 このとき、xmlhttp.responseBody を文字列にするにはどうすればいいのだ? ちなみに xmlhttp.responseText というのは文字化けしてしまって使えないみたいだ。
ファイルの中身がwell-formedじゃない場合の話をしてる?
50 :
48 :2008/01/17(木) 16:55:14
>>49 XMLどころかHTMLですらないけど…何か?
もともとXMLのためのものなんだから、 文句言うんならファイルの中身をXMLにしろ っていうことじゃね?
52 :
48 :2008/01/18(金) 01:17:27
>>51 <?xml version="1.0" encoding="shift_jis" ?>
のXMLファイル(もちろん中身も shift_jis)でも駄目だ。
結局、自分で出来ない事を確かめただけだった…orz
55 :
48 :2008/01/18(金) 19:56:36
押し付けがましいが一応補足
>>52 の場合、xmlhttp.responseText は文字化けするが
xmlhttp.responseXML.xml 等なら文字化けしない
ということのようだ
ブラウザを使って連番リストを作成し、txtファイルに書き込むスクリプトを作りました。 しかし、ファイルの書込みモードをラジオボタンを介して変化させようとしたらエラーが出ました。 <script type="text/javascript"> function list() { var mkfile = String(document.F1.T5.value); var mode = parseInt(document.F1.T6.value); var objFso = new ActiveXObject("Scripting.FileSystemObject"); var objFile = objFso.OpenTextFile(mkfile, mode, true); } </script> <form name="F1" action="#"> <input type="button" value="作成" onclick="list()"> <input type="file" name="T5"> <input type="radio" name="T6" value="2" checked>新規書込み <input type="radio" name="T6" value="8">追記 </form> ライン6、文字1 オーバーフローしました コード0 modeの値に、きちんと数値が入るよう色々考えましたが動きません。 どこを直せばいいのですか?
>>56 <script type="text/javascript">
function radioValue(r) {
if (r.length) {
for (var i = 0; i < r.length; i++)
if (r[i].checked)
return r[i].value;
}
else {
if (checked)
return r.value;
}
return null;
}
function list() {
var mkfile = String(document.F1.T5.value);
var mode = parseInt(radioValue(document.F1.T6));
var objFso = new ActiveXObject("Scripting.FileSystemObject");
var objFile = objFso.OpenTextFile(mkfile, mode, true);
}
</script>
>>57 の一部訂正
else {
if (r.checked)
return r.value;
}
59 :
56 :2008/02/03(日) 14:26:08
>>57 上手く動くようになりました。ありがとう。
JavaScriptはプロトタイプ宣言のようなものは無いのでしょうか?
myclass.prototype.hello = function () {return "world"}; ってのは置いといて、現行のJSには静的型付がないから プロトタイプ宣言も糞もない。
JavaScriptって、複数の値を返すことできないの? アドレス参照ができないとなると、どうやって複数の値の中身を変更するの?
LL言語流だと hashで返せばいいんでない?
65 :
デフォルトの名無しさん :2008/02/19(火) 21:56:53
>>48 結局、
>>54 のライブラリ(ecl.js )でxmlhttp.responseTextの文字化けって直ったんですか?
上手くできたならサンプル開示してくれませんか?
66 :
デフォルトの名無しさん :2008/02/19(火) 22:01:57
65です。 xmlhttp.responseTextの文字化けでなく、xmlhttp.responseBodyの文字化け 同じような事だと思うけど、訂正。
質問させていただきます。 プラウザの入力フォームからキーワードを入力する際に、 たとえば「A」「1」という文字を含むキーワードを入力するとあるテキストが表示され 「B」「2」という文字を含むキーワードを入力すると別のあるテキストが表示される、というようなページをつくりたいと思っています。 プログラムは超初心者のため調べようにもわからないので このプログラムはどういったもので検索すればいいか、または記入するプログラムなどを書き込んでいただけると非常に助かります。 よろしくお願いします。
超初心者なら、先ずは JavaScript の入門書か入門サイトを読もうぜ。
70 :
デフォルトの名無しさん :2008/02/20(水) 23:45:37
>>48 65です。
Firefoxで以下の様にしたら、文字化けしませんでした。
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function init(){
var xmlhttp;
xmlhttp = new XMLHttpRequest();
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("Permission UniversalBrowserRead denied.");
}
xmlhttp.overrideMimeType("text/html; charset=shift_jis");
xmlhttp.onload = function(){
$("res").innerHTML = xmlhttp.responseText ;
}
xmlhttp.open("GET", "
http://www.2ch.net/ ");
xmlhttp.send(null);
}
</script>
</head>
<body onload="init()">
<div id="res"></div>
</body>
</html>
正規表現の置換練習機を作ったけど、改行コードの扱いがうまくいきません。 aaabbbcccのbbbを\nと改行したくても\nを文字列としてaaa\ncccと置換してしまいます。 置換文字列を入力するテキストボックスをinputからtextareaに変えて実際に改行を入力すると動きますが、 \nを改行コードとして認識させる方法を教えてください。 <script type="text/javascript"> function replS() { var strZ = document.F1.TZ.value; var pat = document.F1.T0a.value; var rep = document.F1.T0b.value; strZ = repl(strZ ,pat ,rep ); document.F1.TZ.value = strZ; } function repl(str ,str1 ,str2 ) { var str ,str1 ,str2 ,mach; if (str1 !== ""){ str1 = RegExp(str1, "gm"); str = str.replace(str1 ,str2); } return(str); } </script> <form name="F1" action=""> <textarea name="TZ" onfocus="this.select()" cols=50 rows=10>aaabbbccc </textarea><br><br> <input type="button" value="置換" onclick=replS()><br> <input type="text" name="T0a" size=50 value="bbb">→ <input type="text" name="T0b" size=50 value="\n"> </form>
それ、JavaScriptの問題じゃないから。 Web系の板のHTMLスレにでもいきな。
JavaScriptをオンラインで1行コード化するサイトとかありませんか? ブックマークレットや、.jsのダイエット化とかように。
そんくらい自分で適当にコード書けよ。 JavaScriptで書けば一石二鳥だろ。
76 :
デフォルトの名無しさん :2008/03/03(月) 19:35:22
わかる人教えてくれ getDateとgetDayで日付と曜日を取得して、その日が第2金曜日以前か以降かを判定するスクリプトってどうすれば組める? 散々考えたけど全然思いつかん
馬鹿アルゴリズムで。 今日〜1日とカウントダウンしつつ、 曜日も合わせて変更。 間に何回金曜があるかカウント。
今日あるいは直前の金曜日の日付を7で割って、 2なら今日が第2金曜日、>2なら以降、<2なら以前でよくね?
79 :
デフォルトの名無しさん :2008/03/03(月) 20:09:42
>>77 やっぱりこれしかないのかな
>>78 直前の金曜日を出すのが面倒な希ガス
>>79 直前の金曜日なんて面倒でもなんでもない。
まあ、たかだかループ31回だから
>>77 でいいと思う。
77だが、 曜日wを0〜6=日〜土とすると、 今日がw=6なら直前の金曜日は、今日-1 それ以外は、今日-(w+2) # つまり日曜まで戻して、さらに土、金と戻す。 使う時には1日〜7日の例外処理を忘れずに。 けど人に聞くくらいだから、馬鹿アルゴリズムの方がいいと思う。 デバッグやら保守やら。
何がしたいのかよくわからんが、 Math.floor((日付 - getDay値)/7) で第何週かは出るよ。
カレンダー書いてみて、 ・1〜7日は無条件で第2金曜日以前 ・8〜14日は第二金曜日の可能性あり ・15〜は無条件で第2金曜日以降 だとわかった 8〜14日の場合に判定すればいいみたい
何がしたいのかよくわからんが、 そういう問題じゃないw
87 :
デフォルトの名無しさん :2008/03/03(月) 21:55:09
第2金曜日を求めて判定するってのもアリか
JavaScriptでリバーシを作りたいのですが、参考になるサイトはありませんか?
ありがとうございます。 参考になりました。
// 周りに相手の駒があれば、進行して行く なんかかっこいいな
92 :
デフォルトの名無しさん :2008/03/07(金) 03:49:18
93 :
デフォルトの名無しさん :2008/03/20(木) 01:10:06
IEはローカルの外部jsファイルが読めないのか? ライン:2 文字:1 エラー:文字が正しくありません。 ふざけやがって・・・!!!
ローカルでも普通に読めるよ
読めるに決まってるジャンwww 読めなかったら開発者全員怒りでMSに銃を持ち込んでるわwwww
文字が正しくないんだろ
>>95 うそこけ。
俺は持ち込むつもりは無い。
持ち込んでどうしたいのか分からんが。
98 :
デフォルトの名無しさん :2008/03/21(金) 17:46:33
99 :
98 :2008/03/21(金) 17:49:08
うぉ。強制変換。
<script>
var webmm="&lt;iframe src =
http://www.google.co.jp/ >&lt;/iframe>";
document.writeln (webmm.replace(/&lt;/i, "{"));
</script>
です。"&"は本当は半角です。
100 :
デフォルトの名無しさん :2008/03/21(金) 17:49:10
g
101 :
98 :2008/03/21(金) 17:53:42
>>100 /&lt;/gi
にしたら出来ました。ありがとうございます。
あらゆる環境で動くように作る情報とかが載ってるお勧めのページありませんか? 今はどのブラウザのどのバージョン辺りまでカバーすればよいかとかわからんもんで
大して無い
104 :
デフォルトの名無しさん :2008/04/12(土) 22:53:40
javascriptでフォームを追加してるんですが, その追加されたフォームの値を取得する方法が分かりませぬ 例えば<input type="text" name="text__count__" size="30" id="id_text__count__"> のフォームを__count__をreplaceして追加してるんですが, document.formname.test3.valueでは値が取得出来ません どなたかエロい人教えてください
document.getElementById("id_text?").value
106 :
デフォルトの名無しさん :2008/04/12(土) 23:07:34
>>105 あっさりできますた
こんな問題で3日間詰まってた俺っていったい・・・
ありがとうございます
その3日間何やってたんだw
108 :
デフォルトの名無しさん :2008/04/13(日) 22:15:42
JavaとJSの違いって何? 互換性ないってのは聞いたことあるがどういう関係かわからん。 ゆとりだからわからん。 場違いだったらすまぬ
違い云々の前に全くの別物。
Java → SunのVM言語 JavaScript → NetscapeのWebブラウザ付属簡易言語 JScript → JavaScriptのMS版 ECMAScript → JavaScriptのECMA標準化版 ぶっちゃけ何の関係も無い。
JS=JUSTSYSTEMS
JS=JoyStick。おまえの股間についてるモノのことだ。
うそつけ・・・ 俺のスティックは全然Joyしてないぞ
よし、どれ見せてみろ
117 :
デフォルトの名無しさん :2008/04/14(月) 21:14:33
初めまして。 右クリックをすると警告ダイアログボックスが出るようにする仕方は分かったのですが 2回目以降の右クリックは、出ないようにしたいのですが、可能でしょうか。 もし可能であるなら、プログラムを教えていただけないでしょうか。 どうおよろしくお願いいたします。
>>117 <script>
document.oncontextmenu = function() {
alert("うふ〜ん");
this.oncontextmenu = null;
return false;
}
</script>
118さん、どうもありがとうございました! 感謝いたします!
フォーム内容をprototype.jsのAjax.RequestでPHPにPOSTして結果をIDの中に書き出したんだけど 書き出した内容にあるlightwindowと自作のサムネイルチェンジャーが動作しません この書き出したフォーム結果はさらにAjax.Requestするものでそれはちゃんと動作してます リターンする内容のHTMLに直接IDの中に書き込むとちゃんと作動します jsの読み込むタイミングが悪いのかと思ってヘッダーで読み込んでたlightwindow.jsを フォーム結果と一緒に書き出すようにしてもダメでした てな説明で解決策分かりますか?
>>110 の続き
Rhino → Java製のJavaScript
123 :
120 :2008/04/16(水) 20:44:52
myLightWindow.activateWindowで解決しました
>>122 「ただの処理系」ってナニ?
"実装"ってことならJavaScriptはネスケでの実装だしJScriptだって実装だろう
ブラウザーがないことを処理系って言ってるなら随分前からSquiggleって例があるけど
…ウェブブラウザーじゃないが
>>124 Rhino は JavaScript の処理系であって言語ではない
JavaScript はネスケで実装されたものだけを指すわけじゃないし
JScript も IE で実装されたものだけを指すわけじゃない
言語と処理系の違いが分からないならもう少し調べてみてくれ
言語と処理系の区別なんていつでもあるわけないだろう。 そもそも「言語」だの「処理系」だのといった言葉の定義からしていい加減なのに。 普通は「辞書上の標準語」と「方言」の区別と似たような使われ方をすると思うけど、 そもそも「辞書上の標準語」が存在しない場合にそんな概念を振り回しても ただの言葉遊び以上の意味ないでしょ。
>>126 JSはともかくESでは処理系と言語仕様の区別は明確だぞ。ECMA舐めんな。
質問です。 function login() { iframe = document.getElementById("inframe"); iframe.contentWindow.document.forms[0].elements('login_id').value = sid; iframe.contentWindow.document.forms[0].elements('password').value = sps; } 上記の関数を実行すると「アクセスが拒否されました。」と出てしまい困っています。 行いたい事は、iframeタグ内に表示されている別ドメインのログインフォームにid,passをいれ、 submitしたいのですが、submitする手前のinputタグにid,passを入れる手前でエラーが出てしまいます。 inframe = iframeのid,name login_id, password = iframe内のinputタグのname 動作環境はIE 6 よろしくお願いします。
130 :
129 :2008/04/25(金) 09:34:49
…これはセキュリティー上出来ない仕様となってるんでしょうか。 色々と検証した結果そういった結論になりました。 MacのSafariの場合はローカルHTMLの場合は実行出来るんですよね… WinのSafariも可能なのかも。
>>130 > …これはセキュリティー上出来ない仕様となってるんでしょうか。
その通り。
132 :
ぴよ :2008/04/30(水) 19:59:34
メニューのところを、CSSで、フレーム風にし、スクロールできるようにします。 通常のフレームでは、スクロールして、ある項目をクリックした場合 スクロールした状態が保たれますが、CSSのフレーム風では スクロールした状態が保たれません。 これをJavaScriptでスクロールした状態を保つことはできますでしょうか? もしできるのならば、やり方、もしくは、参考サイトを教えていただけないでしょうか。 どのようなキーワードで検索すればいいのかも分かりません。 どうぞよろしくお願いいたします。
133 :
ぴよ :2008/04/30(水) 20:01:51
すみません。一度ageさせていただきます。
135 :
デフォルトの名無しさん :2008/05/08(木) 19:26:52
ローカルファイル限定で Javascriptからプロセス起動できて その標準出力をページに埋め込めたりしたら 激しく便利なんだが、無理?
やればいいじゃん
何でも起動できるようにしたら、著しいセキュリティ汚染
※実行注意 <script> (function(){var n=0x7fffffff;n++;a})() </script> このコードでIEが落ちない?
同じ処理なら 配列ごとデコードするの乱暴かな forで一つ一つすべき?
>>139 何をどうデコードするのかも書かずにどんな答えを期待してるんだい?
画像の読み込みが始まったら(終了か読み込みエラーまで待たずに) alertで警告画面を出させるような方法ってないですか? イベントハイドラだと終了かエラーかドキュメント読み込み完了くらいしか 感知できないみたいなので
144 :
デフォルトの名無しさん :2008/05/24(土) 13:13:47
サイトAの特定箇所の文字列をサイトBで表示したいとき パーサーを噛まさずにjavascriptだけでやれるでしょうか 教えてください
145 :
デフォルトの名無しさん :2008/05/24(土) 13:19:18
HTMLドキュメントから位置情報と文字列の内容示して取り出せば出来るか 案外簡単だな
147 :
デフォルトの名無しさん :2008/06/11(水) 07:31:52
try catchとかのエラーオブジェクトのdescriptionが %u6307%u5B9A%u3055 とかなのですが、どうやったら解読できるのでしょうか?
document.write(unescape("%u6307%u5b9a%u3055"));
149 :
147 :2008/06/11(水) 12:10:24
ありがとうございます
150 :
グーグー :2008/06/14(土) 19:29:23
それは「プログラム技術」には関係ない。
154 :
デフォルトの名無しさん :2008/06/17(火) 09:32:40
if文で分岐を作って、分岐したあとに表示されるボタンを分岐ごとに変えたいのですが、 文章を表示させることはできるのですがボタンを表示できません。 今はこんな感じになっているのですが、 <script type="javascript"> var count = 1; if (count == 1) {document.write("1です"); }else{ document.write("1以外です"); } </script> ("1です")の部分に<input type="submit" value="更新"> <input type="button" value="削除"> <button type="button" onclick="(window.open('','_top').opener=top).close();">閉じる</button> を ("1以外です")の部分に<input type="submit" value="登録"> <button type="button" onclick="(window.open('','_top').opener=top).close();">閉じる</button> を表示できるようにしたいです。
buttonタグとは中々見ないな
158 :
デフォルトの名無しさん :2008/07/22(火) 21:50:57
TextSS
★スロットの絵柄は「0」〜「9」まで変化する。★絵柄は3段構成。
★スタートボタンを押すと、各絵柄が一斉に動き出す。
★各絵柄の下のストップボタンを押すと絵柄が止まる。
★各絵柄がすべてそろうと、大当たりとしてページの背景色が変化する。
★大当たり後、再度スタートボタンを押すと、背景色は元の色にもどる。
★すべての絵柄が止まってないのに、大当たりの背景色変化が起こらないようになっている。
この条件でスロットを作りたいのですが、スタートボタンを押したら1つしかスロットが回転しません
どのように改善すればいいでしょうか?
ソースは
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7490.txt よろしくお願いします
なつやすみの宿題はとしょかんにいくといいよ!
161 :
デフォルトの名無しさん :2008/07/24(木) 16:05:37
すみません。お聞きしたいのですが、 1メガのjsファイルがあったとします。 これをブログの全部の記事毎に呼び出してる状況だとして、物凄く重いので、改善する方法はありますでしょうか? たとえば、別の場所に一旦呼び出して、実行コマンド?だけ記事に呼び出すとか。
163 :
デフォルトの名無しさん :2008/07/26(土) 00:39:54
>>162 フレームに分けるとか。
jsのフレームは非表示にする。
JavaScriptってどのくらいのことができるんでしょうか? C#で簡単なツールを書いてるんですが、.NETを入れたくない という人もいて代わりになるのであれば移行しようかと思ってます。 今実現したいのが ・ローカルにおいてあるテキストの読み込み ・上記で読み込んだテキストに関連する画像情報が書かれているので それを読み込んで表示 ・表示した画像を1枚絵にする。 とかなんですが・・・・
>・表示した画像を1枚絵にする。 JS では基本バイナリを弄ることはできないので_
167 :
165 :2008/07/28(月) 02:43:20
>>166 そうなんですか
なんか個別に表示して重ねたりは配置の問題だけなので
できそうでしたが・・・ザンネンorz
ブラウザのDOMを操作する以上のことはするなというのがこれまでの常識。 スタイルシートの範疇で出来ると思ったらやってみたら。 ただFirefox3のjavascriptのスピードを見たらもう少し何かやらせてもいけるような気がする。
>>165 んー、
> ・ローカルにおいてあるテキストの読み込み
の時点でHTAとかXULアプリケーションとかに
なるだろうから、がんばればできるんじゃないの。
Mozillaならバイナリが扱えるXPCOMもいろいろそろってるし。
HTA/JScriptの場合、FileSystemObjectだとバイナリが
扱えなかったような気がするけど、ほかのActiveXで
そういうことができるのとかどっかにありそう。
ブラウザのjavascriptかそれ以外の環境で動く派生言語かは分けて考えたほうがいいだろうね。 .NETに戻ってもいいならマニアックなJScript.NETなぞございます(笑
flash側の外部に公開されてない関数をjavascriptから呼びたい これができたらiknowを完全にキーボード操作で楽しんだりflashが使えない携帯からできるのに まぁ普通に考えてセキュリティ面でずたぼろになるから無理な要求だけど
>>165 JScript@WSHじゃ駄目なんですか?
javascriptの実装を統一して欲しいよまず。
統一されたら、言語の進化競争が止まるだけで、メリットは無いよ
クロスブラウザめんどい
言語が1つになって寡占的な支配を行ったら、 言語の改善や、新しい機能の取り込みがしやすくなって、開発は活発になるだろう。 結局方向はバラバラになり、実装はゴテゴテになり、 異なるブラウザ間の差異が異なるバージョン間の差異になるだけ。Java や AS のように。 次世代の Unified JavaScript を管理する俺たちの組織だけはそうはならない、とは俺は思えない。 結局、2つ以上のブラウザが、双方ともユーザに叩かれる状況が望ましい。
FireFox3以降で リンク隠すことは可能ですか?ブラウザの左下の表示のリンクです。
俺としてはflashさえ消えさってくれれば今のままで十分なんだがな ユーザコードから触れないから、折角キーボードオンリーでできる環境をつくっても flashがでてくるだけでぶち壊し
flashを使わなければよい
というか、むしろJavascriptはActionScript化してます。
まぁadobeはflashpluginのソースを公開汁ということだ
>・表示した画像を1枚絵にする。 バイナリではないけど、画像情報をBASE64にすれば、 img.src="data:image/png;base64,ヘテヘテ=="; で画像は表示できるかも PNGのアルファとか利用して重ねるとか?
>>183 そんな書き方できるんだ・・・。
Base64で各画像データを変数に格納して、imgのsrc属性に連結して渡せばいけるかな?
>>185 ところがBase64画像をimgタグにぶち込むのはIE"のみ"対応していないという罠
だった気がするんだけど最近のIEはできるようになったんだろうか
ブラウザ使っていいならcanvas使えよ
dataプロトコルにはIE8から対応。 カスタムプロトコルハンドラを作って公開している人がいるので、クライアントにインストールできるなら検討の余地はある。
189 :
デフォルトの名無しさん :2008/08/01(金) 14:15:10
ローカル動作のJScriptでソースファイルの分割をする方法はないでしょうか 行数が1000超えて把握しにくくなってきたので機能毎に分割したいのですが。 モノはIRCクライアント、LimeChat2(2.25以降)のスクリプトです。
190 :
デフォルトの名無しさん :2008/08/03(日) 17:00:28
prototype.jsを使って、
1 C:\hogehoge\local.htm(ローカルのファイル)からWeb上の
http://www.hoge.hoge/sample.htmを読み込む 2 sample.htmをデータ処理
3 $("hogehoge").innerHTMLでlocal.htm出力
こんな感じのスクリプト組んだんだが、IEだとうまく動くけどFirefoxだとWeb上のデータが読み込めない。
ぐぐって見たけどブラウザの仕様らしいということはわかったが解決策がわからない。
知ってる香具師いる?
今試す気起きんが Firefox だとローカルから XMLHttpRequest で Web 上のファイル取得できないんだっけか?
ブラウザの仕様なら無理なんじゃないの。
>>191 自分が試す気が起きない程度の問題に
君のために他人が試してくれると思える
その能天気さはどこから来ている?
>>193 俺は別に Web 上のファイルが取得できようができまいがどうでもいいから試さない
やりたいと言っている 190 が試せばいいんだし、暗にそう言っている
そんなこともわからないのか
195 :
190 :2008/08/04(月) 20:23:06
なんか人違いされてるな・・・
Firefoxのエラーコンソール見たら
>セキュリティエラー: file:///C:/hogehoge/local.htm のコンテンツが
http://www.hoge.hoge/sample.htm からデータを読み取ることは禁止されています。
と出たので多分Firefoxからはアクセスできないみたい。
あきらめます
セキュリティーポリシー緩めればアクセスできるよ。
197 :
デフォルトの名無しさん :2008/08/08(金) 01:28:49
IE7で、<select>で選択されている<option>の値をとるにはどうしたらいいの? .valueだと取れないみたい。
どうしようもないよ
不ツーは selected があるか見てく
IE なんか見捨てろよ
IE がここまで嫌われるに至った道を Fx で実践するわけですね、分かります
IE叩いてる奴はNN4とか触ったことないだろ
NN4とか久しぶりに聞いたなー
NCSA Mosaic
Fx使いでさえNN4は確かに失敗作だと思うが しつこく未だにNN4とか出してくるやつは初期IEと比べたらいい。
NN4 が叩かれる理由 → 普及したから IE6 が叩かれる理由 → 普及したから 次はなんだろうね
Firefox3
こういうので成功するのは、一人本当にがんばるやつが居た時だけだな。
「みんなで」とか言い出す奴にそんな奴はいない
とりあえずNGワードに設定してすっきりした
変数名に2バイト文字っていつから使えるようになったの? どっかのブログに出来るってことが書いてて 試してみたら、動いてビックリした
XMLも1.1から要素名などに非ASCII文字が使えるようになったことだし。
Unicode だからマルチバイトな
>>213 普通にXML 1.0から使える
1.1で使えるようになったのは1.0時点で未割り当てだった文字と現在未割り当ての文字
216 :
助けて下さい。 :2008/08/27(水) 11:20:01
下記のjspで、セレクト1のコンボボックスが変更された時、 関数changecmb1で、セレクト2のselectedIndexを取りたいのですが、 旨く取れないのです。取り方を教えて下さい。 本は読んだのですが、分かりませんでした(/_;) <html> <head> <script type="text/javascript"> function changecmb1(obj) { index = obj.selectedIndex; cmb2index = document.form.cmb2.options.selectedIndex; ↑旨く取れないのです。 alert("セレクト2のindex="+cmb2index); }
217 :
助けて下さい :2008/08/27(水) 11:21:11
</script> </head> <body> <div id="title" class="title">${title}</div> <br/> <span class="nece">test</span> <html:form action="action1"> <table> <tr> <td nowrap>セレクト1<span class="nece">※</span></td> <td> <f:code codeName="code1" var="cmb1List" /> <html:select property="select1" onchange="changecmb1(this)"> <html:option value=""></html:option> <html:optionsCollection name="cmb1" label="value" value="key"/> </html:select> </td> </tr> <tr> <td nowrap>セレクト2<span class="nece"> </span></td> <td> <f:code codeName="code2" var="cmb2List"/> <html:select property="select2"> <html:option value=""></html:option> <html:optionsCollection name="cmb2" label="value" value="key"/> </html:select> </td> </tr> </html:form> </body> </html>
>>216 jspでなく出力されたhtmlを貼り付けた方が良いと思うのだけど、
多分、document.formのformが<form>のname属性だっていうところじゃね?
<html:form action="action1" name="test">
cmb2index = document.test.cmb2.options.selectedIndex;
なら動く気がするけど。
それかdocument.forms使ったら?
JavaScriptでおマンコをクチュクチュする方法を教えてくれませんか?
それはできまへん。
1.5から出来るよ
JScript5.6はバージョンいくつ相当ですか?
相当しなくね?
質問です。 Math.random()を使って乱数を取り出しているのですが、 乱数が偏ってしまっている感じがします。 dice = Math.floor(Math.random()*6) + 1; // こんな感じ 偏りの無い乱数を得るいい方法はありませんか?
もっと大きな素数かけて剰余取った方がいい。 それだと上位ビットしか使えてない。
回答ありがとうございます。 dice = Math.floor(Math.random()*10000) % 6 + 1; のようにすればいいわけですね。 ところで、大きな素数というのはどの程度を用いればいいのでしょうか
激しく無駄のような気がする
というか“偏ってしまっている感じ”って何だ? 100000回とかちゃんとテストして1〜6に有意な差が出たのか?
>>228 うーん、たとえば↓を実行した数値を眺めると
同じ数値が連続したり特定の数値ばかり偏る……ような気がします。
こんなものなのでしょうか
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></head>
<body>
<script language="JavaScript">
<!--
function run(){
count = document.main.count.value;
for(i=0;i<count;i++){
dice = Math.floor(Math.random()*6) + 1;
var log = document.getElementById('log').value;
log += dice;
if(i%20 == 0){log += "\n";}
document.main.log.value = log;
}
}
-->
</script>
<form name="main">
試行回数:<input type="text" size="3" name="count">回
<input type="button" value="実行" onclick="run()"><br>
<textarea name="log" id="log" rows="4" cols="64"></textarea>
</form>
</body></html>
というか、お前の使っている実装での結果を張れw
それ、1−6の範囲の話だろw
眺めてどうすんだよ… <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></head> <body> <script language="JavaScript"> <!-- function run(){ aho = [null, 0, 0, 0, 0, 0, 0]; count = document.main.count.value; for(i=0;i<count;i++){ ++aho[Math.floor(Math.random()*6) + 1]; } document.main.log.value = '1:'+aho[1]+' 2:'+aho[2]+' 3:'+aho[3]+' 4:'+aho[4]+' 5:'+aho[5]+' 6:'+aho[6] } --> </script> <form name="main"> 試行回数:<input type="text" size="3" name="count">回 <input type="button" value="実行" onclick="run()"><br> <textarea name="log" id="log" rows="4" cols="64"></textarea> </form> </body></html> Chrome で1億回実行した結果↓ 1:16660586 2:16665434 3:16668868 4:16667059 5:16663135 6:16674918 偏りがあるようには見えんな。
233 :
デフォルトの名無しさん :2008/09/03(水) 08:23:40
Chrome を見せたかっただけかよww
234 :
デフォルトの名無しさん :2008/09/03(水) 08:26:06
おじさん。かっこ悪い。
>>232 あー、トータルで綺麗に分布しても局地的に偏ってたら意味ないというか
特にゲーム的なものを作る場合、数字の偏りが結果にモロに出るので嫌な感じです。
試行回数が多いわけでもなし。
大きな素数掛けて剰余取っても偏りがあまり取れない……まあ、こんなものだと諦めます。
回答ありがとうございました
君が必要としてる分布はこうすれば確実だよ(笑 for (int i=0; i<loop; i++) for (int j=1; j<=6; j++) { }
たぶん1〜6を配列に入れてシャッフルするといいよ
countが6だったらそれしないと無理ですな
>>224 がランダムってことを理解してないだけだろうな。
ここいいな
まあ文系だとこんなもんだよね
>あー、トータルで綺麗に分布しても局地的に偏ってたら意味ないというか 「偏る」とはどういうことかをまったく理解していないわけだね。
へんるぐらい知ってますよ!
乱数使ってといて「ランダムなのが気に食わない」ってアホかよ…
その辺にしておいてやれよ、これ以上弄ったらスレに帰ってこなくなっちゃうだろっ。
1秒ごとにAがBになって、またAになってBになって、以後ずっとABABABABABABABABA・・・・・・・・・・・・・・・・・・・・・・・・・ はどうやりますか
kouyarimasu
>>247 setTimeout
innerHTML
聖書のイエス物語は四人の人が書いてて少しずつ違う。 同じ文章は普通に書いて、違う文章はgetHours使って、時間帯によって変わるように出来るかな。
できるよ。
253 :
デフォルトの名無しさん :2008/09/06(土) 03:49:31
<SCRIPT language="JavaScript"> <!-- function ttlValue() { txt = 2; ttl = 0; for(i=0; i<txt; i++) { if(document.nForm.elements[i].value != "") { ttl += eval(document.nForm.elements[i].value); } } document.nForm.result.value = ttl; } function numOnly() { m = String.fromCharCode(event.keyCode); if("0123456789\b".indexOf(m, 0) < 0) return false; return true; } //--> </SCRIPT> <input type="text" name="t1" onkeyDown="return numOnly()">+<input type="text" name="t2" onkeyDown="return numOnly()"><input type="button" value="=" onClick="ttlValue()"><input type="text" name="result" size="20">
255 :
デフォルトの名無しさん :2008/09/06(土) 22:04:30
Selectの項目を選ぶと、そのアイテムの情報をinnerHTMLで書き出しして表示させているのですが、 そのSelectの項目の各々を比較するために、 Radioボタンで書き出し場所を同一HTML内の別TableにABCそれぞれinnerHTMLで書き出すにはどうすればいいんでしょうか? RadioボタンをA,B,Cと作ってvalueをa,b,cと設定してif (value = a)等でABCそれぞれのinnerHTML書き出すようにしたのですが、 if (value = a)ならAのみ、bならBのみ、cならCのみしか変更されません。 ご教授お願いします。
状況とやりたい事がいまいち分からない 最小限ソース出してくれ
257 :
デフォルトの名無しさん :2008/09/07(日) 01:31:17
<head> </head> <body> <form name=frm> <select name=slt> <option value=1>データ1 <option value=2>データ2 </select> 表示領域1変更<input type=radio name=radiogrp value=1 checked> 表示領域2変更<input type=radio name=radiogrp value=2><br> <table border=1> <tr> <td>表示領域1</td> <td>表示領域2</td> </tr> </table> </form> </body> 例えばこんな風で、表示1変更になってる時は領域1にデータ1の内容を表示、 表示2変更の時は領域2に・・と言う風にしたいのです。 (データ1とデータ2を比較したいため) のですが、1変更になっていても2変更になっていても、どちらか片方しか変更されません。
すいませんすいません。 自己解決しました。 document.frm.jobcopy[0].checked == true の[0]が抜けてました。
HTMLがらみの質問はWeb板でやってくれーとか思ったり
JavaScriptでおマンコをクチュクチュして潮吹きさせる方法を教えてください。 よろしくお願いします。
261 :
305 :2008/09/07(日) 21:34:40
java script で数年は食べていけるのでしょうか?
味に飽きなければ何年でもいけるよね まぁ味付け次第じゃないかな
V8やべぇな…
C実装のバイナリ版はどこかにないですか?(win32)
>>264 ドトネトフレームワークにjsc.exe付いてるだろ
Cから呼びたいって意味ならjscで実行ファイル化してパイプでやりとりするか、WSH組み込め IRCクライアントにJScriptをアプリのスクリプトとして実装してるのがあるからできるはず
アホか。JScriptは今後サポートしない方針なんだよw
268 :
デフォルトの名無しさん :2008/09/09(火) 00:19:45
JavascriptのDocument.write()後のHTMLを表示する方法ってないですか?
innerHTML
IEでウィンドウの大きさ変えたときにwindow.document.body.clientWidthで幅取得してんだけど これなんで、開いた時の幅しか見れないわけ?
目障りだからウィンドウの幅なんか変えるなよ
jsonで2つのプロセスの通信させようとしています jsonにはポインターや配列の情報をやりとりする枠組みはあるのでしょうか? 配列を全部テキストに変換しないとだめでしょうか?
JSON の文法とかちゃんと読んだ?配列とかオブジェクトとかちゃんと書いてあるでしょ? XML と同じでデータ構造しか表してないんだから、意味を定義するのはアプリ側だよ
JSONでポインタとな
----------Test1.js------------------ var Hash = new Object(); var Human = { name : null, age : null, } function Push(name, age) { var person = new Human(name, age); Hash[name] = person; } function Test(name) { alert(Hash[name].age) } ----------Test2.js------------------ function showAge(name) { Test(name); } -------------------------- Push(satou, 20); showAge(satou); として年齢をアラートさせたいのですが、Hash[satou]がundefinedになってうまくいきません。 オブジェクトが共有されてないみたいですが、この様な場合でもうまくいく方法はありますか?
Hash[saout]がundedinedになる以前にあちこちでエラー出ないかそれ
277 :
275 :2008/09/18(木) 15:59:57
js間の問題だと思っていたのですが、どうやら原因はこれを書いていた拡張機能の中のウィンドウ間の オブジェクトの共有の部分でした。申し訳ありませんでした。
278 :
デフォルトの名無しさん :2008/09/21(日) 14:31:16
GoogleのAjax Libraries APIを利用してDojoのDatePickerを使っているのですが、
Firebugに「uncaught exception: Could not load cross-domain resources: dojo.widget.DatePicker」
と怒られてしまいます。
<script src="
http://www.google.com/jsapi "></script>
<script type="text/javascript">
google.load("dojo", "1.1.1");
google.setOnLoadCallback(initDojo);
function initDojo() {
dojo.addOnLoad(init);
}
function init() {
dojo.require("dojo.widget.DatePicker");
}
</script>
...
<div dojoType="datepicker"></div>
他の簡単なdojoサンプルは動作したのですが、
DatePickerサンプルが動作してくれません。
どなたかアドバイスお願いします。
279 :
デフォルトの名無しさん :2008/09/21(日) 22:57:34
基本的な質問で申し訳ないんですが、 引数付きの関数があるjavascriptを含むHTMLに対して、 URLに引数を与えて、そのページを読み込む直後にURLの引数とともに関数を実行させる みたいなことはどうやったら実現できるのでしょうか。
280 :
279 :2008/09/21(日) 23:11:05
すみません自己解決しました。 スレ汚して申し訳ないです
281 :
デフォルトの名無しさん :2008/09/25(木) 22:11:28
var obj = new Hoge(); というコードで、Hogeクラスのインスタンス obj を作成した後に obj から オブジェクト名 "Hoge" を取得する方法ってありますでしょうか? instanceof も残念ながらインスタンスとの比較にしか使えないみたいですし 色々と試したのですが、[object Object] という文字列になってしまいます よろしくお願い致します
>>281 >var obj = new Hoge();
だれだけじゃわかんねーよといいたいとこだが、
へぇ〜それもいけるのか・・・
function Hoge(){
this.name="Hoge";
}
としてobj.nameで取得するとかじゃだめ?
>>281 がやりたいことそのままってのはできないとオモウ
283 :
デフォルトの名無しさん :2008/09/25(木) 23:21:00
>>282 .NET でいうと
typeof で Type型を取得して、FullNameプロパティでクラス名を取得する感じです
JavaScript では自分で作ったクラスを typeof にかけると
オブジェクト名が "object" になっちゃうんですよねぇ、残念っす
やっぱ無理っぽいですね・・・
無理だと、やっぱり
>>282 の実装になっちゃいますよね
( ^ω^)・・・?
>>283 prototypeベースだからいろいろ都合があるのさ。
JScript.NETでもやってろタコ。
JavaScript のクラスってのは動的なオブジェクトで、 オブジェクトそのものには名前は無い。 var Hoge = function () { this.hoge = "Hoge"; }; var obj1 = new Hoge; var Foo = Hoge; var obj2 = new Foo; 関数宣言された場合に取得できるようになっている、とかの勝手実装はあるかも知れないが 少なくとも ECMAScript 3.0 では定義されていないし、 直感的で無いのでお勧めしない。 やりたいことがイマイチ分からんのだが obj1 instanceof Hoge で駄目な理由は?
288 :
デフォルトの名無しさん :2008/09/26(金) 10:56:48
ちょっとつまずいてますので教えてください。 ウインドウのメニュバーを消したいのですが、親ウインドウ側で 指定がうまくできませんので、子側で(menubar=no,toolbar=no,scrollbars=no) このようなスクリプトを書きたいのですが、 分かる方いらっしゃいますか?
そういうのはセキュリティや利便性からもう動作しないようになってる つーかそんなんやるな
ウインドウをJavaScriptで擬似的に描画すればいい
291 :
デフォルトの名無しさん :2008/09/26(金) 13:50:44
>>290 擬似的にってものすごい怪しげな感じがします。
要は、flashのwebコンテンツを画面にできるだけ全体に表示したいんですが。
WEB上のアプリがタイルバーもボーダーもなしで全画面表示できたら、 ログオン画面そっくりのフォームを作ってユーザーにIDとパスワードを入れさせるよ。 できなくしてあるのはつまりそういうわけだ。
javascriptが高速化されたとして最近興味もちはじめたのですが javascriptで数値計算するようなlibraryってないのですか? GSL呼べばいいの?
294 :
デフォルトの名無しさん :2008/09/26(金) 14:52:51
なるほどブラウザは使えないようですね。 ありがとうございます。 所詮はjavascriptであって、ブラウザに左右されそうですね。
295 :
デフォルトの名無しさん :2008/09/27(土) 04:28:43
気にするな、単なる典型的なゆとりだ。
>>295 基本的にバイナリ配布してないし、ローカル・ファイルアクセスもできないからそういわれて当然のような気がするけど?
どこかにCのバイナリ・リリースないですか?
Cの何のバイナリ・リリース?
303 :
デフォルトの名無しさん :2008/09/29(月) 00:13:51
当然JSソースを処理できるインタプリタのバイナリ(Cでコンパイルしたもの)。ここまで説明しても分からないのは文系のカス野郎w
>>303 jsを投げて結果を出力する=ブラウザ
jsを投げてexeを出力する=知らん
どちらもCである必要は無いし、リリース版である必要も無い
10年くらいROMった方がいいと思うよ
305 :
デフォルトの名無しさん :2008/09/29(月) 02:26:51
>>304 人にそういう風に言う君のほうこそ、もう一度CGIから初めて、サーバー・クライアント・システムのことを勉強した方がいいよ。
>>304 が書いているのは「コンパイラ」で
>>303 が書いているのは
「インタプリタ」全然違うじゃん。
ちなみにJavaScriptインタプリタの実装として一番代表的なのが
SpiderMonkeyでこれはCで書かれている。その次にRihnoという
Javaで書かれたのがある。どちらもフリーだから検索すれば。
それをコンパイルしてバイナリーで誰か配布してくれくれってことだと思うけど?どこかで読み間違えたか?
コンパイルしたバイナリってなんだよ バイナリを手前の環境でコンパイルするんだろ
ブラウザって、JSコンパイラだったのか。知らんかったwww
これがム板か
そもそも >要は、flashのwebコンテンツを画面にできるだけ全体に表示したいんですが。 と、JavaScriptをネイティブにコンパイルして実行することに何の関連性もない。 馬鹿の考えることは微塵も理解出来ない。
質問者は別人と考えてもいいんじゃないか?おまえがバカw
javascriptとロカールのプロセスと連携するには http_request(localhost 何か) がベストなやり方なのでしょうか? hoge.so に直接アクセスする方法はないのでしょうか?
Javascript処理系の実装次第としか言えないんじゃね? WindowsのJavascript処理系のJScript(WSH)はActiveXオブジェクトにアクセスできるわけだし。
Web制作でローカルと連携ですか
>>316 IEでもActiveX許可すれば問題なくローカルアクセスできるぜ。
hoge.exeの実行も許可すれば問題なく実行できるぜ。
ローカルプロセス側にWEBサーバ機能を持たせればいいだけ
>>319 イントラとインターネットでセキュリティ切り替えできるからありと言っちゃあありだよね
Javaスクリプトの開発環境の話がないけど、興味ないのかな。 サンプルはあってもスクリプト単独で動かすわけでもないから開発環境欲しいなと思ったんだけど NetBeans程度の対応じゃそこら辺のエディタと変わらない気がするし Eclipse+Aptanaとかそんな規模の作るわけでもないのにでかすぎ重すぎだし ez-HTMLは画面レイアウトが簡単じゃないし Firebugはデバッグにはいいかもしれないけどその前段階がだめだし View formatted sourceは関係ないけど便利そうだけど 1ページのHTML+CSS+JavaScriptを統合的に簡単にコーディングできる環境ってどれ?
Emacs
>>323 Emacsも、色分けできただけで大喜びしてる変な文化だよね。
>>321 世界標準のホームページ制作王なんかおすすめだな(今は商品名が変わっているらしいけど)
安価ミスを気にするほどのレスかw
328 :
デフォルトの名無しさん :2008/10/04(土) 09:18:19
あるドキュメントのリンクをクリックして別のドキュメントを表示させて更にそこのリンクをクリックしてという一連の操作を書く場合は対象となるドキュメントをどう指定したら良いんでしょうか?ウィンドウは同じです あるところまでは前のドキュメントあるところからは移動した先のドキュメントを対象にしたいです
ウィンドウは同じ・・・ 同ドメインならフレームにすればできるんじゃない。
330 :
デフォルトの名無しさん :2008/10/04(土) 18:20:32
自分のページではなくて既存のページに追加する形で操作したいんです
>>330 ドメインまたぐならサイト側のあれこれでは無理。
できてしまったら、悪用もできてしまうとは思わない?
リンクをクリックしたら2chに勝手に書き込み完了するとかさ。
332 :
デフォルトの名無しさん :2008/10/04(土) 18:56:14
確かにそうですね クライアントサイドのJavascriptでCSS追加などができるのでそういう「オートマ化」ができないかと思ったのでした
繰り返し作業の簡略化をしたいだけなら、Bookmarkletで読み込ませればいい。 あれならそのページの一部として埋め込まれるから htmlに直に書いたJavascriptでできることなら一通りできる。
334 :
デフォルトの名無しさん :2008/10/04(土) 20:20:12
bookmarkletの場合に複数のドキュメントを操作するには複数のドキュメントでそれぞれ読み込ませてifかなにかで分岐することになるのでしょうか?
335 :
322 :2008/10/05(日) 12:09:14
Aptana単体でインストールできるらしかったので入れてみました。 やっぱ最新版がいいなとインスコして起動したらエラー。起動しません。 ユーザー名がぶっこわれててプロファイルが設定できないとか。 Eclipseはよく見ると既にあったし、なんとインストール不要らしいのでプラグイン使ってみようとダウンロード ・・・できません。 ひとつのメアドでは二つ以上ダウンロードできないのか。 でもほかのメアド使ってなんとかダウンロード。 このさいだしEclipseも最新にしてプラグインの設定・・・わかりません。 Aptanaダウンロードページにあったプラグインのアドレス追加手順で自動インスコしました。 Aptanaダウンロードした意味ねー Eclipse英語版はちゃんと日本語名扱えるのにAptanaだとバグる意味がよくわからない。 んで作りかけのHTML読ませてFormatするとインデントの対応取れてねー。 タグの対応が取れてないのがたくさんありました。 <P>って改行の意味だと思ってた。 んで$('')の意味が検索しても分からなかったけどAptanaでマウスポイントしたら分かりました。 入れてよかったけど簡単なHTML1枚読むのに300MBくらいメモリ食うのってどうなのと。 インスコしたファイル丸ごとメモリに読み込んでそうな勢いです。
結局デバッガはブラウザ使うことになるのに エディタで無くて糞重い IDE 使う利点って見つからない
彼が欲しかったのはタブエディタだったとおもう
338 :
デフォルトの名無しさん :2008/10/07(火) 01:03:47
339 :
デフォルトの名無しさん :2008/10/07(火) 01:09:16
やだ
Cookieについて質問です。 あるサイトAに関して 他のページ −> Aのトップ の時は処理Bを行う サイトAのトップ以外のページ −> Aのトップ の時は処理Cを行う Aのトップのリロード −> の時は処理Bを行う と、つまりサイトA内のトップ以外のページからトップに飛んだ時だけ別の処理をしたいんですが クッキーでやる場合どうするのがセオリーになるのでしょうか? サイトA内のトップ以外のページ全てにフラグクッキーを作らせてトップに来たときそれ見て判断+削除 ってするしかないでしょうか?
341 :
デフォルトの名無しさん :2008/10/07(火) 01:17:46
事故解決乙
document.referrer
343 :
デフォルトの名無しさん :2008/10/07(火) 01:44:35
344 :
デフォルトの名無しさん :2008/10/07(火) 04:12:08
やだ
345 :
デフォルトの名無しさん :2008/10/07(火) 11:30:00
うぜ
346 :
デフォルトの名無しさん :2008/10/07(火) 11:45:04
347 :
デフォルトの名無しさん :2008/10/07(火) 11:52:28
>>343 よくできまちゅたね〜えらいでちゅね〜すごいでちゅね〜
348 :
デフォルトの名無しさん :2008/10/07(火) 12:02:28
>>343 きたねぇソースだな
無駄な処理も多くて反吐が出るぜ
350 :
デフォルトの名無しさん :2008/10/07(火) 13:59:22
よく見るHogeって何?
352 :
デフォルトの名無しさん :2008/10/08(水) 00:10:54
ジャバスクリプト初心者です
ttp://psycol5.sugoihp.com/pcpark/hiclass/hihp11.html こちらのサイトを参考に、画像を動かすものを作ってるのですが
画像を複数にした場合、どう改造したら正しく動作しますか?
document.all.daruma.style.pixelLeft = x;
document.all.daruma.style.pixelTop = y;
このdaruma部分を、例えばdaruma1 daruma2としていくとして、4,5個画像があった場合、
どうすればその部分を変更できるでしょうか
自分なりに頑張っては見たのですが、どうも上手く行きません
どなたか助けてください
352できました しんぐるこーてーしょん付け忘れてた・・・
>>341-342 有難うございます。
リファラだけだとまずいようですね。自己解決はいいけどめんどくさいからやりたくなかったんだよな・・・。
クラスメソッド定義するとき、 function class() { this.m_funcA = function() {} } と function class_funcA() {} function class() { this.m_funcA = class_funcA; } どっちが一般的でしょうか?
function class(){ class_funcA : function(){ 〜 } }
function class_funcA() {} class_funcA.prototype.m_funcA = function () {}
命名もうすこし何とかならなかったのか
361 :
356 :2008/10/10(金) 01:18:55
間違えた class.prototype={ class_funcA : function(){ 〜 } };
class ってキーワードだから無理だろ
準キーワードだよ
355のネーミングに合わせただけで特に意味は無いだろうに・・・
interHTMLにjavascriptは使えないんでしょうか たとえば xxx.interHTML = aaa.responseText; でresponseTextの内容は↓なんですが <script type="text/javascript">document.write("aaa");</script> うまく表示されません。
そもそもそういう変なことはするべきではない。 せざるを得ないのなら設計が悪い。
document.writeではないのですが、 interHTMLで送った内容の中にちょっとした計算事やonclickイベント入れたら機能しなかったので interHTMLでjavascriptはNGなのかなと思い質問させてもらいましたι
>interHTMLで送った内容の中にちょっとした計算事やonclickイベント入れたら機能しなかったので <input type='button' value='test' onclick='alert(123)' />
emacs js2-mode いいよ
interHTML に一致する日本語のページ 4 件中 1 - 4 件目 (0.12 秒)
371 :
デフォルトの名無しさん :2008/10/17(金) 20:09:23
× interHTML ○ innerHTML おまえら優しいんだな
ディスク整理してたらMicrosoft Development Environmentとかいう スクリプトエディタがあった。 Microsoft Visual Studio 6.0付属らしいけど、そんなもん入れた覚えない。
それどんなソフト?
ボタン一つでコントロールを配置できるHTMLエディタと スクリプトデバッグ環境みたい。 OfficeProに、FrontPageと一緒に付属してたのかな? こんなもんがあるとか知らなかったよ。 Helpから >MicrosoftR Script Editor を使うことによって、 >HTML および ASP (Active Server Page) ファイルの HTML タグを表示し、編集することができます。 >Microsoft Visual BasicR, Scripting Edition (VBScript)、JscriptR などのスクリプトをファイルに追加して、 >そのスクリプトをデバッグすることもできます。 ASP、DynamicHTML、VBScript、JScriptのリファレンスまでついてる。 関数が意外と少ないのはバージョンが古いからなのか・・?
そいつは便利そうだな
プログラム中でcallオブジェクトを指定する方法は無いでしょうか? thisみたいな感じで。 要はある関数から呼ばれた関数の中で、呼び出し元のローカル変数にアクセスするみたいな事をしたいのです。
死ねばいいと思うよ
>>376 呼び出し元の変数を操作するファンクションをもったインスタンスを渡す
this渡せばいいんですね
永久ループの完成ですね。おめでとうございます。
>>376 普通に変数名を書くだけでアクセスできるはずだけど
クラスとそのメソッドとして実装すればいいじゃない
383 :
デフォルトの名無しさん :2008/10/23(木) 16:18:37
ボタンを押すと、普通にホームページに書いてある文字が変わるように出来ませんか?
<script type="text/javascript"> <!-- function func() { document.all.ABC.innerHTML = "<b>おやすみ</b>"; } // --> </script> <div id="ABC">おはよう</div> <button onclick="func()">OK</button>
ブラウザ上のJavaScriptに関する話題はWeb制作板へ。
387 :
デフォルトの名無しさん :2008/10/26(日) 03:01:47
こんにちわ if(!document.getElementById) { return; } っていう記述を見たんですが、これってどういう処理ですか? getElementByIdは関数だから、関数がNULLならリターンするってこと? そもそもgetElementByIdは組み込み関数かと思っていたのですが、これがない場合ってどんなの? 他のJSでこの関数をNULLにしちゃったとか、そういうことをチェックしているのかな? それともブラウザが対応していない事を検出しようということなのかな?
>>387 使える機能はブラウザによって違う。
ブラウザを判定するため、もしくは、その機能が使えるかどうかを確認するために関数を見る。
389 :
デフォルトの名無しさん :2008/10/26(日) 03:30:35
JavaScriptはブラウザ以外でも使われている
391 :
デフォルトの名無しさん :2008/10/26(日) 03:46:02
それは知らんかったわ。
>>383 こういう質問を気軽にできるようにphp板が出来たわけだから。
>>387 みたいに言語そのものの話と考えられるものはセーフだけど。
もともとなかったんだけど、 ブラウザ系の質問がウザイから、 防波堤的に作られた。
399 :
デフォルトの名無しさん :2008/10/29(水) 14:50:59
メールアドレスとメールアドレス(確認用)が一致していなければアラートが出るようにしたいのですが 、 そのまま使えるような、何かいい実用例とかありませんでしょうか? よろしくお願いいたいします。
401 :
デフォルトの名無しさん :2008/10/31(金) 02:30:08
402 :
デフォルトの名無しさん :2008/10/31(金) 16:27:13 BE:2242867788-2BP(1000)
>>402 エラーは見てないが、
コードのエンコードがShift_JISだからに違いない。
404 :
デフォルトの名無しさん :2008/10/31(金) 19:19:01 BE:2523226098-2BP(1000)
>>403 エンコードの種類をShift_JIS以外の、UTF-8、EUC-JP、ISO-2022-JPなどを
試しましたけど、以前の症状は改善することができませんでした。
私のやり方が間違っているのでしょうか?
JavaScriptの実行環境を書かないのは、 その程度テメエであらゆる環境を試せよクズ、 こっちはキーボードを一つ叩くだけでも価値が違うんだボケ ということ?
406 :
デフォルトの名無しさん :2008/10/31(金) 20:36:55 BE:1121433784-2BP(1000)
>>405 申し訳ありません。こういうところで相談することに慣れていないもので。
Windows XPにFMV-BIBLO MG50Jというノートパソコンを使っています。
その的外れな内容で、スレの住人をからかいたいということがよく分かった。
>>402 今ページ見たけどもう中身消しちゃった?
とりあえず、エラーが出たときに使ってたブラウザは何?
>>408 >とりあえず、エラーが出たときに使ってたブラウザは何?
ファイアーフォックス3.0.3です。
UTF-8で全部手打ちしてからもう一回こい。
>>411 今試しましたが、すると文字一帯が全部非表示になってしまいました。
perlベースで、全部手打ちでつくっています。
>>409 のソースコードはCGIが吐き出したものです。
>>412 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
をヘッダタグに追加してもう一回試せ。
perlは知らん。
>>414 perl側でuse utf8かuse Encodeして吐く文字自体をutf8にしないとだめだよ
とりあえずshift-jisで試すために、
else if (str == '―') { alert(str) }
を追加して、文の初めに―を追加したけど、alert出てきたよ@Firefox3.0.3
エラーが出る状態にしてみて。
文に―を追加してscriptにif文追加した状態に。
Perlのプログラム自体をUTF-8に変更しろ
>>418 なるほど、utf8で保存できるエディタを探してみたいと思います。
このスレで親切にレスをくれた方々、ありがとうございました。
420 :
デフォルトの名無しさん :2008/11/03(月) 13:12:24
<META http-equiv=Content-Type content="text/html; charset=shift_jis"> <script language="JavaScript" src="outScript.js"> function valueFigure() { int value1Int,value2Int; value1Int = eval(document.value1); value2Int = eval(document.value2); document.form.ansInt.value = value1Int + value2Int; } //--> <body bgcolor=gray text=text> <form name="form"> 二つの数字を入力して下さいね〜。<br> <!-- 入力テキストフィールド:左 --> <input type="text" name="value1" style="width=30">+ <!-- 入力テキストフィールド:右 --> <input type="text" name="value2" style="width=30">= <!-- 結果出力テキストフィールド --> <input type="text" name="ansInt" style="width=30"> <!-- アクションボタン:足算 --> <input type="button" value="足算" style="width=50" onMouseClick="valueFigure()"> <!-- テキストフィールドリセット --> <input type=reset value="reset"> 以下略... script初心者です。書き込めるように余計な箇所は削除してます。 なぜ動かないのでしょうか・・・?
421 :
デフォルトの名無しさん :2008/11/03(月) 14:04:12
できたーー! intなんて宣言はできないんですね・・・
>>420 eval(document.value1.value)
var a = "10";を数値型に変換する時って Number()とeval()どっちがいいんだろ。
整数確定ならparseIntという手もある。
evalはやめとけ。
426 :
デフォルトの名無しさん :2008/11/14(金) 00:36:55
aaaa <!-- A --> bbbb ...(要素の種類、数不定) cccc <!-- B --> dddd コメントAとBの間を取得するXPathの書き方がわかりません。 //comment[string(.)="A"]/following-sibling::node() と //comment[string(.)="B"]/preceding-sibling::node() との積集合ができれば楽かなと思ったのですが、 和集合しか演算子がなくて(union|)うまい方法が、 思いつきません。 XPath式で表現できませんか?
Narcissus使ったことある人って結構いるもん?
428 :
デフォルトの名無しさん :2008/11/16(日) 10:50:10
教えてください <script type="text/javascript"> window.onclick = function() { alert("clicked");} </script> と入力してクリックすると常にメッセージを出すようにしようとしているのですが、 firefoxでは動くのですがIEでは動きません。 環境OS:vista IE7 どうしてでしょうか?
429 :
428 :2008/11/16(日) 11:41:09
すみません、板間違えました。 web製作にて質問します。
ほんと MS は悪の巣窟だな
json-rpcってもうそろそろ仕様は固定? もう変わったりしない?
432 :
デフォルトの名無しさん :2008/11/30(日) 20:01:32
プログラムを書いたファイルから Test っていう文字列が含まれる関数名をすべて取得して DoTest という関数内に書き出すってのをつくりたいんですが さっぱりわかりません。誰か教えてください。
>>432 悪いこと言わないから他の言語使っておけ。
Javascriptのソースコード(が書かれたテキストファイル)を処理するのに
JS使わなきゃいけない理由はない。
JSで入出力を扱う標準って今もないんだっけか
標準もデファクトも無い
最初のオレンジでパカーッと割れるやつは、どうやって消すの?
first.orange.one.pakaaa.open.clear = true;
正規表現でのEUC文字の扱いについておしえてください。
具体的に示しますと、
r = this.remainder.match(/^([a-zA-Z0-9][a-zA-Z0-9_]*)(.*)$/);
(これは
http://ioctl.org/logic/prolog2 のなかに現れるコードです)
0-9の後に全てのEUC文字を指定する表現を挿入したいのですが、
うまくいきません。
OSはKbuntu7.04(EUCで使用)
ブラウザはFirefox2.0.0.16 htmlファイルのHEADでeucエンコードを指定を追加しました。
メールに添付されているファイルをデコードしたいんですが,何か手段はありますでしょうか? ぐぐってもjavascriptのものはなくて,困っています。 どうしてもjavascriptじゃないとダメな感じなので,よろしくご教授ください。 よろしくお願いします。
>>440 >javascriptじゃないとダメな感じ
その結論に至った理由を他の人でもわかるようにちゃんと書いてごらん。
mash-upのひとつとして利用する必要があるからです。 javascriptで組み込むしかないんです。。。
じゃあそのmash-upとやらでJavascriptを強要するツールの スレかコミュニティで聞いてみるといい。
JavaScript でメールを取ってくるわけでも無いだろうに
base64のエンコーダ/デコーダなんてぐぐればすぐ出てくるじゃない
ここは無能ぞろいのインターネッツですね
無能エスパーでごめんね
str に文字列が入っていなかったか ブラウザで開くファイルを間違ってたか ちゃんと動いてるのにその部分の記憶だけが飛んでいるか の3通りが考えられる
そもそもJavaScriptの文字列はimmutableじゃなかったっけ?
454 :
デフォルトの名無しさん :2008/12/21(日) 00:30:46
JavaScriptでテキストにカーソルを合わせ その合わされたテキストのカラーを変化させることって可能でしたっけ?
CSS で十分
456 :
デフォルトの名無しさん :2008/12/21(日) 01:29:32
457 :
454 :2008/12/21(日) 02:07:29
>>454 ならびに
>>456 の訂正
カーソルを合わせたときにテキストとその背景を変更する方法です。
例えばテーブル内の
<TR><TD>1</TD></TR>
<TR><TD>2</TD></TR>
<TR><TD>3</TD></TR>
があったとして1にカーソルを合わせると1の背景と1のテキストカラーを
画像を使わず変更できるか?ということです
よろしくお願いします
function chgColor(ctrl, c, bg) { ctrl.style.color = c; ctrl.style.backgroundColor = bg; } <TR><TD onmouseover="chgColor(this, 'red', 'gray')" onmouseout="chgColor(this, 'black', '')">1</TD></TR>
CSSの方がよっぽど簡単だが td:hover { color:#fff; background:#000; }
460 :
454 :2008/12/21(日) 03:57:04
>>458 >>459 ありがとうございます。
CSSでもあったのですね。
>>458 >>459 さんのようにすればカーソルを合わせて背景色と文字色を変更を
確かに変更できました。
ただ、CSSでは背景は変わるのですが、
文字はカーソルの位置次第で変化に差が出る。
JavaScriptでは同時に変わりますが文字にリンクがあった場合、
文字までカーソルを移動させないとダメなところ。
自分がやりたいのはdocument.imagesのような画像を使わず
テキストと背景をボタンのようにし、
リンクが可能かどうかなのです。
アドバイスよろしくお願いします。
461 :
454 :2008/12/21(日) 04:21:53
>>460 あ、すいません。自力でなんとか出来ました。
DIVにCSSでおkでした。
web制作板へ行ってくれ
>455 >459 ie6ではhoverはaタグにしか効かなかったと思うが。 何にせよ、スレ違いだな。
どのツラ下げて「CSS ではできません」とか言ったんだろうな
ただの無知だろ
>464-465 お前ら直前のレス位読めよ
お前は直前のレス以外も読んだら?
ん?だから、結論としてはCSSじゃ出来ないんだろ? divにhoverは環境依存だから、試した環境でたまたま動いたに過ぎん。 aタグじゃ要件は満たせないんだし、CSSだけじゃお手上げだろ。
仕様書に:hoverがa要素だけって書かれているのか? a要素でしか:hoverが働かないブラウザを使っているのか?
板違いの醜い争いは止めて下さい。 IEの6以下で(略)したい人はcsshover.htcでググったらweb製作板へGO!
www
case "s\.s2ch\.net"://alert("s/"+key)
if(LPn.match("^\/test\/")!=null){
window.onload=function(){
for(i=0,c2ch_info="";document.links.length>i;i++){
dli=document.links[i];
dliCheck=dli.hostname;
if(dliCheck.match("^ime\.s2ch\.net$")!=null){
document.links[i].href="
http://c.2ch.net/imenu/ "+(document.links[i].href.replace(/ime\.s2ch\.net\//,""));
document.links[i].target="_brank";
document.links[i].text="@;"+document.links[i].text;
c2ch_info+="Next"+i+dli.target+"\n";
}
}//if(c2ch_info!=""){alert(c2ch_info);}
}
}document.close();
break
>>472 s.s2の外部リンクを別タブで
画像広告のないc.2のimenuで開けるようにuserScriptをつくりました
修正されたリンクが一目でわかるようにリンクテキスト頭に@;をつけてます
これを頭に@;をつけるのではなく
(個別リンクの)リンクテキスト文字色を変える事で識別したいのですが
ヘッダの追加
document.body.outerHTML="何々"+document.body.outerHTML;
以外で可能でしょうか?
よろしくおねがいします
よく分からんけど document.links[i].innerHTML="<font color=red>"+document.links[i].innerHTML+"</font>"; とかじゃダメですか?
自分で書いたソースっぽい言い方が、他人が書いたものなんだろな
ありがとうございます
>>474 を参考に
for(i=0,c2ch_info="";document.links.length>i;i++){
dli=document.links[i];
dliCheck=dli.hostname;
if(dliCheck.match("^ime\.s2ch\.net$")!=null){
document.links[i].href="
http://c.2ch.net/imenu/ "+(document.links[i].href.replace(/ime\.s2ch\.net\//,""));
document.links[i].target="_brank";
document.links[i].style.fontSize="xx-small";
document.links[i].style.color="lime";
c2ch_info+="Next"+i+dli.target+"\n";
}if(((i+1)%12)==0){document.close();}
}//if(c2ch_info!=""){alert(c2ch_info);}
window.onload=document.close();
としてみました
ttp://s.s2ch.net/test/-4-12.O4!mail=sage/pc11.2ch.net/streaming/1228379925/?keyword=ttp のような外部リンクが多数あるとモッサリ感がすごいので
やはりまともにやるなら一つ一つ書き換えるより
outerから一斉にアウトプットした方がいいみたいですorz
closeが多いのは 外部リンクが多い時、処理をまったく受け付けなくなったので それを回避しようと試行錯誤したてstですorz
質問はここでいいんでしょうか? call関数についてよく分かりません。 f=function(x,y){return x*y}; について f.call(this,2,3); は f(2,3); と一体何が違うのでしょうか?
>>478 f.call()はthisに何を渡してもいい。
>>419 レスありがとうございます。
例えばどういったものを渡すのでしょうか。
そもそも引数に渡すthisにどういう意味があるのか分からんのですよ
間違えた ×419 ○479
A = { c : function(x){ return x - 1 } } B = { c : function(x){ return x + 1 } } c = function(x){ return x * 0 } f = function(x, y){ return this.c(x) + this.c(y) } // f.call(this, 2, 3) // => 0 f.call(A, 2, 3) // => 3 f.call(B, 2, 3) // => 7
ありがとうございます。よく分かりました
484 :
デフォルトの名無しさん :2009/01/12(月) 18:02:03
>>484 prototype.js?
onCompleteハンドラの引数に渡されるけど。
本質的にはeval("json="+request.responseText)こういう処理。
486 :
デフォルトの名無しさん :2009/01/12(月) 19:17:48
>>485 そう。prototype.js
ありがとう。ちょっと試してくる
488 :
デフォルトの名無しさん :2009/01/13(火) 00:04:33
知りたいのはprototype.jsでデータ取得した後のJSONの処理です。 それもAjaxに含まれるなら向こうに移動しますけど、どうなんでしょう。 日曜プログラマにはよくわかりません。。。
じゃあ土曜プログラマには分かるとでもいうのか
Saturday Night Programmer
>>488 なんつうか、prototype.jsにJSON処理用の関数あるんだわ。
485ではあえてJavascriptのみのやり方書いたけど。
prototype.jsでのやり方知りたいならAjaxスレの方が適当だよ。
prototype.js JSONでググったら当たり前に出てくるし、
prototypejs.orgのチュートリアルにも書いてあることだけど。
javascriptで関数プログラミング的なことをする テクニック集みたいなのは どこかにないのでしょうか
まずはprototype.js読めば? Arrayに対する関数がたくさん定義してあるよ。 LivelyKernelの中に短くしたのが入ってるよ。
494 :
デフォルトの名無しさん :2009/01/24(土) 00:15:22
今jQueryとYUIどっちを勉強するかの岐路に立たされているんですが、どっちがいいでしょうか?? やはりjQuery??
小さい(笑)から両方やってなんの問題もなし。 jQueryから始めることを勧める。
変数のなかにJavaScriptをいれるのってどうやればいんでしょか。
今作ってるやつで例をあげると、
creation_at = '<div id="at">Flash Player. <a href="
http://www.macromedia.com/go/getflashplayer/ ">Get Flash.</a></div>'+
'<script type="text/javascript">'+
'var fo = new SWFObject("../swf/viewer.swf", "viewer", "100%", "100%", "8", "#000000");'+
'fo.addVariable("xmlDataPath", "swf/xml/gallery_at.xml");'+
'fo.addVariable("langOpenImage", "Open Image in New Window");'+
'fo.write("at");'+
'</script>';
これをJavaScriptでhtmlの一部分を置き換えて表示させたいんだけど、どうも動作しないんですよ。
htmlの中では <div id="Change">なんらかの文字</div> が用意されててそこを置き換えるかんじです。
もしかして、変数のなかにタグは入れられてもJavaScriptはいれられないとか?
へるぷ!
497 :
494 :2009/01/24(土) 18:07:53
>>496 コード間違ってなきゃ動くと思う
アラートは開くし
置換したページでonChangeからfor,switch
<SCRIPT>内からとか呼び出せたし
記号類の\抜けとか一部escape
※%等
TEXTAREAで囲んで望んだようにコードが(文字列として)出力されてるか 確認してみたら?
500 :
496 :2009/01/25(日) 13:41:19
ありがとうございます。 いろいろためしつつ勉強してみます。
501 :
デフォルトの名無しさん :2009/01/28(水) 03:09:58
初心者質問すいません。 document.form.name.value って、必ず文字列になってしまうのでしょうか?? 例えば、二つのテキストエリアの値を計算したいときは alert(Number(document.form.text1.value) + Number(document.form.text2.value)); としなければいけないんでしょうか? ご教示をばいただきたくm(_ _)m
>>501 そう。
面倒に感じるかもしれないけど、たとえば二つのテキストエリアの文字を
連結する場合なんかに、数字しかなかったからと勝手にNumberにされて
合計されたら困るでしょ?
数字と文字列表現は一対一対応じゃないから、 勝手に数字に変換されたら元に戻せない。
504 :
501 :2009/01/28(水) 14:22:56
なるほど。ありがとうございました!
型を指定しておいて、自動的に型変換して欲しい時は、 サーバサイドでもクライアントサイドでもいいから、 フレームワークを使えばいい。基本は文字列のみ。 その辺はWeb製作板で。
>>501 俺もこういうので一週間くらい一人悩んだな。
文字列でも数値を掛けたら数値扱いになるもんだから
エラーが出たりエラーが出なかったりで訳わかんなくなったもんだ
507 :
501 :2009/02/02(月) 13:11:06
ありがとうございます。 すいませんまた別の疑問ができたので質問させてください。 $("#sample").empty(); という文があったのですが、 これの $("#..") はいったいどういう意味の構文なのでしょうか?? empty()がメソッドを実行しているんだろうなというのはなんとなく分かるのですが・・ 特殊文字は検索がしにくい。。アドバイス頂けると幸いです。
それはJavaScriptというよりJavaScriptライブラリの一つの jqueryによって実装された記法の一つ。 HTML中からid="sample"なノードを選択して、そのinnerHTMLを 空(empty)にする、という意味。 なので詳細はjqueryに関するページで調べると良いよ。
510 :
501 :2009/02/02(月) 13:45:55
>>508 >>509 なるほど!ありがとうございます。jQueryだったんですね。
しかし、読み込んでたjquery.js で$()の定義部を探してみたのですが、どこで定義しているのか分かりませんでした。
どこで定義しているのか教えていただけると幸いです。何度もすいません。
>>509 すみません、要素が、
<html>
...
<div id="#sample"></div>
...
</html>
のように定義されているのですか?
>>510 jquery-1.2.6.jsのline18
var jQuery = window.jQuery = window.$ = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
};
>>508 でちょっと書いたけど、JSの関数は全て
「変数に関数オブジェクトを代入」というもの。
function func() {}
var func = function() {};
この二つはほぼ同じ。alert(func);の結果に違いが出るぐらい。
念のため。 ブラウザでのJSではwindowオブジェクトがグローバルオブジェクトになっているから たとえばdocumentとwindow.documentは同一。
>>511 #はidで.(ドット)はclassを表してる
CSSで書く書き方と同じ
>>515 多分、jQueryのセレクタの話かなと思ったので
CSSやったことあるならそれと同じようにやればいいよという意味だった
逆に混乱するか。
関係ないといえば関係ないけど、jqueryのSelectorのデザイン自体は 結構CSSのそれを意識していると思う。
>>509 > それはJavaScriptというよりJavaScriptライブラリの一つの
> jqueryによって実装された記法の一つ。
もっと前からあった関数だよ。
初期のjQueryでは、最初に、
function jQuery(a,c) { //以下略
if ( $ )
jQuery._$ = $;
var $ = jQuery;
としている。
P.S.
Javascriptのライブラリは、互いに依存して役割を分担するのでなく、
どんどんコードを中に取り込んじゃう流儀だから、
同じ名前で似ているんだけど動作が微妙に違うことがあって、
しっかりAPIドキュメント読みする必要があると思う。
>>518 たぶん
>>509 が言いたかったのは
>>507 の書き方に対してだろ
prototype.jsならid="#sample" なんておかしな書き方してることになるし、
empty()があることからもjQueryって予測しての発言したんだと思うよ
>>519 そうです。jqueryだとあまりに頻出なイディオムだったので
脊髄反射的に答えてしまいました。
「おそらくはjqueryの・・・」と書いた方が適切でしたね。
複数項目のあるselectフォームから、一つを選択したと同時に submitしたいけど、javaScriptがないと無理だよなぁ・・ あのgoogleでさえjsつかてやってるもんなあ
なんか、もう意味わかってないようなやつがいるな。 あのgoogleでさえjs、とか。
まぁまぁムキになりなさんな
というかlowerCamelワロタ
ジャバスクリプトなんてオフにされたらおわりじゃん
>>525 IE3使われたらおわりじゃん、と同じくらい、今では無意味な言葉だな。
527 :
デフォルトの名無しさん :2009/02/03(火) 23:16:13
YOMBAN
http://www.yomban.jp/ ここのブックタイプのビューワーなんだけど
Flashかと思ったら
Javascriptでびびった
すげぇと思ってソース見たら
変換のアプリかなんかで自動生成してるっぽいんで萎えた
早くそのツールが何かを問い合わせる仕事に戻るんだ。
7行スレに貼り付けるんだ
530 :
510 :2009/02/04(水) 12:21:09
たくさんレスありがとうございます。だいぶ分かってきました。 すいませんあと一つだけ・・jQuery.jsの47行目で quick.exec() というメソッドが使われているのですが、これの定義部が見当たりません。 25行目で var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/, と、していますが、execメソッドについては何もかかれていません。 exec()というのは何か特別なメソッドなのでしょうか??
>>530 >quick.exec()
コピペは正確に。
>var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
正規表現はRegexpオブジェクト。
あとはJSのリファレンス嫁。
ゆとり... 取り返しの付かない失策だったな
533 :
デフォルトの名無しさん :2009/02/04(水) 12:30:49
javascriptでは、スラッシュで囲まれた範囲は正規表現オブジェクトとなります。 引用符で囲まれたら文字列、"string" 'string' かくばった括弧で囲まれたら配列、[1, 2, 3] 曲がった括弧で囲まれたらオブジェクト、{key1:value1, key2:value2} のように。 exec()というメソッドは正規表現オブジェクトのもつメソッドのうちの一つです。 本やウェブで、javascriptの正規表現RegExpについて調べられると、ご参考になるとおもいます。
>>525 Gmailみたいにプアな環境でも動くようにすればいいんじゃないの?
ぶっちゃけ、デスクトップアプリのマルチプラットフォーム対応に比べたら、
あくびが出るくらい楽。> 複数、新旧ブラウザ対応。
JavaScript覚えたおかげでActionScriptもつかえるようになりました。
536 :
510 :2009/02/06(金) 15:32:54
537 :
デフォルトの名無しさん :2009/02/11(水) 12:34:20
dojo で、いまドラッグアンドドロップしている最中ですよー的なイベントをフックしたいのですが、どう書けばよいでしょうか?? 詳しい方いらっしゃたら教えて頂けると幸いです。
538 :
537 :2009/02/11(水) 12:38:15
すいませんdojoのバージョンは1.2.1です。
連想配列をconcatみたいに簡単に連結する方法はありますか?
>>539 標準ではない。prototype.jsのObject.extendを参照。
542 :
537 :2009/02/11(水) 16:08:38
解決しましたm(_ _)m
非同期通信でレスポンスが帰ってくるまで、マウスの左クリックを無効にしたいのですが、 どのようにすればよいでしょうか?
同期通信にすればよろし
なんか簡単に作れるのに人に見せたらスゲー、って言われるゲーム作れないかな
作れるよ
例えば?
(-_-) (∩∩) を押す倉庫番を作る
タイトルは、俺しか押す者がいない予感
倉庫番って作ったことないかも。ありがとう
あとはテトリスか。
テトリスってそんなに簡単でもない気が
Cで7行で書けるんだろ? テトリスって。
それはJavascriptの間違いだろ
>>552 簡単に作れるのに人に見せたらスゲーって言われる
たしかに7行で書いてたらスゲーって思うかも知れんが
557 :
素人 :2009/02/24(火) 04:40:32
vb scriptって 検索しても少ないんですけど。だめなの?
vb scriptで検索してここに着たんなら、いいよ。
javascript とmysqlを直接通信させる方法はないのでしょうか?
XHRで通信ってことか? JSではなくMySQLの仕様的に無理 素直にCGIとかサーブレットとか噛ませれ
String型に自身を書き換える自作メソッドを追加したいのですが、thisへのstringの代入ではエラーが発生してできませんでした。 どのように書けば代入できるのでしょうか。 環境はJScript5.6 (ActiveScript)です。
562 :
561 :2009/02/26(木) 13:48:48
以下が、テストに使用したスクリプトの抜粋です String.prototype.testMethod = function() { this = "test"; } var test = String("aaaa"); test.testMethod();
Javascriptの文字列はイミュータブルです。
565 :
561 :2009/02/26(木) 14:07:58
むー、testMetod内から自身の文字列を変更する方法ってないものでしょうか‥‥
testMethodの内外にかかわらず、「文字列を変更する」という 操作自体がJavaScriptには存在しないんだって。 むしろ何故thisを差し替える事をしたいのか目的を書いた方が よりよい別のデザインを誰か教えてくれるかも。
568 :
561 :2009/02/26(木) 16:09:12
>>567 数式を数値や演算子、括弧単位に分解しようと思っています。
「256+14*3」であれば
var text = "256+14*3";
var token = new Array();
while(var a = text.getTolken()) {
token.push(a);
}
でtokenが("256", "+", "14", "*", "3")になる形です。
※数値は実際には[0-9]だけではないです
処理自体は別の方法でも実現はできますが、Stringのメソッドとして実装できればコードが見やすくなるかなと思いまして。
普通にstr.match(RegExp)すればええやん。 regexp(str)でもいいし。
>>568 文字列を変更する必要性がまったくないな
>>569 がいうような分ける関数作ったらいいだけでしょ?
String.prototype.getToken = function() {
var formula = this.toString();
var operator = /([+\-\*\/\%])/;
return formula.split(operator);
}
alert("256+14*3".getToken());
>>568 "256+14*3".match(/(\d+|\+|\*)/g)
// -> ["256", "+", "14", "*", "3"]
正規表現は自分で適当にして。
572 :
デフォルトの名無しさん :2009/02/26(木) 17:01:55
try catch とか threw ってどういう目的で使うのでしょうか?? Firebug 使っているとエラーが出たときにちゃんと分かりやすくコンソールに出力してくれるので、あまり使う必要性を感じないのですが・・・
narcissus javascript interpreterだと、 sytanx errorがあるとthrowで一気にトップレベルに抜けてる。
>>572 デバッグ用途じゃない。
実行環境によってはエラーがでるかもしれない部分というのがあって
catchでエラー処理を行ってスクリプトが止まるような事態を未然に防ぐ。
ユーザーサイドでFirebugとかエラー文とか言ってもしょうがないでしょ。
実例は、参考になるかわからないけどprototype.jsあたりが多用してる。
わかりやすいところではcatch節を空にした
「エラー出るようならその部分は中断して後の処理を続行」というパターン。
Enumerableのiteratorに渡す関数の中でthrowしたり、 evalJSONしたら変な入力でthrowされたり ライブラリのユーティリティ関数がthrowするのは止められないし。
finally で return の後に実行とか
577 :
デフォルトの名無しさん :2009/02/26(木) 23:29:14
new ActiveXObject("Msxml2.XMLHTTP") new ActiveXObject("Microsoft.XMLHTTP") new XMLHttpRequest これらのブラウザ機能を使わずにHTTP通信するJavaScriptライブラリ知りませんか?
new ActiveXObject('MSXML2.ServerXMLHTTP.3.0')
iframe使うライブラリですね。作ります。
なんでそれ使いたくないの?
new ActiveXObject("Msxml2.XMLHTTP.6.0") でも new ActiveXObject("Msxml2.ServerXMLHTTP.6.0") でも 使えばいいのに。
IEでしか動かないね
プラウザで動かそうとしているならWeb制作板で
585 :
デフォルトの名無しさん :2009/02/27(金) 19:46:16
>>581 HTTPRequestHeader書き換えたいから
解決したみたい^^;
587 :
デフォルトの名無しさん :2009/03/01(日) 00:54:16
不本意ながら、使う羽目になってしまいました どこぞに, 抽象構文木と抽象意味定義(表示的意味でも操作的意味でもいい)が まとまってるところありまへんかぁ〜〜〜
残念ながら知りませんが、何故必要なのかは興味があります。 コンパイラでも作るのですか? あるいはコンパイラ人間さんでしょうか。
>>588 単純に構文と各構文の持ってる意味を知りたいだけ
言葉で書かれると意味が曖昧になることあるし、読まなきゃいけないページ増えるし
仕様的にはそんな巨大な言語でもなさげなんで、scheme の r5rs 程度に
まとまっててくれてたら嬉しいかなと…
>>590 ざっと目を通したんだけど、ブラウザ方言でサポートしてないとかってない?
>>590 あるよ。
その仕様書で書かれている内容は大概実装していると思う。
ただ正規表現周りなど、実装間で振るまいが多少異なる事はある。
あと現実的にはDOMやAJAX周りなど、その仕様書とは別に導入
された拡張機能の部分、あとCSSなどJavaScriptと連携して使われる
機能に関してブラウザ間の実装の違いが問題になる事が多い。
Javascriptの領域で良いのか不安なのですが、質問させて頂きたいと思います。 リストボックス(select)に複数のアイテム(option)にフォーカスがある時、 キーボードの矢印キーでカーソルが移動しますが、左右キーの場合はカーソル 移動させない方法は無いでしょうか。 左右キーで移動してしまったカーソルを、後から元の位置に戻すという対応以外で 方法を捜しています(組んでいるコードでリストボックスのonchangeで 別の処理を指定しており、左右キーではこれを動かしたくないため)
>>593 onkeypressあたりで左右キーだったらreturn false;とかそんな感じ
<style>
#below { width:100%; height:800; border:outset 1px; padding:0.5em }
#above { width:100%; height:400; top:110; left:0; position:absolute;
-moz-opacity: 0; opacity: 0; -khtml-opacity:0;
filter: alpha(opacity=0);
scroll; none; }
</style>
<div style="position:relative">
<div id="below">
<input style="position:absolute; left:160; top:200" type="submit" value="Click here">
</div>
<iframe id="above" src="
http://b.hatena.ne.jp/add?mode=confirm&url= http://example.com/ "></iframe>
</div>
>>595 クリックジャッキングなんだろうけど、ウチの環境だとずれてるよ
複数のImageオブジェクトの読み込みが全て完了したら、次の処理に行かせるようにしたく、 下記のようなコードにしてみたのですが、全て完了したことを示すalert処理が複数回実行されてしまいます。 Image().completeで判別するのではなく、imgStateという変数を作って重複実行を避けたつもりなのですがうまくいきません。 これはどうしてなのでしょうか。また対処法をご教授頂けますでしょうか。 var imgState = new Array(4); var imgObj = new Array(4); for (i = 0; i < 4; i++) { imgState[i] = 0; imgObj[i] = new Image(); } function func() { imgObj[0].onload = function() { imgState[0] = 1; if (imgState[0] == imgState[1] == imgState[2] == imgState[3] == 1) { alert("All images are loaded. (0)"); imgState[0] = imgState[1] = imgState[2] = imgState[3] = 0; // 重複実行対策 } } (中略。前後のような[1].onloadと[2].onloadがあります) imgObj[3].onload = function() { imgState[3] = 1; if (imgState[0] == imgState[1] == imgState[2] == imgState[3] == 1) { alert("All images are loaded. (3)"); imgState[0] = imgState[1] = imgState[2] = imgState[3] = 0; // 重複実行対策 } } imgObj[0].src = "a.jpg"; imgObj[1].src = "b.jpg"; imgObj[2].src = "c.jpg"; imgObj[3].src = "d.jpg"; }
>>597 1==0==0==1
((1 == 0) == 0) == 1
(false == 0) == 1
true == 1
true
要するにちゃんと論理和を使えということ。
imgState[0] = true;
if(imgState[0] && imgState[1] && imgState[2] && imgState[3])
論理積orz
600 :
597 :2009/03/05(木) 23:41:06
>>598 ありがとうございます、うまく行きました。
そこを誤っているとは思わず頭をひねらせてました。。。
602 :
デフォルトの名無しさん :2009/03/07(土) 22:01:59
http://pc11.2ch.net/tech/ このルーチンでエラーが出ている
function filterByLevel(level) {
if (isNaN(level))
level = 0;
var dls = document.getElementsByTagName("dl");
for (var i = 0; i < dls.length; i++)
if (dls[i].previousSibling && dls[i].previousSibling.tagName.toLowerCase() == "form"
&& dls[i].previousSibling.length == beRanks.length)
for (var j = 0; j < beRanks.length; j++)
if (dls[i].previousSibling[j].level == level) {
dls[i].previousSibling[j].style.borderStyle = "inset";
dls[i].previousSibling[j].style.fontWeight = "bold";
}
else
dls[i].previousSibling[j].style.borderStyle
= dls[i].previousSibling[j].style.fontWeight = "";
for (var i = 0; i < beLvs.length; i++)
if (beLvs[i].lv < level) {
beLvs[i].dt.style.backgroundColor = "#CCC";
beLvs[i].dt.nextSibling.style.display = "none";
}
else
beLvs[i].dt.style.backgroundColor
= beLvs[i].dt.nextSibling.style.display = "";
}
603 :
デフォルトの名無しさん :2009/03/07(土) 22:04:28
で?
JavaScriptではオブジェクトは参照渡しされるって書いてあるサイトが たくさんあったから試してみたけど どう見ても値渡しだった ウソ書いてるやつらは反省しろ function foo(a){ a = {hoge:2}; } var b = {hoge:1}; foo(b); alert(b.hoge); //参照渡しなら2と表示されるはず
新しいオブジェクト見るようにしたらダメだろう 君がやりたいのは多分これだ function foo(a){ a.hoge = 2; } var b = {hoge:1}; foo(b); alert(b.hoge); //参照渡しなので2と表示される
>>605 参照を値渡ししてるイメージだぜ
Cのダブルポインターみたいな事は、
>>606 みたいにクラスで包んでやらなあかん
>>605 C++の「参照渡し」とは違うよね。
そもそもC++の「参照」は、
一度だけ初期化できるエイリアスだから、
function foo(a){
a = {hoge:2}; ←二回目
}
var b = {hoge:1};
foo(b); ←一回目
と仮引数のaを二回初期化は出来ないし。
Javaの引数と一緒。
プリミティブ型は値渡し、それ以外はポインタ渡し。
VBScriptでも試してみた Class Bar Public hoge End Class Sub foo(ByRef a) 'ByRefで参照渡し、ByValで値渡し Set a = New Bar a.hoge = 2 End Sub Dim b Set b = New Bar b.hoge = 1 foo b alert b.hoge '参照渡しなら2、値渡しなら1 言語によって参照渡しと値渡しの意味が違うのか?
605=609です
値をコピーするのが「値渡し」 名前をコピーするのが「参照渡し」
612 :
606 :2009/03/10(火) 20:12:57
他の言語がどうなってるかちょっとわからないけど、
>>605 の場合は、
1.bがオブジェクトA({hoge:1})を指す
2.foo(b)でそのポインタ(?参照?)を渡す
3.関数fooの中の変数aはそのポインタが指してるところと同じところを指す
4.aが新しいオブジェクトB({hoge:2})を指す
(ここで指しているオブジェクトAを操作してるのが
>>606 )
だからオブジェクトAを指しているbに何の影響もないのは当たり前のような感じがするんだけど、
他の言語ってどういう動きするんだっけ。
C++とか覚えてないな。
613 :
611 :2009/03/10(火) 20:33:43
「参照渡し」の参照と(単なる)「参照」は別物だからね。 JavaScriptは常に値渡し。 オブジェクトは(単なる)参照が値渡しされる。
>>614 えー。じゃ誰の言うことなら信じるのさー。
英語版Wikipediaに面白い事が書いてあるね。 彼らの定義によれば(別に信じれってわけじゃない)、C++の参照渡しは 「Call by reference」なのに対して、PythonやJavaのは「Call by sharing」 なんだそうな。 で、この二つの違いは >assignments to function arguments within the function aren't visible to the caller ということで、まさにC++とJavaの「参照渡し」の違いを端的に説明して いると思う。 この意味で言うと、JavaScriptのも「Call by sharing」と呼んでよさそう。
単に
>>605 がオブジェクトリテラルの動作を理解してないだけの悪寒
>>605 b = foo([3,4]) って, 書けばいいんじゃね?
その「だけ」って単純化は意味も目的も分からない。
>>616 「Call by sharing」って命名はともかく、
「引数への代入が外から見えない」って定義の仕方はうまいね。
620 :
デフォルトの名無しさん :2009/03/11(水) 02:53:04
>>616 俺もそのへんがモヤモヤしてたんだけど、なんか納得いった。
CBSは、C++で関数にポインタを渡してそこに代入しても、元のポインタには何の影響もないのと同じだな。
そうすると、CBRになるC++の参照渡しが特殊な事例なんだろうか。
>>621 Cのマクロ、Lispのマクロ、Algolの名前渡し。
>>620 普通に取れるみたいよ。
var w = unsafeWindow;
var url = '
http://www.cmegroup.com/CmeWS/md/MDServer/V1/Venue/G/Exchange/XALL/FOI/FO/Product/NA?currentTime=1236698042750&contractCDs=ESH9,NQH9,YMH9,EMDH9,NIYH9 ';
GM_xmlhttpRequest({
method: 'get',
url: url,
onload: function(res){
var message = eval("(" + res.responseText + ")").marketDataInfoAsStringList.message;
for (var i=0,l=message.length; i<l; ++i) {
for (var key in message[i]) {
w.console.debug(key, " : ", message[i][key]);
}
}
},
});
>>622 そりゃCall by name。
参照渡しといえば、FORTRANが代表だろう。
625 :
デフォルトの名無しさん :2009/03/11(水) 19:31:00
>>623 ああ。。本当だ!
スペシャルサンクス!
data.marketDataInfoAsStringList.message[0].ticker とすべきところを
data.message[0].ticker としていたのが問題だった。
> var message = eval("(" + res.responseText + ")").marketDataInfoAsStringList.message;
が、かなり良いヒントになりまんた。ありがとう
>>626 分かってると思うがこれは間違いだよ
call by value
とか
call by reference
はcallするときに引数をそのまま(複写して)渡すか引数の場所(ポインター)を渡すかの違い
(call by nameは名前を渡すとか)
そのページに書いてあることは変数に値を代入するとき直値なのか参照なのかということ
>>626 だから参照渡しの参照と単なる参照は別物なんだって。
値渡し/参照渡しの参照と基本型/参照型の参照は別。
JavaScriptは常に値渡し。
基本型は値(1とか8とか)がコピーされるし、
参照型は参照(ポインタ、場所の名前)がコピーされるの。
特に参照がコピーされるタイプを特にCall by sharingというの。
JavaやJavaScriptのモデルは今や標準的なもの。RubyもPythonも同様。 call by sharing(共有渡し)またはcall by object(オブジェクト渡し) がその名称。単にそれだけのことじゃん。
createElement("iframe")で作ったiframeに例えばgoogleとかのサイトを表示しといて、 irame内のリンクをクリックすると、親ウィンドウごとリンク先に飛んじゃうけど、 iframeの中だけでリンク先に飛ぶようにするにはどうすりゃいいの?
>>628 えー、オブジェクトも値渡しなの?プププ
>>631 C++とJavaScriptの参照の扱いは違うのよ。
JavaScriptの場合、
オブジェクト(参照型)丸ごと値渡しなのではなくて
オブジェクトの参照が値渡しされるの。
参照が値渡しされることを「参照渡し」と言いたいなら勝手にしてね。
サイ本でも便宜上(?)そう表現してたし。
よく判らないんだけどさ、「参照が値渡しされる」って オブジェクトのアドレスが渡される様なイメージでいいのかな。 そんな事を言い出したら、コンピュータは所詮は全て値で処理してるんだから、 即値だろうとアドレスだろうと全て値渡しになっちゃいそうなんだけど。 「参照を値渡しする」って、つまりはどういう事?
>>633 >オブジェクトのアドレスが渡される様なイメージでいいのかな。
おk。
ポインタのコピーだと思えばいい。
>>633 本当の意味での参照渡しならcall時に実引数のアドレスが渡されるので
新しいオブジェクトを割り当てることが可能になる
>605 のように
Pascalとかだとそれが可能
とすると、アセンブラ的には 値渡しかアドレス(参照)渡しかの2択しかない訳だ。 それをわざわざ「参照が値渡しされる」と呼ぶのは、 混乱の元だと思う。
サイ本でもそうなら結局定義が曖昧なのか
>>636 「〜渡し」は概念。
アセンブラ(や具体的な実装)を持ち出すと
話がずれてくる。
「javaに参照はありません、全て値渡しです(キリッ」なんて言葉を昔聞いたことがある たぶん、このマジックワードが原因で、参照の値渡しなんて言葉遊びが生まれたんだろう
疑問なんだが C++の参照とかJava,C#のボクシング/アンボクシングを どうイメージしてるの?
俺的理解。 >>C++の参照 スタックに積まずに他所のを横取りしたローカル変数。 >>Java,C#のボクシング/アンボクシング コンパイラのお節介。
一般論として、 参照渡し=ポインタ値渡し+アクセスのシンタックスシュガー。 ボクシング/アンボクシングは、 スロットにオブジェクトをまるごと埋め込むのか、 ポインタだけ置くのかの違いで、 渡しと直接の関係はない。 ただ、仮引数スロットに対するボクシング/アンボクシングを 考えることが出来るので、ANSI Cの構造体値渡しは、 Cの引数渡しでスロット埋め込み(ボクシング)を可能にしたと考えることも出来る。 C++の参照渡しは上に書いたように結局はポインタ渡しだから、 スロット経由の間接参照(アンボクシング)の系統である。
>>641 > コンパイラのお節介。
シンタックスシュガーって言ってやれよ
「渡し方」にはそのほかに「名前渡し(call by name)」と 「コピーリストア」(値渡しに加えて戻り時に局所変数の値を 実引数にコピー)があるね。FORTRANの引数渡しは言語規格上は 参照渡しだけでなくコピーリストアによる実装も除外されない。
「コピーリストア」はどっちかというと実装方法じゃないかな。 「thunk」と一緒で。 「コピーリストア」はPOD(plain old data)オンリーだから いかにもFORTRANらしい。
せっかく2chなんだから、樹形図で表現するとどうなるだろう。 ┬ 値そのものを渡すよ派 └ 値が格納されてるアドレスを渡すよ派 みたいな感じで。
単なるポインタに参照なんて名前をつけるからややこしくなるんだろう これからはJava/JavaScriptの参照のことをポインタと呼べ
>>647 ポインタと参照は違うだろう。
実装と概念をごっちゃにしてどうする
Cのポインタは概念でもある。
>>647 ポインタと参照はまるで違う。一緒くたにする人は、ポインタと配列の添字も同じに見える人なんだろうな。
「まるで違う」も言い過ぎでしょ。 ポインタ⊂参照、じゃないかな。
655 :
デフォルトの名無しさん :2009/03/18(水) 15:50:55
656 :
デフォルトの名無しさん :2009/03/20(金) 11:59:13
IE8はどう?
657 :
デフォルトの名無しさん :2009/03/20(金) 23:05:51
安いな。いまさら要らないけど
documentって参照しすぎると重いの? getElementById使いまくってんだけど少なくしたほうがいいのかな
「参照しすぎる」ってのが曖昧かな。 階層が深ければ、どんなオブジェクトでも参照コストが掛かるだろうけど それはdocumentに限った話でもないだろうし。 getElementByIdは、せずに済むなら(tableとかformとか)そっちで参照した方が 参照コストは低いのかも。 一度得た物を使い回すとか。
>>662 DOMはできるキャッシュはしたほうがいいけど
互換性捨てるほど重くはないでしょ
JavaScriptでCGI書きたいんだけど、サーバ側のJavaScript Shellとして SpiderMonkeyをインストールしてみたら、環境変数が取得できないみたい?? formからPOST METHODで送信されたデータを取得するのに 標準入力だけでコンテンツそのものは取れるけど、 CONTENT_LENGTHも調べたほうがいいよね? そういえばGETで送られた場合はどうなるんだろう.. こういうのってSpiderMonkeyではむり? RhinoならrunCommandを使ってできる?
>>664 $ js -v
JavaScript-C 1.7.0 2007-10-03
usage: js [-PswWxCi] [-b branchlimit] [-c stackchunksize] [-v version] [-f scriptfile] [-e script] [-S maxstacksize] [scriptfile] [scriptarg...]
$ js -e 'print(environment.LANG);'
ja_JP.UTF-8
>>665 ありがとうございます!!
CONTENT_LENGTHもMETHODもちゃんと取れました!
感謝感謝!
しかし、environmentなんてオブジェクトあったんですね... ブラウザに組み込みのJavaScriptにはないですよね? SpiderMonkeyのドキュメントでみつけられなかったし。
>>667 逆にコンソールにwindowやdocumentあったらおかしいだろ
669 :
665 :2009/03/25(水) 19:10:23
俺も忘れてたから、ソースをgetenvでgrepした。js.cppにあった。 smjsをshellとして使う人は一度読んでおくことをお勧めする。
FirefoxってinnerTextに値入れても反映してくんないんだね innerHTMLならできたけど なんかやり方間違ってる?べつにHTMLでも同じこと出来るからいいんだけど
textContent
Firefoxの挙動がおかしいんじゃなくてIEがおかしいんじゃないの?
FireFoxにparentElementがなくて
>>670 のように思ったことがある。
環境条件とか、時間とかを入れて そのときに、特定DIVのimg srcを任意に変えたりできるかな <img src="Change('時間とか')" width="100" height="100"> changeみたいな関数に引数いれたら javasc内の配列を見て、そのsrcを出してくれるような onloadとか使えない状況下で…たのんます
ウチ間違いです JavaScript
そんな揚げ足とらずにsrc="Change"を突っ込もうぜ
むしろstyle指定でないことにイラッときた。 で、WebProgは板違いが、模範回答でいいのかな。
JavaScriptの文字列操作について質問があります。 (最終的には文字列に対して左から一文字ずつ取得し その値の確認を行おうと思っているのですがどうやら substringメソッドの挙動がおかしいです。 次のメソッドで@では正常に思った通りの動きを してくれるのですが、ABではなぜか不正な値が 取得されてしまっています。 どこに問題があるのでしょうか? ※IE7.0を使用、LunaScapeでも同様の不正な挙動を しています。 function Button1_onclick() { var strTest = "abcdefg"; var strWork = ""; //@実行結果:"a" strWork = strTest.substring(0,1); //A実行結果:"" strWork = strTest.substring(1,1); //B実行結果:"b" strWork = strTest.substring(2,1); }
substringの第二引数の意味を調べてこい。 つか、勘定系の人? ワークとかシステムハンガリアンとか、今時流行らんぜ。
substr はレガシーなんだっけ
charAt(index)使えばいいのに
>>681 ありがとうございます!!
私は別に勘定系って事は無いです。ただ、確かにハンガリアン記法は嫌われている様ですが
個人的にこの方が好きです。(コーディングし易い)
あと、例えば次の文字列の中から"b"を取得するにはどうすれば良いのでしょか?
第一・第二引数が同じ場合には空文字が返るという事なので値の取得方法が分かりません。
var strTest = "abcdefg";
strWork = strTest.substring(1,1); //⇒"b"という文字列を取得する為にこのメソッドは使用できない。
そもそもC#/VB.netの場合には、substringメソッドではこの様に第一・第二引数が同じ場合には
空文字が返るだなんて仕様は無いのになぜJavaScriptにはあるのでしょうか?
なんかしっくり来ません。
substring(start, end)なんだよ。 substring(start, length)じゃない。 アホかよ。
じゃ、1文字目から1文字を取るにはどうするの? substring(1,1) が使えないじゃないか。という事はCharAt()を使うと理解してもいいですか?
Substring(int startIndex, int length) substring(start, end) substr(start, length) slice(start, end)
お前ら親切だなぁ
1文字しか取らないならcharAtで良かろう
substring(start, end)===substring(end, start)に注意!
ページA(PageA.html)内に @リンク A<div class=div_class_pageA> を用意し@がクリックされるとAの中にページB(PageB.html)を 表示するにはどうすれば良いでしょうか? inner htmlを書き換える? or iFrameを使用する? どちらの方法が一般的なのでしょうか? これまで私はWEBページを作成する場合に、左に一覧ページ、 右にコンテンツを配置という作りをしていたのですが、最近のWEBページでは 一つのページ内の上部にリンクボタンがあってそれをクリックすると、 画面の下部分にコンテンツが表示されていますのでそれの様な動きをする ページにしたいと思っています。
694 :
デフォルトの名無しさん :2009/03/28(土) 13:33:56
JavaScript内でオブジェクトがHTMLInputElementなのか、HTMLImageElementなのか、HTMLLabelElementなのか を知りたいんですが、やり方が分かりません。 どのHTMLElementなのか(表現おかしいかったらすいません)を知るにはどうすればいいんでしょうか? function getElementType(myElement){ if (myElement.elementType == "HTMLInputElement"){ return 0; } … } とかできたら嬉しいんですが…
ブラウザ上のJavaScriptの話題はここは板違い。 Web制作板のJavaScript質問スレへどうぞ。
696 :
694 :2009/03/28(土) 13:44:27
すいませんでした。 Web制作板に逝ってきます。 ここでの質問は取り下げます。
698 :
デフォルトの名無しさん :2009/03/30(月) 09:13:32
lisp の unintern みたいな事って出来ない? var foo = 'bar'; //何かの処理 if (baz) // var foo = ... をなかったことにしたい
質問です txt = document.myFORM.myTEXT.value; n = txt.length; if (n > 10) alert("10文字以内にしてください"); はmyTEXTという名前のテキストフィールに10文字以上の文字があったときに警告を出すスクリプトですが、 テキストフィールがたくさんあった場合で 特定のテキストフィールだけ 上記と同じ警告を出す場合どのようにしたらいいでしょうか?
テキスト「Dont think. Feel.」
>>700 ブラウザ上のJavaScriptの話題は、Web制作板のJavaScript質問スレへどうぞ。
wscriptのjavascriptで、importとかincludeを模倣したくて eval(loadFile("myModule.js")); って書いてるんだけど、なんかかっこ悪いから import("myModule.js"); と書けるようにできないものかな。 2.0が来るまではwsfで書くしかないのかなあ。
wscriptカッコ悪い
できたよー\(^o^)/ function import(filename) { eval(loadFile(filename)); }
>>706 それやるとevalで定義したオブジェクトはimport関数のスコープ内でしか使えないよ
(´・ω・`)すまん忘れてくれ
709 :
704 :2009/04/04(土) 20:25:18
>>706-708 俺も最初それ書いて玉砕したw
いろいろ調べてみたんだけど、
結局JSANのデッドコピーみたいになってしまった。
function import(path) {
var module = path.replace(/\.\w*$/, "");
if(typeof this[module] == "undefined"){
eval(loadFile(path));
this[module] = eval(module);
}
}
710 :
デフォルトの名無しさん :2009/04/04(土) 20:55:49
ブラウザ上で動くJavaScriptのプログラムを行いたい場合、 バージョン的には1.5の規格で書けばよいのでしょうか?
712 :
デフォルトの名無しさん :2009/04/04(土) 23:50:52
ブラウザ以外で動くJavaScript環境って何があるの? Adobe Director くらいしか知らないや。
身近なところだとWSHとか。 ほかにはSpiderMonkeyとかも。 まあ、ブラウザ環境依存の質問じゃなきゃこのスレでも答えは出てくるだろうけど
>>712 ブラウザに依存するような質問は板違いってことだろ。
別にサーバーサイド語れとかって意味じゃない。
rihino
リヒノキター!
fishキター
というか、最初からブラウザ非依存の話なんかできてないわけで。
ECMAScriptは、すでにブラウザで使われるJavaScriptとは別物になってしまったしな。
721 :
デフォルトの名無しさん :2009/04/05(日) 10:19:47
javascript って, リスプで言うところのシンボル, もしくは c で言うところの 変数ポインタってなものはありませんか? それとも、「eval しろ」何でしょうか?
>>721 > c で言うところの変数ポインタ
kwsk
723 :
デフォルトの名無しさん :2009/04/05(日) 10:47:59
まあまあ、そう揚げ足をとらなんだ。
>>722 int a; のとき &a って, 変数ポインタって言わない?
言いません。 Cでは変数はファーストクラスのオブジェクトではありません。 その式の型はintへのポインタです。 Lispのsymbolとは根本的に違います。
何をやりたいか説明すれば?
>>726 あ、そうなんだ。一部の方言って事で許して
>>727 大量の入力フィールドからデータを掻き集めたい
こんな感じ
var inputs = ["input1", "input2", "input3", ...];
var vars = [var1, var2, var3, ...];
for (var i = 0; i < inputs.length; ++i)
vars[i] = ....ByID(inputs[i]).value;
変数名から値を取り出すということなら、Objectを噛ませばやれる。 function foo(x) { var obj = {}; obj.v = x; var name = "v"; return obj[name]; } グローバル変数の場合は勝手にグローバルオブジェクト(ブラウザならwindow)の プロパティとして設定されるから、いきなりwindow[name]で読める。
>>728 読んでなかった。つーかそれなら連想配列でいいだろw
var values = {};
for (var i = 0; i < inputs.length; ++i)
values[vars[i]] = getElementById(inputs[i]).value;
現在、IllustratorCSでちょっとしたアイコン(背景画像)を作ったのですが作成したアイコンのサイズが 【icon_image.gif】 100px 50px(横・縦) でその画像よりも、サイズの大きいブロック要素(<div>)の背景に設定しているのですが そのブロック要素のサイズに一杯に画像を幅、縦共に拡大する方法とかってありますか? 毎回画面の要素のサイズに合わせて画像を作成するのもメンドクサイのでなんとか css or htmlだけで対応させる事が出来ればと思っています。 <div style="width: 350px;height=100; background-image: url(icon_image.gif); background-repeat: repeat-x;"> あいうえお </div> あと、もし<dic>で出来たならば、テーブルの<td></td>の背景画像にもしたいと思っているのですが、 <td>の背景に画像を拡大して表示させる事は可能でしょうか?
>>731 > それは、ちょっと違う。
同じやんw
さすがにそれはスレ違いか
>>733 本質的には同じなんだろうけど、
>>730 の場合, 既にあるオブジェクトとか
変数に突っ込めてないじゃん
威張って言うけど
javascript つつき始めたのは、一昨日から何だわ。
>>730 だと、ピンと来ない
ちょっと違うのはわかってる。 ちょっと変えれば素直に実装できるというか ループ処理したくなるほど変数作る時点で設計ミスだと言いたい。
>>736 いあ、もとは、俺が書いたコードじゃねぇし
元から、修正しようにも時間ねぇしw
そんなことだろうとは思ったw でもそんな状況でグローバル変数でもないならevalためらう理由もないな。
739 :
732 :2009/04/05(日) 16:17:48
誰か助けてー
740 :
デフォルトの名無しさん :2009/04/05(日) 16:30:45
>>739 Web制作板で聞けと。
大体Javascriptとどう関係が。
はいはい春休み春休み
743 :
デフォルトの名無しさん :2009/04/06(月) 01:07:09
JavaScriptの正規表現について質問があるのですが、数字+「.(ピリオド」のみ入力を許す場合には どう書けば良いでしょうか? 数字のみの正規表現は次で出来る事は分かっています。 match(/[^0-9]+/)
>>744 数字+ピリオドで他の文字を一切含まないならこう
str.match(/^[\d.]+$/)
\dの代わりに0-9でもよい
[^0-9]+では数字以外になるので注意
ピリオドのエスケープが足りなくない?
あー確かに 一応JScriptでは動作確認したんだけど、基本はつけておくべきだよね
修正版 str.match(/^[\d\.]+$/)
>>746 []内で本当に必要?
あったほうが無難という主張なら否定しない。
[abc.xyz] = .ですやん abc, xyzが何であっても(バックリファレンスは除く)
入力チェックで match とか冗談はよしてくれ 真偽値が欲しいだけなら test だ
123..45.6. をマッチさせたところで、どうしたいんだろうか、、、
「○○はもう正規表現を2chに書くな」と言わせないでくれ
ワロタ
756 :
名無し募集中。。。 :2009/04/07(火) 06:30:35
サスペンダーはPerler以外は正規表現書くなって言いたいんだと思うぜ JavaやCのプログラマは全体的にレベル高いけど 正規表現が得意な人は少ないだろうし 結局のところ
> Cのプログラマは全体的にレベル高いけど > 正規表現が得意な人は少ないだろうし CのプログラマでもUnix育ちの人たちは、正規表現が得意な人多いよ ed, sed, grep, awk あたりが, 正規表現の有用性を知らしめたと思ってる
それCプログラマじゃなくてUNIXオペレータじゃん。 そしてUNIXのスクリプトと言えばPerl。 Perlと言えば正規表現。 Perlプログラマと言えばレベル高い。 めでたしめでたし。
UNIX ならシェルだろ…
PHPでcron用のスクリプト書いてごめんなさい
761 :
デフォルトの名無しさん :2009/04/07(火) 11:37:05
あれここってなんのスレ?
JavaScriptを含むプログラム関連の話題一般を語るスレ 単一言語しか書けなかったり単一環境にしか対応できないプログラマなんて都市伝説だろ
でもUnix以外の環境って何があるんだ? メインフレームとかいう話?
これが韜晦という奴か。
Windows以外は全部UNIXです。
死ね
つうかその手のヤツはurlに?がある時点で踏まない
文字クラス[]の中で特殊な意味を持つ文字は、 ^]-\の4種類だけ。\の解釈は実装により異なるし(POSIX完全準拠だと ただの文字;JavaScriptでは違うが)、^]-については書く位置によって エスケープは必要ないので、一切エスケープをしないようにしたほうがよい。
>>770 >^]-については書く位置によってエスケープは必要ない
^は先頭以外、-は両端でいいだろうけど、]は?
[]a] ]とaにマッチする [^]a] ]とa以外にマッチする [a]] エラー
asciiコード覚えちゃってるからその通りに並べたくなって困る
そんなアピールはいらんから
>>770 \dとかも実装依存だから使うなってこと?
その辺は実装依存と言うより仕様だな。
どちらにしろ文字クラスの中で使うバカいねーだろ
使うとなんかまずいの?
779 :
デフォルトの名無しさん :2009/04/12(日) 13:44:56
いろいろなJavascriptの実装で、 最後に改行を付けないprint関数はありますか? またどういう名前、仕様ですか? v8やseamonkeyはないですね。 tamarinもざっと見た感じなさそう。
781 :
デフォルトの名無しさん :2009/04/15(水) 07:52:03
javascriptって最初のプログラム言語として難しい?
難しくはない。 特に取り敢えず動かしてみたいという派にはうってつけと言える。 言語特性がどうとかまでやりたいならオススメしない。
>>781 どの環境かによるけど、エラーが判りにくい場合もあるから、
ほんとに自分で1からやるなら、ちょっとだけ工夫が必要。
強い型付けの言語じゃないから、初学者向きだと思う。
786 :
デフォルトの名無しさん :2009/04/15(水) 23:48:18
>>785 それはまったく逆だろw
Javascriptは上級者向きだっての。
配列を含んだオブジェクトをコピーする方法を教えてほしい。 一つ一つコピーするのは面倒だ
788 :
デフォルトの名無しさん :2009/04/15(水) 23:56:06
cloneじゃだめなん?
function clone(o) { var f = function(){}; f.prototype = o; return new f(); }; これじゃあうまくいかないんだ。 enemyを変更すると、copy_enemyまで変更されてしまう。 小出しにしてすまない。 スクリプトのURL www10.ocn.ne.jp/public_html/junken.html
>>786 いや、違うだろ。根拠0で逆だろwとかバカか。
Javascriptは仕様もでかくないし、
難しい言語じゃないんで初学者向きだよ。
前こんなの拾ったなぁ function Object_clone() { var obj; var constructor = this.constructor; var obj = (constructor == Boolean || constructor == Date || constructor == Number || constructor == String) ? new constructor(this.valueOf()) : new constructor(); for (x in this) { var value = this[x]; obj[x] = (value != null && typeof value == "object") ? value.clone() : value; } return obj; } Object.prototype.clone = Object_clone;
>>791 >Object.prototype.clone
今更っていうかもう古い話題なんだろうな。
Object汚染について調べてみるといい。
793 :
789 :2009/04/16(木) 16:51:58
>>791 ブラウザーで動かすのは面倒なのでWSHでやってみました。
結果は、やはりだめでした。
794 :
789 :2009/04/16(木) 16:53:31
>>793 訂正
× やはりだめでした。
○ 成功しました
>>790 自由度高い分、シートベルトのない言語だから初学者には難しいんでね?
初学者は補助輪のついた言語で支えて貰ったほうが楽だろ?
prototype継承とかclosureとかヒーヒー言いそうだし
まぁ自由度が高い言語は他にもたくさんあるけど 一番の理由はまともな開発環境がないから簡単なエラーも実行するまで気がつかなかったりする 玄人ならああまたあそこ書き間違ったかって解るけど そこまで達する前にたいがい挫折する
firefoxとfirebugならそれなりの環境だと思う ie6で開発すると死ねるな
IE8でF12押すと派手な開発ツールが起動するぞ。まだ使ったことないけど
つ JSLint
function bar(){ this.a = 100; } bar.prototype.init = function (a){this.a = a;} function foo(){ this.num = 100; this.init = function(a){bar.prototype.init(a);} } foo.prototype = new bar(); window.onload = function() { var obj = new Array(); obj[0] = new foo(); obj[0].init(10); obj[1] = new foo(); obj[1].init(100); alert(obj[0].a + " " + obj[1].a); } init経由で値をセットすると、obj[0].aとobj[1].aの値が同じになるんだが、なんでそうなるんだ。仕様?それとも書き方が悪い?
>>800 foo.prototype.aの値。init実行をコメントアウトすればわかる。
原因はここ。thisへの理解が足りてないし、そもそもこの行が不要。
this.init = function(a){bar.prototype.init(a);}
803 :
802 :2009/04/29(水) 03:47:08
訂正 × 足りないってどういうこと ○ あー、なるほど。なぜそうなるかわかったような気がする。
疑問符は依然付いたままなんだな。
横やりだけど、自分が良く理解できてなかったから
>>800 について書いてみます。間違ってたら教えてください。
fooにthis.initがある場合は、this.a = aのthisがbarだから最後にalertで値を確かめても代入した値になってない。
(※の部分でname見て確認してみた。)
なので、thisがobj0やobj1になるようにしたら良いからbar.prototype.init.call(this, a);ってすれば良い。
でも、そもそもinitはbarから受け継いでるから、このthis.initはいらない。それが
>>801 の話。
という理解なんですけど、どうですかね?
(最後の両方100になるのはobj[1].init(100)のせいではなく、fooのaの値が100だからってことに気付かずハマってずっと考えてた。。)
function bar(){ this.a = 100; }
bar.prototype.name = 'bar';
bar.prototype.init = function (a){
this.a = a;
alert(this.name); // ※
}
function foo(){
this.a = 110;
this.init = function(a){ bar.prototype.init(a); }
}
foo.prototype = new bar();
foo.prototype.name = 'foo';
foo.prototype.setName = function(name) { this.name = name || 'foo'; }
var obj = new Array();
obj[0] = new foo();
obj[0].setName('obj0');
obj[0].init(10);
obj[1] = new foo();
obj[1].setName('obj1');
obj[1].init(20);
alert(obj[0].a + " " + obj[1].a);
>>this.a = aのthisがbarだから まーあれだ。きちんと勉強しなおしとけ!でございますことよ。
prototypeプロパティを特別視しすぎてるようにも見える。 プロトタイプチェーン以外ではなんの特別性もないし 当然その値になってるオブジェクトにもなんの特別性もない。 var obj = bar.prototype; this.init = function(a){ obj.init(a); } と書けば委譲起こしてるのがわかるんじゃない? ここでは委譲は不要で関数(いわゆるメソッド)が欲しいだけだから this.init = bar.prototype.init; Function.prototype.callなんてわざわざ使うまでもない。 そしてプロトタイプチェーンが繋がってるからこんな代入もイラネってこと。
>>805-807 ありがとうございます。
barのinitを外したら動きました。
しかし、これだと、foo.initで適当なタグを追加して、bar.initでさらに別のタグを追加するということができなくなってしまいます。
<?php
class foo{
public $a;
public function init($a)
{
$this->a = $a;
}
}
class bar extends foo{
public function init($a)
{
//適当な処理
print("call bar");
parent::init($a);
}
}
$list[] = new bar();
$list[] = new bar();
$list[0]->init(100);
$list[1]->init(10);
print_r($list);
?>
phpで似たようなコードをかくと、要素ごとに分かれるので、素直にPHPを使えということなのでしょうか
>>808 function A() {}
A.prototype.v = "";
A.prototype.add = function () { this.v += "a" };
function B() {}
B.prototype = new A();
B.prototype._parent_add = B.prototype.add;
B.prototype.add = function () { this.v += "b"; this._parent_add(); };
var o = new B();
o.add()
alert(o.v); // "ba"
なにが正解かはわからないけど、できる。
単純故に不親切、でも単純だからやりようはある。
>>809 なるほど。
その手があったか。
それは思いつかなかった。
ありがとう。
function A() {} A.prototype.name = 'A'; A.prototype.init = function(a) { this.a = a; } function B() { A.call(this); } B.prototype = new A(); B.prototype.constructor = B; B.prototype.name = 'B'; B.prototype.init = function(a, b) { A.prototype.init.call(this, a); this.b = b; } 単にメソッドチェーンしたいだけならこれで。
使っている言語は、Java あるサイトに自動的にログインして、中のデータを取ってきて DBに入れたい 自動的にログインするのって、Javascriptの範囲なんですか?
>>812 一旦言語そのものからは離れてHTTP通信について勉強しておいで。
jqueryで以下の操作を行うと一番最後だけ成功時の関数が呼ばれない。 どうにかする方法はない? 1.$.ajaxでGETリクエストを投げる(ifModified:true) -> GetAllMessage 2.取得した大きさをOLDに代入 3.$.ajaxでGETリクエストを投げる(Range:Bytes="+OLD+"-") -> UpdateMessage 4.再び1を行う。 -> GetAllMessage ソースファイル: www.csync.net/service/file/view.cgi?id=1242012261
>>814 すまん。自己解決した。
4で再びすべてのデータを取得しようと思っても、statusの値がnotmodifyedになってしまい、sucessで指定した関数が呼ばれないのが原因だった。
板を汚して済まん。
816 :
デフォルトの名無しさん :2009/05/11(月) 23:12:21
prototype.js についての質問です。 Ver1.6です。 Class.createの引数にオブジェクトリテラルで追加すべきものは、何になるのでしょう? クラス(static相当)メソッドはextendですよね? インスタンスメソッドとプロパティでしょうか? prototypeに突っ込まれるとなると、プロパティも入れないほうがいい? initializeでプロパティを設定すべきで、ここでは、クラス変数のみ? なお、継承の際の第一引数の親クラスは、この話の対象外とします。 識者の方、よろしくお願いします。
どれが質問か分かりにくい。まず日本語整理してくれ
818 :
デフォルトの名無しさん :2009/05/11(月) 23:41:56
メインの質問 ・Class.createの引数にオブジェクトリテラルで追加すべきものは、何になるのでしょう? 私の認識 ・クラス(static相当)メソッドはextendを使ったほうが良さそう ・インスタンスメソッドとプロパティを引数とすべきかな ・でも、prototypeに突っ込まれるとなると、プロパティも入れないほうがいいか ・プロパティはinitializeで設定すべきで、引数にはクラス変数のみ入れるものかな といったところで、解釈していただけますでしょうか。
>>818 慣れた言語での例と、それを自分なりに書き換えたサンプルをplz
これはひどい
読解力が致命的に欠如してるのはまあ100歩譲って仕方ないとして、
わざわざ箇条書にしてくれてるのにスルーしてサンプル要求とかもはやイミフ
答える気がないなら黙れよ害虫
>>818 >>816 の時点であなたの理解度は伝わります
プロパティは普通は入れない
以上
>>816 prototpye.jsのAjax..Request, Ajax.Responseみたいに、
プロパティをObject.createに渡しているのもあるぞ。
Responseの方はinitializeでoverwriteしている。
プロパティの動的な追加はまとめてやった方が、 処理速度的に有利な実装がある。 v8とか。(詳しくはv8のドキュメントを)
インスタンスの状態を表すプロパティなんかをprototypeにぶら下げても仕方ないよって話ではないかと デフォルト値として初期化前に参照できるようにする人もいるけど いつもプリミティブな値だとは限らないからね
824 :
デフォルトの名無しさん :2009/05/12(火) 10:09:22
FireFoxて、document.readyStateを使えないのでしょうか? <html> <body> <script type="text/javascript"> document.write("readyState:"+document.readyState); </script> </body> </html> これをFireFoxで実行すると readyState:undefined になってしまいます。 ちなみにFireFoxのバージョンは Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 です。
825 :
デフォルトの名無しさん :2009/05/12(火) 10:11:23
投稿して気づきました。 「JavaScriptはWEB製作板へ」って書いてました orz 板違いすみません。吊ってきます。
PHPからのデータをajaxで取得して、htmlを書き換えようとしています。 データは正常に取得でき、表示はされるのですが、一瞬で消えてしまいます。 何が原因か心当たりの方はいないでしょうか? ajaxでPHPの呼び出しと取得 if(window.XMLHttpRequest) { ajax = new XMLHttpRequest(); } else if(window.ActiveXObject) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } } ajax.open("get", "ajaxPrintTest.php", true); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { var obj = document.getElementById('print'); obj.innerHTML = ajax.responseText; } } ajax.send(""); HTML側 <form onsubmit="return upLoad()"> 名前:<input type="text" id="name" name="name" /> <input type="submit" value="送信" /> </form> <div id="print" ></div>
PHPからのデータをajaxで取得して、htmlを書き換えようとしています。 データは正常に取得でき、表示はされるのですが、一瞬で消えてしまいます。 何が原因か心当たりの方はいないでしょうか?
すみません、連続して送ってしまいました。m(_ _)m
そのコードがupLoadで実行されてんのなら upLoadの戻り値に問題があるんじゃない
830 :
826 :2009/05/12(火) 14:35:49
解決しました。 戻り値を設定していませんでした。 ありがとうございました。
>>831 メソッドは同じの使い回すけど、プロパティ値を使い回すってパターンがあんまりないから仕方ないってことでしょ。
prototype.jsで使われてる。
でっていう もう一度よく読め
initialize: 値をオブジェクト間で共有するわけにいかないもの コードを実行しないと初期化できないもの create: それ以外 って使い分けてる。
SpiderMonkeyって「"!\"#$%".toSource()」の返り値が「(new String("!\"#$%"))」になるけど、 単に「"!\"#$%"」では駄目な理由ってあるのかな? 「/o(chi|ma)nko/.toSource()」は「/o(chi|ma)nko/」を返すのに。
メソッド呼び出し時にはオブジェクトに変換されるから。 単なる文字列リテラル形式がほしいならquoteでどうぞ。
なるほど、リテラルがプリミティブな型かどうかで違ってくるのか。 配列、関数、正規表現なんかはリテラルでもオブジェクトだから、リテラル表記が返るわけだ。
function sidEventListener(){ var cmd = new CommandParserWhenPost; var text = cmd.parse(document.chat_form.message.value); $.post("./chat.php",{name:document.chat_form.name.value,message:text,color:document.chat_form.color.value,state:"sid",rno:document.chat_form.rno.value}); document.chat_form.message.value =""; } function CommandParser() { this.word = new Array; this.CommandList; this.parse = function(text) { this.word = text.split(" "); if(this.CommandList[this.word[0]]) return this.CommandList[this.word[0]](this.word); return text; } } function CommandParserWhenPost() { this.CommandList = new Array; this.CommandList["/dice"] = function(word) { var util = new Util; return "サイコロを投げた。出た目は"+ util.get_random_number(1,6) +"だ"; } } CommandParserWhenPost.prototype = new CommandParser; /diceの部分で名前も操作したいんだが、グローバル変数を使う方法しか思いつかない。 きれいな方法があったら、誰か教えてくれ。
1.その環境で唯一無二の「自分の名前」ならグローバルかそれに近いもので構わない 2. cmd.parse(user, text) ユーザ情報が必要なコマンドがあるなら素直に渡しとけ 3. user.cmd.parse(text) ユーザ単位でパーザ作ればいい どうでもいいけど乱数判定は出来る限り鯖でやるのが基本
すまん「A : Aはサイコロを投げた」のつもりで説明してたけど 「A(dice) : サイコロを投げた」がやりたいなら メッセージのフィルタ処理しかできない現状の構造自体が悪いな 俺ならコマンドの内側で通信させる say = function(user, msg) { $.post({name: user.name, message: msg}); } dice = function(user) { say(user.name + "(dice)", "サイコロを投げた"); }
>>842 すまんが、その通りだ。
/diceの部分で名前をしてステムに書き換えて、サイコロを投げたというにしたいんだ。
>メッセージのフィルタ処理しかできない現状の構造自体が悪いな
ほむー。
いまのところ、フィルター処理を行っているところでこういう風にする予定なんだが、これだと後々まずいんだろうか。
this.CommandList["/dice"] = function(word)
{
var util = new Util;
var obj = new obj; //別の場所で定義したオブジェクト
obj.text = "サイコロを投げた。出た目は"+ util.get_random_number(1,6) +"だ";
obj.name = "system";
return obj;
}
布石みたいなものがあったら教えてほしい。
?(゜д゜;三;゜д゜)?
>>839 重大なバグを1つ教えてやろう。
diceはdieの複数形だ。
わかったか低学歴。
そういう細かいところをひろって差をつけるしかない程度の高学歴か
うむ、小学生みたいな高学歴だな
定石?後々だから布石でいいのかw
obj作ってreturnするぐらいなら、ポストデータを渡して改変させるほうが早いし柔軟
var param = { name: name.value, message: text };
cmd.parse(param);
$.post("./chat.php", param);
そしてコマンド処理に主導権を与えるかどうかは用意するコマンドの予定と好みの問題
その程度ならどっちでもいいと思う、というか判断するには情報足りない
>>843 の手法は機能限定+お手軽を目的としたプラグインシステムが使う手という印象
>>842 はよくも悪くもコマンド処理の権限・責任が大きい
代わりに例えば「/color red」というようなクライアントの状態を変えるだけ(通信不要)のコマンドが可能になる
というと後者のほうが無難そうに見えるかもしれないけどYAGNIだったってこともよくある
行き詰まったらリファクタリングすればいいんだから、やりたいようにやればいいさ
しまった。定石と書くところを布石としてしまった
>>848 ありがとう。
やりたいようにやってみます。
851 :
デフォルトの名無しさん :2009/05/19(火) 16:41:03
window.opener及びwindow.closeで質問です。 子ウィンドウを新しく表示し、親ウィンドウを閉じる処理をJspファイルで以下のように 実装を行ったのですが、外部からのアクセスを行うとウィンドウが親ウィンドウ及び子ウィンドウが瞬間的に開いてから、 すぐに、閉じてしまいます。ローカルからのアクセスでは問題ありませんでした。 window.open('{pageContext.request.contextPath/********.do','_blank',menubar=no,****); window.opener = "dummy"; window.close(); よろしくお願い致します。
問題なかったんだw
>>851 そういうのは、Web関係のスレで聞いたほうがいいんでは?
>>853 聞いたけど、まともな返答が貰えなかったから、コッチに北みたい
MDIEってソフトのスクリプト機能に以下の機能を組み込みたいんですが、文字列の操作ってやつがわかりません。 ・複数のファイルの先頭に入力した文字列を付加できるようにしたい ・入力した文字列を一律で削除したい 要はリネーム機能なんですが、リネームソフトとかわざわざ使いたくないので自分で作ろうと思ったんですが アドバイスいただけませんか? プログラミングはかじったことある程度です。
>>855 newFilename = inputString + filename;
newFilename = filename.replace(inputString, "");
ファイル名の取得方法とか変更方法とか入力受付とかまではスレチだからシラネ
>>856 レスありがとうございます。
やっぱりスレ違いですよねー。とりあえずもうちょい自分でやってみてから
MDIEのスレで質問してみます。
858 :
デフォルトの名無しさん :2009/05/22(金) 17:59:46
Ctrl + マウスホイールの制御を行いたいです。 どなたか教えてください。
859 :
デフォルトの名無しさん :2009/05/22(金) 19:35:56
860 :
デフォルトの名無しさん :2009/05/22(金) 21:45:44
shadowbox 3.0b バグ大杉。
861 :
デフォルトの名無しさん :2009/05/29(金) 11:55:41
Google Maps API便利だけどまだバグが多いな GPlolylineのlineupdatedイベントはいらいらする
862 :
デフォルトの名無しさん :2009/06/03(水) 13:10:58
質問させてください。 JavaScriptにて、onclickの中身を取得すると function onclick(event) { ... } のような形になるのですが、lengthを取得すると1になります。 onclickの内部を置き換えたいのですが、どのようにすればいいのでしょうか?
>>766 ですが、解決しました。
ご心配おかけしました。
皆さん、とても詳しそうなので、質問させて下さい。 絵文字のリストを表示させるスクリプトがあるのですが、これを外部ファイルから読み込む形で、ブログのコメント入力エリアに表示させたいと思っています。 6行目のwindow.document.writeが修正箇所だと思ったのですが、私の乏しいJavascriputの知識では、どこをどう修正すればいいのか分かりません。 ブログ側の設定で、個別記事のHTML部分は修正する事ができず、表示させたいコメント入力エリア部分から直接外部ファイルを読み込ませる事ができない仕様になっています。 アドバイスを頂ければ幸いです。 :
絵文字のリストを表示させるスクリプトは以下のようになっています。 ********************************************* function writeCustmizeEmojiTagList() { var textarea = 'document.forms[1].article_child__body'; var list = getCommentEmojiList(); var att = getCustmizeEmojiAttribute(); for (var i = 0; i < list.length; i++) { window.document.write('<a href="javascript:;" onClick="addCustmizeEmoji(' + textarea + ', \'' + list[i][0] + '\');"><img src="' + emojiImagePass + list[i][1] + '" alt="(' + list[i][0] + ')" ' + att + ' /></a>'); } } // reference from jugem.jp (c) function addCustmizeEmoji(obj, tag) { var item = '(' + tag + ')'; if (document.selection) { obj.focus(); sel = document.selection.createRange(); sel.text = item; } else if (obj.selectionStart || obj.selectionStart == '0') { var startPos = obj.selectionStart; var endPos = obj.selectionEnd; obj.value = obj.value.substring(0, startPos) + item + obj.value.substring(endPos, obj.value.length); } else { obj.value += item; } } writeCustmizeEmojiTagList(); :*********************************************
日本語ひどくて読む気になれんな。 何が出来てて何ができてないのか。
870 :
865 :2009/06/20(土) 18:21:02
説明不足ですいませんでした
>>866 のスクリプト側に問題はなくて、ブログ側で個別記事のHTMLの編集が出来れば、
任意の場所に絵文字のリストを表示させる事ができます。
でも、無料のブログサービスを利用していて、トップページ以外のHTMLは編集できないようになっています。
Javascript側で、修正が可能ならばと思って質問させてもらいました。
スレ違いなんですか・・・・・・Javascriptに関する質問なので、大丈夫だと思ったのですが、
スレ汚し失礼しました。
JS使ってるだけで中身はHTMLやDOMの質問だしね web制作板のJSスレならそのへんも管轄
Javaとぜんぜん違うのにJavaScriptを名乗るな まぎらわしい
>>872 文句はそーいうことを許したSunに言ってくれ。
PythonとかLispに比べるとかなりJavaっぽいじゃん
言語仕様的には、JavaよりもむしろPythonに近いけどな。
そりゃスクリプト言語だからな
>>876 >>875 が言ってるのはJavaScript 1.7以降Pythonを積極的に取り入れてるって事では?
ジェネレーターとかイテレーターとか配列内包表記とか
なんというゆとり
879 :
デフォルトの名無しさん :2009/06/24(水) 21:08:01
以下のコードで、年を出そうと思うのですが、109と出ます。 2009を出したい出です。 <SCRIPT language="javascript" type="text/javascript"> this.main(); function main(){ var date = new Date(); var iYear = date.getYear(); document.write(iYear); } </SCRIPT>
iYear + 1900
むしろ、 date.getFullYear()
882 :
879 :2009/06/25(木) 21:28:55
Windows xpで、date.getYear() は、2009 Mac OS X Tig で、date.getYear() は、109 でした。 なんで、こう、ちがうんだろ。
884 :
879 :2009/06/25(木) 22:34:12
処理系による。 もともと1900年からのオフセットだったけど、何をトチくるったか 2000年を越えたときに西暦をそのまま返しちゃうという Excelと間違えたかのような勘違い実装しちゃったブラウザが出現。 影響力が大きかったので他のブラウザもそれに追随してしまったり、悔い改めたり。
JavaScriptじゃないけど、ExcelとAccessは2桁の年を入力されると 00 ... AD2000 01-20 ... H1〜H20 21-64 ... S21〜S64/H1 65-99 ... AD1965〜AD1999 と解釈するという、大きなお世話がある。
二千年問題を思い出しました
889 :
デフォルトの名無しさん :2009/07/07(火) 01:54:57
ちょっと質問させてくれ ブラウザ右上の×ボタンを押下時の処理なんだけど Window.openで開いた画面で「閉じても宜しいですか?」的なメッセージを ダイアログで表示させたいんだが・・・ function window.onbeforeunload() { if((event.clientX > document.body.clientWidth) && (event.clientY < 0)) { return ''; } } 以外でいいのないですかね? このダイアログはメッセージがセンスなさ杉て使えないですよね。 ブラウザはIE限定です。
偉そうな質問者だなw
解答者も時間を割いて返答する点を 考慮すれば、友達口調にはならんよなぁ 変なプライドがあるなら自分で参考文献から答えを探せよって思うね 答える方は義務でも使命でもない 質問者が困ろうと知ったこったねぇよ ってのが本音だし
ページを閉じるかどうかの制御をサイトがすべきではない。黙って死ね。
スクリプトが開いたウィンドウなら、ダイアログが出ずに閉じるんだっけ。
>>892 そう決め付けれるもんでもないと思うが。
勝手にウィンドウをリサイズされるのも苛つく どうせ一瞬出元に戻されるんだから無駄な抵抗なのに…
firefoxはウィンドウのリサイズを禁止できるけど、他のブラウザはできないの?
禁止できるというかディフォルトで禁止で、 ノーティフィケーション・メッセージでどうする? って確認されるでしょ? 俺はさらにそれを「新しいタブで開く」にしてる。 リサイズはもちろん禁止。
商用じゃなきゃ好きにやれよ とか思うけどな、好き勝手やって学べばいい 禁則がなんで禁則なのかも学べるからな
899 :
デフォルトの名無しさん :2009/07/13(月) 02:32:49
FC2の共有プラグインを使おうとしているのですが、よく判らないscriptタグが仕込まれていました。 一応マの端くれではあるので適当に改行を入れてみたのですが、いかんせんjavascriptは門外漢なので何をしているのかよく判りません。 以下のコードなんですが、どんなことをしているか良かったら教えて頂けないでしょうか? 尚、最後の()内は元は改行なしなんですが、そのまま書き込もうとしたら怒られたので改行入れてます。 <script type="text/javascript"> function ( "a", 'for (var c=new object(),c,i=0,j,k,l,m,p,s=" ",w;i<63;i++) c["0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz_".charat(i)]=i; while(i-=7) s+=s; while((c=c[a.charat(i++)])<63) if(c<32) s+=string.fromcharcode(m?l*32+c:(l*32+c)*62+c[a.charat(i++)]); else if(c<49) {l=(c<36)?c-32:(c<44)?c+348:c+1996;m=1} else if(c<50) {l=c[a.charat(i++)];m=0} else { if (p=(w=s.slice(-819)).substring(k=(c-50)*63+c[a.charat(i++)],j=k+c[a.charat(i++)]+2)) while(w.length<j) w+=p; s+=w.substring(k,j) } document.write(s.slice(1024))' ) ("xsyezf2ixuwaxsz49mx0zjkpc5xt2zd1i79exdzkfgxqlzgoxrz6fekxdzj9q5xqhg_m1zk5okxdz1c97ex qz35ek5ixrz213b7ifle4xdz3fcfixq3z3__3xr2zc1z1x0z8i56xt2z8kkgxqffzn_w04i1ebxez2_m07xogez6 3xiez3fdxf20zkz815kxt2yv_b0_v1_40xsy6fekx0zj3_g03m__3zj2y6yk1x0yjyk1_f0xh_p1ylxu8y3x90ne37nhimsmnih0nagoxsfyl_l0xf_82_u8z1_x1xx1_71_udx54") </script>
900 :
デフォルトの名無しさん :2009/07/13(月) 04:06:03
>>899 意味もわからず改行いれちゃう時点でマじゃない。
端くれですらない。
901 :
デフォルトの名無しさん :2009/07/13(月) 04:12:08
charatなんてあったっけ?
charAtならある、つーかこれdowncaseされてない? 節々でおかしい
functionじゃなくてFunctionだし。定義じゃなくて呼び出し。
後ろにある暗号みたいな奴を、デコードしてdocument.writeしてるね。 ところどころ、コピペミスしているみたいだが。
906 :
899 :2009/07/13(月) 18:40:55
>>900-905 すみません。
プラグイン本体のタグが大文字混じりだったんで、全体を小文字に変えていたのを忘れてました。
これじゃ端くれですらないと言われても仕方ありませんね…
素人が任意の位置で改行入れない方が良いみたいなので、
タグ以外を100バイトごとに改行入れてみると以下のようになりました。
このよく判らない暗号文をデコードするとどんなものが現れるのか気になります。
このscriptrタグの部分だけわざわざコメントで<!--変更不可部分-->とまで書いてるので、
何か仕込もうとしていないか?と勘繰ってしまっています……
お手数ですが、もう少しご助力頂けないでしょうか?m(_ _)m
<script type="text/javascript">
Function("a",'for(var C=new Object(),c,i=0,j,k,l,m,p,s=" ",w;i<63;i++)C["0123456789ABCDEFGHIJKLMN
OPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_".charAt(i)]=i;while(i-=7)s+=s;while((c=C[a.charAt(i++)])<63)
if(c<32)s+=String.fromCharCode(m?l*32+c:(l*32+c)*62+C[a.charAt(i++)]);else if(c<49){l=(c<36)?c-32:(c
<44)?c+348:c+1996;m=1}else if(c<50){l=C[a.charAt(i++)];m=0}else{if(p=(w=s.slice(-819)).substring(k=(
c-50)*63+C[a.charAt(i++)],j=k+C[a.charAt(i++)]+2))while(w.length<j)w+=p;s+=w.substring(k,j)}document
.write(s.slice(1024))')("XSYEZF2IXUWAXSZ49MX0ZJKPC5XT2ZD1I79EXDZKFGXQLZGOXRZ6FEKXDZJ9Q5XQHG_m1ZK5OKX
DZ1C97EXQZ35EK5IXRZ213B7IFLE4XDZ3FCFIXQ3Z3__3XR2zc1Z1X0Z8I56XT2Z8KKGXQFFZN_W04I1EBXEZ2_M07XOGEZ63XIE
Z3FDXF20ZKz815KXT2YV_b0_V1_40XSY6FEKX0zj3_g03M__3zj2Y6yk1X0YJyk1_f0XH_P1YLXU8Y3X90nE37nHImSMnIH0nAGO
XSFYL_l0XF_82_u8Z1_x1xX1_71_uDx54")
</script>
やっぱりデータ列も狂ってたか、実行しても無理なわけだ もうめんどくさいからdocument.writeをalertにでも変えて自分でやって
データ以前に変数に大文字と小文字のcがある/(^o^)\
sの空白が一つになってるせいで結局
>>906 でもうまくいかないな。
>>907 の言うとおりdocument.writeをalertに変えて見ればわけるけど、
<nobr>と<div>で囲まれたリンクとサイトタイトルが出てくるよ。
ランキングの一番下に名前出す用だね。
>>907-909 素早いお返事ありがとうございます。
謎が解けてスッキリしました。
ちなみにs=" "の部分は半角スペース4つでした。
本当にありがとうございました。
あの2chに指定した時間に投稿できるのもjavascriptでつくれるんですか? 04:44:44:44ぴったりに投稿できるようなの
あなたのローカルマシンの時刻で、指定の時刻に投稿を試みることは可能 それでぴったりの投稿日時が反映されると考えているなら もう少し勉強して、出直してきてください
>>912 一度書込んでズレを補正して再度書込めばいいジャン 簡単簡単
アホだなー、サーバーの負荷状況で幾らでもズレるだろうに
やっぱりいつでもぴったりなのは無理かー ありがとうございました
>>916 わざわざありがとうございます。
この使おうとしていたプラグイン、
brタグすら大文字小文字不統一でちょっとどうなの?と思いつつ
でもこんな長大なスクリプト書けるのは大したもんだと感心してたんですが、
それすら流用だったってことですね。
元々大したことをしてくれるプラグインでもないので、
自分でタグとCSS書いて実装することにしました。
「変なものを仕込もうとしてる」ように見える箇所があった時点で
かなり使う気は減退していましたので。
ご助力、ご助言いただいた方、お叱り頂いた方も含め
皆様、ありがとうございました。
あーん、もうウンコ出しちゃうわよ
アホだなー、サーバーの負荷状況で幾らでもズレるだろうに 0:56:0
アホだなー、サーバーの負荷状況で幾らでもズレるだろうに 1:0:0
アホだなー、サーバーの負荷状況で幾らでもズレるだろうに 1:4:0
ずれるまでやるのかい
ボタンを押すとinnerHTMLで文字列としてhtmlタグを書いてテーブルを追加したいです。 テーブルを追加する位置は常に先頭で前に表示したものは下にスライドしていくイメージです。 助けてください。お願いします。
tableに行を追加して、そこに更にセルを追加するだけ。 情報は転がってる。
XMLを元に、データをdivに区切って出力しています。 区切ったdivに連番のIDを付け、他のページからアンカーを 使ってアクセス出来るようにしたのですが、 IEでは上手く行くのですがfirefoxではページ最上段が表示されてしまい、 上手くいきません。 firefoxではjavascriptで生成されたdivへアンカーを付けることは 出来ないんでしょうか? 何かいい方法はないんでしょうか。
アンカーでIDとした文字列は、許容された物? 全角文字を使うと、UA依存になる。
927 :
925 :2009/07/19(日) 20:29:51
文字列は半角で0、1、2・・・ のように付けています。 数字だけのIDは許容されないのかと思い、 item0、item1、item3・・・ のようにもしてみましたが、こちらもダメでした。
928 :
925 :2009/07/19(日) 20:41:53
解決しました。 window.onloadでデータの読み込み、表示をした後に document.location = location.href; を追加することで上手く動作出来ました。
javascriptを使えば、掲示板で書き込み時以外は静的htmlで 書き込みの時だけcgiを呼ぶようなことできますか
使わなくてもできる
CGIが書き換えるHTMLを静的と言わないならJS使わないと無理
<html> <head> <script> function magic() { kensaku = new RegExp(form.mae.value,"g") ; okikae = form.ato.value; taisyou = form.mae.value; form.bunsyou.value = taisyou.replace(kensaku,okikae); } </script> </head> <body> <form id ="form"> 検索する文字列 <input type="text" name="mae"><br /> 置き換える文字列 <input type="text" name="ato"><br /> <BUTTON onClick="magic()">作業開始</BUTTON> <p><TEXTAREA name="bunsyou" cols="80" rows="5"></TEXTAREA> </form> </body> </html> たとえば、テキストエリアに日本人と入力して、 検索する文字列に日本、置き換える文字列に宇宙と入力すれば、 テキストエリアは宇宙人となるはずなんですが、どういうわけか宇宙と表示されてしまいます。 どこがおかしいですか?
> テキストエリアは宇宙人となるはず この想定がおかしい。上のコードのどこをどう読んだらそうなるんだ?
>taisyou = form.mae.value; ここは taisyou = form.bunsyou.value; じゃないの?
<html><head><script> pages = new Array( ) ; pages[1]='1page' ; pages[2]='2page' ; pages[3]='3page' ; var page; function book (mode) { if (mode=="f") { page=1; } else if (mode=="b") { page--; if (page<=0) { page++; } } else if (mode=="n") { page++; if (pages.length <= page ) { page--; } } else { page= (pages.length-1); } nunn.innerHTML=page + "/" + (pages.length-1) ; hons.innerHTML=pages[page]; } </script></head><body onload = " book ( 'f ')"> <BUTTON onclick = " book(' f ') "> << </BUTTON> <BUTTON onclick = " book(' b ') "> < </BUTTON> <BUTTON onclick = " book(' n ') "> > </BUTTON> <BUTTON onclick = " book( 'l ') "> >> </BUTTON> <p><b><span id="nunn">現在のページ番号/総ページ数</span></b><br /> <span id="hons">ページの本文</span></p> </body></html>
938 :
937 :2009/08/05(水) 11:46:43
どのボタンをクリックしても、 3/3 3page としか表示されないのですが・・
空白の数とか、大文字と小文字の使い分けとか細かいことに気がまわらないやつは プログラムをやめたほうがいい。 板違いに気づかないやつも。
fの前後に半角スペース
941 :
937 :2009/08/05(水) 12:27:33
どういたしまして(ヽ'ω`)
すみません質問させてください。 swfファイルを貼付けるときに <object id="obj_id"> <embeded id="emb_id" /> </object> このようにidを設定してやり swfファイルがクリックされたときにJSの処理を実行したいのですが IEの場合だけうまく動きません。 ちなみに,safariとFirefoxでは下記のようにしてやることでうまく実行できました。 function clickHandler(){ alert("click test"); } docment.getElementById("obj_id")addEventListener("click", clickHandler, false); //safariで動作 docment.getElementById("emb_id")addEventListener("click", clickHandler, false); //firefoxで動作 しかし、IEではaddEventListenerが使えないとの事だったので document.getElementById("obj_id").attachEvent("onclick", clickHandler); と設定するようにしました。 (emb_idはelementが取得できなくてエラーになってたので利用しませんでした。) しかし、このようにしてもhtml上のswfファイルをクリックしたときに clickHandlerに仕込んだalert処理が動かなかったのです。 これは自分のIEでのイベント処理の記述の仕方が悪いのでしょうか? それともIEの仕様ではFlashPlayerが実行しているswfファイルに対するクリックイベントを取得できないのでしょうか? 誰か詳しい方いたらよろしくお願いいたします。
944 :
デフォルトの名無しさん :2009/08/19(水) 11:51:57
すみません質問なのですが、例えば <font size="-1">hogehoge</font> というふにfontではさまれたhogehogeをjavascriptで取得したいのですが可能でしょうか? fontのxpathの位置は分かっていて、このように取得しています. var resFont = document.evaluate('/html/body/table/tbody/tr/td/font', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
945 :
944 :2009/08/19(水) 12:20:33
自己解決しました どうやらinnerTextはfirefoxで使えないので textContentを使ったらできました
window.alert()としてみる
画面上のマウス座標を取得する際、 disabledで無効化しているinputボタンのところだけ うまく取れないんですが、いい方法ありませんか?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ラジオボタンの選択項目の取得</title> </head> <body> <form name="color"> <input type="radio" name="iro" value="red">赤 <input type="radio" name="iro" value="blue">青 <input type="button" value="色を表示" onclick="display()"> </form> <script type="text/javascript"> function display(){ for(var i=0;i<document.color.iro.length; i++){ if(document.color.iro[i].checked){ alert(document.color.iro[i].value); return; } } alert('選択されていません'); } </script> </body> </html>
たとえば、赤を選んで、「色を表示」ボタンをクリックしたら、 背景も赤くなるようにしたいのですが、どうしたらいいですか?
略 <body> <h1>背景色の変更</h1> <button onClick = "document.bgColor = 'red' " >赤 </button> <button onClick = "document.bgColor = 'blue' " >青 </button> </body> じゃダメ?
>>952 ボタンを押したタイミングがいいってことじゃね?
>>951 こういうのとか。引数でform渡した方が使い道ありそうな気もするけど。
function display(){
var radio = document.color.iro;
for (var i=0,l=radio.length; i<l; ++i) {
if (radio[i].checked) {
return document.body.style.backgroundColor = radio[i].value;
}
}
alert('選択されていません');
}
こういうコード見るとdocumentだけDに代入したくなるんだけどこれってキモい?
キモくはないよ。 アリだと思う。
953さんのコードで言うと var radio = (D=document).color.iro; とかやっちゃうんだけど、アリかあ。良かった。
>>956 グローバル変数作っちゃうのは気持ち悪い
with
javascriptで複数のHTMLのクラス属性の内容を一気に書き換える方法でオススメの方法はありますか? JSフレームワーク等を使ってもかまいません、というかどちらかというと希望します。 可能ならばクラス change を利用して、簡潔に書き換える方法を知りたいと思っています。 しかし、クラスを指定してid一覧を得るような方法も分からないですし、それでもいいと思ってます。 <div id="one" class="change">いち</div> <div id="two" class="change">にぃ</div> <div id="three" class="change">さん</div> <div id="four" class="change">よん</div>
>>959 日本語難しいよ。同じclassの中身を変えればいいの?
<script type="text/javascript" src="
http://code.jquery.com/jquery-latest.min.js "></script>
<script type="text/javascript">
$(function(){
$('div.change').each(function(i, elem){
var $elem = $(elem);
$elem.text(i + " : " + $elem.attr('id'));
});
});
</script>
961 :
959 :2009/08/25(火) 14:29:00
>>960 分かりにくい説明ですいません。
回答して下さった内容で大丈夫だと思います。
ありがとうございます。
ちょっと解読しつつ活用してみます。
ここで解答してる人って,頭良いのにどうして働かない?
仕事ができるので、 仕事中の2ちゃんねるも大目に見られてる。
俺は裁量労働制だから、週の半分ぐらいは自宅作業。 でも、出社したほうが集中できるのは確かだな。
俺は昼遅くくらいから週5で常駐してる 家にいたら嫁に雑用頼まれて邪魔されるから仕事にならん たまたま休憩がてら2ch見てた所をのぞき込んで仕事してない駄目親父ニート扱いしやがるし
DOMって覚えなきゃダメ?
覚えてる奴なんていないよ。
調べ方を覚えないと駄目。
>>967-968 安心したw
今、「独習JavaScript」て本で勉強してるんだけど、詳しすぎるw
「DOMを覚える」がどういうことかわからんが、DOM操作の基本は知っておいたほうがいいな。
3台並べてジェットストリームアタックかます
<html> <head> <title>rei4-1.html</title> <script type="text/javascript"> function img_change1() { document.images["annai"].src="annai-1.gif"; } function img_change2() { document.images["annai"].src="annai-2.gif"; } </script> </head> <body> <a href="annai.htm" onMouseOver="img_change2()" onMouseOut="img_change1()"> <img src ="annai-1.gif" border="0" namae="annai"></a> </body> </html>
>>972 namaeに"annai"なのだから、a href="annai.htm"ではなくて、a href="annai"ではないのか?
と思って、やってみましたが、どちらにしてもロールオーバーしません。
他に原因があるのでしょうか?
nameをnamaeに翻訳すんなw
>>974 できました。どうもありがとうございます。
あと、インターネットで見つけたのですが、
<html>
<head>
<title>rei4-1html</title>
<script type="text/JavaScript">
<!--
var pic = new Array();
pic[0] = new Image();
pic[1] = new Image();
pic[0].src = "annai-1.gif";
pic[1].src = "annai-2.gif";
function setRollOverImg(index, obj){
obj.src = pic[index].src;
}
//-->
</script>
</head>
<body>
<img src="annai-1.gif" onMouseOver="setRollOverImg(0, this)" onMouseOut="setRollOverImg(1, this)">
</body>
</html>
と、どちらが良いプログラムなのでしょうか?
どちらも微妙、CSS使え
JavaScriptは一番簡単かつ自由にプログラムを上級者なら書けるが 初級者がこれを上級者になる為の訓練として使っても目的を 達することは期待できないだろう。これはスクリプト言語全般に 言えるのでは。
>>977 JavaScrpt をどんな言語に置き換えても成り立つし、スクリプト言語
じゃなくても同じことが言えるだろ?
JavaScript は C の皮かぶった lisp って話も聞くけど、lisp は
伝統的にはコンパイラベースの言語だしな…
>>978 lisp は マッカーシーの時代から動的スコープを持つわけだが
981 :
デフォルトの名無しさん :2009/09/02(水) 17:36:18
どうにも困っとります。(´・ω・`) Javascriptで10桁×10桁の演算せんといかんくなったですが、32bitに収まらない事に気付いた... 20桁扱う整数演算ってJavaScriptでどうやりゃ良いんでしょうか?orz
10桁ずつ計算すりゃいいんじゃね
あ〜...やっぱ自分で作らにゃ無いんですね。(´・ω・`) 32bitに収まるようにっつぅことは...4桁ずつに区切って計算して...って事ですね...?
整数8桁かける整数8桁なら、浮動小数点数で計算しても、誤差は発生しないんだけどね。
そういや、実数部分は32bitじゃなかったんですよね。 忘れてました...orz とりあえず、自力で作ってみます。 ヒントだけでもいただけて助かりました。(*´ω`)
「JavaScript bigint」でググると幸せになれるかも。
bigintも調べたらhitしたんですが、ライブラリのdownloadができなくて、あきらめたんです。(´・ω・`)
>>989 あれ?ありがとうございます。
探し方が下手だっただけみたいですね...orz
>>990 ありがとうございます。
こちらも参考にさせていただきます。
ホントに有益な情報ありがとうございます。
992 :
デフォルトの名無しさん :2009/09/02(水) 20:54:13
質問です。 <textarea>にXMLを入力して、それをサーバに送らずに JavaScriptでDOMでアクセスしたり、DOMで作ったXMLを <textarea>に書き出したりしたいのですけど、 できますでしょうか。
できるよ。
>>76 一番簡単なの
if 金曜日{
if day>14}
echo$unko;
}}else{
}
995 :
992 :2009/09/04(金) 00:54:05
>>993 なるほど、ありがとうございます。
ついでに、やり方もさくっと教えて頂ければ、なお嬉しい。
KIAI
>>992 そもそもブラウザ上のJavaScriptはWeb製作板の質問スレへ。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。