私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.79 +

みんなの評価 :
レスフィルター : (試験中)
非同期通信でサーバー上のテキストを取得・解析するスクリプトを書いています。
汎用性を高めるため通信部と解析部を別の関数として定義しようと思います(下のスクリプトではalertを呼び出しているだけ)。
しかし、下のスクリプトではコールバック関数が呼び出されていないようです。原因をお教えいただければ幸いなのですが、お願いいたします。
XP SP3、Firefox3.6.6です。
<html>
<head>
<script>
function httpGet(url, func) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
return func(xmlHttp.responseText);
}
};
xmlHttp.open("GET", url, false);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(null);
}
function loadLog() {
var callback = function(data) {
alert(data);
};
httpGet("./test.txt", callback);
}
</script>
</head>
<body onload="loadLog()">
Test
</body>
</html>
汎用性を高めるため通信部と解析部を別の関数として定義しようと思います(下のスクリプトではalertを呼び出しているだけ)。
しかし、下のスクリプトではコールバック関数が呼び出されていないようです。原因をお教えいただければ幸いなのですが、お願いいたします。
XP SP3、Firefox3.6.6です。
<html>
<head>
<script>
function httpGet(url, func) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
return func(xmlHttp.responseText);
}
};
xmlHttp.open("GET", url, false);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(null);
}
function loadLog() {
var callback = function(data) {
alert(data);
};
httpGet("./test.txt", callback);
}
</script>
</head>
<body onload="loadLog()">
Test
</body>
</html>
>>151
Firefox3~は、同期通信でonreadystatechangeが動かなかった気が
Firefox3~は、同期通信でonreadystatechangeが動かなかった気が
>>155
それだと全部のオブジェクトがそれぞれ(同じ動きをする)別の関数を持つことになるのが
ちょっと気になるが、。
一般的な書き方ってのは無いが有名なライブラリには、大抵クラスを作る手段は用意されてるな。
例えばprototype.jsのClass.create使うとか。少なくともprototype.js使ってる界隈では
統一された書き方になる。
それだと全部のオブジェクトがそれぞれ(同じ動きをする)別の関数を持つことになるのが
ちょっと気になるが、。
一般的な書き方ってのは無いが有名なライブラリには、大抵クラスを作る手段は用意されてるな。
例えばprototype.jsのClass.create使うとか。少なくともprototype.js使ってる界隈では
統一された書き方になる。
>>164
エンコライブラリはググれば直ぐ見付かる
エンコライブラリはググれば直ぐ見付かる
chromeでjavascriptで要素の中身を設定し、幅・大きさとか位置を変化させても
見た目が変化しない(”要素を検証”すると正常表示に変化)のはどなたか心当たりありませんかね?
やっていることは↓のようなこと(fの引数の文字数を変化させて実行)なのですが、このコードでは再現しないんですよね・・・
「常時画面左右中央表示」
var title = document.createElement('p');
document.body.appendChild(title);
title.style.position = 'absolute';
title.style.top = '0px';
title.style.left = '50%';
title.style.margin = '0px';
var text = '+';
function f(t) {
title.innerHTML = t;
title.style.marginLeft = '-' + (title.offsetWidth / 2) + 'px';
}
f(text);
他には画像のwidthなどを大きく(スクロールバーが出るぐらい)設定したりです。
ちなみに同じ条件で二度実行させると正常表示されます。
あと、時々正常にも動作するのでwebkitのjs部分の仕様なんじゃないかと思い始めているところです。
IE/Firefoxでは正常に動くんですが・・・とりあえず、コードが長いので、再現出来る範囲まで短くしてみます。
見た目が変化しない(”要素を検証”すると正常表示に変化)のはどなたか心当たりありませんかね?
やっていることは↓のようなこと(fの引数の文字数を変化させて実行)なのですが、このコードでは再現しないんですよね・・・
「常時画面左右中央表示」
var title = document.createElement('p');
document.body.appendChild(title);
title.style.position = 'absolute';
title.style.top = '0px';
title.style.left = '50%';
title.style.margin = '0px';
var text = '+';
function f(t) {
title.innerHTML = t;
title.style.marginLeft = '-' + (title.offsetWidth / 2) + 'px';
}
f(text);
他には画像のwidthなどを大きく(スクロールバーが出るぐらい)設定したりです。
ちなみに同じ条件で二度実行させると正常表示されます。
あと、時々正常にも動作するのでwebkitのjs部分の仕様なんじゃないかと思い始めているところです。
IE/Firefoxでは正常に動くんですが・・・とりあえず、コードが長いので、再現出来る範囲まで短くしてみます。
テキストファイル最後の改行を削除したいのですが…
D&Dして実行しても何の変化もありません。
下記サイトを参考にしました。ご教示下さい。
http://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="WordReplace">
<?job error="True" debug="True" ?>
<object id="objFs" progid="Scripting.FileSystemObject" />
<script language="JavaScript">
<![CDATA[
var objArg=WScript.Arguments;
for(i=0;i<objArg.length;i++){
strTmp= objFs.BuildPath (objFs.GetParentFolderName (WScript.ScriptFullName), objFs.GetTempName ());
var objTs =objFs.OpenTextFile(objArg(i),1,false);
var objTs2=objFs.OpenTextFile(strTmp,2,true);
do{
strLne=objTs.ReadAll();
strLne=objTs2.Write(strLne.substring(0, strLne.length-2));
objTs2.WriteLine(strLne);
}while(!objTs.AtEndOfStream);
objTs.Close();
objTs2.Close();
}
]]>
</script>
</job>
</package>
D&Dして実行しても何の変化もありません。
下記サイトを参考にしました。ご教示下さい。
http://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="WordReplace">
<?job error="True" debug="True" ?>
<object id="objFs" progid="Scripting.FileSystemObject" />
<script language="JavaScript">
<![CDATA[
var objArg=WScript.Arguments;
for(i=0;i<objArg.length;i++){
strTmp= objFs.BuildPath (objFs.GetParentFolderName (WScript.ScriptFullName), objFs.GetTempName ());
var objTs =objFs.OpenTextFile(objArg(i),1,false);
var objTs2=objFs.OpenTextFile(strTmp,2,true);
do{
strLne=objTs.ReadAll();
strLne=objTs2.Write(strLne.substring(0, strLne.length-2));
objTs2.WriteLine(strLne);
}while(!objTs.AtEndOfStream);
objTs.Close();
objTs2.Close();
}
]]>
</script>
</job>
</package>
レスありです
pなのでブロック要素です。表示位置が更新されないだけなんですよね(要素を検証で正常表示位置に移動)
>DOMツリーから除外
removeChild -> appendChildでいいんですよね?変化は無しです。
最初は要素の中身を書換じゃなくて親要素のinnerHTMLでやっていたのを
メモリリーク対策で要素固定にしたのですがChromeだけでおかしく・・・
setTimeout・setIntervalでやっても同じだとどうにも・・・
ソースはHTMLごと全部になってしまいそうです。。
pなのでブロック要素です。表示位置が更新されないだけなんですよね(要素を検証で正常表示位置に移動)
>DOMツリーから除外
removeChild -> appendChildでいいんですよね?変化は無しです。
最初は要素の中身を書換じゃなくて親要素のinnerHTMLでやっていたのを
メモリリーク対策で要素固定にしたのですがChromeだけでおかしく・・・
setTimeout・setIntervalでやっても同じだとどうにも・・・
ソースはHTMLごと全部になってしまいそうです。。
>>174レスありです
問題は、Chromeで要素のマージン等を指定したときに見た目の位置が反映されてないことなんです。
(alert(title.offsetWidth);をmargin指定の前後に置いてもちゃんと数値変化している)
(右クリ要素を検証などきっかけを与えれば正常表示)・IE/FIREFOXは正常
>常に真ん中
はい。ですが、ページの一番上に必要で、他の要素に影響を与えない様にする必要があったので、absolute指定です。
根本的解決ではないですが、pの代わりにcenterを使ったら出来ました。なんていうかすみません。
問題は、Chromeで要素のマージン等を指定したときに見た目の位置が反映されてないことなんです。
(alert(title.offsetWidth);をmargin指定の前後に置いてもちゃんと数値変化している)
(右クリ要素を検証などきっかけを与えれば正常表示)・IE/FIREFOXは正常
>常に真ん中
はい。ですが、ページの一番上に必要で、他の要素に影響を与えない様にする必要があったので、absolute指定です。
根本的解決ではないですが、pの代わりにcenterを使ったら出来ました。なんていうかすみません。
>>166
ほかの人も言ってるけど、そのコードをChromeでテストしてみたら、
あなたの期待通りに動いているように見える
ほかに問題があるんじゃない?
蛇足ながら、pは段落用だから、h2なりdivなりを使ったほうがいいのと、
DOMにinnerHTML使うのは美しくない
ほかの人も言ってるけど、そのコードをChromeでテストしてみたら、
あなたの期待通りに動いているように見える
ほかに問題があるんじゃない?
蛇足ながら、pは段落用だから、h2なりdivなりを使ったほうがいいのと、
DOMにinnerHTML使うのは美しくない
必見そうか自民日本壊滅テロ組織の悪行を知って下さい。
↓のレス内にて「そうか」で検索お願いします。
● レス禁止 吐き捨てスレ 19 ●
http://hideyoshi.2ch.net/test/read.cgi/ms/1278072762/
↓のレス内にて「そうか」で検索お願いします。
● レス禁止 吐き捨てスレ 19 ●
http://hideyoshi.2ch.net/test/read.cgi/ms/1278072762/
Javascript Graphics Library
Pixel graphics in Javascript
の内容のネタを書きました。
Javascriptで直接Canvasを使用してグラフが描きたい人はどうぞ
Pixel graphics in Javascript
の内容のネタを書きました。
Javascriptで直接Canvasを使用してグラフが描きたい人はどうぞ
>>183-184
jsdo.itでやれ
jsdo.itでやれ
ブラウザのタブをウェブ上のスクリプトからいじりたいのなら、それはできない
できたらセキュリティ上の問題になる
できたらセキュリティ上の問題になる
ページ内に「あいうえおかきく」と言うテキストがあったとして、「かきく」を強調すると言う事をやりたいのですが、replaceを使わないでやる方法ありますか?
>>190
"あいうえおかきく".split("かきく").join("<b>かきく</b>")
"あいうえおかきく".split("かきく").join("<b>かきく</b>")
a='あいうえおかきくけこ'
b='かきく'
re=new RegExp(b, "g");
span=document.createElement('span');
span.appendChild(document.createTextNode(b));
c=c.replace(re, span);
これって大丈夫?
b='かきく'
re=new RegExp(b, "g");
span=document.createElement('span');
span.appendChild(document.createTextNode(b));
c=c.replace(re, span);
これって大丈夫?
太字にしろとは言われてないだろ
javascript:'<strong>かきく'
が正解
javascript:'<strong>かきく'
が正解
>>198
すればいいじゃん
すればいいじゃん



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.129 + (981) - [95%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [95%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.129 + (926) - [95%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [95%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について