+ JavaScript の質問用スレッド vol.105 +
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。(なりすまし及び煽り防止のため)
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は
http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
あれーまた違ってましたか。なんで見落としてしまうのかなー。すみません。
9 :
Name_Not_Found :2013/01/27(日) 13:00:37.16 ID:CMosoWs7
かなりの初心者ですがよろしくお願いします。 遅れてやってくるマウスストーカーを作りたかったのですが ストーカーさせたい要素がマウスに近づかず、元の位置から5px程度しか マウスに合わせて動かなかったり、マウスを動かすと一度だけ位置が 数px更新されるだけでとまってしまったりします。 変数を中の関数から出してみたりいろいろ試しましたが解決しませんでした。 actionscriptのサンプルコードを改変したものです。 例えばmouseXをevent.clientXにという感じです。 原因と解決方法、ヒントなどが分かる方よろしくお願いします。
10 :
Name_Not_Found :2013/01/27(日) 13:01:10.77 ID:CMosoWs7
これがコードです window.onload = function() { var velocity = 0.3, speed = 5; document.onmousemove = function (event) { var mX = event.clientX, mY = event.clientY; var cnvs = document.getElementById("canvas1"); var cnvsX = cnvs.style.left; var cnvsY = cnvs.style.top; var dX = mX - cnvsX; var dY = mY - cnvsY; var angle = Math.atan2(dY,dX); cnvs.style.rotate = angle * 180 / Math.PI; var vX = Math.cos(angle) * speed; var vY = Math.sin(angle) * speed; cnvs.style.left += (vX + "px"); cnvs.style.top += (vY + "px"); } };
すいませんHTMLも含めてコピペして動くものをおねがいできませんか codepadとかideoneとかどっか別サイトにはってもらっていいので
12 :
Name_Not_Found :2013/01/27(日) 14:31:44.39 ID:CMosoWs7
全部直せとかいうのは断る。遅れて動くということは一番最近に 取得した位置まで「徐々に」近づいて行く動作をするための setIntervalで定期的に動作するコードが必要だと思うけどいかが。
14 :
リリン :2013/01/27(日) 19:19:20.17 ID:??? BE:235677593-PLT(45072)
window.onload = function() { //var velocity = 0.3; cnvs = document.getElementById("canvas1"); cnvs.style.position = "absolute"; cnvs.style.top = 0 + "px"; cnvs.style.left = 0 + "px"; document.body.onmousemove = function (event) { var mX = event.clientX; var mY = event.clientY; var cnvs; if(!cnvs){ cnvs = document.getElementById("canvas1"); } var cnvsX = cnvs.style.left; var cnvsY = cnvs.style.top; cnvsX = cnvsX.replace("px",''); cnvsY = cnvsY.replace("px",''); cnvs.style.position = "absolute"; var dX = mX - cnvsX; var dY = mY - cnvsX; cnvs.style.left = dX + "px"; cnvs.style.top = dY + "px"; } }
15 :
リリン :2013/01/27(日) 19:19:51.96 ID:??? BE:349152285-PLT(45072)
それっぽく動いたけど、あとは座標の調節と+-の操作うまいことやっちくりー
ローカルルールのリンク先更新の人が最近迅速なので、次からは前スレ がほぼ埋まってからリンク先更新を依頼するようにしませう。
wikiつくってよ
言いだしっぺの法則
wikiとかいらんから日本語stackoverflow作ってよ
無料サイトでよければQ&Aサイトつくれますよ
そういや、このjsの質問スレの抜粋した内容のwebサイト 作るって言ってた人がいた気がしたがどうなったっけ?
質問。jQueryでイベントを貼ったDOMのキャッシュをjsで持って使いまわしたい。 しかし一度bodyから剥す(jQuery#empty)とイベントが発火しなくなる。 DOMを作ってイベントを貼る var $el = $("<div>").html("<div>click me</div>"); $el.on('click', function(){console.log('clicked')}); DOMに貼り付けるとclickイベントはちゃんと動く $(body).append($el);//=> クリックしてclicked DOMに再度貼り付けるとclickイベントが消えている $(body).empty();//DOMの中身を消す $(body).append($el);//クリックしてもイベントが発火しない 環境はChrome Mac / jQuery1.9 jQueryで作ったDOMはそのままキャッシュしていると思うんだけど、違うんでしょうか $el[0].onclick = function(){…}と定義すれば動くけど、それは<div onclick=… に書き換えてるからやりたいことと違う
onとかliveとかの話?
$.emptyの前に$el.detach();で消す
>>28 あざっす!動きました。
removeやemptyはイベントハンドラも削除してたんですね
$(body).html('')でも消えてたんで焦ってたんですが
ドキュメントよく読めば書いてあるしもうちょっと調べればよかったです…
>
>>13 >
>>14 ありがとうございます。
やっぱりif文チェックとかsetIntervalが必要そうですね。
べったりくっ付くマウスストーカーは楽勝なんですけど
早くクオリティ上げるよう勉強します
オレはjavascript、html5、jQueryのサンプル公開してるwebサイト をいくつか持ってるが、このスレの内容は一部改変して使ってる。 ほかに、プログラム本のソースコードとか他人が公開したコード を一部改造して使ってる。ネットでプログラムのネタは山のようにあるな。
何かのコピペ?
>>31 品質が低そうだし、いつか著作権違反で訴えらそうだね。
34 :
Name_Not_Found :2013/01/30(水) 07:38:30.11 ID:daUpsymW
この記事
ttp://kwski.net/jquery/1049/ を参考に、Chosenの導入を考えたのですが、
<script src="<layer highlight=・・・ </layer>.min.js"
の意味が理解できませんでした。
layerはページを分割するタグではなかったでしょうか?
それがjsファイルの指定の途中に出てきたり、
highlight= など不明な指定もあって混乱してしまいました。
ググってもなかなかこの説明をしているサイトを見つけられませんでした。
どなたご存知の方、このlayerタグの意味を教えてくださいませ。
35 :
34 :2013/01/30(水) 07:40:59.37 ID:???
す、すいません>< Firefoxのアドオンsearchwpが原因だったようです! IEにしたら短いサンプルソースが表示されました・・・・。 面目ない!
36 :
@ :2013/01/30(水) 10:02:26.93 ID:???
許しましょう!
>>33 広く浅く一般的なことしか載せてないから訴訟はされないだろ。
たいしてアクセス数ないし
38 :
Name_Not_Found :2013/01/31(木) 19:36:17.00 ID:/WuRKlyJ
document.getElementById("display").addEventListener("mousemove", movecheck_in); function movecheck_in(p){ console.log("called func in"); document.getElementById("indicator").innerHTML = "x=" + p.clientX + "; y=" + p.clientY; } こういうコードにあるpっていうのはイベントオブジェクトというものですか? この場合はpとしていますが、このpはどんな名前でもいいんでしょうか
>>38 イベントオブジェクトだぜ。
p以外の名前でもいい。
pはeventとかevtとかの名前になってるサンプルコードが多いな
>>37 バレる可能性が低ければ何をやってもいいと考える小悪党ですか。
そういえばV8って実は日本語(というかUTF8)の変数通すから (function(ちくわ大明神){ console.log(ちくわ大明神); })('馬鹿めヤツは死んだわ'); とかもコンパイル通るんだよな
>>40 プログラムの解説してるwebサイトとかサンプル公開してる
webサイトって似てるのばっかやんっと言ってみる
一部例外除いて、プログラミング言語としてJSしか覚えてない人のJSは質が低い 俺が他人にJS教えるときは、ネットに落ちてるコード(とくにAJAX以前)は参考にするなと言っている John Resig(jQuery), Jeremy Ashkenas(Backbone) あたりがモダンなJS書く印象 日本だとカヤック、サイボウズ、モジラ系の連中の一部がレベル高い感じ
質の高いコードを書くことなんかより、 風呂場を清潔に保つことの方が難しいけどな。
>>43 jQueryは参考にさせたくないコードの筆頭だと思うけどなー
jQueryは目的上どうしてもメタプロ気味なリフレクション黒魔術しないといけないからなぁ ライブラリの基礎部分はメタプロしてもいいけど、表にそれがはみ出るやつはダサい
>>42 赤信号もみんなで渡れば怖くない、と考える小(ry
49 :
Name_Not_Found :2013/02/01(金) 22:18:30.94 ID:kEqaL3ov
>>49 白鳥が水面下で足をバタバタさせるのはいいけど
水面に波を立ててはいけない
jQueryのcore眺めてみたけど、こことか普通やんないしやられたらキレるわ、って感じだった // Populate the class2type map jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); });
書いた人はどや顔してそう
何で最初から配列にしてないんだろうな・・
早いし後から追加したりが簡単じゃん
for文の中で識別子エラーが出るんですが、これのどこが問題なんでしょか。 document.write("<span class='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>");
"</span>"
最低限変数はalertなりで出力して確認したあと置換してここに張れ
>>58 変数はアラートで確認しましたけど、問題はなかったです。
>>57 そこがおかしいんですかね?
消去法ではclass='s"+i+"'がおかしいようなんですけど。
それと i:35 snowmaxsize:30 snowletter:"*" です。
僕はエスパーじゃないのでわからないです
どうすれば伝わりますかね。
var i=35, snowletter="*", snowmaxsize=30; document.write("<span class='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>"); うちではIEでもfirefoxでもChromeでも普通にタグが追加される
>>55 ["A", "B", "C"] より "A B C".split(" ") の方が早いの?
追加は簡単だと思うけど
>>63 こちらの環境がおかしいのかもしれないですね。
どうもありがとうございました。
配列より文字列の方が早いのかな?
(入力が)早いって事かもしれんぞ
["A","B","C"]より"A B C".split(" ")の方が、 ガーベジコレクトなんかを含めたオブジェクト管理の負荷が少なそう
変なコードには裏があるってね
>>65 たとえ文字列の中でも「</」はそのまま書いたらだめよ。「<\/」にしてみ。
それが定石。
>>70 これマジ? \\なら分かるが / は別にそのままでよくね?
HTML中の<script>タグの中に直接書く場合ってことかな?
>>71 scriptタグの中は、
<script>
この中には</が続いてはダメ
</script>
ってコーティングするルールがある。good partsとかに載ってる
コードも<\/ってなってるから読んでみな。
74 :
Name_Not_Found :2013/02/02(土) 21:31:42.71 ID:8JmUaozm
流れぶったぎっての質問お許し下さい。 google map api v2でもv3でも良いのですが、 GIconまたはGMarkerを画像を使わずcssで描く方法はないでしょうか? 画像無しのアニメーションを作りたいのです。
暇だったので script タグの中に </ があるかどうか調べる正規表現作ってみた <script\b[^>]*>([^<]*<[^\/])*[^<]*<\/(?!script) 完璧ではないが( a = "</script" みたいなのは見逃す) 自分のコード調べてみたらいっぱい見つかったorz データ専用の script タグ(例えば <script type=text/plain>) の中でも </ はエスケープした方がいいのかな
そもそもそんな長いコードは外部ファイルにすべきだろ
htmlのiframeを
<iframe src="about:blank" data-src="
http://www.hoge.co.jp/ "></iframe>
のようにしておき、以下のコードで「iframeがwindowの中に入ったらiframeの中身を読み込む」こと(遅延ロード)をやりたいと思いました。
$(function(){
$(window).scroll(function(){
$("iframe").each(function(){
var self = $(this);
var windowhi = $("body").scrollTop();
var windowlow = $("body").scrollTop() + $(window).height();
var iframehi = self.position().top;
var iframelow = self.position().top + self.height();
if(self.attr("data-src") && (((windowhi < iframehi) && (iframehi < windowlow)) || ((windowhi < iframelow) && (iframelow < windowlow)))){
self.attr("src", self.attr("data-src")).removeAttr("data-src");
}
});
});
});
これでiframeを遅延ロードすることはできたのですが、iframeを読み込んだ後に「戻る」ボタンなどで前のページに戻ろうとすると、iframe読み込み前になるだけで前のページに戻りません。これを解決するにはどうすればいいでしょう。
(firefox:18.0.1 jQuery:1.7.2)
>>75 JSの場合に</を<\/にエスケープしていいのはJS側で</に解釈してくれるからであって、
テキストの</を<\/に変換したら、そのテキストを読んで処理する側の対応が必要になるんじゃない?
>>78 仰る通りで
読み込み処理が分散してなければ修正は難しいわけではないっすが
質問です function play() { playSound('音楽ファイル場所'); } としていて音楽鳴らす タイミングをplay();を指定しています。 最盛時の音量は数字で制御出来ることはできないでしょうか? play(); volume(80); みたいに数字ではふかのですかね? わかる方教えてください。
>>81 そもそもそんな質問する時点で、君は何もわかってない
おそらく HTML5 Audioを使っているものと推測するが
function playSound(){
audio = new Audio('file path');
audio.play()
}
となっているとエスパー
ならば、audio.play() の下に audio.volume = 0.5 などとする必要がある
そもそも元の関数を書き換えればいいわけでそのplay関数は不要
83 :
Name_Not_Found :2013/02/03(日) 05:59:26.65 ID:HIMGfctU
jsで、インプットタグでアップされた画像からexif消してdataUrlに変換する方法ありませんか?
アップロードしてる時点でJSでやる必要ない はい次
>>83 FILE API ( FileReader )で画像データを読み込んでから
readAsDataURL を使うと幸せになれる
86 :
Name_Not_Found :2013/02/03(日) 18:04:53.63 ID:ccAQP894
質問です! setTimeoutで再帰ループを2個作った場合、どちらが先に処理されるかという順番の保証はありますか? また、処理内容がどちらも同じだったとして途中で順番が入れ替わるようなことも起こり得ますか?
87 :
Name_Not_Found :2013/02/03(日) 19:02:25.64 ID:ZMlctaN2
シングルスレッドだから、第二引数で指定した時間が過ぎたら 処理の待ち行列に追加されるだけで順番とかは考慮されないんじゃないか? 以前、setTimeoutを乱発すると重くなってくるからって ひとつに統合するのを書いた人いたよね?
88 :
Name_Not_Found :2013/02/03(日) 19:48:08.35 ID:ccAQP894
>>87 やはりされてないと考えるのが普通ですよね
乱発すると重くなるのなら一つにまとめるようにして順番も決まるように書いてみます
89 :
Name_Not_Found :2013/02/03(日) 22:10:19.00 ID:cutZwLLp
質問です。 javascriptを使ってジグソーパズルを作っています。 ピースの吸着のために座標と座標の距離を求める平方根を使おうと思っているのですが ドラッグされているピースの座標の取り方がわからないので教えて頂けませんでしょうか。
>>89 Element.getBoundingClientRect()
>>90 要素の絶対座標ですか…すごくそれっぽいですね!
パズルと組み合わせることは難しそうですが努力します。ありがとうございました。
(function($){ この中に正規表現で$を使う })(jQuery) において正規表現の$もjQueryオブジェクトに変わるのでしょうか?
>>77 がスルーされているみたいなので、よろしくお願いします。
%をエスケープするにはどうしたらよいでしょうか alert("\%31"); だとエラーが出てしまいます alert("%2531"); とするのは正しいのでしょうか?
alert('%31')
alert("\%31");でも別にエラーはでない 何のためにエスケープ?
エラー出たときは必ずエラーの内容を書いてくれ
function foo(){ // 非常に長いコード } があるときに foo . bind( thisObject ); を(何度も)使うのと比べて funtion bar(){ foo . call ( this ); } を別に用意して bar . bind( thisObject ); を使った方が メモリの消費量は節約できるんでしょうか?
ループの中で無名関数使うとjshintに怒られるのってそういうことなのかな
上のなし
javascriptとHTML5でゲームを作るとかの質問ってこのスレにいいのでしょうか?
>>104 このスレで合ってるけど、「〜を作りたいんですが、どうすればいいでしょうか」的な手取り足取り教えるスレでもないのでそこだけは勘違いしないよう願いたい。
>>101 明らかに下記コードの効率が悪いと思うけど、なぜ下記の方がいいと思ったのかな
JavaScriptとHTML5でRPG作りたいんですが、正直難しいと思います。 でもやりたいんです!!僕はJavaScriptとHTML5でブロック崩し(アルカノイド) ぐらいなら作ったことあります。 今のところ、オープニングまで作ったのですが、どなたか僕に JavaScriptとHTML5の基礎からすべてを叩き込んでくれませんか?? お願いします。
あのさぁ…
なぁに?
嘘で固めた文章を信用する方もどうかしてると思う
112 :
Name_Not_Found :2013/02/04(月) 21:39:28.10 ID:UA1BFfVR
>>107 必要な要素を全部オブジェクトにして
ユーザの操作などをイベントとして受け取り
オブジェクトのパラメータを変更して
HTMLノードとしてドキュメントに配置して
スタイルを変更して動かせばいいよ
これで85%ぐらいは叩き込んだから
必要なメソッドとか、残り15%はググって調べてくれ!
教えてちゃんにやさしいな
114 :
112 :2013/02/04(月) 21:45:25.37 ID:UA1BFfVR
少し書き忘れた アニメーションとか、時間をキーにして数値を変化させる場合は setTimeoutかsetIntervalを使うといいよ ユーザデータを保存したいときは、AjaxするかWebストレージとかに記録するといいよ これで85%だな
優し過ぎるわぁー
116 :
きら ◆Kira.u9zNc :2013/02/04(月) 22:17:53.55 ID:XhGuvv3Y
kao["hoge"] = new Array("fuga"); をオブジェクト?(配列)にして、 document.write = "kao[document.ime_a.text.value][0]"; <FORM name="ime_a"> <INPUT type="text" name="text" value="fuga"> </FORM> みたいな風に呼び出す方法を教えてください
new Array()に文字列渡してるし、何がしたいのか全く分からん
118 :
Name_Not_Found :2013/02/04(月) 22:21:33.37 ID:UA1BFfVR
>>116 ダブルクォートを外せばいいと思うけど
document.writeしたらformとか全部消えちゃうけどいいのかね
何をどうしたいのか、を5W1Hに気を使って
もう一度書いてみると、色々見えてくるかもしれないよ
119 :
きら ◆Kira.u9zNc :2013/02/04(月) 22:26:39.61 ID:XhGuvv3Y
>>117 kao["hoge"]という変数を作って、kao["hoge"][0]を呼び出すと"fuga"が帰ってくるようにしたいんです
そのあと、
HTML↓
<FORM name="ime_a">
<INPUT type="text" name="text" value="fuga">
</FORM>
JS↓
document.write = "kao[document.ime_a.text.value][0]";
でページにfugaと記入されるようにしたいんです
どうすればいいですか?
120 :
Name_Not_Found :2013/02/04(月) 22:37:27.06 ID:UA1BFfVR
>>117 それはいいなじゃね?
初期要素が1個だけ渡されて配列作ってるんでしょ
>>106 bind() が呼び出される度に新たな function のインスタンスが生成されるので
本体のコードも一緒に複製されてしまうのだろうか?
と思ったわけです
(C++ のテンプレートから別々のオブジェクトコードが生成されるのと似た意味で)
122 :
Name_Not_Found :2013/02/04(月) 22:43:29.68 ID:UA1BFfVR
>>119 何がわからないのかを書いてほしいなあ
<FORM name="ime_a">
<INPUT type="text" name="text" value="hoge">
</FORM>
<script type="text/javascript">
var kao = {};
kao["hoge"] = new Array("fuga");
document.write(kao[document.ime_a.text.value][0]);
</script>
jsでゲームなら、JSの表現力を確かめるためにenchant.jsぐらい触ってみたほうがいい その後Three.jsやCanvas使って計算速度に絶望するがよい
var get_json=$.parseJSON(msg);でjson形式の文字列を オブジェクト化してnullを抜き出す時に get_json["a"])="null"になってしまいます。 get_json["a"])=nullにならないのですが、どうしたらいいのでしょか?
パースしてる元のほうが間違ってるんじゃないの JSON.parse(msg)でも同じ事起こるなら元の文字列を直す必要がある あとget_jsonという動詞句の変数はよろしくないので そこは json だか 文脈で判断するなら parsed のがいい
Javascriptが自在にコーティングできる男になったら彼女ができますか?
そりゃもうアナタ決まってるじゃないですか
アセンブラとCも完璧にしとけ
130 :
Name_Not_Found :2013/02/06(水) 14:59:27.65 ID:W8A0vfvQ
もしものときに備えてマシン語を
どうせ誤解されやすいのでJAVAも
せっかくだしBrainfuckとWhitespaceも
言語なんて何でも良い。アルゴリズムがわからないと異性へのアッピールに欠ける。
マジレスするとHTML/CSSの勉強会は女の子多いよ そして同じJSでもnodeとフロントエンドの勉強会じゃ女子比率が2割ぐらい違う
135 :
Name_Not_Found :2013/02/07(木) 08:05:28.64 ID:PAW0yyn2
女の子多い勉強会ってなんだよ! 「じゃあ、ここで僕のインスタンスを君のなk 「言わせねーよ!?」 とかやるのかよ!
質問いいですか?
>>136 いつでもいいよ。
ここは質問スレなんだから。
ファイルのダウンロードでは通常IEでは ダウンロード後、開くかあるいはフォルダを指定して 保存するかを選ぶダイアログが出ますが これをそのようなダイアログが出ないで 直に保存するフォルダを指定するダイアログが 出るようにすることはできますか? JavaScriptならできるかもと思いまして質問しました。 よろしくお願いします。
>>138 出来ません。
出来たらセキュリティ上の脆弱性になります。
発想が怖いんですが、最終的に何をしたいのですか?
>>139 ですよねー。
ちなみにどのような脆弱性がありますか?
マウスカーソルがウインドウから確実に外れた事を検知したいのですがどうしたらよいでしょうか window.addEventListener("mouseout",function(e){ console.log("out",e); }); でいいかなと思ったのですが、ウインドウ内で右クリック→そのままマウスをウインドウから外す とするとイベントが反応しませんでした。
142 :
Name_Not_Found :2013/02/07(木) 15:42:11.63 ID:PAW0yyn2
>>140 お前のシステムフォルダに、俺様のファイルをぶち込んでやろうか!
※デーモン小暮の口調でお願いします
>>142 勝手にダウンロードされるという意味ではなくて
フォルダを指定するダイアログを開きたいということなのですが。
144 :
Name_Not_Found :2013/02/07(木) 18:57:59.18 ID:PAW0yyn2
「保存ダイアログが開くから、デスクトップに保存してくださーい」 「はい」ポチ 「では、デスクトップに保存された今のファイルを開きますー」 「先生、ファイルがありません」 「ん?さっきちゃんとデスクトップに保存した?」 「わかりません」 「じゃあどこに保存したの?」 「わかりません」 ていう光景を何度見てきたことか
それって脆弱性になるの? なんか違わないですか?
すまん今日から始めたんだが text = 1 function a(){ document.write(text) ; text = text + 1 ; } setInterval("a()",1000); これは無理?form作ってバリューに入れるしかない?
完全に読み込まれた後にdocument.writeすると白紙になるってことならその通り formじゃなく<div>でいいならコレ document.getElementById("a").textContent = test; <div id="a"></div>
>>147 text = 1;
function a(){
document.getElementById("a").textContent = test;
text++;
}
// --></script>
<div id="a"></div>
<script language="JavaScript"><!--
setInterval("a()",1000);
// --></script>
すまんこれで何も表示されない何か違う?
ああtextだったのかwスマン
>>143 その種の指定はOSやブラウザの環境設定の役割で
スクリプト側からはどうしようもない
前に保存したフォルダを優先的にファイルダイアログに
表示してくれるブラウザまたはOSも中にはあるが
サイトごとに優先的な保存先フォルダを個別に覚えてくれるような
細かい配慮までされてるブラウザはまだないかと
ダイアログに優先表示されるディレクトリに
予め許可済みの何種類かの総称的な保存先
(例えば「ダウンロード」「デスクトップ」「以前の保存先」)
を指定する機能くらいなら、あまりセキュリティ問題には
ならないかもしれないが、実装されるためには
それなりの需要と「総称的な保存先の種類」についての合意が
確立される必要があるだろうから、まだまだ先の話だろう
textarea の位置を動的にすることってできますか? 上から 20% の位置、高さは 80% みたいに ブラウザのウィンドウの大きさを変えると textarea の大きさも変わるようにしたいのですが。 どなたかよろしくお願いします。
153 :
Name_Not_Found :2013/02/07(木) 22:12:12.67 ID:PAW0yyn2
>>152 スタイルシートの話はこのスレじゃないかもです
154 :
152 :2013/02/07(木) 23:46:41.38 ID:???
>>153 document.body.clientHeight を取得して onresize で textarea.style.top = どーたら
みたいなことをやったりしたんだけど全然うごいてくれないんだ。
css だけじゃたぶん無理、というか javascript が出来る人に聞いた方がいいかなと。
>>152 ,154
それは↓とはどう違うの
textarea {
position: absolute;
top: 20%;
height: 80%;
}
先生!javascriptのif文とかwhile文とかとつかったコーディングがうまく組めず、そろそろハゲてきそうなんです! ここでコーディングの助言を乞うてもいいんでしょうか先生!
向いてない
>>158 だって最近勉強しはじめたんだものおおおおおお。
いいわけですよねすいません!
すごろく的なイメージで、0マス目からスタートして、10マス目まで歩を進めていく的な処理をさせたいんです!
ルールとして、移動は1マスずつで、1マス進む、進まない、1マス下がるというサイコロで移動をして、
10マス到達までにかかるターン数と過程を表示するみたいな文を組みたいのです・・・
だれかヒントだけでもください先生!
向いてる人はそんなのは一日目で組めてしまう つまり向いてない
それ Excel でできるよ
それアセンブラでできるよ
>>160 ですよねー・・・自分の理解力のなさに泣けてきます・・・
>>161 Excelも素敵ですけど、javascriptで組んでサイトに組み込んだりしてみたいんです!
>>162 アセンブラ?ってなったので調べてみましたけどよくわかりませんでした!理解力のない俺氏ね!
まだ自分を諦めたくないので、もうちょっといろいろサイト等を漁ってがんばってみることにします・・・
みんなこんなのをさらって組めるんですよね・・・すげぇよ!ばかあああああ!
フローチャートでもかいてみたら
>>164 フローチャートググって書いてみました!迷路が完成しました!
これがちゃんと書けないと理解してないって事な気がしてきたので、がんばってみます!
166 :
Name_Not_Found :2013/02/08(金) 20:14:35.72 ID:ABVKLaRh
>>159 ルールとかどうでも良いから
5W1Hに気をつけて(まあwhyはいらんかも知らんが)
始まりから終わりまでの一連の動作を書いてみて
そのゲームだかなんだかわからないけど、それのことを
まっっっったく知らない人が聞いても理解できるように
必要な要素を抜かさないように
function foo(){ … } var object = { … } var bar = foo.bind( object ) となっていたときに (bind は Function.prototype の bind) 1) bar が bind で作成された関数なのか通常の関数なのか判別する 方法として (typeof や instanceof Function の結果はチェック済みとして :通常の関数と同じ) typeof bar.prototype === "undefined" だけで十分ですか? 2)bar のみから foo や object を得る方法はありますか?
>>167 訂正
typeof bar.prototype === "undefined" だけで十分ですか?
↓
b.prototype === undefined だけで十分ですか?
無駄に回りくどい書き方してすいません
169 :
Name_Not_Found :2013/02/08(金) 21:45:23.62 ID:TUxXoB+R
スクロールバーを動かしたときに、スクロールバーの位置にあわせて<div>要素が移動するパララックスサイトを作ろうと思ったのですが、 スマホだと画面をスクロールさせて、しばらくしないと<div>要素が動いてくれません。 使っているスマホはXperiaAXで、かなり新しい機種かと思うのですが、なぜこれほど重いのでしょうか? <div>要素は18個配置しています。 皆さんは速度的に幾つまでなら配置可能と考えますか?
>>166 丁寧にありがとございます!
ゲームをつくるというわけではなく、確率が絡んだシミュレーターを作ろうと思ってたとこだったもので、
質問する際にわかりやすいかもしれないすごろく的な説明で質問をしてみたという感じでした!
要は、一連の動作のフローチャートを、他人が見ても理解できるように、必要な要素抜かさないように書き上げてみろってことですよね?
他の方の質問がおされすぎて、あたしの質問がしょぼい上にスレ違いな気がしてきました・・・
そうでしたら、ここでうだうだレスしてるのは板汚しになりそうなので潜りまする・・・
171 :
Name_Not_Found :2013/02/08(金) 22:48:57.41 ID:ABVKLaRh
>>169 重いのではない
スマホのブラウザをスワイプして動かしているのは、viewportだから
viewportを動かし終わってから、スクロール位置がスコッと切り替わってる感じ
172 :
Name_Not_Found :2013/02/08(金) 22:53:05.18 ID:ABVKLaRh
>>170 誰(どのオブジェクトやプロパティ)が
いつ(どのイベントで)
どこで
どのように
(なぜ)
などを、人に説明できるようにきちんと書いてみると、
意外と見えてくるものがあるから
>>172 なるほろ!フローチャート書いたことないのでこっちのが考えを整理するのによさそですね!
見えて来いあたしのコーディング!
うざい失せろ
<!--[if IE]> <script type="text/javascript"> document.createElement('header'); document.createElement('section'); </script> <![endif]--> これってhtml5に対応するためだと思うんですが、変数とかDOMに代入しないでいいんですか?
いいんじゃないの 何か使うわけじゃないし
これでいい理由はなんですか?これ意味あるんですか?
古いIEでHTML5の新要素にCSS適用できるようにするハックみたいなやつじゃないかな なんでこれで効くのかはマイクロソフトに聞いてください
181 :
Name_Not_Found :2013/02/10(日) 12:34:44.19 ID:pPKYaLg4
多分jsじゃないかなぁということで質問したいんですが、 プロフィール情報とかの確認画面があって、ぱっと見はDBから抜き出したデータを 出力表示してるだけなんだけど、例えば年齢の数字部分をクリックするとそれが入力フィールドに 切り替わるようなトリックを時々見かけますが、あれはどうやってるんでしょうか
>>181 こういうのですか
<!DOCTYPE html><html><head>
<title>???</title>
<script type="text/javascript">
function test() {
document.getElementById('d0').innerHTML = '<input type="text" value="111">';
}
</script></head><body>
<table border="2"><th><div id="d0" onclick="test()">111</div></th></table>
</body></html>
onclick属性厨きめえ
184 :
Name_Not_Found :2013/02/10(日) 14:03:07.84 ID:pPKYaLg4
>>182 そういうのなんですけど、それをスクラッチで何百こも書いてくのは現実的でないんで
何かそれ用のプラグインとかあるのかなぁと…
ないのかな〜
>>183 onclickだとどういう点でマズいんですか?
要素に直接onclick書いてくと修正が大変とかそういう意味?
>>184 click ならバブリングするから document に定義してもいいし、querySelecorAll なりで該当要素全てに addEventListener してもいい
あと、click じゃなくて focus でもいいんじゃない?
186 :
185 :2013/02/10(日) 14:46:06.53 ID:???
click はキーボード操作に対応できないから focus の方が良いと見られる向きはある
>>184 どうやってもいいんだけど、全部onclick書く替わりにロード時にまとめてつける
ようにすればいいんでしょ。あなたの最初の質問に「何百もある」という要件は
無かったから後出しになってることは認識してる?後出しな質問する奴は帰れ。
<!DOCTYPE html><html><head>
<title>???</title>
<script type="text/javascript">
function init() {
var s = document.getElementById('t0').getElementsByTagName('DIV');
for(var i = 0; i < s.length; ++i)
if(s[i].className == 'x') s[i].addEventListener('mousedown', test, true);
}
function test(evt) {
var s = evt.target.innerHTML;
evt.target.innerHTML = '<input type="text" value="' + s + '">';
evt.target.removeEventListener('mousedown', test, true);
}
</script></head><body onload="init()">
<table id="t0" border="2"><tbody>
<tr><th><div class="x" >111</div></th></tr>
<tr><th><div class="x" >122</div></th></tr>
<tr><th><div class="x" >123</div></th></tr>
</tbody></table></body></html>
>>181 contenteditable 属性を付ければ楽だよ(古いブラウザは不可だけど)
だからトリック自体には js は不要
フィールド編集後の処理は必要だけど( onchange イベントとかで)
>>185 focusにはtabindex属性が要るかと
多数の contenteditable 属性が必要な場合はdocument 等で
clickイベントをキャプチャして event.target が目的の
フィールドなら(例えばtabindex属性が付いている、など)
contenteditable 属性を動的に与える、ようなやり方は考えられる
動的に与えてもブラウザがちゃんと反応してくれるのかどうか
確認してはいないが
>>183 onclick 等の属性ハンドラは使うのも説明するのも手軽だし
ライブラリ等による機能拡張を考えなくてよい所では
リスナ管理も簡単になる点で有用
>>187 184 は「常識的に」全部onclickしてるとは思えないと考えたのだろう
そもそも質問時には何が本質的なのかわかっていないか、
または、予測できない、したがって決めつけるべきではないのが
当たり前であって、それを帰れとは何様かと?
私はESPじゃありませんので。じゃあESPのあんたが答えたげたらいいじゃん。
先に回答されちゃったから怒ってるんだな
答えられないのに出しゃばるから
「何が分かっていないのか」を正確に把握するのは難しいかもしれないが、 せめて「自分がやりたいこと」と「自分が今できていること」くらい正確に書いてくれないと 的確に答えられないだろ 「自分がやりたいこと」を正確に書いてないのに、回答に対してそれは違う、実はこうだった なんて後出しされたら不快に思うのも当然だと思うんだが
曖昧なところがあるなら質問して聞けばいいのにそれを無視して先走って回答するからそうなる
解答に対して「それだとこういう場合は問題ないですか」って言うのがあと出しなのか? カリカリしすぎだろ
底辺同士で喧嘩すんなよw
197 :
Name_Not_Found :2013/02/11(月) 16:28:43.62 ID:x8DqGvhS
198 :
Name_Not_Found :2013/02/11(月) 16:29:45.61 ID:x8DqGvhS
window.onload内でdocument.documentElement.clientHeightを参照すると、 ブラウザ立上げ時だけIE8で0に、element.offsetHeightも変な値(実際の高さと異なる値)になってしまいます。 window.onloadを抜けた後またはリロード時は正常な値が入っています。 IE7では起こらないんですが、この現象をご存知の方、また良い対処法ってあるのでしょうか。 ちなみに私の対応策としてonload内でsetTimeout(func,0);を呼び、func内で上記の値を取得するとうまくいくのですが、 それでもたまにエラーになります。"たまに"エラーになるというのが私をさらに混乱させています。
>>200 さん
ありがとうございます。バグですかね。setTimeout(func,100)でやってみます。モサいけどw
英語力が低いんで自信ないけどMSDNの方では、 ローカル環境でなおかつExplorerで対象のhtmlファイルを ダブルクリックしたときにこのエラーは起こると言ってる気がするので サーバーにあげれば問題ないってことかな?
203 :
Name_Not_Found :2013/02/12(火) 09:11:46.92 ID:pKoWgaHq
document.oncontextmenu = function(){ return false; } で右クリックは無効になるけど、このあとに document.oncontextmenu = function(){ return true; } とやっても右クリックが有効にならないのは、なぜ?
204 :
Name_Not_Found :2013/02/12(火) 10:49:54.21 ID:LfTNR9nK
別に右クリ自体をどうこうしてるわけではないんでないかい? ちゃんとtrueを返していると思うよ プログラムは書いた通りにしか動かんぜよ
205 :
Name_Not_Found :2013/02/12(火) 14:18:07.93 ID:EC8VY/Jn
【競技体操】間違いを探せ!【ロリちゃん】 www.nicovideo.jp/watch/sm20051507
パソコンの大先生ゆうすけがパソコン遠隔操作による脅迫で 威力営業妨害でタイーホされたが、 もしかしたら、このスレの質問に答えていた人の中に ゆうすけがいたのかもしれんな。
派遣先の港区のITって渋谷のとこでしょ(たぶん) 渋谷ではブラックが過酷過ぎて自殺者が続出したから労働監督署に徹底指導を受けてたんじゃなかったの?
208 :
Name_Not_Found :2013/02/12(火) 17:47:10.03 ID:S3Du03Wn
>>207 社内では労基にバレないような勤怠管理の記入の仕方など
徹底指導されてたんだろうな
209 :
Name_Not_Found :2013/02/12(火) 17:55:24.67 ID:FM/llzBD
ある関数に与えられた引数の元オブジェクトを知る方法ってありますか? 例えばfuncっていう関数があったとして func(this.x); と呼び出した場合、引数xを持っているオブジェクトthisを知る方法です。
211 :
Name_Not_Found :2013/02/12(火) 17:58:04.78 ID:FM/llzBD
すみません、言葉が足りてませんでした。 func(this.x)よ呼び出したとして、このfunc関数内部でthisを知る方法があれば教えて下さい。 func(object.x)とした場合は、objectを扱いたい感じです。
212 :
Name_Not_Found :2013/02/12(火) 17:58:37.52 ID:FM/llzBD
>>210 ありがとうございます。
すぐに返答が得られるとは思ってませんでした。
インスタンスを触りたかったらインスタンスを渡すのが引数だw
>>211 それやりたかったら、func(object)で渡して関数内でobject.xを拾えば良いのに…。
215 :
Name_Not_Found :2013/02/12(火) 21:59:29.87 ID:r9oTZqWM
FirefoxのアドオンFireGesturesを使って、 FirefoxのJavaScriptをオンオフ切り替えるものを作るのは可能でしょうか 基本オフにしておいて、一時的にオンにしたい場合に手軽に切り替えられるように勉強を始めましたが、 そもそも出来なければ勉強しても目的は達成できないので ※FireGesturesとは、マウスジェスチャーに様々な動作を設定するアドオン JavaScriptで記述して、任意の機能を追加できる
217 :
Name_Not_Found :2013/02/12(火) 23:13:15.43 ID:S3Du03Wn
>>215 >そもそも出来なければ勉強しても目的は達成できないので
いやいやいやいや
可能かどうかも学ぼうよ
JSの変数を16進数でHTMLを使って、表示でしたいのですがどうすればいいのでしょうか?
219 :
Name_Not_Found :2013/02/13(水) 01:33:56.02 ID:RiHmJBfG
toStringでどう?
C言語なら printf("%x",a); で、16進数表示が出来ますが、javascriptとHTMLを使った場合はどのようにすればよろしいのでしょうか?
>>219 ありがとうございました
a=a+a.toString(16);
で出来ました。
桁数を揃えることってできますか?
a=a.toString(16), でした
a="0000000000" + a.toString(16).right(10);
何がどうHTMLなのか、高尚すぎて俺には理解できなかった・・・
>>226 すいません
まだJSもHTMLもさわり始めてから、一日目なんで、どうゆう形でJSからHTMLにデータが渡されているかわからないもので、、、
桁合わせの件をもう少し詳しく教えていただけませんか?
また、先ほどのやり方で16進数に変換した時に、2の補数で変換されてしまい、マイナスの符号がついてしまいます。unsigedで変換できませんか?
a=("0000000000" + a.toString(16)).slice(-10); unsigedで変換したいならunsigedで渡せよ
229 :
219 :2013/02/13(水) 17:47:12.14 ID:RiHmJBfG
>>227 >>219 が大雑把すぎた。toString()は文字列に変換するメソッドで
数値.toString(基数)
とするとその変換した文字列が返る。文字列なので
var a = 15, b = 15;
var aa = a.toString(16), bb = b.toString(16);
var cc = aa + bb;
とするとccは“ff”という文字列になっちゃう
toString()で変換されたのを数値として扱うには
parseInt(a.toString(16),16);
とかする必要がござんす
ちなみに0始まりは8進数、0x始まりが16進数
230 :
Name_Not_Found :2013/02/13(水) 17:49:26.78 ID:RiHmJBfG
>>227 あと、HTMLとJSは、大雑把には独立していると考えて良くて
JSからDOMを通じてHTMLにアクセスして内容を書き換えたりする
サーバーサイドもPhotoshopの自動処理も最近はRの簡易版みたいな統計処理ライブラリもあって色々出来て便利だわ
>>228 unsigedじゃなく
unsignedだし、
そもそもJSにunsigned型はない。
>>232 ケータイから打ったから、打ち間違いです。
なんで変数の中身を16進数で表そうとしたのにマイナスの符号が着くんだろう
234 :
Name_Not_Found :2013/02/13(水) 20:00:59.71 ID:RiHmJBfG
>>233 具体的にやった内容を、その部分だけコードで書いてみてよ
236 :
215 :2013/02/13(水) 21:06:10.57 ID:???
>>216 色々調べてみます
スレまで紹介していただいて、ありがとうございました
>>235 すべてのビット演算でオペランドは符号付き 32 ビット演算に、ビッグエンディアンおよび 2 の補数形式で変換されます。
240 :
Name_Not_Found :2013/02/13(水) 22:06:17.57 ID:SExWD56S
>>240 temp=temp|000000001;を
temp=temp|0x00000001;に修正しましたが変化なしです。
>>239 の上としたで、結果が変わるのはなぜですか?
右シフトすると一番左のビットに0が入るからマイナス符号ってことじゃないの。
上だと
-80000000
下だと
80000000
になります。
>>243 一番左に0が、入ってもブラス符号ではないんでしょうか?
一応、temp=0x80000000>
>>6 ;でもためしました
マイナスを消すことは出来ました。
なぜかは、わかりませんが
temp=temp>>>0;
をすることによって、unsignedにできるみたいです。
>>238 の違いについては何故そうなるかは、わかりませんが、、、
Cみたいに、変数の型が自分で扱える方が慣れているため、JSのように勝手に判別されるとよくわからなくなります。慣れればそっちの方が、楽なのかもしれませんが、、、
逆だったw 一番左が1だとマイナスだから 1000 0000 0000 0000 0000 0000 0000 0000 >> 1 ↓ 1100 0000 0000 0000 0000 0000 0000 0000 で -40000000
>なぜかは、わかりませんが
>temp=temp>
>>0 ;
ES5 仕様( 11.7.3 Unsigned Right Shift Operator )では、
>>> は右シフトの結果を更に ToUint32 で変換する
と記されてるから、その方法は安心して使えると思う
符号なしビットシフトしたとしてそのあと 0100 0000 0000 0000 0000 0000 0000 0000 << 1 ↓ 1000 0000 0000 0000 0000 0000 0000 0000 で、これをtoString(16)すると-80000000っていうのはなっとくできるようなできないようなw 他の言語は良く知らないけど
(0x40000000>
>>0 <<1).toString(16)
"-80000000"
(0x40000000>
>>0 <<1>
>>0 ).toString(16)
"80000000"
符号付32bit整数へ変換する論理演算と、符号無32bit整数へ変換する論理演算があるのか
temp=temp>
>>0 をしたことによって何が変わっているんですか?
変数の型が変わっているんですか?
>>252 javascriptは変数に型は無いけど、変数の中身や式の結果には型があるってわけだ
temp = 0x40000000|0x80000000; window.alert(temp.toString(16) + " " + (temp >>> 0).toString(16)); // -40000000 c0000000 こんなことになるんだ。ビット演算おもしろいなー
皆様のおかげで、ほぼ出来ました。というかこれがメインじゃないのでもうこれでいいかなとw
すぐできると思いましたが、実質丸一日ぐらいかかってしまいました。たった100行ちょっとなのにお恥ずかしいw
C言語と全然違いますね
http://jsbin.com/uzilor/5/
多分何に使うかはわからないと思いますがw
C言語をちゃんと理解してればjavascriptの奇妙な挙動もすぐ理解できるけどな 変数にいろんな型の値を格納できて、演算子の適用前後に暗黙のキャストが入ってるだけ
258 :
Name_Not_Found :2013/02/14(木) 15:46:22.66 ID:u005m3O/
機能なんかのソフトを更新してからjavascriptが無効になってますとでてきます。 スクリプトを有効にしたりして、やれと書いて或ことをやったのですがなにも変わりません どうすればいいのでしょうか?教えてくださいますようお願い申し上げます
とりあえずスレ違い 何使ってるかは知らんがブラウザのスレ行け
260 :
Name_Not_Found :2013/02/14(木) 20:28:34.10 ID:2Ge8Tenm
ユーザがフォームに入力した数値をonChangeなどで取得し、 計算結果の図形を描写したいのですが、 そのような事はJavaScriptだけで可能でしょうか? 可能だとしたらどのようなキーワードで検索すればよいでしょうか?
↑申し訳ありません。
>>259 の図形という表現が曖昧でした。
具体的には、長方形(小)のxy、長方形(大)XY を入力してもらい、
長方形(大) の中に 長方形(小) が
どんな形で内包するかを描写したいと考えています。
div要素を使って、CSSを・・・動的に変更・・・・、
などと考えていたのですが、実現方法が判りませんでした。
↑IE6でも動作する事が前提条件です。何度もスイマセン・・・。
普通に position: absolute; して、topとleftを動的に変更すればいいじゃん ていうかIE6なんてもうシェア5%以下なのにまだサポートするの?
つっても日本企業の一定数はまだIE6らしいよ サラリーマンが会社で見るようにするにはサポート必要
IEなんて糞ブラウザは完全無視でOK
ワーストソフト界の二枚看板WindowsとInternet Explorerを捨てれば世界は平和になる
>>263 ありがとうございます。
ご指定のキーワードを元に頑張ってみます。
>IEについて
当社内ではまだまだIE6は使われまくっています。
XPに標準で入っている事がでかいです。
また、社員の相当数を4,50世代が占めており、
彼らはパソコン知識に著しく乏しいです。
ブラウザの乗換なんて考えた事もないでしょう。
「フリーブラウザはサポートがあるの?ないでしょ?」
みたいな考えで使う事すら許されていません。
>>268 XP終了まであと1年とちょっとじゃないの?そろそろIE6が使われまくってるって状況はまずいんでない?
>>269 一番はシステム対応かな。
全台Windows7に更新したのにわざわざXPにダウングレードしてIE6使ってるところもある
システム更新の費用なんてこのご時世どこも出せないからね
>>260-261 作ってみたけどonchangeだとあんまりそれっぽくないような。
<!DOCTYPE html><html><head>
<title>???</title>
<script type="text/javascript">
function chg() {
var can = document.getElementById('c0'), ctx = can.getContext('2d');
var w = parseFloat(document.getElementById('t0').value);
ctx.fillStyle = 'rgb(200,100,50)'; ctx.fillRect(10, 10, w, 20);
}
</script></head><body onload="chg()"><div>
W:<input id="t0" type="text" value="10" onchange="chg()">
<canvas id="c0" width="400" height="100"></canvas></div></body></html>
げげ、描く前にクリアするの忘れてるので適当に対処してください。
無防備マンIE6でcanvas使うにはuuCanvas.jsなど
IE6はレガシーシステム専用アプリにして普段は別のブラウザ使えばいいのでは
セキュリティ的には XP をIE6 専用のバーチャルマシンにする方がいい気がする
276 :
Name_Not_Found :2013/02/15(金) 16:18:58.42 ID:n4T543lY
大手広告代理店の担当者ですら 「おい!ツイッターがIE6で動いてないぞ!」 「ツイッターはもともとIE6サポート外ですが?」 「そんなんは知らん!何とかしろ!」 てのがあったりするからなー
277 :
Name_Not_Found :2013/02/15(金) 17:46:01.53 ID:pI2yiv2n
Google Chrome Frame入れて超技術力で直しましたって言(ry
憎まれっ子世にはばかるってやつだな 不条理なやっちゃIEさんは
オレなんて個人的な趣味で作るwebサイトは全部IE非対応にした。 クソIEなんて対応なんてやめた。 グーグクロームとFFとOperaの3つで動けばOKって仕様にした。 だいたいie9ですらfile APIが実装されてないクソ仕様に付き合いきれない
同感。 10になってもconst実装してないなんでどんな糞ブラウザなんだよ
更新の遅さと自社OSに対応できないのが問題
>>271 >>273 ありがとうございます!
おかげさまでなんとか実現できそうです。
CSSをいじらずに直接タグスタイルを変更すれば良かったのですね。
HTML5ではスタイルはCSSうんぬん・・・
みたいな事を聞いたものですから、
どうしてもCSSを・・・と躍起になってました。
いいってことよ
ネットで時々下みたいなコードを見かけるんだけど、 a = (function () { return b || c; })(); これって a = b || c; と何が違うの? 何故わざわざ無名関数にするの?
難読化とか、将来もっといろいろ処理をするスケルトンとかかな。
>>285 a = b || c;
ってどういう場合につかうの?
bがあればaにbを代入、bがなければaにcを代入って意味かなと思って
かんたんなコードを書いて試したけど違ってた。
コンパイラで変換したJSとか
>>287 引数がなければデフォルト値とか、
何かに失敗したら代替値とか。
>>287 var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.moz_indexedDB;
みたいにベンダープリフィックスの吸収とか
ただ、この記法を真偽値に使おうとすると意図しない結果になることがあるので
そのときはちゃんとundefinedかどうか厳密に判定するとかにした方がいいけど。
まったく論理演算厨は有害だぜ
まだChromeじゃ引数のデフォルト値使えないのか
>>291 関数の中が特別ということはないでしょ。
コメントアウトではなく
var a;
var b='bbb';
var c=a||b;
document.write(c);
とすればbが出力される。
「var a;」がないと例外のはず。
295 :
Name_Not_Found :2013/02/18(月) 22:41:16.64 ID:7CF+JPVa
jQuary "chosen.jquery.js"を使ってセレクトボックスをカスタマイズしたところ、 var elem = document.getElementById("【セレクトボックスID】"); elem.addEventListener("change", 【処理A】, false); が機能しなくなってしまいました。 セレクトボックスタグ内に <select ・・・ "onChange=【処理A】" と書くと、このjQuaryを実現した上で、処理も実行されるのですが、 addEventListener だと機能しなくなるのは何故なのでしょうか?
>>294 懇切丁寧にありがとうございます。
たしかにおっしゃるとおりでした。
勉強させていただきました。
297 :
Name_Not_Found :2013/02/19(火) 07:10:44.82 ID:v6leebBr
>>295 むしろなぜ$とbindを使わないのかが気になるところ
>>297 まだJavaScriptを始めたばっかりで、
jQuaryを使わない書き方から始めようかと思いまして・・・。
とか言いつつセレクトボックスのカスタマイズに使ちゃってますが。
jQuaryの方も殆ど理解しておらず、
サイトからコードを丸パクリして実装した状態です。
どうやら、chosen.jquery.jsがセレクトボックス部を
書き換えているのが原因?
>>295 >>298 書き換えてるね。
これを使って実際に表示されるUIはselect要素じゃないし
これ使ったこと無いけど、公式に書いてあるのでこの通りにすれば良いのでは?
http://harvesthq.github.com/chosen/ > Form Field Change
> When working with form fields, you often want to perform some behavior after a value has been selected or deselected.
> Whenever a user selects a field in Chosen, it triggers a "change" event* on the original form field.
> That let's you do something like this:
>
> $("#form_field").chosen().change( … );
300 :
Name_Not_Found :2013/02/20(水) 15:14:42.47 ID:4PPEUukm
ちょ…chosen
英語できない子はかわいそうだな・・
お約束ネタにマジレスとな。
303 :
Name_Not_Found :2013/02/20(水) 20:59:21.75 ID:5g2BY0W6
ちょ…ちょうずん …あっとるがな!
304 :
Name_Not_Found :2013/02/20(水) 22:36:41.96 ID:v2MhQ0Fv
JavaScriptで書くのか、jQuaryで書くのか。 これはどのような判断基準で決定するべきなのでしょうか? クロスブラウザ等の事を考えると、 可能な限りは jQuary で記述していくのが賢明・・・・?
>>304 jQueryで書く⊂JavaScriptで書く
jQueryを読み込ませるならjQueryのAPIをメインに使えばいいんじゃない
jQueryでラップされていない部分(File APIとか)はどうしようもないし、
巷のjQueryプラグインは品質がピンキリだから、jQueryにこだわらず普通に書けばいい
>>122 あれ・・・なんでだろう
document.write以外の表示方法でも出来ました。ありがとうございました。
別の質問なんですが、
<script>var a = new Array("2","3","4","5");</script>
<div id="01">1</div>
この状態で1と書いてある所をクリックすると2になってまたクリックすると3になって・・・までは出来たのですが
配列がvar a = new Array("2","3");だったり
つまり要素数がいつも決まってない配列(変数a)とfor関数を使って、1と書いてある所をクリックすると2になってまたクリックすると3になって・・・を関数にする場合どうすればいいですか?
307 :
Name_Not_Found :2013/02/21(木) 00:59:45.10 ID:QIRdp3jh
>>306 配列にはlengthというプロパティがあって
そこには配列の要素の個数が書かれているから
それを上手く使ってちょ
jslintがie7,8で動かないんだがついに壊れた?
いままでは <SCRIPT language="JavaScript"> <!-- window.onload = function(){ document.getElementById('box').onclick = function(){ document.getElementById("box").innerHTML="2"; document.getElementById('box').onclick = function(){ document.getElementById("box").innerHTML="3"; document.getElementById('box').onclick = function(){ document.getElementById("box").innerHTML="4"; document.getElementById('box').onclick = function(){ document.getElementById("box").innerHTML="5"; } } } } } //--> </SCRIPT> とやっていたのが面倒なので <SCRIPT language="JavaScript"> <!-- function hukidasi(){ //ここどうすればいい } var a = new array("1","2","3","4","5") window.onload = hukidasi(); //--> </SCRIPT> としたいのです。 a.lengthなどがあるのは前の質問などで知っていましたが、それをどうfor関数などで使えばいいかがわかりません。Yahooなどで検索しようにもどんなキーワードで検索すればいいのかわからないので 質問しました。教えてください・・・
311 :
Name_Not_Found :2013/02/21(木) 02:32:04.21 ID:QIRdp3jh
>>310 ちょっとは勉強しようよ…とも思うが出し惜しみしてもアレなんで
var n = 0;
var a = [1,2,3,4,5];
fnction fn(){
n++;
return a[n];
}
ってすればfn()を叩く度にaのn番目が返ってくるじゃん?
ただこれだとnが4を超えてundefinedになっちゃうので
4を超えたら叩かない工夫とかをすれば良いよ
312 :
Name_Not_Found :2013/02/21(木) 02:33:07.01 ID:QIRdp3jh
>>310 ごめん、質問の内容に答えていなかった
検索キーワードは「javascript 入門」で
関数は叩くと表現するのか 勉強になった
314 :
Name_Not_Found :2013/02/21(木) 02:36:32.19 ID:QIRdp3jh
オレオレ用語ですすみません… コールする、ですかね
I/Oポートなんかも「叩く」って使うね。 何らかのアクションを起こす物に使うのかな。
呼び出す か 実行する と書いていたが他には
英語だとkickとか。
叩くはhitか。 call, run, kick etc.
関数ならevalだろ
叩き起こすという意味でkickが使われるなら 叩くで問題無いな
>>311-312 元コードのように、IDがboxの部分を押すと、IDがboxの部分(自身)をinnerHTMLする動作をa.lengthの分だけループする関数を作りたいので入門では無理なんです・・・
322 :
Name_Not_Found :2013/02/21(木) 16:44:56.99 ID:QIRdp3jh
>>321 いやいやいやいやいやいや
そして
>>311 では駄目かね
これも入門サイトで十分学べる範囲なんだけど
323 :
Name_Not_Found :2013/02/21(木) 16:45:40.00 ID:QIRdp3jh
>>321 また書き忘れた…
forループいらんだろ
俺も関数叩くって言っちゃうな。
なんか投げるとかキックとか叩くとか殺すとか結構粗雑なの多いよな。
>>321 そもそも入門書を理解できてないから応用できないんだよ。
躓くたびに人に聞く訳にはいかないし、入門書からちゃんと勉強しなおしたほうがいいと思うよ。
>>321 <script>var a = [2, 3, 4, 5], i = 0;</script>
<div onclick="if (i < a.length) { this.innerHTML = a[i++]; }">1</div>
326 :
Name_Not_Found :2013/02/22(金) 01:25:17.75 ID:T183GN9Q
おまいらやさしいな
327 :
Name_Not_Found :2013/02/22(金) 07:47:03.51 ID:+cbeOiWn
もうJavaScript勉強せずに、jQuaryだけでいいんじゃないかな。 とか思ったJavaScript初心者なのですが、 jQuaryの弱点とはどのようなものがありますか?
スペルを間違えられる
jQueryだけとかAT限定免許みたいなもの
それ以前に
>>327 はPC初心者だろ
queryという言葉を知ってれば、このスペルミスはあり得ん
queryという言葉を知らなければPC初心者って頭おかしいんとちゃいます?
332 :
Name_Not_Found :2013/02/22(金) 12:18:45.72 ID:pjRjXYsV
>>327 別にjQ単体は万能なわけではないし
プラグインは本当に玉石混淆
人の用意したものを組み合わせただけで満足できればそれでいいんだけど
ほんの少しでもそうじゃなければ、JSの理解は必要だろうなあ
「これだけで安心英会話!」みたいな本だけを頼りに海外旅行に行くと
ホテルのチェックインや店での支払いは、その本の通りに出来るけど
それ以外の会話は出来ないじゃん?
そんな感じ
jQueryは、こういう条件の要素にはこうみたいな、いわゆる宣言的に書けるのがよいな。 逆に、DOMを直接扱っていた人がjQueryを初めて使うと $('div').each(function() { $(this).css('background-color', 'red'); }); みたいに書いてしまうんでは。 $('div').css('background-color', 'red'); でOKね。
334 :
Name_Not_Found :2013/02/22(金) 14:35:51.35 ID:R6fz1KnI
見透かさないでー! jQuery以前からやってた人は、というか自分は、ライブかどうかを意識しつつ var div = $('div'); って書いて、場合によっては個数を数えてから使ったりするかも 何度も同じクエリセレクタ?を書くのにものすごく抵抗がある たぶんやらんでいいこと結構やってそう…
>>331 ×PC初心者
○プログラミング初心者
これでいいか?
336 :
Name_Not_Found :2013/02/22(金) 16:07:14.53 ID:R6fz1KnI
キューという言葉は知ってて使っていたけど queue=キューだと知ったのは最近ですすみません
くえっくえって読んでた
qwっうぇwっうぇ
function MyFunc(){ }
340 :
Name_Not_Found :2013/02/22(金) 20:26:36.08 ID:+cbeOiWn
スイマセン。なぜか途中で投稿してしまった・・・ 自分自身のプロパティのみを出力するプロトタイプを作りたいのですが可能でしょうか? ↓こうすると自身のプロトタイプ中身まで出力してしまいました。 function MyFunc(){ this.AAA = aaa; //ここだけを出力したい this.BBB = bbb; //ここだけを出力したい/ } MyFunc.prototype.MyInfo = function(){ for (var prop in this){ console.log(prop + ":" + this[prop]) } };
>>340 if (this.hasOwnProperty(prop)) { console.log(prop + ":" + this[prop]) }
>>341 かぁ〜!こんなメソッドがあるのですね。
勉強になりました。ありがとうございます。
今まではプロパティの数を超えたらbreakする方法でやってました・・・。
ヒュー その発想はすげぇぜ
if(true){ alert("unko"); } ←ここ else{ alert("unk"); } Ecliseさんが↑ここに セミコロン打てよ。って警告してくるんですが、こんなところにセミコロンて必要なんですか?
自己解決。↓こーしたら警告消えました・・・ if( true ) { alert("unko"); } else { alert("unk"); } フォーマッターのプロファイルにしているGoogle JavaScript Styleの仕様のようでした
いやいやいや!やっぱ警告でるよ! やっぱりJavaScriptだと厳密には入れたほうが良いのでしょうか? if( true ) { alert("unko"); } else { alert("unk"); } ←ここ;いれろ
>>346 } の後ろに ; 入れろとか頭おかしいよ。そのフォーマッター捨てるべき。
そのフォーマッター、配列と勘違いしてるんじゃね 配列の場合は入れるけど、ifで入れるってのは無いと思われ
配列というかオブジェクトだな
内部クラスの実装についてベターな記述があれば教えてください。 こういった方法のほうが速度が速くなる、記述量が少なくなるなどだけがあればありがたいですが、 個人的にこういう書き方が好き、見やすいといった回答でも構いません。 現状、以下のように記述しているのですが構造が分かりづらくスマートさに欠けるように思えます。 var ClassA = function() {/*ClassAコンストラクタ*/}; ClassA.prototype = { /*ClassAのメソッド*/ ClassB : function() {/*ClassBコンストラクタ*/} }; ClassA.prototype.ClassB.prototype = { /*ClassBのメソッド*/ };
ご教授願います 【環境】OS:7 IE9 chrome v24 【何をしたのか】自身のWEBトップページを別窓でリサイズして表示させたいです。 【エラーメッセージ】別窓表示、リサイズはされているのですが、永遠とリロードを繰り返すような状態になり、正常に表示されません。 【期待する結果】リロードをやめさせたい、正常に表示させたいです。 【サンプルコード】$(function(){ window.open("index.html", "new", "width=1200,height=700"); var moveX=30; var moveY=150; window.moveTo(moveX,moveY); }); よろしくお願いします。
>>351 未検証だけど
$(function(){
if(!window.opener || window.opener.closed){
window.open("index.html", "new", "width=1200,height=700");
var moveX=30;
var moveY=150;
window.moveTo(moveX,moveY);
}
});
>>350 ClassAのメソッドからだけ使えるClassBコンストラクタを作りたいならこんな感じ?
var ClassA = function() {/*ClassAコンストラクタ*/};
(function() {
ClassA.prototype = {
/*ClassAのメソッド*/
};
var ClassB = function() {/*ClassBコンストラクタ*/}
ClassB.prototype = {
/*ClassBのメソッド*/
};
})();
まあでもvar ClassA=...;も即時関数の中にいれて、
即時関数の中からClassAだけをグローバルスコープに公開するとかの方が普通かな?
>>352 うおおおお!!!
こ、これです!ありがとうございます!
ちなみになのですが、この方法だと別窓トップページとは別に親窓にもトップページが表示されてしまい、トップページ表示が計2ページになってしまうのですが、
別窓出現時、親窓は変化させない、もしくは親窓を閉じる方法などありますでしょうか?
>>354 $(function(){
if(!window.opener || window.opener.closed){
var newWindow = window.open("index.html", "new", "width=1200,height=700");
if(newWindow){
window.close();
var moveX=30;
var moveY=150;
newWindow.moveTo(moveX,moveY);
}
}
});
でも、結局親窓を閉じるんだったら、
新たに開くんじゃなくて元々のやつをリサイズ・移動したほうがいいのでは?
あと、そもそも window.open, window.moveTo, window.resizeTo とかは
ブラウザによって使用が制限されてる場合が多いから
よっぽどのことがない限り使わないほうがいいと思うけど。
>>355 うおおおお・・・!!!あなたは神か・・・
IEでうまく動きました!重ね重ねありがとうございます!
元々のやつをリサイズ・移動しようとしたのですが、IE chromeともに元々のやつに複数個のタブが
あると、リサイズ・移動がされなく、それだったら別窓にとなりますた・・・。
クリックしたら勝手にリサイズされるサイトって何年前によくあったものだったかな?w
ウィンドウ位置とサイズを勝手に変更されることほど不快なことはない
359 :
Name_Not_Found :2013/02/23(土) 18:32:05.86 ID:9bksOlEV
ものによるんじゃね? 小さいウィンドウがポコポコ開いて その中を通してコンテンツが移動するのは良かった googleのプロモーション?かなんかのやつ
x,y座標を指定するとなめらかにスクロールしてくれるライブラリってあります? よくあるのはリンクのクリックイベントの置き換えばっかりで…
361 :
Name_Not_Found :2013/02/23(土) 19:52:13.18 ID:9bksOlEV
$('html,body').animate({ scrollTop : [x座標], scrollLeft : [y座標] }); ではいかんの?
>>361 ありがとうございます。
これってJQueryですか?
調べればわかるんじゃない
364 :
Name_Not_Found :2013/02/24(日) 05:43:25.50 ID:u1btdtkq
>>362 そう
今時だったら$で始まるのは九分九厘jQueryと思って
365 :
Name_Not_Found :2013/02/24(日) 08:09:34.17 ID:hQb/IINE
(1).function funcA(){ 処理 } (2).var funcA = function(){ 処理 }; (1)なら宣言の上の方からでも呼び出す事が可能。 だとすると、(2)を使うメリットはあるのでしょうか?
>>365 関数を条件によって変えたいとき、関数宣言は使えない
if (true) {
function A() { return 1; }
} else {
function A() { return 2; }
}
A()の結果は、Firefoxだと1、それ以外だと2になる
仕様上は構文エラーなので、どうなるかは実装依存
変数に関数式を代入する形なら問題なし
>>366 ありがとうございます。
C言語の簡単な知識程度しかないのですが、
グローバル関数で使用したいか、
ローカル関数で使用したいか、で使い分ける。
という解釈で合ってますでしょうか?
>367 合ってない。
関数を条件によって変えたいとき、関数宣言は使えない 違いはコレだけなん?
function A() { A = function () { return 2; } return 1; } A(); //1 A(); //2 とか?
371 :
Name_Not_Found :2013/02/24(日) 17:19:21.29 ID:rnfxPFFz
ver fn = function(){}; obj.addEventListener('click',fn); if(条件) fn = function(){ /* huge */ }; else fn = function(){ /* fuga */ }; 一般的かどうかはわからんが 自分はこうな感じで使うことがあるな
右辺に関数名書けばいいから使えないってわけでもないけれど
373 :
創価連合 :2013/02/24(日) 18:25:33.66 ID:2phY8sZJ
詐欺師栗林正明が討ち滅びました 犯罪者小嶋滝久が孤独死しました 精神障害者橋本ゆきのりが撲殺死にました 妖怪人間神田達行が自殺ました 極悪福井一家が崩壊しました 借金魔王長岡章が自殺しました 内部アンチの柏崎まさかつの本性がバレました 盗人鈴木ひでゆきが警察に捕まりました 大変におめでとうございます
最近フォームの項目を途中まで入力した状態で ハイパーリンクを踏んだりブラウザの戻るボタンで移動しようとした時に 「途中まで入力しています、このまま移動しますか? 移動する/このページに残る」みたいな アラートが出るサイトが多いんですが、あれはどうやってるんでしょう 何かそれ用のプラグインだかライブラリだかあるんでしょうか
375 :
Name_Not_Found :2013/02/24(日) 20:38:28.71 ID:JJkdhTXE
すみません、sageちゃったんでageます
>>376 どうもありがとうございます
そのイベントの発生時にinput他のvalueをチェックする感じでしょうか
試してみます、ありがとう
【環境】Windows8, Firefox19 【何をしたのか】PHPからencodeした二次元配列のJSONからデータを取り出したい。 【期待する結果】array[0].userNameでGimをリターンして欲しい。 【サンプルコード】 //データを取り出したいJSONのサンプルです。 [ { "userName": "Gim", "password": "gim", "name": "gim", "accountType": "1" }, { "userName": "Jack", "password": "jac", "name": "Jack", "accountType": "2" } ]
379 :
378 :2013/02/25(月) 00:31:32.54 ID:???
すみません、説明が不足していたので補足させてください。 PHPからjavascriptにデータを渡すのにajaxのgetメソッドを利用しようと 試しに下記のようなfunctionを書きましたが、うまく実行されません。 間違っている部分をどうかご指摘いただけないでしょうか? $.ajax({ type: "GET", url: "/test2.php", dataType:"json", success: function(array) { alert(array[0].userName); }; });
>>379 ・"GET"の後にカンマがない
・関数式の後に不要なセミコロン
各ブラウザでエラーコンソールを表示する方法を確認しよう
381 :
378 :2013/02/25(月) 01:36:33.32 ID:???
回答ありがとうございます、 ご指摘いただいた点を修正してみましたが、やはり動きません。 二次元配列の習得は本当にこれでいいのでしょうか? array[0].userName) ブラウザーでのデバッグを試してみようと思います。 ありがとうございました。
>>381 プロパティの辿り方はそれで問題ないよ
$.ajax(というかXMLHttpRequest)は基本的にローカルだと動かないけど、
それが原因だったりしないかな
うまく実行されないって言われても意味不明なんだよなあー
ブラウザのコンソールを見てないってのが信じられない FirefoxだったらFirebugも入れてAjaxの通信をチェックするのも当然だろ
>alert(array[0].userName); のまえに alert(array); をみてみるべきだろう。 alertよりコンソールに出す方がいいけど。
386 :
Name_Not_Found :2013/02/25(月) 05:19:58.25 ID:7QRlEkj3
まあ他の言語をずっとやってて 初めてJSやります、って話ならわからなくもないが JSコンソールを使えとか 「うごかない」じゃわかりませんって テンプレに書いてなかったっけ?
387 :
378 :2013/02/25(月) 09:59:31.06 ID:???
本当に申し訳ありません、皆様のおっしゃるとおり私の不勉強でした。
エラーハンドリングも行い、コンソールも確認してはいたものの、
なぜか何のエラーメッセージも帰ってこないため原因に検討がつかず途方にくれておりました。
ブラウザー上でデバッグを行い、dataTypeの部分を削ったところ、平文のテキストとしてはAJAX通信で読み込めたので
そもそもjavascriptが
>>378 のJSONをJSONフォーマットだと認識していないのが原因のようです。
evalでJSONに変換することも不可能でした。
フォーマットに問題があるのかと思い、
>>378 のJSONを下記のサイトでチェックしましたが、文法に問題は無いようです。
http://jsonlint.com/
388 :
378 :2013/02/25(月) 10:05:03.54 ID:???
すみませんが、もう一度質問させてください。
【環境】Windows 8, XAMPP上でテスト、Firefox19
【何をしたのか】二次元配列のJSONをJavascriptで取り扱うために、evalを使い二次元のarrayに変換しようとした。
【エラーメッセージ】
Uncaught SyntaxError: Unexpected token ILLEGAL JSONTest.html:17
$.ajax.success JSONTest.html:17
c jquery-1.9.1.min.js:3
p.fireWith jquery-1.9.1.min.js:3
k jquery-1.9.1.min.js:5
r
【期待する結果】
>>378 のJSONをJavaScriptで扱える二次元Arrayに変換したい。
【サンプルコード】
$.ajax({
type: "GET",
url: "test2.php",
//JSON typeでは読み込めなかったためtxtとして読み込む
//dataType:"json",
success: function(msg) {
console.log(msg);
//ここでtxtをJSONに変換しようとしてエラー ・
console.log(eval(msg));
},
false: (function(jqXHR, textStatus, errorThrown) {
console.log("Error: " + textStatus);
console.log("Test: " + jqXHR.responseText);
})
});
389 :
378 :2013/02/25(月) 10:05:47.66 ID:???
390 :
Name_Not_Found :2013/02/25(月) 10:33:36.46 ID:EpqYt4PP
$.ajaxの通信失敗の時ってerrorじゃなかったっけ?falseじゃなくて まず通信できているかどうかを、firebugでみてみようよ 「ネット」てタブで見れるから 200で帰ってきているようだったら、レスポンスボディをみて 期待している内容が入っているかどうかも そこまで確認できたら、evalとかしないでそのまま console.log(msg); てするといい
生成されたJSONとやらをevalしてみたけど成功した
俺の環境だと
>>389 のtest.htmlそのままコピペして動くよ?
test2.phpの方はメンドクサイからこんな感じにしてみたけど
<?php
$user[] = array('userName'=>'Gim','password'=>'gim','name'=>'gim','accountType'=>'1');
$user[] = array('userName'=>'Jack','password'=>'jac','name'=>'Jack','accountType'=>'2');
echo json_encode($user);
?>
PHPのことは良く知らないからなんか勘違いしてるかもしれない
Unexpected token ILLEGAL でぐぐったら 改行コードが入ってるからみたいだけど
394 :
378 :2013/02/25(月) 11:53:20.18 ID:???
皆様回答ありがとうございます。
これでなんとか問題が切り分けられそうです。本当にありがとうございました。
>>390 firebugで確認してみたところ、通信自体は成功しており
console.log(msg); でも平文のtextでは受信できているようです。
>>391 テストしていただきありがとうございます。
JSONの文法自体は問題ないようですね。
>>392 いただいたPHPのコードではエラーが出ずに変換に成功しました。
おそらくは僕のPHPのコードの方に問題があるようです。
>>393 Firebugで確認しました
自分のPHPのコードの方をもう一度確認してみますね。
うざい死ね
396 :
Name_Not_Found :2013/02/25(月) 13:04:00.41 ID:GXe+xKGj
どうしたんだよ急に
>>394 PHPがデータを返す時に指定するHTTPヘッダ(content-type)の指定が違うんじゃないの
自分はこうしてるけど
header('Content-type: application/json');
print json_encode($rs);
やっぱAjaxはxmlでやったほうがいいな
399 :
Name_Not_Found :2013/02/25(月) 13:39:57.84 ID:EpqYt4PP
えー JSONの方が気分的に楽だわー
400 :
378 :2013/02/25(月) 14:15:50.09 ID:???
エラーの原因が分かりました。 PHPの終了タグのあとに空白文字が入っており、それをJavaScriptが読み込んでいたようです PHPはコードの終了判断を"?>か"EOF"で判断しているようなので、終了タグは入れない方が良いようですね。 お騒がせしてすみません、相談にのってもらいありがとうございました。
いわゆる全角空白かな
復帰の制御文字だろう。
403 :
Name_Not_Found :2013/02/27(水) 16:18:54.48 ID:ppnstpOH
JS自体の質問じゃないんですが jQueryの$.extendを使ってオレオレメソッドを作るとき 他の人が作ったものと名前が被らないようにするためには やっぱりググるしかないでしょうか?
javascriptで遷移する1こ前のURLってとれんの? history.back()で遷移する先のURLをとりたい。
セキュリティ的にいって無理そうだよね
リファラじゃだめか
408 :
407 :2013/02/27(水) 19:03:08.55 ID:???
×この時、text_idのabc:defをdefに変更してから飛ぶようにしたい ◯この時、text_nameのabc:defをdefに変更してから飛ぶようにしたい 失礼しました
onsubmit
「WebアプリをJavaScriptで作る。」 と言ったら、 「JavaScriptクソ。使うな。Ruby使え」 って言われた・・・。 なんでみんなRubyを押すの? JavaScriptに比べて何が優れているの?
言語にとらわれている時点で
ruby使うくらいならphpでいい気が刷る
ブラウザによって動作が違ったりするからだけど、 クロスブラウザでユーザーサイドで動いたりと、 それなりにメリットはあるから、糞と一蹴するやつが糞。
そもそも土俵が違うので比べるようなものではない サーバーサイドJS限定で話をしてるの?
そらそうでしょ
JavaScriptは応用範囲が広く注目もされてるし Rubyなんかよりは全然将来性があるよ node.jsとかサーバサイドのほうはいじったことないけど
使いやすいんだが本当にメンテやバグ取りが大変だ お前らエディタとか何使ってる?
<script type="text/javascript" src="test?a=b"></script> <script type="text/javascript" src="test?c=d"></script> とすると2つ目のJavascriptを読み込んでくれません。 どのようにすれば読み込んでもらえるのでしょうか? それぞれを1つずつ書くとちゃんと機能しているのでjavascriptが無いということはありません。
>>418 それは2つとも同じファイルと見なされるな
420 :
418 :2013/02/28(木) 12:21:31.49 ID:???
いやごめ違う・・・それ同じファイルとみなされたらキャッシュバスターとか動かんわな
421 :
419 :2013/02/28(木) 12:35:50.61 ID:???
>>418 さらにごめん419だった
お詫びにちょっと試してみたが、普通にtestが2回読み込まれるよ?
ブラウザに依るんじゃないか
firefox19/chrome/IE9では全部2回読んでくれた
YES/NOチャートのようなものを作っていて、はい、いいえ、の選択肢のボタンを押すと 矢印が出るといったものにしたいのですがどうすればいいでしょうか
425 :
Name_Not_Found :2013/02/28(木) 23:17:25.12 ID:mnNPIXu5
いつも Emacs + mooz/js2-mode で書いてるけど、リアルタイムに構文解析して カンマやセミコロンが足りなかったりいらなかったりすると色が変わって超便利。 さらに変数を二重定義してたりしてもすぐ分かる。 ブロックスコープが無いから二重定義は思わぬバグを生む原因になるから大事だよね。
大抵のWeb系IDEは実装しとるで
>>425 すみません。
○は質問
○ ○ ○ [はい] [いいえ]
○
○
またもや大雑把な感じになっちゃったんですけども
はいをクリックすると・・・
○ ○ ○ [はい] [いいえ]
↓
○
○
という風になるものです。document.writeを使うと消えちゃうのでdocument.getElementByIdを使って表示しているものを消して、ボタンを押すことで
表示するものを作りたいんですが、if文を使うのかなって思ったんですけど理解出来なくて・・・
教えていただけると嬉しいです
あんまりしつこい構文アシストはうっとおしいので、 emacsは自分の好みに調整できるのがいい
430 :
Name_Not_Found :2013/02/28(木) 23:43:59.65 ID:mnNPIXu5
>>428 わかりにくすぎワロタ
表示非表示はスタイルシートでいい?
.hoge { display : none; }
としておいて、消したい奴にだけclass="hoge"を付け足す、というのでどう?
431 :
Name_Not_Found :2013/02/28(木) 23:44:55.60 ID:mnNPIXu5
間違えた 最初はdisplay : noneにしておいて はいがクリックされたら display : block;とかに変更 か
>>431 ありがとうございます。おかげで画像の非表示をすることが出来ました
クリックした際に設問にあった部分に矢印が出る方法なんかは自分で調べてみます
長々と分かりづらいものを並べてすみませんでした
433 :
Name_Not_Found :2013/03/03(日) 07:42:54.81 ID:RjsNMwJ+
Objectとfunctionをどのように使わけて良いのか混乱しています。 そもそも↓これら2つに違いってあるのでしょうか? var objA = { hoge:HOGE }; var fncA = function(){ hoge:HOGE; }
>>433 Objectは静的。外から中身を参照する。
functionは動的。中身のコードが走る。
>>434 「動的 中身のコードが走る」という表現が
イマイチ理解できていないのですが、
↓このようにコードが走った時にしか参照できない、そんなイメージでしょうか?
var objA = { hoge:HOGE };
var fncA = function(){ hoge:HOGE; }
console.log( objA.hoge ); //←OK
console.log( fncA.hoge ); //←NG
ハーバードアーキテクチャ的に、 Objectはデータ、functionはコード。 property:data ってした時、どちらもデータになるんじゃないかな。 Object⊃function だし。
こんにちは。 ニコニコ動画の動画ページのソースに何らかスクリプトを追加して自動再生するようにしたいのですがどうすればいいでしょうか? ソースにスクリプトを挿入する方法はわかっているのですがどういうスクリプトを挿入すればいいのかわからず困っています。 とりあえずjavascript:var player = document.getElementById('flvplayer'); if(player.ext_getStatus()=="paused") {player.ext_play(true);} else if(player.ext_getStatus()=="end") {player.ext_setPlayheadTime(0);} else {} をアドレスに入力して走らせると動画が再生されるのはわかっているのですが・・・・ (要約) ニコニコ動画の動画ページのHTMLソースにどのようなスクリプトが挿入されていたら自動で動画が再生されますでしょうか? どうかよろしくお願いします。
教えてください なんでこれが文法エラーにならないの? (function(){ hoge: 1 })(); どういう意味のコードを実行したことになる?
>>438 hege: が( goto やbreak の)ラベルに解釈されているんでないかと
よって
(function(){ 1 })();
と同じ
>>439 ありがとう!なるほど確かにラベルだなー
441 :
Name_Not_Found :2013/03/04(月) 07:48:39.73 ID:hNdV4Eun
プログラミングの知識0でHTMLってなに?ってレベルなんですが いきなりこの言語勉強しても理解できるかね
他の言語に比べて特段難しいってことは無いと思うけど
445 :
Name_Not_Found :2013/03/05(火) 00:23:08.25 ID:///Zmu+4
HTMLとCSSなしでもできることいろいろあるけど つまらんわな
質問させてください。外部ファイルの読み込みについてです。 <script id="input" type="text/x-handlebars-template"> <section class="inner"> <h1 class="header">{{title}}</h1> <div class="box"><img src="{{img.url}}" alt="{{img.alt}}" /><p class="flex">{{text}}</p></div> </section> </script> 上のようなDOMがあったとして、alert($('#input').html()); で中身(<section>タグ以下)が取得できるとこまでは確認したのですが、 <section>タグ以下を外部ファイル(section.template)にして、 <script id="input" type="text/x-handlebars-template" src="section.template"></script> としたのですが、alert($('#input').html());で取れませんでした。 $('#input').load('section.template', null , function(){ ... }); も考えたのですが、これだと非同期読み込みになってしまい、使い勝手が悪くやりたくありません。 どうにかして、section.templateの中身を即座に取り出す方法はないでしょうか?
var input='<section class="inner">\ <h1 class="header">{{title}}</h1>\ <div class="box"><img src="{{img.url}}" alt="{{img.alt}}" /><p class="flex">{{text}}</p></div>\ </section>\ '; 外部ファイルに上のコードを入れ、読み込むところで document.write(input); こんなかんじじゃだめなの?
>>448 それだとHTMLコードが長くなると編集やバリデーションがめんどくならないか?
>>447 そういう風にできれば便利だと思うけどな
HTMLのデータを js 文字列化して . js ファイルとしてサーバに置く作業を
自動化するようなツールを使う方法は考えられなくもない
450 :
447 :2013/03/07(木) 23:02:42.82 ID:???
>>448 ありがとうございます。
その方法でも確かにできるのですが、内容が長くなると¥を付けたりするのが面倒
なので、できるだけそのまま読み込みたいというのと、
document.writeを使うと、JavaScriptのユニットテスト(Jasmine使用)と
どうも相性が悪いみたい、という2点の理由からダメになりました。
クライアントサイドインクルードというジャンルのJavascriptライブラリも
いくつか見つけたのですが、結局どれも非同期読み込みなんですよね……。
451 :
447 :2013/03/07(木) 23:19:15.78 ID:???
ご報告です。できました! php.jsというライブラリを使ったらいけました。
http://phpjs.org/ <script src="phpjs/functions/filesystem/file_get_contents.js"></script>
<script src="phpjs/functions/filesystem/fopen.js"></script>
<script src="phpjs/functions/filesystem/feof.js"></script>
<script src="phpjs/functions/filesystem/fgets.js"></script>
<script>
function loadExternalFile(filename)
{
var fp = fopen(filename,"r");
var text = "";
while(!feof(fp))
{
text += fgets(fp);
}
return text;
}
var templateText = loadExternalFile("section.template"); // 外部ファイル読み込み
alert(templateText); // 読み込みが終わってからこの行が実行されることが保証される。
</script>
という感じです。
<script id="template_table" type="text/x-handlebars-template"></script>
のようなプレースホルダも必要ありません。かなり便利です。
皆様もぜひお試しください。
そうか XMLHttpRequest って同期読み込みもできたのね 別に php.js でなくてもいけるね
jQueryのloadも第二引数に{async:false}とか入れれば同期になるだろう。 でもなんでみんな非同期でやるのかも考えたほうがいい。
455 :
447 :2013/03/07(木) 23:49:33.31 ID:???
>>453 私もfopenのソース見たら確かに……。おっしゃる通りですね。気付きませんでした。
>>454 情報ありがとうございます。JQueryのloadでも行けるのですね。
確かに、なんでも同期にしたらパフォーマンスの問題がありますね。あまり乱用しないようにします。
456 :
Name_Not_Found :2013/03/08(金) 00:01:36.67 ID:9UW9JFw7
>>452 そのラグって、キーのオートリピートの応答時間なのかな?
であれば、キーダウンからキーアップまでを押し下げ期間として
能動的に移動を繰り返せばいいと思う
keydownイベントで直接右に動かしてるんじゃなくて、 keydownイベントとkeyupイベントでキーが押されてるかどうかのフラグを切り替えて、 1/60秒ぐらいのタイマーで常時そのフラグを監視する処理をループさせて、 フラグがキー押下状態なら右に動かす こんな感じか
keydownイベントが来てるにもかかわらず keyupイベントは来ない、なんてことはないのか?
よくは知らないけど、心配ならkeydownイベントが継続的に上がってるかも監視すればいいんじゃない?
ラグが発生するのはブラウザの仕様だから?chromeしか確認してないけど
>>460 ラグっていうかキーのオートリピートの仕様?
メモ帳とかなんでもいいから開いて同じキーを押し続けてみればわかると思うけど、
押した瞬間一文字入力されて、そのまま押してるとちょっと間をおいてリピート入力が
始まるよね?keydownイベントはそれと同じタイミングでしか発生しないってことじゃない?
ああ本当だ、こういう動作があるのか これってWindowsだけなのかな LinuxとMacもってないからよくわかんないや
463 :
Name_Not_Found :2013/03/08(金) 14:29:56.37 ID:QH8QszhU
>>462 少なくともPC-8001とAPPLE2の時点では、ほぼすべてのコンピュータにあった
キーボードの標準仕様と思って間違いないと思う
どうもありがとう
465 :
Name_Not_Found :2013/03/08(金) 20:22:43.95 ID:L7rOVO5V
ライブラリスレが荒らされて死んでるのでこちらで失礼します。 AJAXで画面をふわっと遷移させるのに、ぐぐって見つけた jquery.smarthistory.jsというのを使ってみたんだけど、 AJAXで遷移させるとonloadイベントが起こらないらしく、 ページに書いてあるwindow.onloadまたは$( function() などの関数が実行されない。 この辺解決してる実装例はありませんでしょうか。
まずAJAXの基礎を学べ そしたら何故イベントが起こらないのか分かる
>>465 Rails環境にTurbolinksっていうAjaxでページ遷移する仕組みがあって、
この仕組みにアドオンでjquery-turbolinksというのが提供されてて、
ページ遷移時にjQuery.ready()を自動で実行してくれたりするみたいだなあ
468 :
Name_Not_Found :2013/03/08(金) 22:24:17.00 ID:0KZJ5QiB
>>465 $()に無名関数を渡すのではなく、名前つけたのを渡すようにしておいて
ajaxで読まれたら動的にその名前付き関数を叩けばいいんじゃない?
自分自身を呼び出すのは出来るみたいだけど 変数は渡せないのかい? function counter(i){ if(i <= 5){ alert(i); myTimer = setTimeout("counter(i+1)",120); } return false; }
>>469 myTimer = setTimeout(function(){counter(i+1);}, 120);
setTimeout( 'counter('+(i+1)+')' ,120);
>>469 あなたのその考え方、20年くらい遅れてるから。「クロージャ」の勉強をすれ。
473 :
470 :2013/03/09(土) 16:06:07.29 ID:???
474 :
470 :2013/03/09(土) 16:12:44.87 ID:???
あ、
>>470 でよかったわw酒飲んでるんで一瞬ifがwhileに見えたw
475 :
469 :2013/03/09(土) 16:20:03.56 ID:???
いや、グローバル変数を極力減らしたいのさ。 例を単純にしただけで、まさかのアラート嫌がらせじゃないよw にしても素早い回答ありがとう! クロージャ勉強してみる。
476 :
469 :2013/03/09(土) 17:04:48.38 ID:???
クロージャ勉強してきた。 なんか使ったことある手法だったぞw でもこれだと親側に一つクロージャ用の変数用意しないといけないね・・・ 親側で sub('abc',0) みたいに関数のみ呼び出して何回も繰り返したかったのさ。 クロージャには親から変数渡せないよね?
477 :
469 :2013/03/09(土) 17:07:11.90 ID:???
ごめん、答え貰っても返事は月曜以降に遅れる!
478 :
Name_Not_Found :2013/03/09(土) 17:33:54.79 ID:sZ6m8Ixh
>>476 sub('abc',0)や「親から渡せない」がどういう意味かイマイチわからんが
基本的に自分より上のスコープは見える
自分より上の関数を匿名で呼び出して、その中に関数を定義するっちゅうアレじゃないのかい?
481 :
Name_Not_Found :2013/03/09(土) 19:53:15.07 ID:sZ6m8Ixh
あ、こうか
setTimeoutとsetIntervalは
引数に文字列を渡すとEval(文字列)されるけど
>>470 のように関数を渡せばそれが実行される
この場合、引数に書かれた無名関数からは
親関数counterのスコープは見渡せるし
親関数counterから無名関数の引数に渡してもいい
>>482 それは動かないIEがあるんじゃなかったっけ?
IEは10しか対応してないのか
485 :
437 :2013/03/10(日) 02:05:44.71 ID:???
>>437 です。
グリモンにぶち込めばいいとの事でしたがどうしてもそうはいかないんです・・・。
ニコニコ動画を自動再生するブラウザを作っていて、それに必要で・・・。
ニコニコ動画のプレイヤー状態が「playing」になるまでループさせるか
ニコニコ動画のプレイヤーが表示されて再生ボタンが押せる状態になったらあのスクリプトを走らせるという感じにしたいです。
どうか力をお貸し下さい。
487 :
Name_Not_Found :2013/03/10(日) 03:58:32.61 ID:fTrNaYwJ
>>485 >ニコニコ動画を自動再生するブラウザ
それってニコニコ動画の再生ページそのものなんじゃ…
自動再生ってプレミアムだけだっけ。
uwscでも使っとけ
n個の画像ファイルがあります これをwebページ表示したときにロードさせたいんですが、 そのときにプログレスバーで何%読み込んだか表示させたいです これはどうやるのでしょうか?
491 :
Name_Not_Found :2013/03/10(日) 15:03:33.36 ID:fTrNaYwJ
説明すると長いから FileAPIとかreadAsDataURLとかprogressとかで調べておくんなまし <progress>要素を使ったらかっこいいね!
お尋ねしたいのですが、JQueryでCSVファイルのテキスト検索をしようとしております LIKE演算子(ワイルドカード%)による絞り込みを、複数の項目にかけるにはどうすればよいでしょうか? CSVの中身 氏名,年齢,電話番号,...... たろう,22歳,0612341234,...... はなこ,22歳,0634567890,...... こうじ,24歳,0634567890,...... HTML 年齢<input type="text" name="itm_1" id="itm_1" value="" /> 電話番号<input type="text" name="itm_2" id="itm_2" value="" /> JS $('#result').csvSearch('./data.csv', { where:[{'年齢': 'like %' + $("#itm_1").val() + '%'},'&&',{'電話番号': 'like %' + $("#itm_2").val() + '%'}]} } このようなイメージで、一応動いてはいるのですが 電話番号のほうだけしか絞り込みが効いていません (itm_1に「22歳」、itm_2に「7890」を入力しても「こうじ」くんしか抽出しません) よろしくお願いします
SOHOの皆さんセキュリティ・脆弱性対策どうしてます? 例えば脆弱性で個人情報が漏れたとしても、個人事業主では損害賠償できない額になり得ますよね。 そこは契約書に免責事項盛り込むとか、そもそも機密データは扱わないとか、保険入るとか、なんかしてます? 私はこれから事業を始めていこうとセキュリティについて勉強は重ねているのですが、突き詰めてもやっぱり失敗はあり得ますよね。 そしたら簡単に全財産吹っ飛びかねないじゃないですか。 そこんとこどうしてますか? 先輩方からのご意見頂けたらと思います。
すんません!誤爆しました!
契約書の主たる契約者を法人にすればよろし。
496 :
Name_Not_Found :2013/03/11(月) 07:05:09.92 ID:yzyechv6
基はJavaScriptらしいので、こちらで質問させて頂きます。
もし致違いでしたらご誘導をお願い致します。
XBMC(
ttp://xbmc.org/ )の再生情報等を取得するコードなのですが、
曲のタイトル等、日本語が文字化けをしてしまいます。
こちら[xbmc_json.txt(
ttp://kie.nu/RUu )]の93行目の、
GUI.widget("tNowPlaying").label = nowPlaying;
の部分かと思うのですが、この"tNowPlaying"の文字コードを指定するにはどのようにすれば良いのでしょうか?
よろしくお願い致します。 m(__)m
497 :
Name_Not_Found :2013/03/11(月) 07:27:11.54 ID:vKVvv7Tt
$(body).removeAttr('onselectstart').removeAttr('oncontextmenu'); $('#center').removeAttr('onmousedown'); このjqueryで書かれたコードをjquery不使用に書き換えていただけないでしょうか
498 :
Name_Not_Found :2013/03/11(月) 07:45:38.23 ID:Lds6Ixht
>>497 丸投げはご遠慮しやがってください
最初の$()関数は、getElementsByTagNameやgetElementByIdを使います
removeAttr()メソッドはremoveAttributeを使います
removeAttributeでイベントハンドラ関連の属性を削除するのは
IEでとってもとっても苦労すると思うので振り分け頑張れ
IEはHTML内に書かれたイベントハンドラはremoveAttributeで削除できないとかだっけ?
IE7以下の set/getAttribute が手抜き実装なのが原因
逆に、IE8以上しか対応しなくていいなら
>>498 の振り分けは考えなくていい
IE の getAttribute / setAttribute: Days on the Moon
nanto.asablo.jp/blog/2005/10/29/123294
IE8もまだ属性とプロパティと混同してて手抜き実装なんだけど
>>497 null 代入で十分に思えますが、removeAttribute を使用しなければならない理由はありますか?
質問させてください。 とある事情から、JavaScriptのデータ(配列やらオブジェクトやら)を、 「文字列として」出力する必要がでてきました。 つまり、 var data = {id:1, text:'Hello'}; var array = [1, "Hi"]; // data = ごにょごにょ... // array = ごにょごにょ... console.log(data); // => {id:1, text:'Hello'} と出力 console.log(array); // => [1, "Hi"] と出力 としたいのですが、可能でしょうか? ちなみに、 var data = "{id:1, text:'Hello'}"; とするのはもちろんナシでお願いします。
>>501-503 こんな便利なものが! ありがとうございます!
あと、たびたびすみません。類似の問題なのですが、
console.log(function(){var foo = 'boo';});
とした場合、Chromeではコンソールに
function(){var foo = 'boo';}
と表示されるのですが、
$('#input').val(function(){var foo = 'boo';}); // inputタグに出力
とした場合は、inputタグの値として表示させることができません。
(空文字? なのか、変化がありません)
こちらは何か方法はありませんでしょうか?
>>507 Function#toString()
文字列で渡せばok
>>507 console.log は渡された引数を内部で toString などをして表示しているけど、
$('...').val() は引数に文字列型しか取らないので、
自分で toString なり JSON.stringify なりして文字列にすればいい
>>507 $('#input')[0].value = function(){var foo = 'boo';};
>>510 ごめん、いろいろ間違ってた
・JSON.stringify は Function オブジェクトについては使えない
・$('...').val() は関数も引数に取れる(けど使い方が違う)
.val() | jQuery API Documentation
api.jquery.com/val/
>>505 >>508 ありがとうございます。どちらの方法でもできました!
とくに
>>508 の方の方法は不思議ですね。なぜ[0].valueだと表示できるのか不思議でなりません^^;
>>509 ありがとうございます。なんだか、function( index, value ) と、シグニチャが限定されているっぽいですね。
とにかく、皆様本当にありがとうございました。
>>513 > どちらの方法でもできました!
>>512 も指摘してるが、function に JSON.stringify は適用できない。
それを許す実装はあるが、仕様上は不可だから修正されれば使えなくなる。
517 :
497 :2013/03/13(水) 00:22:52.89 ID:WvykMTk0
>>502 null代入で出来ました
bodyはなぜかremoveもできなかったのですが
onselectstart="return false" oncontextmenu="return false"がなぜか機能してなかったので必要なかったようです
ありがとうございます
友人が 「これからはCoffeeScriptだ」 見たいなこといっててサーバサイドのスクリプトとかいじってるけどさぁ……。 世の中の多くはレガシーシステムだってことわかってんのかね。 そいつのCoffeeScriptとやらより、俺のJavaScriptの方が100倍は表現力・オブジェクト指向性たかいわ。 言語が先進的だからそれ使ってる自分も先進的。 んなことほざくガキとは絶対一緒に仕事したくねぇな。 「JavaScriptって汚くねぇか?」 とか言っちゃってさ。 その自分はCoffeeScriptでグローバル変数アホみたいに使ってて。 はぁ、もう勝手にやってろって感じ。
(function(){ と })() で括ればあら不思議、グローバル変数も一瞬でプライベート変数に変身!
>>519 var 付けてなければグローバル変数のままでは?
そりゃそうだけどvarで変数宣言しないなんてことがあるわけないもの
>>521 みたいな奴がいるわけがない、と思ったら居た。
>>522 みたいな奴がいるわけがない、と思ったら居た。
>>523 みたいな奴がいるわけがない、と思ったら居た。
ところで、varで変数宣言しないなんてことあるの?
そんな奴おれへんやろ〜。
全部仮引数にしちゃいなyo!
試験問題 次のうちクリックされたときに呼ばれるのはどれか 理由も述べなさい var onclick = function(){alert('hoge')} onclick = function(){alert('piyo')} function onclick(){alert('fuga')}
>>528 イベントハンドラ未定義なのでどれも呼ばれません
未定義でもonclick=は
これonclick = function(){alert('piyo')}だけなら動くんだな onclickを新しく作っちまうとダメか でも新しくつくったonclickもwindow.onclickなんだね? window.onclickを作り変えるとダメ?どゆこと?
ヒント: setter/getterとは何か、説明せよ。
Firefoxはonclickにgetter/setter設定されてるように見えるけど、 Chromeはちょっと違う感じだな まあ動作的には似たようなもんだけど
なんか、勉強になった。
【環境】mac OS10.5.8 firefox16 【html ソース】 <html><div id="test">〜〜〜〜〜</div></html> 【Javascript】 var count = 1; $(function() { $("#test").hover(function(){ count = 0; console.log('reset:' + count); setTimeout(countUp,3000,count); }); function countUp(num) { num++; console.log('count up:' + num); setTimeout(countUp,3000,num); } というのをつくりました。基本的に何もしなければ3秒毎にcountの値を増やしていき、ログに出力、 divにマウスが乗ったらcountの値を0にリセットして出力、その後0からカウントアップ再開したいと考えました。 2→3→0(リセット)→1→2→・・・ という挙動を期待しているのですが、 2→3→0(リセット)→4→5→・・・ となってしまいます。関数countUpに変数countの値が渡らず、別系統でカウントアップがされているようなのですが、 何がどう間違ってるのか見当がつきません。 jQueryを使っているものの、中でやってることはjQuery的ではないので、こちらで質問しました。 スレチならすみませんが、宜しくお願いします。
それだと hover(function(){... が呼び出される度に setTimeout の連鎖が追加されていく(clearTimeout してない)ので 2→3→4→5→・・・ と 0(リセット)→1→2→3→・・・ が同時並行的に出力される筈だが? ちなみにそのコードだと setInterval 使う方が管理は楽だろう
そもそもcountがcountUpされてないけど良いのか
それだと動作があんま綺麗じゃないね。
541 :
536 :2013/03/15(金) 12:27:05.76 ID:???
ありがとうございます。 取り急ぎclearTimeoutを入れ、関数に引数を渡さないようにすると意図どおりの動きになりました。 どうも引数の扱いも誤解してたみたいです。 setIntervalについてはこれから調べてみたいと思います。
setIntervalの例だとhover後の0〜1の間が3秒にならんな
カードゲームを作りたいのですがデータを記述する方法がわかりません どうすればデータを作る事ができますか? myData = new Array(41); for (i=0; i<41; i++) myData[i] = i+1; for (i=0; i<500; i++){ myA = Math.floor( Math.random() * 41 ) myB = Math.floor( Math.random() * 41 ) myBackup = myData[myA]; myData[myA] = myData[myB]; myData[myB] = myBackup; } myCard = new Array(5); for (i=0; i<5; i++) myCard[i] = myData[i]; for(i=0; i<5; i++){ document.write("[",myCard[i],"]"); if (i < 4) document.write("-");} これでランダムの数値を持ってきても、それをカードのデータに変換する方法が見つかりません どうすればカードのデータに変換できますか?
マルチ
ちょっとした小技知りたいんですが var hoge =[]; if(hoge['a']{'b'}=='unko')ほにゃらら ってやるとhoge['a']は生成されてないからバグが発生しちゃいますが 皆さんこういう対処はどうやってますか? i f(hoge['a']){ if(hoge['a']['b']=='unko')ほにゃらら } というのは何か汚いように見えるんですが
まっとうな方法 if (hoge['a'] && hoge['a']['b'] == 'huga') {} 少しトリッキー var hage; if ((hage = hoge['a']) && hage['b'] == 'hufa') {}
小技の前に、hogeを配列として使うわけじゃなければ初期化は var hoge = {}; のほうがいいだろ hoge['a']{'b'}はまあタイプミスなんだろうけど
トリッキーな方が通っぽくて職場でモテそうですね! ありがとうございます! はい、{'b'}はタイプミスで['b']です
var hoge = hoge || {}; 職場でモテる記述ならコレ なんか雑誌で週刊モテるjavascript講座とかやってくんないのかね
お気に入りのJavaScript本あります? 自分はオライリー信者なんで、 フラニガン「JavaScript」 誰かさん「JavaScript:The Good Parts」 誰かさん「JavaScriptパターン」 誰かさん「Prototype & script.aculo.us」 あたり好きです。
>>551 技評のJavaScriptポケットリファレンス一筋
JavaScriptの文法チェックでお知恵をお借りしたいことがあります。 ユーザーに入力させたJavaScriptコードの文法チェックをやりたいんですが、 evalする以外に方法はありますか? なぜevalする方法だとイヤかというと、まだ入力した時点(evalチェックした時点)では存在しない変数にアクセスするJavaScriptコードが入力される可能性があるからです。 変数の存在の有無の確認を除いたJavaScriptコードの文法チェック方法、なにか良い方法はないでしょうか。 あ、もちろん開発ツールやIDEのようなツールで文法チェックするというのではなく、JavaScriptでブラウザ上で文法チェックしたいということです。 色々考えているんですが、良い方法が見つかりません……。
>>553 Esprima みたいなパーサー使うとか?
正規表現を超頑張る
皆様、ご助言ありがとうございます。
>>551 様がご紹介してくださったEsprimaを使ってうまくいきました。
http://esprima.org/doc/index.html // valueにJavaScriptコードが入っているとする。
try {
return syntax = esprima.parse('(' + value + ')');
} catch (e) {
alert(e);
}
上記のようなコードで、不正なJavaScriptコードを渡すと例外が投げられて、
その例外のメッセージが非常に良い感じのエラー文でした(エラーになった行とかも書いてある)。
ありがとうございました!
>>553 単に new Function(ソース) でもOKのような
obj={ x:1 , y:2}; とプロパティを作って、 obj.x=obj.x.toFixed(3); とする場合、これをもっと簡潔に書くことってできるんでしょうか いちいち2回書くのは面倒なんですが・・・。
別におすすめはしないが with (obj = {x:1, y:2}) { x = x.toFixed(3); } とか?かえって分かりにくくなるだけのような気もする。どっちかというと obj = { x: 1.toFixed(3), y: 2}; で十分なんじゃないの。
こうしないとエラーになるな obj = { x: (1).toFixed(3), y: 2};
プロパティってそんな風にも代入できたんですか いちいち1個づつ読み出して使ってました。 それでやれば綺麗にできそうです。 ありがとうございます。
564 :
Name_Not_Found :2013/03/19(火) 09:26:04.63 ID:qoem3vAm
>>551 GoodPartsは部分的に納得イカない部分もおおいなあ
$(document).ready( function(){ $('.fd').hover(function(){ $(this).fadeTo('fast', 0.6); } } ); な感じでフェードを付けてるんだけど 後から $('.abc').addClass('fd'); としても有効にならない・・・ 多分最初の読み込んだときに判断してるからなんだろうけど 付け足したクラスfdにも有効にする方法はないかな?
自己解決 $('.img_fd').live('mouseover', function(e){ $(this).fadeTo('fast', 0.6); });
$().liveより$().delegateの方がいいとか、1.7以上なら$().on使ったほうがいいとか
おい、バグか? 次を01〜10でやってみてくれ・・・ ’08’と’09’で恐ろしい事が起きる。 parseInt('01') : parseInt('10')
>>568 parseInt の第一引数が 0から始まり、第二引数が無指定の場合、それは8進数として解釈される
そのため、それは正しい挙動。
ただし、parseInt は ECMAScript 5 で挙動が変わり、常に 10進数で解釈されるようになった。
現に Firefox 21 からは
parseInt("08") === 8 //=> true
が成り立つ。
571 :
568 :2013/03/20(水) 15:14:26.82 ID:???
そういうことか! 10進数で考えていた俺がアマちゃんだな。 にしても8進数とは中途半端な・・・
572 :
568 :2013/03/20(水) 15:20:51.02 ID:???
ちがう、0xなら16進数ってことか。 getしてきた数字が二桁揃えだから変になったんだね。 なんにしろ、次からはとりあえず第二引数つけるようにしよう。
>>569 「イケメン」が広辞苑に載ったような気分だな
第二引数無しだとC言語の数値リテラルみたいに解釈されるってことだね まあでもC言語なんて知らん人が増えてきたから8進の方が削除されるのは妥当だな
>>569 8進数で解釈する処理系は、「正しい挙動」なのか?
勝手な実装であって、SpiderMonkeyにはあってRhinoにはないんじゃなかったっけ。
>>575 ECMAScript 3rdだと、8進か10進のどちらかでよくて、推奨は10進って書いてあるみたい
なんで0oじゃなくて0になったんだろう
シラネ CやPerl時代から0付けると8進法だったよ
CというかUNIXで8進数けっこう使うからね ファイルのパーミッションの値とか8進表記じゃないとピンとこない
>>564 GoodPartsの(というかJSLintの)ローカル変数宣言の位置については、むしろ有害だと思う。
まぁあれはトレードオフだと思う Cに戻っちゃった感あるけど
UNIXのhostsファイルで、桁揃えで書きたくて 3桁未満は0を補って書いたら、うまく通信が出来なかった。 どうも頭に0があると8進数として解釈してるっぽかった。 こんな所にまで。
584 :
Name_Not_Found :2013/03/21(木) 07:45:51.90 ID:QS0+cAi0
カレントタブのURLを取得するのに↓の2つは全く同じ? どっちがいいの window.content.location.href; window.content.document.URL;
あれ?全く同じじゃないっぽい? FireGesturesでlocation.hrefが取得できなかった
<html> <body> </body> </html>
Backbone.js って基本サーバサイド側で使うのですか?
ふと思ったんだけど、ネットでやり取りする時のURLって通貨なみの価値があるよね
589 :
Name_Not_Found :2013/03/21(木) 18:36:42.93 ID:pDZ+/A/R
どゆこと?
さて、そろそろヲタでも放置するか
>>584 document.location.hrefとdocument.URLの一番の違いはdocument.URLの方は参照しかできないこと
document.location.hrefとdocument.URLを参照したときの内容は同じはずだけど、
ブラウザ依存で違う場合もある
jQueryあればprototype.jsそれにscript.aculo.usは要らないかな? まぁ何がしたいかによるんだよろうけど……。 実際使うときに考えるのは 「あれができるからここで使おう」 みたいなデザインの発想の流れになることあるよね。 prototype.js、script.aculo.usって便利? 使えた方がいい?
Firefoxで使うアドオン作成してます サイドバーのボタンを押すとページを移動させてそのページにあるボタンを押すといった動作をさせたいです function openUrl(URL) { content.wrappedJSObject.location = URL; newTabBrowser = gBrowser.selectedBrowser; newTabBrowser.addEventListener("load", highlight, true); } このプログラムを動かしてページを移動させることまでができたのですが 現在のページのボタンを押すようなプログラムってどういう感じになりますか? 例えばグーグルのページに飛んで検索窓になにかいれて押すといったことをさせたいです
var tableHtml = []; tableList.forEach(function() { tableHtml.push('<table></table>'); }); tableHtml = tableHtml.join(''); $('body').append(tableHtml); var tableArray = $('table'); 同じ要素を複数一度に追加するのに、こんなコードを沢山書いてるけど もっとシンプルに書ける気がしてならない。 もっと簡単に書けるなら教えてください。
クッキーで質問です。 サーバー側PHPで生成したページを読み込んでいて、PHPからクッキーをセットしています。 その値をページのJavaScriptで読み出そうと alert( document.cookie ); としても、読み出すことができません。 ブラウザのデバッガでクッキーの値を見ると、ちゃんと値が入っています。 次に、JavaScriptからクッキーをセットしてみました。 document.cookie = "key01=value01;" この後でalert( document.cookie );をすると、 key01=value01 が表示されます。 ブラウザのデバッガでクッキーの値を見ると、PHPでセットした値とJavaScriptでセットした値が入っています。 同じページの下でも、これらは別のクッキーなんでしょうか? PHPでセットしたクッキーをJavaScriptから読み出す方法はありますか?
質問を変えましょうか。 あるページを読み込んだ時に、クッキーがセットされました。 ブラウザでクッキーの値を見ると、ちゃんとセットされています。 その値をページ側のJavaScriptで読み出すことは、できますか? document.cookieを参照しても、空になっていました。
クッキーをセットする時に 'expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/;' を足してみるとか。
そのサーバ側から送られてくるのはHttponly属性がついてるんじゃないのか
んじゃさ、phpでjavascriptを記述すればいいじゃん echo "<script>$(function set(){クッキーセット}</script>";
メルアドをアカウント部分とドメイン部分にわけるphp これJQueryでやろうとすると どうかきますか? list($em_alias, $em_domain) = explode('@', $em_email, 2);
ローカル部に@が登場することもあるから、単純に@で分割代入しない方が良いのでは
まあそこまで厳密じゃなくてもいいんじゃないか? 分割代入が有効なブラウザなら var [ alias, domain ] = email.split("@"); その他のブラウザは var alias, domain; email = email.split("@"); alias = email[0]; domain = email[1];
なるほどです ありがとうございました
606 :
名無し :2013/03/26(火) 20:16:45.04 ID:???
(・∀・) アッタマイーナー
単純に、ページ内の任意のリンクタグをクリックしたときにjsを実行したいです。 調べた所、2つの方法が出てきました。 1.ウィンドウ内でクリックイベントが起こった時、対象の要素がaタグか否かを調べる 2.ウィンドウロード完了後、ページ内のaタグ全てにオンクリックイベントを仕込む。 1.はクリックが起こると毎回実行されてしまい、2.は完全に無駄があります。 もっとスマートにaタグのクリックのみを検出する方法はありますか?
>>607 > クリックが起こると毎回実行されてしまい
の意味がわからないんだが、1回しか実行されたくないなら
最初に実行された時にリスナーを解除すればいいんじゃないの?
609 :
Name_Not_Found :2013/03/29(金) 23:57:15.06 ID:TWvO0hFA
>>607 >2.は完全に無駄があります
どのような?
$("a").click(function(){ }); これじゃダメなの?
delegateかbindかみたいな話なら1で良いと思う "毎回実行"する点はmousemoveほどの頻度だと気になるけど、clickなら気にする必要はないと思う
>>608 関係ないクリックが生じた際にも、「リンクタグか否か?」の判別が実行されますよね?
>>609 もしもページ内に500個のリンクが存在すれば、それら全てにリスナーを追加する必要があり、無駄ではないですか?
連投失礼。
>>610 まさにこれです。ありがとうございます。
jQueryなので内部的に1.と2.より処理が少ないのかは分かりませんが...
614 :
Name_Not_Found :2013/03/30(土) 16:08:52.66 ID:zLQI+QYF
ものすごい初歩的な質問というか確認で恐縮なのですが…、 ページによって使うjavascriptが違っても、headタグ内のjavascriptの記述は 全ページ共通(つまり使うjavascriptすべて)にしないといけない、ということで間違いないでしょうか…?
>>613 1の場合は、documentにイベントを追加して、イベントが発生した時に対象かどうか確認するだけなので軽い
2はすべてのa要素についてループしてイベントを追加するから遅い
jQueryはループを隠蔽するので、実は内部処理で膨大な量ループしてたなんてことが起こるから、
きちんと内部の動きを理解して使わないと非効率的なコードになるよ
>>614 いまいち言いたいことが分からんのだが、もう少し具体的に頼む
>>614 です。
わかりづらくてごめんなさい。
つまり、たとえばライトボックスを使いたいページと使わないページがあるとして、
使わないページのheadタグ内にも、ライトボックス用のjavascriptの記述が必要なのかどうか、
ということです。
こういうのは外部ファイルで読み込むべきということでしょうか…?
むしろ必要だと思う理由が分からない
>>616 使わないなら書かなければいいのでは?
ただ、複数のHTML全てに全く同じ内容のJavaScriptをコピペするのは保守の観点からやめたほうがいい
もし一箇所にバグがあることが判明したらすべてのHTMLファイルを修正しないといけなくなるから。
そのためにJavaScriptの管理を一元化するのが、外部ファイル化。
>>618 確かにおっしゃる通りです…。
勉強になりました。
どうもありがとうございました。
Gmailで件名が「Re:」のみになる場合に空欄にしようと, 全くの初心者ながら勉強を始めました。 イベントそのものが発生しないようでいきなりつまずいています。 よろしくご教示ください。 (function(){ document.addEventListener('blur', sweepRe, true); function sweepRe(event){ var inputs = document.getElementsByTagName('input'); for(var i=0, len=inputs.length; i<len; i++) { if ('subject' == inputs[i].name){ inputs[i].value = inputs[i].value.replace(まだよく分からない); } } } }
621 :
Name_Not_Found :2013/03/30(土) 21:51:05.16 ID:XivD4u18
Google HTML/CSS Style Guideによると、 html内ソースのidやclass名などには アンダーバーを用いずにハイフンを使うようにあるのですが、 これはどのような理由からなのでしょうか? /* NG */ #video_id /* OK */ #video-id アンダー区切りですと、Eclipse内JavaScriptエディターにて ダブルクリックでセレクタを全選択できないし不便だと思うのですが。
>>621 単にプロパティがハイフン区切りなんだからってことだと思った
-moz-border-radius
>>622 参考になるページまで貼っていただきありがとうございます。
なるほど、ネスケがCSSでアンダーバーが使えなかったのですね
IE6ですらサポートに捨てる時代、このルールに縛られる必要はなさそうですね。
とは言ったものの、 jQueryUI実装時に付けられるclass名などはハイフン区切りだった。 統一性を考えると悩んでしまいますね。
idはURLにも登場するからハイフン idとの統一でclassもハイフンなのでは
引数にアンダーバー使えないんすか 知らんかった
HTMLからリンクとリンク名を抽出するメソッドのサンプルはないでしょうか URLを入力するとリンク一覧を出力してくれるようなのだとすごく助かります
横からだけど知らなかった へーへーへー
ドメイン名にアンダースコア使えないから、ドメイン名以外の部分でアンダースコア使うと紛らわしいからって感じで ドメイン名にアンダースコア使っちゃう人が出てこないようにって感じで
質問させて下さい canvasを使ってペイントソフト風のコンテンツを作ります そこに拡大ツール(Photoshop等の虫眼鏡ツール)を設けたいのですが、どうすればいいでしょうか オブジェクト毎ではなく、canvas枠内全域の拡大表示です 試行錯誤してますが、上手くいきません 宜しくお願いします
633 :
Name_Not_Found :2013/04/01(月) 09:20:07.14 ID:Za2zKUo6
全ての座標をn倍して、視点の座標をズラすのではいかんの?
>>632 rendering context の transform メソッドを使うなりして
canvas 全体に適用される変換行列をいじればいいんでない?
ただし描画済みのオブジェクトは再描画する必要ありかな
>>633-634 ありがとうございました
座標の変倍とrendering contextでもう少し調べてみます
canvas面白いけど難しい…orz
ブラウザのフォーム入力検証サポートを確認するにはどうすればいい? 検証機能に関連した属性(novalidateなど)やメソッド(checkValidityなど)の有無の確認で 概ね足りてる感じだが、Safariだと不正な入力でも送信してしまう(Windows版最新5.1.7)。 Appleのサイトを見るとサポートはされてるようなんだが、本来どういう動作をするのか不明。
>>636 CGI側でも、もう一回チェックすれば?
JavaScriptでのチェックはオマケみたいなものだからさ、あてにしない方がいいのでは。
ブラウザ側からの送信はつねに不正である可能性を想定しないとダメだ
>>636 はHTML5のフォームバリデーションのことね。
JSで入力検証するのではなく、JSでブラウザのサポート状況を確認したいと。
未対応ブラウザにおけるJSによる検証&サーバ側の検証は別の話と思ってくれ。
なるほど。 でも、フォーム検証でそんな難しいことする?
イラネ
642 :
Name_Not_Found :2013/04/02(火) 20:24:26.65 ID:IGWzIXPT
jQueryのtriggerの第二引数について質問 下記のように書いたとき <p><select></select></p> <p><input type="checkbox" name="" value=""></p> <p><input type="radio" name="" value=""></p> <p><input type="text" name="" value=""></p> <p><button>テスト</button></p> <script> var select = $('select'); var check = $('input[type=checkbox]'); var radio = $('input[type=radio]'); var text = $('input[type=text]'); select.on('click' ,function(evt,FLAG){ console.log('select::click' ,FLAG); }); check.on( 'click' ,function(evt,FLAG){ console.log('check::click' ,FLAG); }); radio.on( 'click' ,function(evt,FLAG){ console.log('radio::click' ,FLAG); }); text.on( 'click' ,function(evt,FLAG){ console.log('text::click' ,FLAG); }); $('button').on('click',function(){ select.trigger('click',['asdf']); check.trigger( 'click',['asdf']); radio.trigger( 'click',['asdf']); text.trigger( 'click',['asdf']); }); </script> チェックボックスだけ、第二引数が受け取れないのは、なにが間違っているのでしょか?
643 :
642 :2013/04/02(火) 20:31:45.50 ID:IGWzIXPT
>>642 それ 1.8.3 だとちゃんと渡ってるね。
jQueryのバグかも。
645 :
642 :2013/04/02(火) 22:11:24.01 ID:IGWzIXPT
バグ報告はされてるね。 回避するには check.triggerHandler( 'click',['asdf']); check.prop('checked', !check.prop('checked')); か? やりたくねえ…
647 :
642 :2013/04/02(火) 23:30:55.23 ID:IGWzIXPT
>>646 ありがとう
その方向性でやってみることにしました
// jQ1.9のバグ回避
// いつかなおす
って書いたけど、いつかっていつだー!
ウェブに上げるものじゃないんで板違いだったらすまん。 ただプログラマー板で板違い言われてここを言われたので来た。 新しいyahooのメアド作ったので今までにメールをくださった方 &メールを送った方にメアド変えますメールを送りたい。 しかし、俺は腐れ縁がたくさん(小中高+サークル+同期、同僚など1000人ほど) おって手動はめんどい。 大事な人だけに送ろうとしても、下手したら同窓会の案内などをもらい損ねるかもしれん。 そこでプログラムくんで一斉送信したいのだが誰かソース教えてくれ。 条件: ・受信BOXと送信BOXにはいっているメールの送り主と宛先をすべてBCC欄に入れて送信できる。 ・重複は省く。 ・内容はテンプレでおk。 ・開発環境が悪いので.jsか.vbsで。
たしかに
>>645 が原因ぽい。
ユーザがクリックした場合には、ハンドラではチェックボックス*変更後*の値が取得できるけど、
.trigger() でハンドラを呼び出したら*変更前*の値になる。 > 1.9以前
それを1.9で直すときにDOM.click()することにしたみたいだけど、
そう したらその時点でハンドラが呼ばれてしまって、第二引数が渡せなくなってる。
だから回避コードは正確には
check.prop('checked', !check.prop('checked'));
check.triggerHandler( 'click',['asdf']);
の順ね。
>>646 だと1.9以前の仕様になってしまう。
無事に神獣クエその他終了しました。 集まっていただいた方、ありがとうございました♪
ゴバークw
653 :
642 :2013/04/03(水) 02:22:11.31 ID:OFdwJpRA
>>649 おおう
1.8仕様になるのは気づいていたけど、順番変えれば良かったのか!
わざわざ引数でcheckedのtrue/false渡してた、恥ずかしい
ありがとう
654 :
636 :2013/04/03(水) 03:57:02.29 ID:???
やっぱりSafariでは機能はあるがsubmitボタン押下時に検証しないようだ。invalidイベントが発火しない。 windows版のSafari5だからかな。iPhoneもダメだったが、macのSafari6はどう? 以下検証コード <form><input required><input type="submit" value="送信"></form> <script> var fm = document.forms[0]; if ( typeof fm.checkValidity === "function" ) { var inputRequired = fm.elements[0]; var testInvalidHandler = function(e) { alert("fired invalid event"); return false;}; inputRequired.addEventListener("invalid", testInvalidHandler); var supported = fm.checkValidity() === false && inputRequired.validity.valid === false; alert("HTML5 Forms validation is " + (supported ? "supported" : "not supported")); //inputRequired.removeEventListener("invalid", testInvalidHandler); } else { /*IE-9*/ alert("HTML5 Forms validation is not supported"); } </script> Safariを含む対応ブラウザでは次の順でアラートが出る 1. "fired invalid event" ※checkValidity()の際に発火 2. "HTML5 Forms validation is supported"
関係ないけどwin版safariは廃止になるんだっけ
やわらかいなり
>>654 のような通常の機能テストでは使用可能と判断されるのに
いざ本来のタイミングでおこなわれるべき動作がおこなわれない。
どうテストすりゃえーねん。えーねーんん
やわらかいなり
エーネーン
660 :
Name_Not_Found :2013/04/03(水) 14:51:01.23 ID:PF81KaJa
ジオコーダーで匿名関数の戻り値(latlng)を関数の呼び出し元にリターンさせたいのですが、 やり方が分かりません。どーやって受けたら良いんでしょうか? a=(function(results, status)())の様な形で受けようと思うとジオコーディングでエラーが出ます。 function codeAddress(address) { geocoder.geocode({'address': address},function(results, status) { if (status == google.maps.GeocoderStatus.OK) {var latlng=results[0].geometry.location; return latlng.toString();} else {alert(status);} }); }
>>660 ↓こういうこと?
function codeAddress(address) {
var latlng;
geocoder.geocode({'address': address},function(results, status) {
if (status == google.maps.GeocoderStatus.OK) { lating = results[0].geometry.location.toString(); }
else {alert(status);}
});
return latlng;
}
662 :
Name_Not_Found :2013/04/03(水) 15:05:32.13 ID:kn7iX8TJ
div内にselect multipleを配置して、 selectの行数が多くなったときに divの縦スクロールバーを上下させたいのですが、 マウスホイールが効きません。(IE8) 直接縦スクロールバーをドラッグすると、上下できます。 divにフォーカスを当てれば良いと思いましたが、 だめでした。 何か方法は無いでしょうか。 【style】 .XXXXX { overflow-x:scroll; overflow-y:scroll; } 【html】 <div class="XXXXX"> <select multiple="multiple" name="XXX" size="5" style="min-width:100px;"> </select> </div>
663 :
Name_Not_Found :2013/04/03(水) 15:10:51.77 ID:PF81KaJa
>>661 早々のレスありがとうございます。
ただ、その方法ではundefinedしか返らないんです。
>>663 latingを宣言時にlatlngにしちゃってたので
それはたぶん俺の方のタイプミスのせいじゃないだろーか・・・
逆だ。latlngをコールバック内でlatingにしちゃってた
666 :
Name_Not_Found :2013/04/03(水) 15:20:40.89 ID:PF81KaJa
>>665 いや、それとは関係なくundefinedなんです。
それはすまんこ。あとは成功してるのか、どんなエラーが出てるのかですな
668 :
Name_Not_Found :2013/04/03(水) 15:45:16.17 ID:Tj4BBb4L
ごおgぇまいlでメールを送るプログラムはありましたが、
それをやほおまいlに置き換えてみたところ使えませんでした。
書き換え方を教えてください。
コード↓
var yahoo_user = "●●●●@yaho.co.jp"; // Yahooのメールアドレス
var yahoo_pass = "●●●●"; // Yahooのパスワード
var msg = WScript.CreateObject("CDO.Message");
msg.From = yahoo_user; // 自分のメールアドレス
msg.To = "●●●●@●●●●"; // 送り先のメールアドレス
msg.Subject = "テストメール"; // メールの件名
msg.TextBody = "テストメール";//メールの文面
setyahooConfig(msg, yahoo_user, yahoo_pass);
msg.Send();
WScript.Echo("送ったお!!");
// Yahooで送信のための細かい設定を行う
function setyahooConfig(msg, user, pass) {
msg.TextBodyPart.Charset = 'ISO-2022-JP';
var setConfig = function (conf_obj) {
var uri = '
http://schemas.microsoft.com/cdo/configuration/ ';
for (var key in conf_obj) {
msg.Configuration.Fields.Item(uri + key) = conf_obj[key];
}
}
setConfig({
'sendusing':2, 'smtpconnectiontimeout':30,
'smtpserver': 'smtp.yahoo.co.jp', 'smtpserverport': 465,
'smtpauthenticate': true, 'smtpusessl': true,
'sendusername': user, 'sendpassword': pass
});
msg.Configuration.Fields.Update();
}
669 :
>>668 :2013/04/03(水) 15:46:43.45 ID:Tj4BBb4L
ごめんなさい。 半角スペースが読み込まれずにかなり読みにくくなってしまいました。
670 :
Name_Not_Found :2013/04/03(水) 15:47:51.18 ID:PF81KaJa
>>667 ソース自体エラーが出る訳じゃないんですが、latlngの値の取り方が分からないんです。
671 :
>>668 :2013/04/03(水) 16:03:09.16 ID:???
>>668 エラーメッセージ書き忘れた。
サーバー転送に失敗しました。
って出るお
>>654 Mac版Safari 6も同じような感じ。User-Agentで判断するしかないんじゃないかなあ。
>>670 そのコールバック関数って非同期で呼ばれてるってことはない?
>>668 'smtpserver': 'smtp.mail.yahoo.co.jp'
>>672 Safari6も同じか〜。試してもらってありがとうです。
AppleのサイトではSafari搭載の先進的機能としてフォーム検証機能もリストしてるんだが
実際どういう動作になってるのか・・・
ともかくUA判別は最後の砦として、簡易だが次のように考えてみた(インデントは全角空白)
<form><input name="name" required><input type="email" name="email" required><input type="submit" value="submit"></form>
<script>
var fm = document.forms[0];
var canUseHTML5FormsValidation = typeof fm.checkValidity === "function";
fm.addEventListener("submit",function(e){
console.log("fired submit event");
if ( canUseHTML5FormsValidation ) {
for ( var i=0,l=this.elements.length; i<l; i++ ) {
var element = this.elements[i];
if ( element.willValidate && !element.validity.valid ) {
console.log("[" + element.name + "] " + element.validationMessage);
}
}
} else { /* 従来どおりのJS検証 */ }
e.preventDefault();
});
</script>
対応ブラウザで不正な入力があればsubmitハンドラ実行前に中断されるので
ハンドラが呼ばれるときには必ず検証をパスしており、エレメントのvalidity.validがtrueになっている。
Safariではsubmitボタン押下で検証しないので不正な入力はfalseのままであり
メッセージがセットされた状態になっている。
ぶっちゃけブラウザ経由しなくても送信できるんだから最終的にはサーバ側で処理しないと
JavaScript無効の環境もあるかもしれないし、 あくまで「機能向上」の観点で行うのがいいと思うよ その場でバリデーションの結果を反映させることができ、わざわざユーザーが送信しなくても 事前に間違いが分かる、という程度だと思ったほうがいい。 結局最終的なバリデーションはサーバーでやらなくちゃいけないんだし。 そう考えると、「ユーザーの利便性」にどの程度労力をかけられるかということにもなるな。
678 :
Name_Not_Found :2013/04/04(木) 10:11:26.96 ID:PrAPUcne
>>673 確かにfunction(results, status)の部分がreturn latlng; より先に実行されているみたいです。
こういった場合どうしたら良いんでしょうか?
679 :
Name_Not_Found :2013/04/04(木) 10:12:22.70 ID:PrAPUcne
↑違いました。逆です。function(results, status)の部分がreturn latlng; より「後」に実行されているみたいです。 こういった場合どうしたら良いんでしょうか?
680 :
Name_Not_Found :2013/04/04(木) 14:04:26.41 ID:0b6Iynye
681 :
660 :2013/04/04(木) 14:19:19.25 ID:PrAPUcne
現状解決方法がわからなかったので、function(results, status)内で直接値を書き出す事にしてとりあえずは目的を達成しました。
レスを頂いた方ありがとうございました。
>>680 すみません。コールバックを引き受ける形とはどういう事でしょう?
>>681 function codeAddress(address) { 〜 } codeAddress(add); alert(latlng); ではなく、 function codeAddress(addressn func) { 〜 ; func(); } codeAddress(add, function(){ alert(latlng); }); こう
683 :
Name_Not_Found :2013/04/04(木) 14:31:30.76 ID:0b6Iynye
>>681 ajaxとかもそうだけど
非同期なことやる場合、その結果を受けて実行する関数を引数にとるでしょ
そういうのをコールバックって言ってみた
あるいは、コールバック関数を登録するオブジェクトを返すようにして、 codeAddress 呼び出し後に登録。 codeAddressのfunction(results, status)ではそのオブジェクトに登録されているコールバック関数を呼び出す。 まあ、jQuery.Deferred のことなんだけどね。
685 :
660 :2013/04/04(木) 15:44:39.98 ID:PrAPUcne
よろしくお願いします 【環境】Win7 Chrome, HTML5 form, UTF8 【何をしたのか】 ソースはチェックボックス等の選択で出力結果を得るフォーム チェックボックスvalue に名称を格納していて & を含むもの有り 構文チェックでエラーが出たので '&' に書き換え しかしJavaScriptの実行結果は '&' がそのまま出力 【期待する結果】'& の出力文字を & にしたい 【サンプルコード】 <input type="checkbox" name="chkItem" value="Book & Magazine">Book & Magazine document.hoge.txtResult.value += document.hoge.chkItem[i].value;
>>686 decodeURI
Sring.replace
689 :
Name_Not_Found :2013/04/04(木) 21:57:33.78 ID:0b6Iynye
690 :
689 :2013/04/04(木) 21:58:20.64 ID:0b6Iynye
691 :
686 :2013/04/05(金) 00:05:05.44 ID:???
>>687 どもです。decodeURI は効果なしだったけどreplaceで出来ました
&を含むURL生成もソース内でやっていて
不具合が出たので同様にreplace→encodeURI→window.openで対応出来
>>688-690 検証ども。自分もそちらはイケました
自分のソースでreplaceを咬ませる前の変数をdocument.writeしたら&でした
何が違うのか気になりますが…
692 :
きら ◆Kira.u9zNc :2013/04/05(金) 13:48:45.62 ID:OkEi0CT6
http://kirahp.ddo.jp/general.js このJSファイルを参照しているHTML(PHP)読み込んでエラーが出なかったのに、
いざonClick="idcheck();"(※)が入っているリンクをクリックしたらCant find variable:reqとなります
どうすればいいですか?
※function idcheck(){
result = req("idcheck.php","POST",EncodeHTMLForm(document.signup.id.value));
if(result == 0){document.getElementById("idcheck").innerHTML = "重複してない"}
else if(result == 1){document.getElementById("idcheck").innerHTML = "重複してるからムリポ"}
else{document.getElementById("idcheck").innerHTML = "エッエーエラエラ"}
}
読み込んでエラーが出ないというのは構文エラーが含まれてないというだけ。 実行したときにエラーが出たら、その実行しているコードのどこかが悪い。 コードを調べてエラーを取り除く技術がないのなら、初歩に戻って勉強する。 それで、このidcheckは何をしてるのか説明してみなよ。
vbsをjsに変換するソフトあったら教えてください
ありません
696 :
Name_Not_Found :2013/04/06(土) 22:53:44.54 ID:JWf23bRp
質問失礼します。
やりたい事
マウスの位置を捕捉して
画面の三分の一左にマウスが入ったらtop 0px, left -250pxの位置にある
div要素をleft 0pxまでスライドさせて、
マウスが画面の三分の一を越えたら元の位置top 0px, left -250pxにスライドして
戻したい
問題
右にスライドする動きと左に戻す動きが競合してるのか、
画面がちらついてスムーズに動かない。
動きを切り替えたいところで
clearIntervalなどでsetIntervalを解除してるのですが
書く場所がおかしいのかほかの原因があるのか何か解決策とか
分かりますでしょうか?
http://jsfiddle.net/TPfcb/2/
>>695 if (run == null) {
var run = setInterval(function(e) {
ここを見て何とも思わないのか?
>
>>697 おおっ
的確な答えありがとうございます。
トップレベルで宣言するようにしたらちゃんと思ったように動きました。
699 :
Name_Not_Found :2013/04/07(日) 03:40:41.25 ID:6Zc99v3B
下記のようなクリックイベントを書きました ボタンAクリック:プランA表示 ボタンBクリック:プランB表示 上記の関して別ベージからのリンクでから遷移するときに、 リンク毎に異なったクリックイベントを発生させる方法を教えて頂けませんでしょうか。
701 :
Name_Not_Found :2013/04/07(日) 05:24:38.72 ID:yNqsH0+H
ある変数が変更になった時点で自動で処理を行う関数を作成したいのですが、 JavaScriptでそのような事は可能でしょうか? やはり、その変数を変更するコードの下にその関数を書くしかないのでしょうか?
A = function(){???}; o = new A(); としたときoにnullが入るようにする方法ありますか?
>>702 ありがとうございます。
必須の知識のようですね。とても助かりました。
エクセルマクロとかバッチファイルくらいなら自由にやりたいこと書けますが他がなにもできない程度の素人なんですが お勧めの入門書教えてください
706 :
Name_Not_Found :2013/04/09(火) 00:55:15.94 ID:QsPCE/sB
>>705 > エクセルマクロとかバッチファイルくらいなら自由にやりたいこと書けます
そんくらい書けるならサイ本(オライリーJavaScript第6版)読んでも理解できると思う
というか、お作法だけ読んで、あとはMDNとか参照しながらトライアンドエラーで
肌で覚えたほうが早そう
>>705 ちょっと古いけど、「JavaScript 中級講座 ~Ajaxを学ぶ前の基礎知識」が入門書としてはおすすめ
これで一通りの基礎知識を学んで、ライブラリの使い方とか、Ajaxの最新仕様とか、
HTML5の内容(File API等)とかはMDNで勉強するといいと思う
708 :
Name_Not_Found :2013/04/09(火) 15:50:13.87 ID:/bz8fAbq
getElementByIdとかgetElementsByIdのように どんなHTML文書でもコメントノードだけを取得する方法を教えてください
ツリーを辿ってnodeTypeをチェックして収集する関数を書くしか。
document.evaluate使えば?
711 :
Name_Not_Found :2013/04/10(水) 14:16:11.16 ID:YN/0DoFc
>>709 やっぱり地道にそうやるしかなさそうです
>>710 xpathでどのようにコメントを表現するのでしょうか?
というかそれでは出来ないと思うんですがサンプルありますか?
やり方がよくわかりません
//comment() じゃね?
713 :
Name_Not_Found :2013/04/10(水) 18:24:50.35 ID:aN5a2zFK
inputの入力内容をsetIntervalで監視し、入力内容が数字だけだった場合に submitのhover時にvalueに指定文字列"_isnum"を追加しています var nameVal = $(\'input#name\').val(); var addtoVal = ""; var intv = setInterval(function(){ if(nameVal.match(/^[0-9]+$/g)){ addtoVal = "_isnum"; $(\'input[name=submit]\').hover(function(){ $(\'input#name\').val(nameVal + addtoVal); }); } }, 100); これ自体は動いているのですが、hoverのタイミングでフォーム欄に追加したaddtoVal文字列が表示されますよね(あたりまえですが) この処理のベストタイミングについてもよくわかっっておらず、hoverでよいのかも自信がありません。 これを完全に裏方で実装しブラウザ上での見た目には入力欄の変化がないようにしたままvalを渡すにはどう記述したらよいでしょうか
いや・・動いてないだろ・・ valの値変えたいならsubmit時で良いだろ何でhoverなんだ?
>713 >setIntervalで監視 onchange イベントで監視する方が普通だと思うけど何故? 入力内容が数字だけだった場合に setIntervalで毎回 hover に対するアクションを追加してるのは何故? 入力が数字から他のに変わっても hover に対するアクションは取り除かないのは何故?
変わらないnameValを参照し続けてることにも突っ込み入れるべき
717 :
Name_Not_Found :2013/04/10(水) 19:17:14.36 ID:aLwNvD5d
>>715 それしか思いつかなかったから、そうしているんだろうに
そういうときはonchangeでいいんだよ、って言えばいいと思った
それを「なぜ?」って聞くのは性格悪いぜ
718 :
713 :2013/04/10(水) 21:37:24.23 ID:aN5a2zFK
皆様ありがとうございます。 質問さしあげたかったのは >完全に裏方で実装しブラウザ上での見た目には入力欄の変化がないように という部分なのですが、 onchange イベントで監視するとそれがどう実現できるのか見当がつきません 数字の入力があり次第にフォーム欄に追加したaddtoVal文字列が表示されてしまうと思うのですが、、、、、
>>712 それでできました
ありがとうございます
>>718 >>714 読んだか?submitの時にvalue変化させてsubmitして戻しとけ
完全に裏方で実装したいなら入力欄にはnameを設定せずhiddenなinput作ってそっちのvaueでも変えてろ
721 :
713 :2013/04/10(水) 22:55:02.82 ID:aN5a2zFK
submitの時にvalue変化させても一寸遅いのでサーバーに渡りませんよね? 変化はずるけどサーバーには変化する前の値が行っちゃいませんか? あと、hiddenを生成するのはわかるのですが 入力欄にnameを設定せずにその入力値をどのように知るのでしょうか?
submitする前に変化させろよ type=textにはname設定せず hiddenにname設定しろ 少しは自分で考えて調べろ
723 :
713 :2013/04/10(水) 23:37:41.72 ID:aN5a2zFK
なにも考えずに質問しているわけではありません submitする前に変化=submitボタンのhover時 と考えたのが最初の投稿です。ただし自信がないと付け加えました あなたには違う方法でsubmitする前に変化を実現する策があるのですね? type=textにはname設定せず hiddenにname設定 ですのでhiddenを生成するのはわかりますが name設定がないtype=textの入力値を取得する策がおありなのですね?
炎上させて答えを無理やり引き出すつもりなのですね?
からかわれてるだけ。
あのさぁ、分かってないでしょ? submitするタイミングとかなんてHTMLの話だし、そもそもそんな危うい知識でJavaScript実装してどうすんの? 教科書に書いてあるようなこと聞くもんじゃないよ。
春だなあ
良い天気だから釣り日和なんだろうなぁ
勉強が足りん。しかし少なくともこの質問をよく読めばonchangeなんて回答は不適切だわな
730 :
Name_Not_Found :2013/04/11(木) 00:30:18.46 ID:15sIhxKY
>>721 >submitの時にvalue変化させても一寸遅いのでサーバーに渡りませんよね?
んなこたないから試せって
form要素.addEventListener('submit',function(){
alert('あーだこーだ');
});
ってしたら、投げる前にアラート出るじゃろ
もう放置でおk 適当なこと言ってコード出させるのが目的だろ
>>726 >submitするタイミングとかなんてHTMLの話
これは違うだろw
てst
やっと規制解けたか
てすと
マジで規制とけたんか このスレツッコミ入れたいことちょくちょくあったのにできなくてこの1年苦しかったわ まずはChromeではletが使えないとか言ってた奴滅びろ!
javascriptデザイン本みたいのみてると痛々しいエフェクトばっかり紹介されてるけど いろんな所で多用されてるガチな奴ってたとえばどんなところにつかわれていますか?
春樹の小説げと
740 :
Name_Not_Found :2013/04/12(金) 00:39:19.36 ID:odVHrNf0
ページ内の画像の表示サイズを取得したいのですが、画像の読み込みが終わってるかどうかを確認するにはどうしたらよいでしょうか。 new Image() したものなら onload を使えばよさそうなのですが、ソースに直書きしてある画像についての方法がわかりません。 完了イベントを受け取る方法でもポーリングする方法でもよいです。
742 :
740 :2013/04/12(金) 01:51:32.54 ID:???
>>741 jQuery はあまり使いたくありませんが、どうもありがとう。
調べてもよい方法を見つけられないんで、Imageオブジェクトを使ってやることにしました。
ページに直書きしてる画像の src を取得し、それで Imageオブジェクトを作り、onload で処理をする感じで。
ブラウザのオンメモリキャッシュ内で完結すると思うものの無駄なhttpリクエストが発行されることもありそうで気分よくないですが、
とりあえず動いています。
>>742 それで普通だと思うけど、windowのonloadは直書き画像まで全部取れてから発火するんで、
それを待つという方法もあるよね。
744 :
Name_Not_Found :2013/04/12(金) 11:33:19.70 ID:dVaUdEm/
var a = [[0,1]]; console.log(a[0][0]); console.log(a[0][1]); console.log(a[0][2]); // Uncaught TypeError: Cannot read property '2' of undefined 二次元配列だとundefinedが返らず、エラーになるので値が存在するとかこのプロパティが読めるとかなにかチェックする方法ってありませんか?
>>744 a[0][2]はundefinedになってるんじゃないの?
>>744 a[0]!=null ? a[0][2] : a[0]
747 :
Name_Not_Found :2013/04/12(金) 15:40:12.07 ID:AmeV1gS/
>>746 「a[0] && a[0][2]」でどうかな。
748 :
740 :2013/04/12(金) 15:41:35.21 ID:???
>>743 > windowのonloadは直書き画像まで全部取れてから発火するんで
それ本当ですか?
デカい画像がじわじわ出ているような状態でも onload は来てた気がするけど、気のせいだったかな。
749 :
Name_Not_Found :2013/04/12(金) 15:48:55.49 ID:M3yGbbj5
>>748 気のせいだと思う
JSで画像沢山使ったアプリ作るとき
全部プリロードし終わってから始めたいから
HTMLの端っこの1x1のブロックに使う画像全部<img>要素で貼り付けて
NowLoading...な振りをしてonloadを待つ、ってのをよくやる
>>749 実験したら確かにそうでした
ずっと勘違いしてて、つまらない苦労をしてた気がします
これから楽になります
アップデートの通知何度も何度も来ます インストしようとしたら失敗しました この繰り返しが一時間ごとにありますどうしたら直りますか?
スレ違いです。頭直す方が先だと思います
そもそもなんの話かわからねえ
754 :
Name_Not_Found :2013/04/12(金) 21:05:49.66 ID:60LpF/ME
文字の形をポリゴン、もしくは二次元の図形で作りたいです その為に指定の文字の頂点やそれをつなぐ線のデータを取得したいのですが そんなこと可能でしょうか?(テキストをそのまま画像で表示するとかは無しで) ご存知の方いたら教えてください
755 :
Name_Not_Found :2013/04/12(金) 21:15:48.03 ID:M3yGbbj5
canvasのgetImageDataでピクセルの色を拾えるから それで頑張ってみるとか
素直にWebFont使え 間違っても動的生成は考えるなよ
どうせ年に100人しか見ないようなページか 個人の趣味で実験したいだけじゃねえの? それにあらゆる文字を生成したいのか? 動的生産はフォントの違いの問題もあるから現実的に難しいでしょ もっと具体的にどんな場面でどう使いたいのかが聞きたい
759 :
754 :2013/04/13(土) 20:08:53.58 ID:???
やっぱり難しいみたいですね
諦めます
>>758 そうです単なる個人のテストページです
入力した文字列が物理エンジンとか組み合わせて面白いアニメーションをさせたら面白いかなぁと思ったのですが・・
>>759 研究しろよ。
聞いて
「難しいみたいだから諦める」
って何だよ。
一生他人の二番煎じで生きてくつもりか。
面白くない。
気概だけでもいいからチャレンジしろ。
フラナガンのJavaScriptを精読しろ。
760は言いこというね これがかつての日本企業の底力だった 俺なんて、プログラミングするプログラムを諦めずに作ってるぞw
面白いことならどんどんやってみろ 遅くてもとりあえず作り上げれば改善点が見えてくる
>>762 お前はどこの飲み屋の大将なんだよ。
とりあえずイイ感じに先輩風吹かしてみようってコーナーじゃねえって
自動ネット収入システム「Auto WebMoney〜Final Ultimate Edition」の
裏モードが解禁され、新たに100セットが限定販売されている。
ttp://www.auto-webmoney.com/ 購入した既存ユーザーはある方法をとることにより裏モードが解禁、ネットワークに
新たな回路システムが発動され、稼げるスピードがおよそ三倍早くなるという。
もうじき六周年を迎える記念として既存ユーザーに感謝の意を込めて解禁したというが、
日本ユーザー800万人を突破したモンスターシステムだけあって今後の展開が楽しみである。
引用元.IT総合情報メディア
Three.jsで作ったソースがIEや火狐で動きません 対応策ってありますか?
>>765 1.どんなプログラムを組んだ?
2.どんなエラーが出た?
768 :
Name_Not_Found :2013/04/14(日) 16:45:40.39 ID:X09jWgl2
下記は、 ボタンを押すと、DBにcommentの内容がAjaxで反映され(detect.php)更新されます。 <FORM ACTION="index.php" METHOD="POST" name="MainForm"> <INPUT TYPE="TEXT" NAME="comment" SIZE="60"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="更新"> </FORM> <div id="container"> </div> ※containerの中身は「detect.php」 ところが、detect.phpが反映されるまで、僅かなタイムラグが発生します。 「SUBMIT」ボタンを押すと即座に<div id="container">に反映されるようにするには どのようにしたらよいでしょうか?
detect.phpにアクセスする時間のタイムラグが発生するのはどうしようもない事ぐらい分かるよな? それまでの間にユーザーに一切触らせたくないなら、Ajaxを同期で動かせ
>>766 たんに立方体を表示するプログラムです
>>767 ThreeはIEにも対応していると本にはかいてあるみたいです
IEでWebGLを動かすためのプラグインがある だけど自分でその情報に辿り着けないような奴に使いこなすのは無理だ
Backbone.jsってどういう所で使うべき?
>>772 ページの操作でサーバ側のデータを更新して
それをページ遷移無しでページの表示に反映するようなのを作るとき
774 :
Name_Not_Found :2013/04/16(火) 00:30:16.37 ID:NVqZnccC
すいません、多分超かんたんな事なんでしょうけど一生懸命ぐぐってもわからなかったので教えてください。 文字列中の"(ダブルクォーテーョン)を'(シングルクォーテーション)に置き換えたいんですが、どうすればいいんでしょう? test = test.replace(/aaa/g,'bbb'); でいけると思うんですが、肝心のaaaとbbbの部分がどうやっても上手くいかないので…。
>>774 replace(/\"/g, "'")とかじゃダメなの?
776 :
774 :2013/04/16(火) 02:14:27.13 ID:NVqZnccC
>>775 それでいいかなと思ったんですが、なんか上手くいかないので…。
もしかして、元のtestの中身がおかしいのかなぁ…。
ちょっとそっちも見直してみます。(´・ω・`)
&quot; だったりして
778 :
Name_Not_Found :2013/04/16(火) 09:31:02.06 ID:DQ1TgLrO
>>776 これでできない?
test='今日は"4月16日"です。明日は"4月17日"です。';
test = test.replace(/"/g,"'");
alert(test);
779 :
Name_Not_Found :2013/04/16(火) 12:34:15.88 ID:VSTm4Fl7
正規表現にする意味あるのん?
グローバルマッチさせたいから
781 :
Name_Not_Found :2013/04/16(火) 21:36:12.68 ID:mmL5Mu0I
おおう、理解した
>>782 jQueryの解説本の評判のいいのを見ると載ってるよ。
それは基礎的(初歩ということではなく)なことだから、jQueryの仕組みを解説してる本を読むといいと思う。
基礎は応用がきく(この質問がまさに基礎の応用に当たる訳だけど)ので、勉強するといいよ。
784 :
Name_Not_Found :2013/04/18(木) 04:50:07.07 ID:1/A3ByRk
>>782 アコーディオンを配列に入れておいて
現在開いているのも変数に入れておく
n番を開くときに、同時に現在開いているのを閉じて
現在開いているよ変数にn番を入れる
ついでにcookieにnを記録しておく
>>783 答えが分からないならレスは不要です。
>>784 ありがとうございます。
でも、わざわざcookieではなくてもグローバル変数でよいとは思うんですが。
クリックした際に展開するメニューにだけaddClassなんかでクラスをつけて そのクラスがあるかないかを判定して(最初のみ全部閉じてるなら無し)、あればそれを閉じる処理&removeClassする で新しく展開するメニューに新たにaddClassする これならグローバル変数も要らない
こんなこともできない割に聞いた風なものの言い方だなあ
>>785 > 答えが分からないならレスは不要です。
お前、もう終わりだ
精々、知恵遅れでも行って頑張ってこい
まあこの手の処理は結構よく使うから
>>783 は割と為になる話なんだがな
割と為になる話をここに書いてくれ
プルダウンメニューで一つを選択したら他のプルダウンメニューを初期化(selectedIndex=0)させたいのですが、jQueryで可能でしょうか。 (html) <select id="select1" onchange="sel1()"> <option id="a" selected>A</option> <option id="b">B</option> </select> <select id="select2" onchange="sel2()"> <option id="c" selected>C</option> <option id="d">D</option> </select> (js) function sel1(){ $("#select2 option:selected").prop("selectedIndex",0); } function sel2(){ $("#select1 option:selected").prop("selectedIndex",0); } こんな感じなのですが上手くいきません。 attr("selected",false);にすると、FireFoxでは上手くいきましたが、IEではボックスが白く表示されてしまいました。 直接selectedIndexをいじらないとだめだとは思うのですが・・・ jQueryは1.6.1〜1.9.1で試しています。 javascriptはjsファイルにまとめています。
面倒なことしすぎ。
本?これくらい自力でがんばれよ 開発には興味なく、打ち込み専門でいくなら別だが
795 :
Name_Not_Found :2013/04/18(木) 13:29:52.02 ID:hDyOCPZd
>>785 ん?
開閉状態を記録って
他のページに引き継ぐって意味じゃなかったんか
グローバルに置くほどのものなの?
>>782 の質問をしたものです。
>>785 とは別人です。
>>783-786 レスありがとうございます。
やはり基礎中の基礎みたいな感じなんですね、某知恵袋にあった似たような質問でも
これくらい出来ないなら使うなといった感じだったので…。
>>784 を読んでもパッとこないくらいの状態なので、ちゃんと勉強して出直してきます。
丁寧な回答有難う御座いました。
>>791 $("#select2").prop("selectedIndex",0); じゃね?
>>796 >>782 のコードはcookieに状態を保存しておくってところにコードの大半を取られているから、
別のサンプルを探すほうがいいよ。
ページ内に複数のコンテナ(div またはsection)があって ブラウザウインドウ内で現在いちばん広い面積を占めているコンテナを取得するにはどうすればいいの?
801 :
Name_Not_Found :2013/04/18(木) 19:15:15.41 ID:1/A3ByRk
質問です ブラウザ:Android4のデフォルトブラウザ [A.html] <form action="b.html"> <input type="submit" value="Bへ"> </form> ※長ーいページの最下部にサブミットボタンがあります [B.html] <script src="B.js"></script> [B.js] alert($(window).scrollTop()); 上記のような2ページがあって、B.htmlにJSがあります A.htmlのサブミットボタンを押すと、画面はA.htmlのまま ロードのインジケータが進み始め半分くらいすすんだところで B.jsが発火して、A.jsのscrollTopがアラートされます これは、私の書き方が糞なんでしょうか それともデフォルトブラウザが糞なんでしょうか?
どっちもクソ!
803 :
Name_Not_Found :2013/04/19(金) 00:34:48.97 ID:s3pn7BFI
なんだそりゃ 表示のラグじゃなくて? 前のページのうちに発火して DOMもそのままとな? にわかに信じ難い…
<form action="b.html">でB.html読みにいってくれるんだっけ? A.jsってなんぞ? アラートのダイアログが出るときにB.htmlは表示されるのか? $(window).scrollTop()以外の情報は正常にとれるのか? jQuery使わずにもっと基本的な構成で試してみたら?
DOM終わった時点で読ませたきゃjqueryのready使えば 両方糞でFA
>>801 jQuery Mobileでも使ってんじゃね?
800超えたのでテンプレに関する大物の変更提案などあればどうぞ。
809 :
801 :2013/04/19(金) 12:26:15.52 ID:s3pn7BFI
自分でも理解できないのですが、端的に言うと リンク先のページのJSがページ遷移前に発火しているのです
JQueryを使ってIDを取得するとき var idName = $(this).attr("id"); と思いますが、さらにそのIDが規則正しく番号ふってあったとして cont_1 cont_2 cont_3 その数字だけJQueryで取得するに適したメソッドはありますか? 無い場合はどう書けば取得できますか?
>>810 replaceで要らないところ消せば良いじゃん
>>811 JQueryにはないですか。ありがとうございます
>>810 の規則性の場合$は必須でしょうか?
814 :
Name_Not_Found :2013/04/19(金) 14:26:38.71 ID:/yqEBGgq
$('[id*=cont_]') ではいかんの?
>>801 ページが完全に遷移した後にJSを実行したいなら、
>>801 のB.htmlとB.jsの書き方じゃダメだって
816 :
Name_Not_Found :2013/04/19(金) 14:42:51.59 ID:/yqEBGgq
どゆこと?
818 :
Name_Not_Found :2013/04/19(金) 15:45:58.18 ID:/yqEBGgq
遷移先のJSが今のページで発火するとか意味不なんだが onloadとかDOMContentLoadedの話とは違うよね?
たとえばjQuery Mobile使ってると、submitをフックしてajaxで取得して 遷移したように見せかけている。 だからそういうの使ってんじゃね?って聞いたけど違うのかな。
820 :
Name_Not_Found :2013/04/19(金) 18:33:06.37 ID:/yqEBGgq
あ、ごめん いつからjQueryMobileの話だったん?
>>820 いや、単なる予想。jQueryMobileじゃなくても ajax使った遷移だったらそうなるかなと。
822 :
Name_Not_Found :2013/04/19(金) 18:57:22.86 ID:/yqEBGgq
ああ、なるほど Ajaxの話だったっけ?
*submitをフックして*ajaxで取得して遷移したように見せかけてたらそうなるかなと。
824 :
801 :2013/04/20(土) 00:08:53.80 ID:1H6cfGx8
ajaxじゃないです 普通にサブミットして画面遷移です jQueryは使っていますが、ただの1.9.1です
>>824 B.jsを$(function(){alert($(window).scrollTop());});にしてみろよ
826 :
801 :2013/04/20(土) 15:51:25.90 ID:SZtGd0Ze
>>825 あ、それは問題ないです。実際にはそんな感じで書いてます
B.html単体では不具合ないです
問題なのはB.jsがA,htmlのscrollTopを拾ってしまうことでして
827 :
801 :2013/04/20(土) 15:54:05.09 ID:SZtGd0Ze
そんなことあるわけない 何か他におかしい所があるに違いない と、自分も疑って色々切り分けながら調べているのですが…
Firefoxがいつのまにかevent.clientXに対応してた
>>827 どこかに問題が再現する最小構成のソースを置いてくれないか
このままだとエスパーでもない限り原因は分かりそうにない
つーかなんでsubmitでページ遷移させてんの?
>>801 は
>>826 B.htmlが単体で不具合無く動くのは偶然で、
B.jsが実行されるときにDOMがB.htmlの内容を反映してる保証は無いってことを
>>805 とか
>>815 とか
>>825 とかは言いたいんだと思う
HTMLの仕様?が実際にどうなってるのかは俺は知らんが
試してみても
>>801 みたいな現象発生しなかった
環境記入と再現できる最小プログラム用意しろよ
環境は書いてたごめん
834 :
Name_Not_Found :2013/04/21(日) 10:13:38.95 ID:XaUT26+/
>>826 A.htmlの環境でB.jsが動いてるんなら、A.htmlで設定したグローバル変数がB.jsで読めるよね。
まずはそれ調べてみたら?
あと window.onload の時点はどうなの? レイアウトが確定するまでscrollTopのようなのは
どんな値になってても不思議じゃない気がするけど。
出来るかもわからないのですがtextarea内の特定の文字列だけ色を変えることは出来ますか? 記号だけとかアルファベットだけ色を替えれればと思っています。
>>836 色を変えたい文字だけspan class=〜で囲んだものに置換してみるのはどう?
838 :
801 :2013/04/22(月) 10:00:06.41 ID:yZ19O8Oy
>>835 その推測が近かったようです
A.htmlのグローバルは見えていませんでした
A.htmlのページ最下部までスクロール
↓
サブミットボタンを押してB.htmlへページ遷移
↓
ScrollTopがA.htmlの時のままレンダリングがなされず、$(function(){})だけ発火
↓
その後B.htmlの内容がレンダリングされる
という流れだったようです
他にもCSS絡みの不具合があって四苦八苦しているんだけど
どうしてこうもchromeとの差異がでやがりますかね、デフォルトブラウザは
ふんとにもう!
>>838 >ScrollTopがA.htmlの時のままレンダリングがなされず、$(function(){})だけ発火
おまえ
>>801 で$(function(){})使って無いじゃん
>>826 では使えって言っても関係無いとか答えてるし
他の人が$(function(){})関係の問題じゃないかって聞いてるのに無視してるし
$(function(){})使って問題が出るのか出ないのかどっちなんだ
>>837 ありがとうございます。
やはり直接的には出来そうにないので、いったんtextarea内の文字を取得して
それをreplaceしてみたのですが、
text = text.replace(/hoge/gi, '<div style=color: #ff0000;>HOGE</div>');
このようにして置き換えを行うと<div style=color: #ff0000;>HOGE</div>がそのまま表示されてしまいます。
エンティティ化されているからだと思いますが実体をそのまま表示というのはreplaceでは出来ないものなのでしょうか。
すっごいうざい
いや今回は正規表現関係なくね?
>>840 はどうやってtextareaを書き換えてるんだ?
>>840 あとなんでdivなん。spanでよくね?
divもspanも関係なしにreplaceしたら<とかが<になるんで文字色がかわらんということだろ
847 :
801 :2013/04/22(月) 12:20:41.30 ID:yZ19O8Oy
>>839 使っても使わなくてもなりますよ
だから困ってたんですよ
いつまでやってんだボケナス
ほらな シーンとしただろw
>>847 使ってるか使ってないかを最初に説明すべきだったと理解できないの?
853 :
801 :2013/04/22(月) 13:01:29.13 ID:yZ19O8Oy
>>850 >>852 使っても使わなくても再現したので
最小サンプルにするために削りました
わかりづらくてごめんね
>>849 なんかよくわからんが試してみたぞ
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="
http://code.jquery.com/jquery-2.0.0.min.js ">
</script>
<script type="text/javascript">
$(function(){
$("textarea").change(function(){
var text = $("#text_test").val();
text = text.replace(/hoge/gi, '<span style=color: #ff0000;>HOGE</span>');
$("div").text(text);
});
});
</script>
</head>
<body>
<textarea id="text_test"></textarea>
<div></div>
<input id="trigger" type="button" value="表示">
</body>
</html>
これでhogehogeっていれでbutton推したら
タグが確かのこのまま表示されるわ。
javascriptは詳しくないのでなんでそうなるのかは知らん。
>>854 $("div").text(text);
馬鹿杉ワロタ詳しくないなら答えるなボケ
textメソッドで出力すれば、そりゃタグそのまま出力されるだろうよ
元の質問がこれかどうかもわからんのだから仕方ない
だから釣られるなよ
textarea内の表示の話じゃなかったの?w
860 :
Name_Not_Found :2013/04/22(月) 13:18:24.89 ID:5nxH6Exm
テキストエリアを使うのやめて contenteditableを使ったら 幸せになれるんじゃないですかね?
みんなすまん
底辺PHPerが適当に
>>854 書いただけだから気にしないでくれ。
元の質問もtextarea内って言ってるみたいだから違うだろうし。
おれのことなんかわすれて
>>801 とかの相手をしてあげてください。
>>861 元の質問とも合ってるし
コードも大体合ってるが
textだけは頂けない
<html>
<head>
<title></title>
<meta charset="utf-8">
<script src="
http://code.jquery.com/jquery-1.9.1.min.js ">
</script>
<script type="text/javascript">
$(function(){
$("#view").click(function(){
$("#test").focus();
});
});
</script>
</head>
<body>
<textarea id="test"></textarea>
<div id="view" style="width: 100px; height: 100px; border: 1px solid #aaaaaa;"></div>
</body>
</html>
div部分をクリックしたらtextareaにフォーカスするようにしたいのですがうまくいきません。
どのようにしたらフォーカスしてくれるでしょうか?
>>863 そのコードで問題無くフォーカスしてくれたが・・
865 :
sage :2013/04/22(月) 17:32:12.69 ID:???
863です
>>864 確かに問題なくフォーカスしてます。
私はいったいなにを思って質問してしまったのでしょうか。
つかれているんですかね。
もう休め・・!
867 :
sage :2013/04/22(月) 20:25:03.05 ID:???
input type="text"にtestという文字列を追加したいと考えています。 <script> /* +test */ $(function(){ $("#sample").click(function(){ var base = $("#test").val(); base_plus = base.replace(base, base + 'test'); $("textarea#test").text(base_plus); alert(base_plus); }); }); </script> <textarea id="test"></textarea> <input type="button" id="sample" value="tab"> buttonを押すとどんどん追加はされていくのですが textarea内に1文字でも字を書くとbuttonを押しても追加されなくなります。 追加されなくなる理由がよくわからないのでアドバイスもらえると助かります。
>>867 >(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。(なりすまし及び煽り防止のため)
869 :
Name_Not_Found :2013/04/22(月) 20:41:19.18 ID:5nxH6Exm
>>867 押すたびにbaseの中身がどうなっているのか見てみるといいよ
てか、なんで $("textarea#test").val(base_plus); にしないの?
871 :
sage :2013/04/22(月) 20:50:26.74 ID:???
$(function(){ button id=sample をクリックしたら id=test の中身取ってきて base に突っ込む replaceで base に test という文字列を追加して base_plus に突っ込む textareaのid=test に base_plus を書き込む base_plus の中身をalertでも表示 }); という流れだと思っているのですが違ってますか・・・?
テキストエリアに変数を代入するんだからtext(val)じゃなくてval(val)をい使えって言ってんの
なんでvalで取っといてtextなんだよ
バカばっかり
876 :
Name_Not_Found :2013/04/24(水) 00:15:31.71 ID:wwsZ6HDT
カーソルを表示というのは出来ますか? abcdefghijklmn という文字列があって、fとgのあいだを選択したら|みたいなのを 表示させることができればといいと思っています。
キャレットブラウズモードは関係ないか
>>876 カーソル自体は CSS で設定できるが
選択している間_だけ_ | を表示する
ようなことをしたい場合は js が必要になるだろう
>>801 遷移前のページの情報が読み取れるとなると、一種のセキュリティホールになるな
何らかのウィルスでも仕込まれていて、その動作の一端が現れた
みたいな可能性もあるかも?
>>876 contenteditable じゃだめなの?
880 :
Name_Not_Found :2013/04/24(水) 13:54:19.49 ID:xsZ6SJcZ
>>878 >>838 にも書いたんだけど、A.htmlのグローバルにあくせすできてしまっている
というようなことはなくて、scrollTopだけの問題でした
原因は完全にはわかってないですが
スマホがスクロールする際の、windowとviewportの絡みで
そんなことになっちゃってるのではないかと予想しています
881 :
Name_Not_Found :2013/04/24(水) 13:57:11.37 ID:xsZ6SJcZ
また言葉足らずで怒られるところでした ここで言うviewportはmeta要素のことではなく windowの外側で画面のスワイプと一緒に動いたり ピンチで伸び縮みするviewportのことです
882 :
Name_Not_Found :2013/04/24(水) 18:39:40.49 ID:83YQW1ZA
three.jsを使って立方体を画面に表示するプログラムを作成したのですが コンソールに以下のようなメッセージが表示されました どういう意味かよくわからないのでどなたか教えて下さい THREE.WebGLRenderer 57 THREE.WebGLRenderer: Anisotropic texture filtering not supported. THREE.WebGLRenderer: S3TC compressed textures not supported.
ローカルだとテクスチャが使えんかったような サーバーに上げて実行してみ
884 :
Name_Not_Found :2013/04/24(水) 21:05:31.95 ID:83YQW1ZA
サーバーで実行してます テクスチャに使用する画像もちゃんとサーバーに上がってるのですが・・・ うーん・・・
885 :
Name_Not_Found :2013/04/24(水) 21:06:20.74 ID:83YQW1ZA
ちなみに一応正しくテクスチャも表示されていて見た目は全く問題なく実行されています
886 :
Name_Not_Found :2013/04/25(木) 05:54:29.02 ID:wlyrqzYM
なんかよくcontenteditableが出てくるけど contenteditableの中身って取れますか? 例えば <div contenteditable="true" id="content" name="content" style="width: 100px; height: 100px;"></div> みたいな感じで書ける場所作っても $(function(){ $("#button").click(function(){ var contenteditable_count = $("div#content").val().length; alert(contenteditable_count); }); }); で中身見たり拾ったり出来ないから使わないんだけど、contenteditableの中身を取ること出来る?
.text()じゃね?
>>886 中身取れるかどうかと contenteditable かどうかって関係あるの?
普通に textContent とかで取れるんでは
Chromeでリンクにマウス乗っけるとステータスバーが表示されるのですが これを操作する方法って無いんでしょうか? window.stateじゃどうにもならないのですが
操作できたらあかんでしょ
そもそもwindow.stateじゃどうにもならないだろw
892 :
889 :2013/04/25(木) 13:22:21.93 ID:???
誰も指摘しないがChromeの<a>タグmouseoverでURL表示されるアレはステータスバーじゃねーぞ ありゃ<a>タグだけに反応するモンだからwindow.stateとかで操作不可 まぁその甲斐あってエロサイトのURL隠し回避出来るわけなんだがな
window.status自体があまり推奨されてない事はヒミツ
894 :
Name_Not_Found :2013/04/25(木) 13:55:58.78 ID:CMM83dml
ステータスバーに いらっしゃいませ!あなたはn人目の訪問者です! って流すにはどうしたら良いですか?
>>894 そこはお前が勝手に何かを表示していいところじゃない
896 :
Name_Not_Found :2013/04/25(木) 14:15:23.62 ID:CMM83dml
まあそうだよなあ なんで触れる(read/write)プロパティだったんだろう
ステータスバーは、昔(IE 5くらいまで)は操作可能な場所だったけど、 セキュリティ上の理由からできなくなった (リンク先と違うURLが表示されるようにすれば、フィッシング詐欺等に使いやすくなる) ポップアップウィンドウとか、ウィンドウのサイズを変更するとか、 最初期のJavaScriptはいろいろ問題があるものが多いけど、 まあブラウザ自体ができて間もないころだから仕方ない気もする
defaultStatusだったかの方ならアンカーをポイントした時のURLの表示を 邪魔することなくステータスバーの文字列を変えられるという事も 赤座あかり以上にアッカリ〜ン。
900 :
Name_Not_Found :2013/04/25(木) 16:39:26.28 ID:7TowfBge
懐かしい話してるな NAOシフトを思い出したわ
後方互換で追加されてるwindow.statusの標準仕様は、取得時は空文字列を返し、設定時は何もしない
if(ww > wh) $('#abc').css({paddingTop:'100px',paddingLeft:'0px'}); else $('#abc').css({paddingTop:'0px',paddingLeft:'100px'}); 上も左も100pxになる・・・ なんで? 0pxにもどせない・・・
↑ ごめん、自己解決。
jQuery JavaScript Library v1.9.1で jQuery imagesLoaded plugin v2.1.1が効かない・・・ 解決できない? 画像と同時にimagesLoaded以降も読み込む。
905 :
Name_Not_Found :2013/04/25(木) 20:51:07.49 ID:7TowfBge
作ってる人にお願いしたほうがいい気がする 色んな意味で
906 :
904 :2013/04/26(金) 00:52:36.16 ID:???
ライブラリの問題は開発者にだな 割とマジで
900超えたのでテンプレの軽微な変更提案あれば今どうぞ。
908 :
Name_Not_Found :2013/04/26(金) 07:27:53.04 ID:/tL2Umui
次スレたてたら、過去スレ全集にアップしてね、と どこかに書いておいてもいいかもね
909 :
Name_Not_Found :2013/04/26(金) 08:52:52.31 ID:L/HA2cnf
910 :
909 :2013/04/26(金) 15:32:37.71 ID:L/HA2cnf
解決しました! コメントしてくれた人ありがとうございます! あれ、なんかコメントついてる! って思って問題がスクリプトじゃないことに気づきました!
911 :
Name_Not_Found :2013/04/26(金) 15:47:54.83 ID:rHiTyTOL
ふぁっ?
いつになったらV8でES6の機能が追加されるのでしょうか? Proxy等の関数的機能は良く追加されていますが 構文レベルではletやconstが追加されてかなり経ちます この辺りの採用段階はどうなっているのでしょうか? こういう機能は段階を踏んで採用されるものだと思うので どこかを見れば今どのくらいまとまってて どのくらいの時期に採用されそうか分かると思うのですが その場所を教えていただけないでしょうか? ちなみにGoogleCodeのページは見てます
submitで同ページの値を更新するページなんですが、 値が更新されたりされなかったりします 勘違いかもしれませんが、scriptを操作したら変化しなくなる、みたいな事はありますか?
将棋の様にマス目に駒となるimg要素を 移動させるプログラムを作っているのですが、 draggableで移動させただけだと構造的な変化が無いようなので 元のマスにあったimgを削除して、移動先に新しくimg追加する、 という処理をした所、変な所に追加されたり、ドラッグが無効化された画像になったりします droppableと一緒に使ってるので干渉しているんでしょうか? 何か解決策はあるでしょうか?
draggableと構造的な変化を一緒にというのはいかにも危うい感じがする。 構造的な変化は行わない(画像の位置だけ取得してそれをもとに判断処理する)か、 draggableを使わない(自分でドラグ処理をする)かどっちかがいいのでは。
>>917 ロード時にappendした奴はドラッグ可能になるのですが
drop時など途中から追加した奴はダメだったので、
doraggableを変数化して再実行するようにした所、一応ドラッグ可能になりました
この方法は処理的に何か問題があるでしょうか?
また、変な位置にコピーされる現象は変わりませんでした
コピーされた画像を見ると、どうもopacityで透明度が変化した奴がコピーされてるんで
stop・dropのタイミングでコピーしてるから変なことになってる気がしています
タイミングをずらしてコピーを実行する方法ってありますかね?
変な位置にコピーされるってときにDOMの状態がどうなってるか見てる?
>>919 データ的には正しい位置に入ってると思うのですが
snapに反応してるのか別のマスに置かれたりします
まあ他の方法でも解決可能なので、諦めることにします
返答ありがとうございました
Tizen,FirefoxOS,ChromeOS,Win8等のマルチプラットフォームで使える ファイル操作や情報取得等のフレームワークはありませんでしょうか?
922 :
Name_Not_Found :2013/05/02(木) 22:02:49.24 ID:FQ5GagD4
低レベルな質問ですいません。ツイートボタンを設置するためのコードの一部なのですが
上、下どちらを貼ればいいのか迷っています。
ページの表示速度に違いはあるのでしょうか?
■ツイートボタンの設置方法を書いているあちこちのサイトにある(古い?)コード
<script src='
http://platform.twitter.com/widgets.js ' type='text/javascript'></script>
■先ほど
https://twitter.com/about/resources/buttons#tweetから取得したコード <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^
http:/.test (d.location)?'http':'https';if(!d.getElementById(id)){js=d.create
Element(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
あと、お暇でしたら下のコードにはどのような意味があるのか教えてください
923 :
Name_Not_Found :2013/05/03(金) 18:03:17.22 ID:YO/kLxM5
はじめて質問します。 「フォローボタン風」に ・最初は画像@(フォロー) ・マウスオーバーで画像A(フォロー+影) ・クリックで画像B(フォロー中です)で、固定され、 ・再度、マウスオーバーで画像C(解除しますか?) ・クリックで画像@に戻り、固定される。 こういうギミックを作るのに、検索して以下の文を組み立てましたが、うまくいきません。 初歩的な質問で申し訳ないのですが、どなたかお力添えをお願いします。 ソースは次に書きます。
924 :
923 :2013/05/03(金) 18:06:03.28 ID:YO/kLxM5
var button=0; if(button=0) {function m_over(obj) {obj.src="/img/btn02.gif";} function m_down(obj) {button=button+1;obj.src="/img/btn.03.gif";} function m_out(obj) {obj.src="/img/btn03.gif";} } else {function m_over(obj) {obj.src="/img/btn04.gif";} function m_down(obj) {button=button-1;obj.src="/img/btn01.gif";} function m_out(obj) {obj.src="/img/btn/btn_off.gif";} } </script> HTML部分↓ <input type="image" src="/img/btn01.gif" alt="BUTTON" onMouseOver="m_over(this)" onMouseOut="m_out(this)" onMouseDown="m_down(this)" />
925 :
923 :2013/05/03(金) 19:26:00.15 ID:YO/kLxM5
勘違いしてました。 マウスオーバーとかがトリガーになってるなら、こういう風にいけないかな。と思うのですが、エラーが出ます。 どなたかお力添えをお願いします。 function m_over(obj) { if(button=0) { obj.src="/img/btn02.gif";} else{obj.src="/img/btn04.gif";}} function m_down(obj) { if(button=0){obj.src="/img/btn03.gif"; button=button+1;} else{obj.src="/img/btn01.gif"; button=button-1;}} function m_out(obj) { if(button=0) {obj.src="/img/btn03.gif";} else{obj.src="/img/btn/btn_off.gif";}}
File APIのreadAsBinaryStringはresultに何の型を返すのでしょうか。 readAsArrayBufferを使うほうが一般的ですか?
readAsBinaryStringは仕様から削除されたかな
928 :
926 :2013/05/04(土) 01:59:50.81 ID:???
>>927 まじですか。じゃあ今後はreadAsArrayBuffer一択ですかね。
>>923 エラーが出てるんなら、その文言でぐぐってみるといい。
パッと見で変なのは
>if(button=0)
ここだけど。他にもあるかもしれない。
930 :
Name_Not_Found :2013/05/04(土) 23:35:23.50 ID:d0+MKy4x
<a herf="url" id="page1">リンク</a> こういうリンクからurlを取得する方法を教えて下さい
adblockを使っている場合は、別のページに飛ばすようにしたいのですが、 どうやるのが良いのでしょうか?
932 :
Name_Not_Found :2013/05/05(日) 12:49:13.33 ID:fN46qhNw
スマホでクリックを実行させる方法を教えてください <a id="testing" href="/">おk</a> に javascript:$('#testing').click; では移動しませんでした
>>930 取得したいときはattributesって覚えとけ
たぶん遅いもん教えんなカスって叩かれると思うが
934 :
sage :2013/05/05(日) 21:23:50.59 ID:fuSJHl4a
Androidのブラウザ(Firefox,Chromeなど)でダブルタップすると 文字や画像が拡大しますがあれを抑制する方法ってないでしょうか? スレチな感じもしますが適切なところがあれば誘導お願いします
>>934 HTMLのヘッダにviewportとか指定すればそうならないかね?
すみません 言語と言うよりアルゴリズムの質問になるのですがお力を貸していただきたいです 現在ニューラルネットワークを使ったゲームAIをJSで作ろうとしています それで、問題は学習です いろいろ調べたりした結果、乱数を用いた、遺伝的アルゴリズムのような方法で 評価関数のパラメータを成長させていくことはできるようになりました しかし、この方法では非常に効率が悪く学習に時間がかかります そこで、結果をフィードバックさせる方法を使えるようになりたいのですが どう調べても容易に理解できそうな感じがしません どこか、易しく丁寧な解説をされているサイトはありませんでしょうか? お願い致します
<form name="hoge"> <select name="huga"> <option>foo</option> <option>bar</option> </select> </form> このようなセレクトボックスを動的に開く方法はありますか? キーボードでのAlt-↓と同じことをJavascriptでしたいです。
939 :
934 :2013/05/06(月) 21:53:22.44 ID:???
>>935 ありがとうございます 出来ました!
>>936 不勉強で専用?のmetaタグがあるのも知らなくて・・・
ダブルクリックを無効にするのはjavascriptかなとしか考えつかずにこちらで質問させてもらいました
勘違いさせてしまったようでごめんなさい
940 :
Name_Not_Found :2013/05/08(水) 00:34:25.29 ID:YdaUveiw
スクロールを特定の要素までに制限することって出来ますか? 5000pxの長さのサイトの1000pxの場所に<div id="stop">があってここの要素までしかスクロール出来ないようにしたいんです
id stopより下すべてをcssでdisplay:none; 強制広告対策か何かかな?
JavaScriptを基礎から勉強したいんですが お勧めの入門書とかあったら教えてください
オライリー 下手な入門書は逆に有害でしかない
オライリーのJavaScript本いっぱいありすぎだろw 最初に読むべきなのはどの本になるんだw
犀
946 :
Name_Not_Found :2013/05/09(木) 16:40:11.65 ID:E7sb2iUf
サイ本がいいんじゃないか 第6版から、jQueryに1章割かれてるし プログラミング経験があるならそれでいいけど 全くのド初心者なら、本屋に行ってできるだけ 薄くて、安くて、デザインのいいやつを買うといいよ
javascriptからwindowsをシャットダウンさせることはできますか?
とりあえず真面目にjsやるならサイ本は損しない あとパーフェクトJavaScriptも結構良かった
>>947 Jscriptならできるかもしれないけど、Web製作は板違い。
>>949 Web製作板に書くのは板違いって意味です
本いらんわ、とほほで十分
952 :
Name_Not_Found :2013/05/09(木) 21:22:12.43 ID:E7sb2iUf
とほほはある意味戦犯やで…
仕様書で十分
新スレは975超えたら。テンプレは同一、、、でいいよね。 過去スレのアップとかテンプレに書くの?
955 :
Name_Not_Found :2013/05/09(木) 23:47:48.70 ID:cPhAo/TF
過去スレデータのアップをいつもしてくれてる人には感謝してますが テンプレには書かんでもいいんじゃね? テンプレ案ページにでも書いておけば
以下の条件をいっぺんに処理する記述を教えてください! おねがいします $(this).not( '[href*="' + location.hostname + '"]' ).attr..... $(this).not( '[class*="home"]' ).attr.....
javascriptで単精度浮動小数点演算をやるためのライブラリとかどこかにないでしょうか?
あるから探せ
>>956 $(this).not( '[href*="' + location.hostname + '"]' , '[class*="home"]' ).attr.....
そこにセレクター2つ指定できるんだっけ? ドモルガンの法則も考えるとこんな感じ? $(this).filter( '[href*!="' + location.hostname + '"], [class*!="home"]' ).attr.....
*!=ってかけたっけ? くっつければandになるんだからこんなのでいいんじゃね? $(this).not( '[href*="' + location.hostname + '"][class*="home"]' ).attr.....
*!=はだめだった [〜]の属性セレクターならスペース無しで続けて書くとANDなのか。これは知らんかった
javascryptって使用例デザイン本みたいの見てもたとえばマウスカーソルの回りにティンカーベルみたいの表示するとかそういう邪魔なのばっかり書いてるけど どこでも使われてるようなのだとどんなのがありますか?何から覚えればいい?
>>965 自分が使いたいようなことをやってるコードを読めばいい
>>965 勉強なんだから効率なんて考えないで手当たり次第コピーして動かせばいいのに
>>965 マジレスしていい?
そのカキコから推測して、おまえセンスねーから。無理。
javas cryptだったのか、知らなかった
>>965 マウスカーソルに追随するティンカーベルは使い道ないだろうけど、
絶対、相対のpositionの概念、座標の取得、レイヤーの移動なんかは覚えなければならないものだろ
まずは、2chなんかでくだらない質問するくらいなら、自分の頭で考えるという習慣を身に着ければいいんじゃない?
971 :
Name_Not_Found :2013/05/13(月) 14:06:15.10 ID:uYhcUjkH
クリップボードの画像をCtrl + Vだけでサーバーにアップロードできるサイト
http://snag.gy/ ここの画像を取得する実装はどうやって実現しているかわかりますか?
これを知って同じようなサービスを作りたいとは思わないのだけど
個人情報が映っているクリップボードを簡単に抜き取って悪用も可能なのでセキュリティ的に知っておきたい
IEのみ限定ですが、clipboardDataオブジェクトでクリップボードの操作ができることはわかったのですが
そのサイトはFirefoxでもChromeでもユーザーの確認なしに画像をアップロードできてしまうので震撼しています
faqによるとChromeとFirefox以外はJava appletを使うとあるけど
973 :
Name_Not_Found :2013/05/13(月) 14:37:30.59 ID:DbrUvN40
addEventListener、attachEventでフォームsubmitされたら関数実行するようにしています。 document.getElementById("result").innerHTML = answerString; 関数実行の最後の行に上記を記述してるんですが、IEでは表示されるのに対して、FFでは何も表示されない 他の処理(計算とか直前のクリップボードにコピーとか)は問題なく出来ています。 最後のinnerHTMLだけ処理が出来ていない感じですが、何か原因考えられますか?
974 :
973 :2013/05/13(月) 14:50:38.80 ID:???
自己解決しました function calcStart() { ↓ function calcStart(event) { としたらFFでも動くようになりました
975 :
973 :2013/05/13(月) 15:02:41.87 ID:???
どうも違ったようです 直前のwindow.clipboardData.setDataで、IEでは何もされないのに対して、FFでは強制的にリロードされます そのため、初期化されて何も表示されないようになっていました
FirefoxやChromeでは、window.clipboardDataなんて存在しないんじゃないの?
clipboardDataってClipboardEventのプロパティでは
IEにはwindow.clipboardDataっていうのもある
ユーザーIDとPW入力フォームでチェックボックスをオンにするとCOOKIEで保存しており、 ここで、チェックをはずしてSUBMITした場合はCOOKIEを消去する。ができず困っています。 日付をリセットしてるだけでは足りないということでしょうか? function() { var objChk = document.getElementById(rwAuthInfo.conf.chkElemKey); if ( objChk.type == "checkbox" ) { if( objChk.checked ) { var obj1 = document.getElementById(rwAuthInfo.conf.passElemKey); if ( obj1.value != null && obj1.value != '' ) { var myPass = escape(obj1.value); rwAuthInfo.CookieWrite(rwAuthInfo.conf.kwordPass, myPass, rwAuthInfo.conf.savePeriod); } var obj2 = document.getElementById(rwAuthInfo.conf.idElemKey); if ( obj2.value != null && obj2.value != '' ) { var myId = escape(obj2.value); rwAuthInfo.CookieWrite(rwAuthInfo.conf.kwordId, myId, rwAuthInfo.conf.savePeriod); } } else { ----ここ---- cName = "uName="; // 削除するクッキー名 dTime = new Date(); dTime.setYear(dTime.getYear() - 1); document.cookie = cName + ";expires=" + dTime.toGMTString(); ----ここ---- } }
document.cookie = cName + ";expires=" + dTime.toGMTString(); ↓ document.cookie = cName + ";expires=" + dTime.toGMTString()+"; path=/";
ありがとうございます それはどういう意味でしょうか、かなりググってみましたがわかりませんです
dTime.toGMTString() がどんな値になってるか確かめてみな。
タイムスタンプのようです
よくみて
乙
987 :
Name_Not_Found :2013/05/17(金) 10:30:02.24 ID:Y7BVy4Uc
document.domainでのサブドメイン間の通信について main.hoge.jp sub.hoge.jp とあり、main.jp/index.phpにget.jsを仕込み、ここにdocument.domain=hoge.jpと記述しています。 get.jsから、sub.hoge.jp/result.phpへgetでidを投げます、result.phpはidを受け取りsqlからidについての情報を取得しJSONで返します。 JSONで返す為、result.php側にはdocument.domainの記述はありません。 同一サブドメインではうまく行きます、ローカルでもうまくいきます。 別のサブドメインに投げた場合、制約にひっかかっているようです。 解決方法はありますか?
988 :
Name_Not_Found :2013/05/17(金) 13:39:02.97 ID:+9cqTzDK
setTimeOutで実行する関数内で、再び時間が来たらどうなるでしょうか? 処理が無限に呼び出されておかしな動作にならないでしょうか?
>>987 つJSONP
>>988 ブラウザ上のJavaScriptでは一時には1つしか動かないから。
>>989 えっ、そうなんですか
ありがとうございました
頭の悪そうな質問ばかりだな やって試してみりゃいいのに
やりとりが楽しいんだよ ゆとりはだまれよ
そだね
梅
t
o
.
∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。