私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.80 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
あなたは実行される順番が分かっていない。「ASPが処理」→「結果のHTML+
JavaScriptができる」→「ブラウザに送られる」→「表示、JavaScript実行」
という順番だからそのように書いたらASP側がまず実行されるのは当たり前。
JavaScriptからサーバに結果を送信して、サーバ側でそれを受け取って
結果を書き込む、というふうにしないと。あとは自力で勉強してね。
JavaScriptができる」→「ブラウザに送られる」→「表示、JavaScript実行」
という順番だからそのように書いたらASP側がまず実行されるのは当たり前。
JavaScriptからサーバに結果を送信して、サーバ側でそれを受け取って
結果を書き込む、というふうにしないと。あとは自力で勉強してね。
>>751
理解のあやふやだった部分でした。<サーバ側の処理、クライアント側の処理
submit()し、次ページで書き込み処理することで意図通りに動かすことが出来ました。
どうもありがとうございました。
理解のあやふやだった部分でした。<サーバ側の処理、クライアント側の処理
submit()し、次ページで書き込み処理することで意図通りに動かすことが出来ました。
どうもありがとうございました。
>>752
onload
onload
XMLHttpRequestの戻り値として、バイナリデータを受け取って
ブラウザ側でダウンロードダイアログを表示させて
取得したバイナリデータをダウンロードさせることって可能でしょうか
現在YUIのConnection ManagerでXMLHttpRequestを
サーバに投げてバイナリデータを取得する所まで
確認できたのですが、ブラウザ側にコレを認識させる事ができない状態です。
ブラウザ側でダウンロードダイアログを表示させて
取得したバイナリデータをダウンロードさせることって可能でしょうか
現在YUIのConnection ManagerでXMLHttpRequestを
サーバに投げてバイナリデータを取得する所まで
確認できたのですが、ブラウザ側にコレを認識させる事ができない状態です。
getComputedStyleで特定のElementのCSS情報を取得できることを
知りましたが、実際に画面に表示されている背景色を取得することはできますか?
知りましたが、実際に画面に表示されている背景色を取得することはできますか?
>>757
なにがわからんの?
なにがわからんの?
JavaScript + jQuery + localStorage ってブラウザ間の挙動の違いは大きいですか?
Firefoxで開発したのがChromeで動かなくて凄くショックだったんですが・・・
挙動の違いを解説してるページとかあったら教えてください
Firefoxで開発したのがChromeで動かなくて凄くショックだったんですが・・・
挙動の違いを解説してるページとかあったら教えてください
要素を削除するとき
obj.parentNode.removeChild(obj);
以外の簡単な方法はありますか?
obj.parentNode.removeChild(obj);
以外の簡単な方法はありますか?
>>645
こういうのを使えるならXMLHttpRequestで取得してからこいうのを使ってDOM操作するほうがいいの?
iframeに読み込むのはよくないの?
jetpackもHTMLをDOM操作するためにiframeに読み込む仕組みを採用しているっぽいですが
> SCRAPBLOG : Jetpack SDK 0.4 の Page Worker API
>http://www.xuldev.org/blog/?p=792
こういうのを使えるならXMLHttpRequestで取得してからこいうのを使ってDOM操作するほうがいいの?
iframeに読み込むのはよくないの?
jetpackもHTMLをDOM操作するためにiframeに読み込む仕組みを採用しているっぽいですが
> SCRAPBLOG : Jetpack SDK 0.4 の Page Worker API
>http://www.xuldev.org/blog/?p=792
質問です。
リンクにaddEventListener('click',~
とイベントを追加したのですが、関数の中でreturn false;してもリンク先へ移動してしまいます。
どうすればリンクの本来の動作を止めることが出来ますか?
リンクにaddEventListener('click',~
とイベントを追加したのですが、関数の中でreturn false;してもリンク先へ移動してしまいます。
どうすればリンクの本来の動作を止めることが出来ますか?
>>767
Jetpack のAPIを利用することが前提にあるようだが、違うのだろうか。
他に適切なAPIがあるのであれば、勿論それでも構わない。
が、標準の DOM, ECMAScript メソッドを利用することが前提としてあるなら iframe に読み込むのはお勧めしない。
iframe に読み込むということはDOMを document に結びつけるということ。当然、それに関わる処理も働く。
ドキュメントに挿入しなくて済む処理なら、わざわざ iframe に読み込む必要はないと思う。
Jetpack のAPIを利用することが前提にあるようだが、違うのだろうか。
他に適切なAPIがあるのであれば、勿論それでも構わない。
が、標準の DOM, ECMAScript メソッドを利用することが前提としてあるなら iframe に読み込むのはお勧めしない。
iframe に読み込むということはDOMを document に結びつけるということ。当然、それに関わる処理も働く。
ドキュメントに挿入しなくて済む処理なら、わざわざ iframe に読み込む必要はないと思う。
すいません。自己解決しました。
>>769
return false; はIEが独自実装した仕様で HTML5 もそれに追従しているが、DOM 本来のやり方ではない。
DOM では event.preventDefault() を規定している。
return false; はIEが独自実装した仕様で HTML5 もそれに追従しているが、DOM 本来のやり方ではない。
DOM では event.preventDefault() を規定している。
>>771
自己解決したなら、解決法を書いてほしい。
自己解決したなら、解決法を書いてほしい。
http://www.moondakota.com/archives/2004/09/23/rss_javascript.html
↑のツールを使い、HPにblogを載せたのですが
文字化けしてしまいます
charsetというのが原因かと思い変更してみたのですが
HP全体が化けてしまいます。対処方を教えてください
http://onlinegamenavii.web.fc2.com/index.html
↑のツールを使い、HPにblogを載せたのですが
文字化けしてしまいます
charsetというのが原因かと思い変更してみたのですが
HP全体が化けてしまいます。対処方を教えてください
http://onlinegamenavii.web.fc2.com/index.html
まぁ、charset の値を UTF-8 に変更したけど、
ファイルを UTF-8 で保存し直していないとかいうオチじゃないかな。
ファイルを UTF-8 で保存し直していないとかいうオチじゃないかな。
ループ内で関数を定義するコードを書いたところ、JSLint に Don't make function within a loop.
と怒られてしまいました
どういう理由があってこのエラーが出るのでしょうか
コードは以下の通りです
Function.prototype.createClass = function(class_name, proto){
proto = proto || {};
var c = class_name.split('::');
var target = this;
for(var i = 0; i < c.length; i++){
if(!target[c[i]]){
target[c[i]] = function(){};
}
target = target[c[i]];
}
target.prototype = proto;
};
と怒られてしまいました
どういう理由があってこのエラーが出るのでしょうか
コードは以下の通りです
Function.prototype.createClass = function(class_name, proto){
proto = proto || {};
var c = class_name.split('::');
var target = this;
for(var i = 0; i < c.length; i++){
if(!target[c[i]]){
target[c[i]] = function(){};
}
target = target[c[i]];
}
target.prototype = proto;
};
ループ中にfunctionを作ってはならないってそのまんまじゃないか
for(var i = 0; i < c.length; i++){
if(!target[c[i]]){
target[c[i]] = function(){}; //←ここ
}
for(var i = 0; i < c.length; i++){
if(!target[c[i]]){
target[c[i]] = function(){}; //←ここ
}
>>782
ですので、なぜ作ってはいけないのかその理由が知りたいのです
ですので、なぜ作ってはいけないのかその理由が知りたいのです
自己解決しました
>>784
全然違います
var t = {};
for(var i = 0; i < 10; i++){
t[i] = function(){
alert(i);
}
}
としたときに、
t[0] を呼び出しても t[1] を呼び出しても常に 9 が表示されます
どうやらクロージャ内でうまくインデックスの値を参照できないようです
>>784
全然違います
var t = {};
for(var i = 0; i < 10; i++){
t[i] = function(){
alert(i);
}
}
としたときに、
t[0] を呼び出しても t[1] を呼び出しても常に 9 が表示されます
どうやらクロージャ内でうまくインデックスの値を参照できないようです
そんな書いてないコードの事なんかわかんねーよ
for (var i=0;i < 10;i++) {
t[i] = (function(index){alert(index)})(i);
}
ほれ
for (var i=0;i < 10;i++) {
t[i] = (function(index){alert(index)})(i);
}
ほれ
あ、すまんそのままだと参照というか実行されるな
でもまぁクロージャで参照したいならそんな感じで書けば良い
どちらにせよ同じエラーは出ると思うがな
でもまぁクロージャで参照したいならそんな感じで書けば良い
どちらにせよ同じエラーは出ると思うがな
>>785
だからクロージャが参照している変数「i」は1個でしょ。
そのiは変更していっているんだから、t[1]でもt[0]でも
変更された現在のiを参照するに決まっているじゃない。
クロージャってそういうもののためにあるわけで。自分で
勝手に書いた時点のiで固定されて欲しいとか思っても
そう書かなかったらそうなるわけがない。
そもそもアンタはFAQのQ14/A14を読んだのか。読んでない
のならどっかよそに行って欲しいね。読んだけど理解でき
ないとかなら説明するけどさー。
だからクロージャが参照している変数「i」は1個でしょ。
そのiは変更していっているんだから、t[1]でもt[0]でも
変更された現在のiを参照するに決まっているじゃない。
クロージャってそういうもののためにあるわけで。自分で
勝手に書いた時点のiで固定されて欲しいとか思っても
そう書かなかったらそうなるわけがない。
そもそもアンタはFAQのQ14/A14を読んだのか。読んでない
のならどっかよそに行って欲しいね。読んだけど理解でき
ないとかなら説明するけどさー。
>>786
JSLintご存知ない?
質問の意図は「JSLintで静的に解析したとき、このエラーが出るのはどんな落とし穴があるためか」でしたが、
これを知らなかったが故に変に解釈されてしまった気がします
申し訳ないです
>>788
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
この情報からクロージャと変数のスコープの関係を類推して
更に今回の落とし穴になりうる条件を類推するのは無理があるかとw
JSLintご存知ない?
質問の意図は「JSLintで静的に解析したとき、このエラーが出るのはどんな落とし穴があるためか」でしたが、
これを知らなかったが故に変に解釈されてしまった気がします
申し訳ないです
>>788
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
この情報からクロージャと変数のスコープの関係を類推して
更に今回の落とし穴になりうる条件を類推するのは無理があるかとw
<head>
<script type="text/javascript">
function func1(str) { ←ココ
alert(str + "がクリックされました");
}
function init() {
alert("ドキュメントがロードされました");
}
window.onload = init;
</script>
</head>
<body>
<form id="myForm" name="myForm"><p>
<input type="button" value="ボタン1"
name="button1" onclick="func1('ボタン1');">
</p></form>
</body>
とあるのですが
このfunc1(str)のstrって何なのでしょうか?
strにonclickの'ボタン1'が格納される事はわかるのですが、変数でもないようですし、初心者ですみません
<script type="text/javascript">
function func1(str) { ←ココ
alert(str + "がクリックされました");
}
function init() {
alert("ドキュメントがロードされました");
}
window.onload = init;
</script>
</head>
<body>
<form id="myForm" name="myForm"><p>
<input type="button" value="ボタン1"
name="button1" onclick="func1('ボタン1');">
</p></form>
</body>
とあるのですが
このfunc1(str)のstrって何なのでしょうか?
strにonclickの'ボタン1'が格納される事はわかるのですが、変数でもないようですし、初心者ですみません
>>790
引数の1番目に指定されたものが入ってる変数だよ
引数の1番目に指定されたものが入ってる変数だよ
>>789
まずJSLint関係ないと思うぞ?
Don't make function within a loop.
これの訳を考えてみろよ
で、君が原因だと思ってるiの参照を解決できる方法はこんな感じだけど
for (var i=0;i < 10;i++) {
t[i] = (function(index){
return function () {
alert(index);
};
})(i);
}
これでやっても同じメッセージは出る
>>790
<input type="button" value="ボタン1"
name="button1" onclick="func1('ボタン1');">
の onclick="func1('ボタン1');"にあるボタン1
まずJSLint関係ないと思うぞ?
Don't make function within a loop.
これの訳を考えてみろよ
で、君が原因だと思ってるiの参照を解決できる方法はこんな感じだけど
for (var i=0;i < 10;i++) {
t[i] = (function(index){
return function () {
alert(index);
};
})(i);
}
これでやっても同じメッセージは出る
>>790
<input type="button" value="ボタン1"
name="button1" onclick="func1('ボタン1');">
の onclick="func1('ボタン1');"にあるボタン1
だからt[0]とかが呼ばれる時はiは別のものをさしてしまっている。
t[i]=(function(x){return function(){alert(x);}})(i);
とすればt[i]に入れた時のiの値が関数が呼ばれる時に作られる
環境のxに渡されて保持され、それをクロージャから参照している
からiその時点のiの値が取れると。
t[i]=(function(x){return function(){alert(x);}})(i);
とすればt[i]に入れた時のiの値が関数が呼ばれる時に作られる
環境のxに渡されて保持され、それをクロージャから参照している
からiその時点のiの値が取れると。
>>792
最初に提示した例ではそもそもクロージャになっていないので問題なく動くはずです
JSLintでメッセージが出る部分は落とし穴となる可能性の高い部分
メッセージの内容については「してはいけない」としか書かれていないです
なぜこのようなメッセージを出さなければいけないか、どんな落とし穴があるのかを知りたく質問したのです
原因さえはっきりしていればそのメッセージをスルーするという選択肢もあるでしょう
>>793
問題はJSがブロック単位の変数のスコープを持っていないことです
なので、
var t = {};
for(var i = 0; i < 10; i++){
t[i] = function(){
alert(i);
}
}
t[0]();
は
var t = {};
var i = 0;
for(; i < 10; i++){
t[i] = function(){ alert(i) };
}
t[0]();
と解釈され、t[0] を呼び出している部分では i = 9 となり、9が出力されるわけです
これを解決するには >>792 のようにクロージャで変数をバインドする必要があります
JSLintは落とし穴になりそうな部分を警告してくれているだけなのでおかしくはないとです
target = this は 普段 jQuery 書いているのでその癖ですw
最初に提示した例ではそもそもクロージャになっていないので問題なく動くはずです
JSLintでメッセージが出る部分は落とし穴となる可能性の高い部分
メッセージの内容については「してはいけない」としか書かれていないです
なぜこのようなメッセージを出さなければいけないか、どんな落とし穴があるのかを知りたく質問したのです
原因さえはっきりしていればそのメッセージをスルーするという選択肢もあるでしょう
>>793
問題はJSがブロック単位の変数のスコープを持っていないことです
なので、
var t = {};
for(var i = 0; i < 10; i++){
t[i] = function(){
alert(i);
}
}
t[0]();
は
var t = {};
var i = 0;
for(; i < 10; i++){
t[i] = function(){ alert(i) };
}
t[0]();
と解釈され、t[0] を呼び出している部分では i = 9 となり、9が出力されるわけです
これを解決するには >>792 のようにクロージャで変数をバインドする必要があります
JSLintは落とし穴になりそうな部分を警告してくれているだけなのでおかしくはないとです
target = this は 普段 jQuery 書いているのでその癖ですw
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [95%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.101 + (1001) - [95%] - 2012/7/16 14:15
トップメニューへ / →のくす牧場書庫について