+ JavaScript の質問用スレッド vol.77 +at HP
+ JavaScript の質問用スレッド vol.77 + - 暇つぶし2ch2:Name_Not_Found
10/03/10 16:31:21
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄


3:Name_Not_Found
10/03/10 16:32:09
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
  部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
  (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
  innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
  <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。
  tbody要素はtbodyタグを書いていなくても自動的に作成されます。
  またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A8. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。


4:Name_Not_Found
10/03/10 16:33:17
【FAQその2】
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
 IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
 new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
 を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
 という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
 「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
 束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
 offsetがマッチした位置、sが置き換え前の文字列全体になります。
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。


5:Name_Not_Found
10/03/10 16:39:10
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。


6:Name_Not_Found
10/03/10 16:40:05
ECMA-262 ed.3
URLリンク(www.ecma-international.org)
URLリンク(www2u.biglobe.ne.jp) (和訳)
W3C Document Object Model Technical Reports
URLリンク(www.w3.org)
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
URLリンク(developer.mozilla.org) (和訳)
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org) (和訳)
JSON (JavaScript Object Notation)
URLリンク(www.json.org)
URLリンク(jsgt.org)
E4X (ECMAScript for XML)
URLリンク(www.ecma-international.org)
URLリンク(www.ne.jp) (和訳)
Mozilla Gecko DOM Reference, Netscape devedge
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org) (和訳)
URLリンク(devedge-temp.mozilla.org)
MSDN Library JScript / DHTML (現在日本語版は古杉)
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)


7:Name_Not_Found
10/03/10 19:54:04
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
URLリンク(www2u.biglobe.ne.jp)
どら猫本舗のリファレンスカウンター
URLリンク(www.doraneko.org)
はぎさんちのページ Mozilla's DOM Sample Project
URLリンク(cgi.din.or.jp)
一撃必殺javascript
URLリンク(www.openspc2.org)
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ part217
スレリンク(hp板)l50
CSS初心者スレッド=7th=
スレリンク(hp板)
役に立つ書籍は? 4冊目
スレリンク(hp板)
1行javascriptプログラミング   
スレリンク(hp板)
WSH(・∀・)スレッド! Part 4
スレリンク(tech板)


8:989
10/03/10 22:31:22 GtQ05zJW
>>1
乙です


前スレ>>991
ディレクトリをUIで指定して貰い、パスを取得
そのパスにサーバーサイド(別言語)で生成したファイルをセットする予定です
JavaScriptではやはり無理そうなので
ディレクトリパスはPrompt等で手入力させるしかなさそうです
お騒がせしました

9:Name_Not_Found
10/03/10 22:46:15 BEINowEd
すいません。超初心者で何がなんだかわからなくて質問します。
この下のetc2を無効にしたいのですが、そうすると
出力されるJSはどうなりますか?

function inf(f) {
mes = f.message.value;
if (mes != '') {
mes = mes.substr(0,400);
if (mes.match(/(.+?)\1{4,}|\w{50,}/)) {mes = "あああ";f.etc2.value="white";}
//mesIndex = 0;fixedMes = "";
//while (mesIndex < mes.length) {
// fixedMes += mes.substr(mesIndex,65) + " ";
// mesIndex += 65;
//}
f.message.value = mes;
if (f.etc2.value == '') f.etc2.value="white";
if (f.handle.value == '') f.handle.value="名無しさん";
set_cookies();
f.submit();
} else {
set_cookies();
location.reload();

10:9
10/03/10 22:50:17
OTD BBSの上級者モードで作成しているのですが、掲示板に書き込もうとすると
'etc2.value'is null or not an objectと出ます。

11:Name_Not_Found
10/03/10 23:00:52
> すいません。超初心者で何がなんだかわからなくて質問します。

のっけからえらく挑戦的ですね。

12:9
10/03/10 23:12:25
釣りじゃありません。手元にJSの本があるんですが、matchは検索というのが
わかっただけで、後は何がなんだかさっぱりです。
etc2が邪魔なんでなくしてください。
よくわかってませんが、よろしくお願いします。

13:Name_Not_Found
10/03/10 23:15:50
そこだけコメントアウトすればいいんじゃないの

14:9
10/03/10 23:21:26
回答ありがとうございます。
{mes = "あああ";f.etc2.value="white";}

if (f.etc2.value == '') f.etc2.value="white";
を外したらうまく行きました。でも、これで良いでしょうか?
何かバグとか出る心配はありませんか?

15:Name_Not_Found
10/03/10 23:31:15
{mes = "あああ";;}は残す
etc2が何なのか知らないけど、
いらないっていうなら大丈夫じゃないか

16:9
10/03/10 23:43:45
回答ありがとうございます。
書き込みできなくなったら、それを試してみます。
このスクリプトは人のサイトから盗んできたもので
etc2は掲示板に書き込む文字の色の設定に使われていました。

17:Name_Not_Found
10/03/10 23:46:04
etc2が何なのかは誰も知らないんだから、
本当に大丈夫かどうかはそこに貼られた部分だけしか分からんがな

18:9
10/03/10 23:49:05
そうなんですか。一応、etc2のある箇所をペーストしたんですが
また失敗したら次回もまたよろしくお願いします。

19:Name_Not_Found
10/03/10 23:52:03
こんな奴スルーしろよ・・・

20:Name_Not_Found
10/03/11 00:09:16
正確な画像のサイズが取得できません。
以下のソースを使っていますが、IEではキャッシュが無い時に縦サイズが短くなったり、MACでは縦が長くなったりします。
綺麗な取得方法あればお願いします。
また、やりたいこと「画像サイズが不定なので、特定枠に比率を維持して納める。」だ達成できればそれでOKです。
ご助言お願いします。
function getImageSize(image){
  var w = image.width;
  var h = image.height;
  if(typeof image.naturalWidth !== 'undefined'){  //for Firefox, Safari, Chrome
    w = image.naturalWidth;
    h = image.naturalHeight;
  }else if(typeof image.runtimeStyle !== 'undefined'){  //for IE
    var run = image.runtimeStyle;
    var mem = {w:run.width, h:run.height};  //keep runtimeStyle
    run.width = "auto";
    run.height = "auto";
    w = image.width;
    h = image.height;
    run.width = mem.w;
    run.height = mem.h;
  }else{  //for Opera
    var mem = {w:image.width, h:image.height};  //keep original style
    image.removeAttribute("width");
    image.removeAttribute("height");
    w = image.width;
    h = image.height;
    image.width = mem.w;
    image.height = mem.h;
  }
  return {width:w, height:h};
}

21:Name_Not_Found
10/03/11 00:20:21
追伸。
CSSでも構いません。
よろしくお願いします。

22:Name_Not_Found
10/03/11 00:27:52
ロード中のサイズ取得は愚行
Imageオブジェクトにプリロードしてロード完了をイベントでキャッチして
その時点で縦横のサイズを取得とかすればいい

23:Name_Not_Found
10/03/11 00:32:53
関数実行時点で画像がまだ読み込まれてないとか?

>特定枠に比率維持
横か縦の片方だけをimgに指定すればブラウザ?が勝手に比率維持でやってくれると思うんだけどそれじゃダメなのかい?
縦横両方のサイズが決まっていてもcssのmin-height/width~~で出来そうな気がする。

24:Name_Not_Found
10/03/11 08:31:52
テンプレ >>2 の差し替え案。前スレ末尾の続き。ご意見求む。

【質問を書く上で】

1)「どんな意図で/何を/どう」操作した場合、「どのように」動作させたいのかを
 一般的な言葉や用語で簡潔に説明してください。
 「動きません」ではわかりません。脳内用語・オレ用語は混乱のもと。

2)自力で調べたこと/試したことを明記のこと。
 OS、ブラウザ+バージョン、(あれば)エラーの行と内容を必ず書きましょう。
 エラーの行と内容を見るのはIE8、Firefox、SafariのJavaScriptコンソールで。

3)質問に関するソースコードを出来る限り貼ってください。
 余分が少なく、コピペだけで動作やエラー再現のできるものが理想です。
 1レスで入らないような長いソースの場合はアップロードする等工夫を。

4)閲覧者の迷惑になる質問は回答されません。
 別窓を多数開く、閉じる/戻る/クリックを妨害、画面占有、など。
 「分かんねえの?」と煽っても無駄です。

5)「初心者なので」「初心者ですみません」とか書いても好感は得られません。
 過去に初心者を言い訳に調べもせず我儘な質問をする人がいたためです。


25:Name_Not_Found
10/03/11 13:13:00
変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、
1文字めを削除して"123"や"534"にしたいです。
どうすれば出来ますか。



26:Name_Not_Found
10/03/11 13:19:15
>>25

>>変数strに"a123"や"b534"など英字1文字+数字3桁の文字列
この条件決め打ちでいいなら,
var result = str.substring(1);


27:Name_Not_Found
10/03/11 13:20:48
substr関数を使う

28:Name_Not_Found
10/03/11 14:00:50 Xv6HQ4tK
>>26-27
ありがとー!ございます

29:Name_Not_Found
10/03/11 14:08:57
もう1つすみません。

変数strに"a123"や"b534"など英字1文字+数字3桁の文字列が入っているのですが、
英字を<p></p>ではさんで、 "<p>a</p>123" や"<p>b</p>534"を作ることってできますか?

30:Name_Not_Found
10/03/11 14:16:28
ヒント置いとくからちょっとは自分で考えろよ
"a123".replace(/^(\w)/, "$1/")

31:Name_Not_Found
10/03/11 14:17:47
>>27 substrは非標準。標準にあるのはsubstring。
>>29 str = str.replace(/(.)/, "<p>$1</p>"); かな。
それはいいけどアンタ少しは自力で調べたり勉強する気あるの?

32:Name_Not_Found
10/03/11 14:23:30
>>30-31
ありがとうございます!

">"をあらわす ">" は、何文字と数えればいいのですか?


33:32
10/03/11 14:27:52
すいません

">"をあらわす "&gt;" は、何文字と数えればいいのですか?

34:Name_Not_Found
10/03/11 14:27:56
聞く耳の持たなさワロス

35:Name_Not_Found
10/03/11 14:46:28
これが最後なんで本当に頼みます
ついでに全角文字も何文字と数えるのか教えてください
本当に最後です

36:Name_Not_Found
10/03/11 14:52:36
試してみたら分かるはずだけど、どうして自分で調べないの?

37:Name_Not_Found
10/03/11 15:09:00
向上心がなさすぎるな

38:Name_Not_Found
10/03/11 15:35:21
この流れは
・教えずに自己解決→「他で聞いたらすぐわかったわ。使えねーなお前ら。もうこねーわ。」
・教えて解決→「このくらいもったいつけずにすぐ教えろよ。使えねーなお前ら。もうこねーわ。」
のどっちかのパターンになることが多いね。

39:Name_Not_Found
10/03/11 15:43:56
こういう奴に度々来られても困る訳だが

40:Name_Not_Found
10/03/11 15:59:30 YLK/1ooW
解らないので質問です。 変数なのですが、

r1 = new test();
r1.width ="700px";

こういった形のものをループさせ

r1を部分の数字を繰り上げ、r2、r3 とインスタンスを作っていきたいのですが
方法はありますでしょうか

41:Name_Not_Found
10/03/11 16:03:11
eval関数を使う。

素直に配列変数にした方がいいとは思うが。

42:Name_Not_Found
10/03/11 16:03:35
>>3 Q7
ローカルならeval?

43:40
10/03/11 16:32:02 YLK/1ooW
なるほど、ありがとうございます!
配列変数での方法、それとevalも勉強させてもらいます。

今回は時間も無かった事もあり、javascriptとは関係ない所で自己解決。
smartyテンプレート側のforeachループで変数を置き換えjavascriptを書きました。
r{$key} = new test();
r{$key} .width ="700px";









44:Name_Not_Found
10/03/11 16:55:44
また、evalかっ!

45:Name_Not_Found
10/03/11 16:58:45
以下ループ

46:Name_Not_Found
10/03/11 17:01:43
eval("var eval=function(){throw new Error()}");
こう?

47:Name_Not_Found
10/03/11 17:45:06
>>46
ずいぶん高度な自虐ネタだな
わかっている上でわざとやってるのかが判断できん

48:Name_Not_Found
10/03/11 18:16:47
         / ̄ ̄ ̄ ̄ ̄ ̄\
          | おまえら本当に |
   ∩_∩  |             |
  (´ー`) <.  evalが好き   .|
  (   )  |              |
   | | |   |  だなぁ      |
  (___)__)   \______/

49:Name_Not_Found
10/03/11 18:22:58
でも動けばいいって言うんだよね

50:Name_Not_Found
10/03/11 18:28:15
「できない」より、動いた方がいいに決まってる

51:Name_Not_Found
10/03/11 18:28:46
すごく初歩的ですみません。
Javascriptでメモ帳のハンドルを所得したいのですが以下ではエラーになってしまいます。
どこを直せばよいのでしょうか?

<SCRIPT language="JavaScript">

wnd = FindWindow( "NotePad", "" );
alert( wnd.Caption );

</SCRIPT>

52:Name_Not_Found
10/03/11 18:34:44
きみのあたま

53:Name_Not_Found
10/03/11 18:35:21
>>51
板違い

54:51
10/03/11 18:42:49
すみませんでした、出直してきます

55:Name_Not_Found
10/03/11 18:45:09
>FindWindow
JavaScript にはそんなものは定義されていない。
どこを直せばじゃなくて、どうしてこれで動くと思ったのかが知りたい。

56:Name_Not_Found
10/03/11 18:50:11
>>55
ググったらこのページに書いてありましたので、てっきり…
URLリンク(jp.emeditor.com)

57:Name_Not_Found
10/03/11 18:55:54
>>55
javascript自体にはDOMすら定義されてねーよ
このスレがブラウザのjavascriptのみを対象としてるから漏れなくDOMがくっついてくるだけだ
DOMの代わりにAPIがくっついてくる環境だって探せばある

58:Name_Not_Found
10/03/11 19:01:25
>>57
勉強不足でした、根本的な理解が足りませんでした。スレチすみません

59:Name_Not_Found
10/03/11 20:31:54
>>52
うん。いまどきlanguageとは、相当あたま古そうだw

60:Name_Not_Found
10/03/11 20:38:38
しかも大文字

61:Name_Not_Found
10/03/11 21:40:53
どうでもいいけどHTML4.01ではタグは大文字推奨じゃなかったっけか

62:Name_Not_Found
10/03/11 21:49:45
やりたいこと:変更前の文字と変更後の文字が違っている場合に処理を分岐したい
困っていること:

<input type="text" value="aaa" onchange="hoge(this)" onclick="hoge(this)">とした際、
function hoge(sender){
var arg = sender.value;
}
でonclick時とonchenge時のvalue値はそれぞれ取れるけど、onchenge処理の中でonclick時の文字は
どのように取得すればいいのでしょうか?

63:Name_Not_Found
10/03/11 21:52:57 IqLkzxen
>>59
♪ぼくのあたまは~とまと~で~できている~

googleadsでlanguage="JavaScript1.1"って書くのがあって、
天上人の間ではまたlanguageで書くのかと思った。
我ながら発想が卑屈だなあ。

>>61
うそーん?そしてスレ違いだから各自自分でググろう。

64:Name_Not_Found
10/03/11 21:56:08
>>62
適当な変数に保存でもしておいてそれを参照すればいい
ついでに言うと何がしたいのかがちょっとわかりにくい

65:Name_Not_Found
10/03/11 21:56:09 IqLkzxen
>>62
hoge()がどこかに保存すればいいんじゃないかな。
hogeの外に普通に置くも良し、hogeをクロージャにするも良し。

66:Name_Not_Found
10/03/11 22:31:03
>64 >65
ありがとう
タグでonchangeとonclick2つ書いて変数保存が単純かつ簡単そうですね
クロージャでの方法も、検討してみます。

67:20
10/03/12 14:03:37
>>22
例えばwindowsではキャッシュがあるときonLoadイベントが発生しません。
確実なロードイベントを受け取れる方法があればお願いします。

>>23
縦横いずれも不定値です。
例えば縦指定にしても横が規定値以上だとサイズオーバーです。逆もまた。

>>24
それで細かく書くと長いまとめろと言われるループになると思います。


結局出来ないのでしょうか?
CSSを利用でも構いませんので、アイデアがあればお願いします。

68:20
10/03/12 14:05:17
>>23
CSSのMAX-HEIGHTとかMIN-HEIGHTはIEに対応していないと思います。

69:20
10/03/12 14:15:56
IE max-width で検索したら互換用のjsファイルがいくつか見つかりました。
こちらを試してみたいと思います。
ありがとうございました。

70:Name_Not_Found
10/03/12 14:24:50
>>24
それで良いと思うよ。
あとは、ChromeでもJSのエラーが見れるってことを追加で(右クリ→要素を検証→最下段)

max-/min-が動かないのはIE6だけで、IEの独自拡張使えばjsも使わずにできるけどな。
onloadもwindowに対してやればいいだろうに。img.onloadも動かないのは有る条件のSafariとOperaだけらしいよ。
あとレスはまとめろ。

71:20
10/03/12 15:21:17
まとめます。
できました。
ありがとうございました。

72:Name_Not_Found
10/03/12 17:49:34
>>67-69は1レスでいいだろってこと

73:Name_Not_Found
10/03/12 18:11:19
2)自力で調べたこと/試したことを明記のこと。
 OS、ブラウザ+バージョン、(あれば)エラーの箇所と内容を必ず書きましょう。
 エラーメッセージと発生箇所の確認はブラウザのJavaScriptコンソール等で。

いちいちブラウザ列挙するのもめんどくさい
各ブラウザの説明をしたほうがいいのなら1レス割くぐらいでもいいんじゃない?

>>67
情報量を増やすことと、ぐだぐだと文章を長くすることは別物
叩かれるのは大抵後者

74:Name_Not_Found
10/03/12 20:40:04 NM0T563m
> IEのキャッシュ時のloadイベント不発

オレオレaddEventListenerでは、event.typeがloadの時は
readystate見てloaded|completeだったら即発火にしています。
img以外にframeとか、inputy type="image"とかとか。

75:Name_Not_Found
10/03/12 21:27:23
74はどこの誤爆?

76:Name_Not_Found
10/03/12 21:34:25
>>70

>max-/min-が動かないのはIE6だけで、IEの独自拡張使えばjsも使わずにできるけどな。

この部分後学のために教えて

77:Name_Not_Found
10/03/12 22:44:12
スレチだしググれば一番上にでてくる。

78:Name_Not_Found
10/03/12 22:52:58
>jsも使わずにできるけどな
横からですが、ぐぐってみましたがJavaScript使ってますね...

79:Name_Not_Found
10/03/12 23:10:56
確かにJS使ってるな。CSSだけど。さすがIE

80:Name_Not_Found
10/03/12 23:34:35
minならその独自拡張使わなくてもcssだけでできるらしい

81:Name_Not_Found
10/03/12 23:37:33
>>80
>その独自拡張使わなくてもcssだけで
どれのことを言ってるのかさっぱりだ

82:Name_Not_Found
10/03/12 23:51:13
IEはwidthがmin-widthみたいなもんだしねぇ
インライン要素もデフォルトでインラインブロック要素

83:Name_Not_Found
10/03/12 23:59:46
>>81
expressionってやつのことかと思ったんだけど違うのか

84:Name_Not_Found
10/03/13 11:19:18
質問です。「abcd@abccab@abddef」という文字列があったとき、
@の次にある「ab」だけを取り出したいのですが、どうすればよ
いですか?JSって前方はできないのでしょうか?

85:84
10/03/13 11:23:48
ごめんなさい。これじゃ@(ab)で解決ですよね。例が良くなかったです。
出直します。ちょっと寝不足で。すれ汚しすいません。

86:Name_Not_Found
10/03/13 20:48:09
nameという名前をもつ、チェックボックス、またはラジオボタンのグループを取得する際、

checkboxes = document.forms[0].elements[name];

とすると、結果として、checkboxes には、Array(ノードリストかも)で、グループが返されると
思っていたのですが、チェックボックスが一個しかない場合のみ、チェックボックスの
elementオブジェクトそのものが、かえってくるようです。(IE8で確認)

おかげでずいぶんハマりました。

結局、checkboxes .lengthがundefinedかどうかで、1個と2個以上の場合わけをするような
コードをかいてますが、なんだかスマートではない気がします。

もっとスマートなやりかたはないでしょうか。

87:Name_Not_Found
10/03/13 20:55:44
ブラウザ上でマウスオーバーされたテキストを取得するには、どんな方法があるでしょうか

88:Name_Not_Found
10/03/13 21:02:01
>>86
getElementsByName

89:Name_Not_Found
10/03/13 21:04:36
>>86
自分は1つしか無い場合はstyle="display:none"で複数になるようダミーを置いてる

90:Name_Not_Found
10/03/13 21:08:52
>88
ありがとうございます。
こっちなら配列が保証されるんですね。盲点でした。

91:Name_Not_Found
10/03/14 04:37:41
checkbox = document.getElementsByTagName("form")[0]



92:Name_Not_Found
10/03/14 09:38:28
document.querySelectorAllもノードリスト

他には、ノードもノードリストも一括で管理できる関数を作るとか

93:Name_Not_Found
10/03/14 15:19:24
教えてください。

IEを右クリックした時にページ内の任意の文字列を探索し
右クリックした位置にあるテキストボックスに貼り付けたいのですが
「貼り付ける」という動作はどうやって記述するのでしょうか。

ためしにclipboardData.setDataでクリップボードに書いて
clipboardData.getData("TEXT")を書いてみたらこの文字列が
テキストボックスに入力されてしまいました。

94:Name_Not_Found
10/03/14 17:33:44
>>93
クリップボードなんか触らずに、選択範囲を取得してテキストエリアのvalueに押し込めば済むんじゃないか?

>clipboardData.getData("TEXT")を書いてみたらこの文字列が
「clipboardData.getData("TEXT")」が入力された?
根本的にコードがおかしいから該当部分のソースをうp

95:Name_Not_Found
10/03/14 17:35:39
エディタのコピペでの「clipboardData.getData("TEXT")」が残っていて
それが挿入された可能性もあるのかめんどくさいな

96:Name_Not_Found
10/03/14 19:57:55
element.value = 'clipboardData.getData("TEXT")';

とかな。

97:Name_Not_Found
10/03/14 22:06:21
>>94,>>95,>>96ありがとうございます。
お恥ずかしながら以下の内容でやってました。

<script language="JavaScript">
arr = new Array(30);
arr[0]="てすと";
clipboardData.setData("Text", arr[0]);

clipboardData.getData("Text");
</script>

>>94
右クリックした位置がテキストボックスか調べられれば
クリップボ-ド経由じゃなくて直接入れればいいということですか。
調べてみます。
>>95
右クリックだけで貼りついたので違うみたいです。

98:Name_Not_Found
10/03/14 22:52:28
クリップボードこわい

99:Name_Not_Found
10/03/15 13:13:45
>>97
>右クリックだけで貼りついた

提示されたソースに右クリックや貼り付けの要素がまるでないとか恥ずかしすぎるにも程がある
>>95はエディタでのCtrl+C内容が「右クリックだけで貼りついた」という想定

100:Name_Not_Found
10/03/15 13:19:25 PqBAarmn
JavaScriptでdocument.write()での書き出しのときタブ設定すると
ある行だけ飛ばない語があったりするのですが、どうしてですか?

101:Name_Not_Found
10/03/15 13:36:38
タブ設定とある行と飛ばない語についてわかりやすく説明してくれ

102:Name_Not_Found
10/03/15 13:37:34
>>100
まず日本語の仕様書を熟読すべき

103:Name_Not_Found
10/03/15 16:53:45 PlvQjM0v
>>100
エスパー発揮しようと思ったけど無理だった。

104:Name_Not_Found
10/03/15 18:50:46
何のことやらさっぱり分からんが、多分evalで解決出来ると思う。

105:Name_Not_Found
10/03/15 21:22:03 PlvQjM0v
あー、こういうことか?

document.write("[タブコード]ほげほげ");
document.write("[タブコード]ふがふが");

だったら、JSではなくHTMLの問題なのでスレ違いです。
スレリンク(river板)

106:Name_Not_Found
10/03/15 23:20:38
前スレで似たような質問ありましたがちょっと別です。

if( car_seq_id == 3 ||
  car_seq_id == 9 ||
  car_seq_id == 15 ||
  car_seq_id == 26
){
  drive();
}
は、switch文で以下のようにスッキリ書けます。
switch(car_seq_id){
  case 3:
  case 9:
  case 15:
  case 26:
    drive();
    break;
}

では、以下のをswitch文でコンパクトに書くことできますか?

if( car_seq_id == 3 ||
  car_seq_id == 9 ||
  car_seq_id == 15 && car_col_id == 2 ||
  car_seq_id == 26 && car_col_id == 9
){
  drive();
}

変数はcar_seq_idとcar_col_idの二つだけですが、条件となる数値は今後もどんどんふえていくので、メンテしやすくてパフォーマンスもよろしいものを望んでおります。

107:Name_Not_Found
10/03/15 23:56:22
コードを書く上でのルール
 1つの文に多くを詰め込まないこと


108:Name_Not_Found
10/03/16 00:03:15
>>106,>>108
これでどうだ!
function test() {
var count = 0;
var check = [
[3],
[9],
[15, 2],
[26, 9]
];
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
}
}
return (count == arguments.length);
}
alert(test(3));
alert(test(3, 5));

109:Name_Not_Found
10/03/16 00:10:01
パフォーマンス最悪だな

110:108
10/03/16 00:33:33
修正。countの初期化忘れてた。forより後を以下に。
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
var count = 0;
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
if(count == arguments.length) return true;
}
}
return false;

>>109
条件となる数値checkの数を5000・check内の配列を現状+1の3([1,2,3])で最後のcheck要素にマッチするようにしてみたけど、
IEでも300msだったよ。クロムは20ms
5000もチェックしないと思うけど。

111:Name_Not_Found
10/03/16 00:46:37
その程度の物に何十何百ステップも掛けるな
しかも他の人が見たら何やってるのか分からないだろ

112:Name_Not_Found
10/03/16 00:47:48
switch 1つでできましたw

(function() {
var seq = function(x) { return Math.pow(2, x); };
var col = function(x) { return Math.pow(3, x); };

window.foo = function(m, n) {
m = m || 0;
n = n || 0;

switch (seq(m) * col(n)) {
case seq(3):
case seq(9):
case seq(15) * col(2):
case seq(26) * col(9):
drive();
break;
}
};
})();

function drive() {
alert("フヒヒ");
}

foo(15, 2);
foo(9, null)
foo(null, 3);

113:Name_Not_Found
10/03/16 00:53:43 OoeyTemv
>>108
javascriptはハッシュが速いんだし、こんな感じでいいんじゃない?
>>106の話は元のアルゴリズムを変える方法考えた方がいいような気もするけど。

var seqColTest = (function(seqCols) {
 var isSeqCol = {};
 for (var i=0,l=seqCols.length; i<l; ++i) {
  isSeqCol[seqCols[i]] = 1;
 }

 return function(car_seq_id, car_cal_id) {
  return (isSeqCol[car_seq_id + '-' + car_cal_id]);
 }
})(['3-', '9-', '15-2', '26-9']);

alert(seqColTest(1,''));
alert(seqColTest(3,''));
alert(seqColTest(9,''));
alert(seqColTest(15, 2));
alert(seqColTest(26, 9));

114:Name_Not_Found
10/03/16 00:56:02
var a = car_seq_id, b = car_col_id;

switch (true) {
case a == 3 || a ==9:
case a == 15 && b == 2:
case a == 26 && b == 9:
drive();
break;
}
書き換えただけ('A`)

115:Name_Not_Found
10/03/16 00:57:52
>>114
気持ち悪いから式は囲えよ

116:Name_Not_Found
10/03/16 01:11:05
var hoge = (function(matrix){
 return function(a, b){
  return a in matrix && ((a=matrix[a])===true || a[b]===true);
 };
})({
 3:true,
 9:true,
 15:{2:true},
 26:{9:true}
});

hoge(3)
hoge(3,1)

こういう訳の分からないことをするなら素直にif文でいいと思う

117:Name_Not_Found
10/03/16 01:14:37 OoeyTemv
>>116
あぁ、それ見て>>113のアルゴリズ間違ってるのに気付いたわ。
car_seq_idが3のときにcar_cal_idが適当な物だと真にならんかった。

118:Name_Not_Found
10/03/16 01:42:01
「プログラミング作法」はプログラムを書く仕事に就いてる/就きたいなら読んだ方が良い


119:Name_Not_Found
10/03/16 03:19:37
if(/3,|9,|15,2|26,9/.test([car_seq_id, car_col_id]))
drive();

120:Name_Not_Found
10/03/16 03:43:39 CAWu7EAI
<html>
<head>
<title>タスクバーを含まない</title>
</head>
<body>

<script type="text/javascript">
<!--
onload='opener.resizeTo(screen.availWidth+","+screen.availHeight);'
// -->
</script>
</body>
</html>

ブラウザー自体をタスクバーを含まないフルサイズサイズで
動的にリサイズしたいのですができません

121:Name_Not_Found
10/03/16 04:51:13
開く側のページで指定しろよ

122:Name_Not_Found
10/03/16 07:47:54
新しいウインドウ開くの鬱陶しいから止めてね


123:Name_Not_Found
10/03/16 08:50:06
サイト側の勝手なリサイズはブラウザで止めている

124:Name_Not_Found
10/03/16 09:12:21
タブブラウザ使うとそういうの全部無視される。

125:Name_Not_Found
10/03/16 11:23:24 CAWu7EAI
120です。
実行環境はプラグインを想定しています。
今見ているブラウザをリサイズしないと
ガジェットが綺麗にレイアウトできないと思ったので・・・

126:Name_Not_Found
10/03/16 11:26:37
>タスクバーを含まないフルサイズ
最大化ではなく全画面か
そんなことできたらうざい広告が半端なくうざいことになりそうだな

127:Name_Not_Found
10/03/16 11:28:49
画面一杯占有するようなものはガジェットっていわねーよw

128:Name_Not_Found
10/03/16 11:37:16
大きさ決めてページ中央に表示でいいじゃん。

129:Name_Not_Found
10/03/16 11:41:51 CAWu7EAI
ニコニコブックマークをプラグインで実装しようと思っています。
ガジェット自体はそれを投影する透明な下敷きだと思ってください

130:Name_Not_Found
10/03/16 11:43:11 CAWu7EAI
ブラウザの最大化のことです。
すいません

131:Name_Not_Found
10/03/16 11:51:36
情報を小出しにするな。
最大化はググればすぐ出る。先にいえと。

ニコニコブックマーク懐かしいな。あれ2週間でサービス終了してたのか。

132:Name_Not_Found
10/03/16 11:56:42 CAWu7EAI
すいません
具具って見ます

133:Name_Not_Found
10/03/16 12:03:23 CAWu7EAI
最大化=ウィンドウのサイズをScreenいっぱいにする、ではありません。
Windows の仕様として、最大化/最小化/元のサイズに戻す と、
ウィンドウのサイズ変更は、別の動作になっています。

最大化されたウィンドウを、スクリプトで小さくしても、Windows は
そのウィンドウは最大化されたままだと認識しているはずです。
よって書かれたような動作になります。

じゃぁ JavaScript で最大化などをコントールできるか?
window.open() のパラメータ指定以外にはできません。
よく「自分自身を最大化したい」という質問がありますが、
「window.open() で自分自身を新しく開き、古い自分は close()」
という答えしかでません。

…という状況をふまえて、仕様を修正するか、上を説得してください^^;

と出てきました。ということは今見ているブラウザ自体を
最大化することはできないんですね・・

134:Name_Not_Found
10/03/16 12:44:29
>>133
該当ブラウザのスレに行った方が良くね?

135:Name_Not_Found
10/03/16 13:39:50
質問なんですが
javascriptのブックマークレットってあるじゃないですか
ブラウザのアドレスバーに貼り付けるとそのページの語尾が変わるものとか
javascript:void(document.body.innerHTML=document.body.innerHTML.replace(/。/g,"にょ"));
こういったブックマークレットを通したURLに直リンクする方法ってありませんか?

136:Name_Not_Found
10/03/16 13:46:44
>>135
無いよ
出来たらセキュリティ的に大問題

137:Name_Not_Found
10/03/16 13:47:16
>>135
なぜそのようなことをしたいのか詳しく
というのは、迷惑スクリプトの予感がしているから

138:Name_Not_Found
10/03/16 15:21:04
>>137
やっぱり出来ないんですか
諦めます

>>137
他の人に紹介する時に
直リンクした方が手っ取り早いと思ったので

139:Name_Not_Found
10/03/16 17:47:29
アドオンのことをプラグインって言ってる時点でお察し

140:Name_Not_Found
10/03/16 18:36:18
onclick属性で指定されている動作を、HTMLを書き替えずに抑制するにはどうすればよいでしょうか

141:Name_Not_Found
10/03/16 18:56:37
DOMレベルでonclickを上書きする
特定の関数を単に呼んでるだけなら、JSレベルでその関数を上書きするやや乱暴な方法もある

142:Name_Not_Found
10/03/16 18:58:28 OoeyTemv
>>140
onclick="func1()"ってなってるならfunc1を上書きすればいいと思うよ

143:140
10/03/16 19:17:11
>>141-142
有り難う御座います
すみません、質問がおかしかったです

element.removeAttribute(onclick)
このような書き替え無しに、preventDefault()のような関数を使って抑制することは出来ないでしょうか

144:Name_Not_Found
10/03/16 19:21:29
>>143
まず目的を説明してみないか

145:140
10/03/16 19:30:45
>>144
ブラウザのユーザースクリプトに使おうと思うのですが
なんとなく後者の方が汎用性があると思いまして
すみません

146:Name_Not_Found
10/03/16 20:01:26
>>145
removeAttribute('onclick') せずに自前の処理を割り込ませてかつ onclick を無効にするには
document.addEventListener('click', function(event) {
  var target = event.target;
  if (関係ない要素が target だった) return;
  event.stopPropagation();
  foo(target);
}, true); // ←ここ重要
ってやるしかない。target がリンクとかだと event.preventDefault() も必要

147:140
10/03/16 20:17:38
>>146
無事onclick属性を無効に出来ました
有り難う御座います

148:Name_Not_Found
10/03/16 22:37:08 NVjozAJm
strという変数に文字列が入っています。
str内の、特定の正規表現にマッチする部分を<p> </p>で囲みたいのですが、うまい方法はないでしょうか。

たとえば
str = "bbbbbbaaaabbbbb"
で、正規表現を
/a+/
とすると、
result = "bbbbbb<p>aaaa</p>bbbbb"
のようにしたいです。


149:Name_Not_Found
10/03/16 22:39:31
matchを知っているのになぜreplaceをしらないのか。

150:Name_Not_Found
10/03/17 08:18:22 FaoyXOF/
マッチは知ってるけどライターは知らないみたいな?

151:Name_Not_Found
10/03/17 12:04:45 WAm3b4JH
document.referrerでリンク元のURLを取得することができますが、
リンク元のタイトルを取得するにはどうしたらよいでしょうか?

XHRで取得できそうですが、クロスドメインの制限に引っかかりますし・・・
やはり、PHPなりPerlなりを介すしかないのでしょうか?

よろしくお願いします。

152:Name_Not_Found
10/03/17 13:23:33
>>151
無理

153:Name_Not_Found
10/03/17 13:57:38
>>151
> PHPなり ....
その通り。サーバに手伝ってもらわないと不可能。

154:151
10/03/17 14:35:41 WAm3b4JH
>>152
>>153

やはりそうでしたか・・・
おかげですっきりしました。
ありがとうございました!

155:Name_Not_Found
10/03/18 18:53:44
ここでPrototypeの質問OK?

156:Name_Not_Found
10/03/18 19:14:59 QGqTw1h3
コールバック関数から呼び出しもとの関数に値を返すことってできますか?
ないとすれば、どうするのがベターなんでしょうか?

157:Name_Not_Found
10/03/18 19:15:05
OKです だったはず

158:Name_Not_Found
10/03/18 19:16:59
>>156
addEventListener("click", function(n){
 func(n);
});

こんなんか

159:Name_Not_Found
10/03/18 19:25:51
>>156
意味がよくわからん

160:Name_Not_Found
10/03/18 19:39:58
・「コールバック関数」を呼んだ元
普通にreturnしろ

・「コールバック関数を要求した関数」を呼んだ元
同期実行ならクロージャ使え
var ary = [];
"abc".replace(/./g, function(s){ ary.push(s) });
alert(ary.join(", "));

非同期?なにそれこわい

161:Name_Not_Found
10/03/18 23:26:38 FjmMt186
ツールバーの座標を読み取るには
どうしたらいいのよ
つーかできるのか?そんなこと

162:Name_Not_Found
10/03/18 23:30:15
無理です

163:Name_Not_Found
10/03/18 23:52:22 FjmMt186



<html>
<head></head>
<title>テスト</title>

<body>
<script type="text/javascript">
<!--


function maximizewindow() {
window.moveTo(0,0);
window.resizeTo(screen.availwidth, screen.availHeight);
}

</body>

// -->
</script>
</html>

すまん助けてくれ
エラーだ

164:Name_Not_Found
10/03/19 00:00:39
>>163
「availHeight」と「availWidth」でリサイズって全画面か?
テンプレ嫁 >>2

【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。

165:Name_Not_Found
10/03/19 00:02:29
それに加えて何がエラーなのかわからない
あと、titleってhead内に書かなくてもいいのか

166:Name_Not_Found
10/03/19 00:20:05
bodyタグとscriptタグがネストしてるし、widthのWが小文字だし

167:Name_Not_Found
10/03/19 00:25:01
ネストはしてないっしょ
しかしこりゃ酷いな

168:Name_Not_Found
10/03/19 00:30:06
関数も呼ばないと動作しないよ

169:Name_Not_Found
10/03/19 08:10:26 8yzn2SB5
先ずはHTML初心者スレに行くべきだな


170:Name_Not_Found
10/03/19 08:16:44
>>163
タグの書き方から学んだ方が早そうだね

171:Name_Not_Found
10/03/19 11:44:05
vol.76 過去ログまだ?

172:Name_Not_Found
10/03/19 15:59:00
>>171
あげてきた
てか誰でもあげられるんで気づいたら頼む

173:Name_Not_Found
10/03/19 18:17:32
>>171
今度からお前が当番な

174:Name_Not_Found
10/03/19 23:49:24
URLリンク(code.google.com)
これ使ってる方いますか?

175:Name_Not_Found
10/03/20 00:16:09
>>174

使ったことない。ってか、はじめて知った。
見た感じ、あまりメリットなさそうだな。
最適化手法はc/c++やってたからこの辺の書き方してたけど、
上司が読めねぇから普通に書いてくれって言ったの思い出した。

176:Name_Not_Found
10/03/20 00:23:01
Cと違って代入される毎に型がコロコロ変わったりブラウザ毎に解釈が微妙に変わったりする言語では不安だから使いたくないな

177:Name_Not_Found
10/03/20 01:23:22
ドットアクセスはできるだけ減らす
IE対策としてwindowとかdocumentはローカル変数化

くらいはしてる

178:Name_Not_Found
10/03/20 01:31:59
>>177
しないと何か不便になりますか?

179:Name_Not_Found
10/03/20 01:52:45
177じゃないが
・ドットアクセスは重い
・ローカル変数化しないと重い

180:Name_Not_Found
10/03/20 02:29:39
>>179
なんでローカル変数にしないと重いんですか?

181:Name_Not_Found
10/03/20 02:31:20
>>179
>重い
違いを体感できるの?

182:Name_Not_Found
10/03/20 02:34:36
玄人気取りでリソースケチったマシンなら体感しやすいんじゃないの

183:Name_Not_Found
10/03/20 03:21:43
なつかしいハックだな
IE6比で5倍速になるんだっけ

184:Name_Not_Found
10/03/20 03:51:59 bxhoFvwz
>>183
そんなには違わないかも。でも結構違うよ。

スクリプトの始めで、windowのプロパティを一通り
同名の変数に入れるだけだから、テンプレ化して普通にやってます。

あと、配列やノードリストのlengthを何度も見ない、とかとか。

185:Name_Not_Found
10/03/20 08:40:39
時代錯誤だな

186:Name_Not_Found
10/03/20 09:27:52
バッドノウハウってやつ?

187:Name_Not_Found
10/03/20 12:37:08
つまり可読性が下がるだけ?

188:Name_Not_Found
10/03/20 12:52:16
ある程度大きい規模にならないと高速化の必要はないだろうね。
しょぼいのはしょぼいなりでOK
でも、高速化は工夫のしようが色々あって面白いから試してみるといいよ。

189:Name_Not_Found
10/03/20 12:54:44
>>174の使い方kwsk

190:Name_Not_Found
10/03/20 13:25:51
独力で理解できない人は使わないほうがいい

191:Name_Not_Found
10/03/20 13:33:11
それお前もじゃん

192:Name_Not_Found
10/03/20 13:41:25
俺も

193:Name_Not_Found
10/03/20 13:47:43
そこの。おい、キミ。君もだ

194:Name_Not_Found
10/03/20 14:14:41 ZU4Tys8R
それぞれどう違いますか?
bazの定義方法の違いなんですが
それぞれの目的というか意図というか使い分け方というか

//1
var foo = {
bar: function() {
alert(this.baz);
},
baz: "hello!"
};
foo.bar();

//2
var foo = {
bar: function() {
this.baz = "hello!";
alert(this.baz);
}
};
foo.bar();

//3
var foo = {
bar: function() {
var baz = "hello!";
alert(baz);
}
};
foo.bar();

195:Name_Not_Found
10/03/20 14:54:50
>>194
まず最初に this の値には呼び出しの際に介されたオブジェクトへの参照が格納される。
また、call や apply を使えば意図的に this の値を変更できる。

foo.bar と呼び出した際には、this は foo オブジェクトを指す。(barメソッド内)
今回の例では this はすべて foo オブジェクトを指す。

1)
this が指すオブジェクトの baz プロパティを呼び出す。

2)
this が指すオブジェクトに baz プロパティを定義する。
そして、this を介して baz プロパティを呼び出す。

このとき this 値に依存することなるので必ずしも foo オブジェクトに
buz プロパティが定義されるとは限らない。

3)
ロカール変数として baz を宣言。関数の処理が終了次第、baz 変数は消滅する。

196:Name_Not_Found
10/03/20 14:57:21
だれか>>174の使い方教えてください
宜しくお願い致します

197:Name_Not_Found
10/03/20 15:07:03
>>195
どうもありがとうございます
1と2の違いは
> このとき this 値に依存することなるので必ずしも foo オブジェクトに
> buz プロパティが定義されるとは限らない。
って部分でしょうか
まだよく理解できませんが
理解でき次第
使い分けてみたいと思います

198:Name_Not_Found
10/03/20 15:15:45
google codeで面白そうなjavascriptライブラリを見つけたら紹介しますので
どなたか>>174の使い方を教えてください

URLリンク(code.google.com)

199:Name_Not_Found
10/03/20 15:16:16
>>197
説明のしかたが悪かったね。要は this 値は固定じゃないってこと。

1だって this 値が foo オブジェクトを指すとは限らない。
当然2も同じ。3はthis関係ない。

> foo.method と呼び出す限りは method 内での this 値は foo オブジェクト
> foo.method.call/apply ... となると this は変わってしまう

200:Name_Not_Found
10/03/20 15:19:12
>>197
195じゃないけど、最初にcall, applyでthis値指定できるって書いてあるよね>>195に。
例えば、
hoge={};
というオブジェクトを別途作成して、
foo.bar.apply(hoge) とか foo.bar.call(hoge)
とすることで、hogeオブジェクトにbazプロパティが定義されることになる。
これが「fooオブジェクトにbazプロパティが定義されるとは限らない」という意味。

201:200
10/03/20 15:22:22
>>197
1と2の違いを気にしてるようだけど、
1ならbazプロパティが定義されず、2は定義されるという違いがある

bazプロパティが定義されるのは、thisの指すオブジェクトであり、
それはfooオブジェクトとは限らない

202:200
10/03/20 15:23:21
訂正
1ならbazプロパティが定義されず、2は定義されるという違いがある

1なら「barメソッド呼び出し時に」bazプロパティが定義されず、2は定義されるという違いがある

203:Name_Not_Found
10/03/20 15:24:12
// 2
var func = foo.bar;
func();
alert(foo.baz); // => undefined
alert(window.baz); // => Hello

204:Name_Not_Found
10/03/20 15:26:51
//1
var foo = {
bar: function() {
alert(this.baz);
},
baz: "hello!"
};
foo.baz = "hi!"
foo.bar();

2と3はbar関数の中で文字列を定義しているから
この関数を使っている限りメッセージを変えることはできない

それと2はthisの対象となるオブジェクトを書き換える(状態を変化させる)ことから
副作用があるとか破壊的とか言われる

205:195
10/03/20 15:29:09
ゴチャゴチャしてきたけど ...

>>203
そこまで突っ込むならこの補足をいれるべき。
var func = foo.bar;
func();
alert(window.baz);// =>"Hello"

this のデフォルト値はグローバルオブジェクト。すなわち、window 。

206:200
10/03/20 15:30:03
>>203
もしかして201の反証ってこと?

this値はどのオブジェクトのプロパティとして呼び出されたかを指すから
foo.bar();
じゃなくて
var func = foo.bar();
func();
とした場合には、グローバルオブジェクトであるwindowがthis値になるね

207:205
10/03/20 15:31:30 oCP5+OLM
あ、ごめん。なしで。勘違いしてた笑

208:200
10/03/20 15:32:49
206訂正
var func = foo.bar();

var func = foo.bar;

209:194
10/03/20 15:35:52 ZU4Tys8R
>>199-208
どうもありがとうございます
なんとなくですがわかりました

>>204
1だとhi!に置き換わることを確認しました
2では同じようなことをしてもhello!のままなことを確認しました

210:初心者
10/03/20 20:23:37
下記のJAVAscriptなんですがブログにアップしても表が作成されません
Blog Write というエディタでプレビューを見ると

『このページのスクリプトでエラーが発生しました。
ライン:29 文字:1 エラー:書き込みできません コード:0 URL:about:blank』

というエラーになるのですが

alphaEDITというエディタにプログラムを書き込んでプレビューを見ると、問題なく表が作成されます。
色々調べてるんですけど、解決出来ないでいます。こういうの、わかる方がいたら教えてください。

<script src="URLリンク(blog-imgs-38.fc2.com)" type="text/javascript"></script>
<script src="URLリンク(blog-imgs-38.fc2.com)" type="text/javascript"></script>
<script>
$(function(){
$('#view1').csv2table('URLリンク(blog-imgs-38.fc2.com)');
});
</SCRIPT>
<div id="view1"></div>

ブログは3年くらい書いてますが、他のジャバスクリプトは問題なくブログにアップ出来ていますが
こういう、JAVAスクリプトのプラグインを使うのは初めてです。
今回使ってみたのは
CSVファイル(カンマ区切りテキスト)を読み込み、Tableに整形して表示するJavaScriptライブラリ「jquery.csv2table.js」というプラグインです。

誰か助けて下さい。



211:初心者
10/03/20 20:38:35
名前欄に『初心者』って書いちゃった 。゚(゚ノω`゚)゚。

212:Name_Not_Found
10/03/20 21:11:33
window.onload
$(document.).ready

213:210
10/03/20 21:12:35
今、自分の書き込みを見て思ったんですが、
URLリンク(blog-imgs-38.fc2.com)のリンクが
『');』のところまで含まれちゃってるから、ダメなのかしら。
この 「jquery.csv2table.js」というプラグインのマニュアルによると
この部分は、ローカルフォルダのパスを記入することになってるんですけど
それでは上手くいかなかったので、知識の乏しい私は苦肉の策で、
フォルダをサーバーにアップして取得したURLを記入してみたら、
1行目と2行目までは読み込んでくれるようになったんです。


214:210
10/03/20 21:14:12
>212さん
これは、私へのレスですか?!( ;∀;)

215:Name_Not_Found
10/03/20 21:14:26
jQueryは$(func)(=jQuery(func))でDOM構築後に実行になるはず。
たぶんブログではprototypeでも使われているんじゃね。
$→jQueryでどうよ。
あとscriptで扱う要素はそれより前に書いておく癖のほうがいいかも?

216:210
10/03/20 21:18:52
>215さん
レスありがとうございます!
なんか色々調べてたときに
$→jQuery やってみたんです。それでもダメでした。。。
ありがとう!!!

217:Name_Not_Found
10/03/20 21:24:21
有料アダルトの紹介ブログやってる奴に教えるなんてお前ら暇なんだな

218:210
10/03/20 21:29:35
そう。アダルト紹介サイト。作ってみたんだけどこれじゃ情報として全然役に立たないやと思って
納得できるものを作ろうと思って色々やっていたら
いつのまにかjavascriptにハマってしまいました。
他のアダルトサイト紹介サイトの管理人さんたちって
すごい技術で、私も頑張らなきゃと思ってるんだけど、難しいです。

219:Name_Not_Found
10/03/20 21:32:43
開き直ったwwwwwww
try catchでも使ってデバッグしろよ

220:210
10/03/20 21:34:45
やっぱり、アダルト紹介サイトとかって風当たりが強いのかなぁ。
ずっと取り組んでいたからちょっと麻痺してたのかも。
すみませんでした。
もし、それでもいいよという方がいたら、教えてください。
頑張ります・・・。

221:210
10/03/20 21:37:34
>>219
開き直ったというか、事実なので~www
try catch ですね。デバッグも考えてたんですけど
やってみます。
なんか、エディタでは成功してるのが引っかかってて
スプリクトは間違ってないのかなって思ったりして。
よし、デバッグしてみる。

222:Name_Not_Found
10/03/20 22:55:19
>>210
そのままだとドメインが違うから無理。
JSONP使えばなんとかなる。後は自分で頑張れ

223:210
10/03/20 23:07:24
>>222
ありがとう。
今、ファイヤーフォックスのエラーコンソールを使ってたんですけど
なんか、『JavaScriptコンソールを利用すれば、外部ファイルを引き込めない部分でエラーを発見することが可能です』
って情報があったので、ネスケをダウンロード中です。
教えてもらったtry catchっていうのは使い方が難しくてちょっと保留してます。

JSONPっていうのも初めて聞きますが、調べて挑戦してみます。

『頑張れ』ってありがとう!2Chで頑張れって言われるのって
あんまり無いことだから嬉しい。
教えてくれた皆さん、ありがとう。((((●・ω・)ノ♡


224:Name_Not_Found
10/03/20 23:46:09
なんでネスケ。
Firefoxを使ってるならJavaScriptコンソールはエラーコンソールに統合されてる。
javascript.options.showInConsoleをtrueしろ。

225:Name_Not_Found
10/03/21 00:20:42
「後は自分で頑張れ」はもう回答しないよって意味なんだけど、ポジティブだなw
嫌いじゃないぞ

折角だからもう1つだけヒント。
FirefoxならFirebug入れとけ
あと、Chromeなら Ctrl+Shift+j でDevToolsが使える
もちろん使い方は自分で調べろよ

226:210
10/03/21 00:23:45
>>224さんへ
>>javascript.options.showInConsoleをtrueしろ。

っていうのは
↓これですか?

設定は %appname%/defaults/preferences/ ディレクトリ内の .js ファイルで行います。(拡張子が .js であれば)ファイル名は何でもかまいません。ですので、debug.js とするのが最良でしょう。

/* デバッグ用設定 */
pref("browser.dom.window.dump.enabled", true);
pref("javascript.options.showInConsole", true);
pref("javascript.options.strict", true);
pref("nglayout.debug.disable_xul_cache", true);
pref("nglayout.debug.disable_xul_fastload", true);

これにdebug.jsって名前をつけて
%appname%/defaults/preferences/debug.js保存しました。

>>なんでネスケ。
ネスケは、やめます。どうもです。
今だけでいいから、頭良くなりたい。

227:210
10/03/21 00:32:01
>>225
もう回答しないよって意味でも『頑張れ』は嬉しかったです。
だってもう3日目、寝食忘れてネット廃人のようになってたから。

しかも、ヒント~!!(喜)
>>Chromeなら Ctrl+Shift+j でDevToolsが使える
↑、これ早速やってみます。

Firebugは、昨日やってみたら、今使ってるバージョン3.6には
対応してないってことが解って、バージョン古いのにしてみようかどうか
考えてたとこなんです。

ありがとう。こんな時間に。



228:Name_Not_Found
10/03/21 00:50:30
これってdivをscriptの前に移動したら動いちゃうとかじゃないの

229:210
10/03/21 01:00:01
>>228さん
こんばんは。

<div id="view1"></div> っていうのを
色んな場所に移動してみたんですけど、ダメだったんです。
(でも、これって、>>228さんが書いてくれた事を正しく解釈してないかもしれません)

最初の2つの外部ファイルは読み込んでいるようなんですが
移動とかしたら、それも読み込まなくなるという結果でした。

あとは、3つめの外部ファイルが読み込めたらなんとかなりそうな気がして
それで今は<<223さんが教えてくれたJSONPに取り組んでるとこです。

230:210
10/03/21 01:05:14
それと、>>225さんが教えてくれたChromeのDevToolsを開いてみたら
私には、すぐに使い方が解るものではなさそうなので(英語だし)、
JSONPをやってみてダメだったら、その時に使い方を習得してやってみようと思っています。
皆さん、ありがとうございます。


231:Name_Not_Found
10/03/21 01:07:30
>>229
レベル的にも雰囲気的にもこっちに移動したほうがいいと思う
スレリンク(hp板)


232:210
10/03/21 01:11:57
>>あ、最初、その板と、どっちで質問しようか迷ったんです。。
でも、こっちで散々お騒がせしておきながら、そっちでまた質問って
ありなんでしょうか???(´・ω・`)

233:210
10/03/21 01:19:34
いや、ダメだ。
もう限界。お風呂にも入りたいし。

あっちのスレに行ってきます(`・ω・´)

皆さんゴメンナサイ( ´・ω・)
短い間でしたが色々ありがとう。

234:Name_Not_Found
10/03/21 01:21:16
そうかい
まあがんばってくれよ
ボタンのonclickとか適当なイベントにして実行して動けばタイミングの問題かもよ

235:210
10/03/21 01:34:02
レス、ありがとう。
頑張ってきます!!!
そして早くお風呂に入りたいです。

236:Name_Not_Found
10/03/21 02:07:07
とっとと入れよw

237:210
10/03/21 02:20:41
まず、ご飯食べてる。
今日は、ホントにありがとう。
(つω-`o)っ【。*゜ぉゃすみなさぃ。+゜】
私は寝れないけど。

238:Name_Not_Found
10/03/21 02:28:01
おはぎうめー

239:Name_Not_Found
10/03/21 03:19:49
> ボタンのonclickとか適当なイベントにして実行して動けばタイミングの問題かもよ
こういういい加減なレスはいらんだろ。
サブドメインが異なるのにXMLHttpRequestしたら、動くわけないのに。
# fc2でXHR Level2対応なアクセスコントロールできるなら一部ブラウザでは動くけどさ


240:Name_Not_Found
10/03/21 14:46:48 ll0As9O9
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content=text/css">

<title></title>
<script type="text/javascript"><!--
function RSto(){window.resizeTo(300.500)}
//--></script>
<style type="text/css"><!--
body {background-color: #ffffff;}
--></style>
</head>
<body>
<p>
<from>
<input type="button" value="リサイズだぜ"onclick="RSto()">
</from>
</p>
</body>
</html>

ブラウザ変わらないんだけど
どこか間違ってる?

241:Name_Not_Found
10/03/21 14:50:10
とりあえずHTMLの勉強から始めようか

242:Name_Not_Found
10/03/21 14:55:24 ll0As9O9
いやー日本語からのほうがいいかもしれない
だって>>241の言ってる事がわからないから

htmlはあってると思うんだな

243:Name_Not_Found
10/03/21 15:03:04
>300.500
300, 500

300.5じゃない「300と500」

244:Name_Not_Found
10/03/21 15:05:55 ll0As9O9
確かに・・
直したけどいまだ無反応

245:Name_Not_Found
10/03/21 15:24:33
大方ブラウザ側でresizeTo制限する設定にしてるんだろ。標準でもないし動かなくても文句言うな
てかfromってなんだよ。action属性も無いし

246:Name_Not_Found
10/03/21 15:25:13
alert挟んで見ろよ
HTML無茶苦茶だし

247:Name_Not_Found
10/03/21 15:54:47
あら~

248:Name_Not_Found
10/03/21 16:02:54


249:Name_Not_Found
10/03/21 16:05:57
">>1-10,15,16-20 >>21,22,25-30"のようなレス指定を抽出したいのだけど

">>1-10,15,16-20 >>21,22,25-30".match(/>>\d+([,-]?\d*)*/g)
で合ってるかな・・?

250:Name_Not_Found
10/03/21 16:09:49
>>249
[,-]の?はいらない

251:Name_Not_Found
10/03/21 16:15:29
専ブラですぐに正規表現抽出ためせるやん。
そのままだと>>1とか単独のもマッチするけどいいの?
/>>\d+([,-]\d*)+/g
>>[数字]のあとに[カンマ or ハイフン]の場合にマッチ

252:Name_Not_Found
10/03/21 16:18:03
>>250
確かに?要らなかったね
>>251
レス全部欲しいので単独の物もマッチさせたいです

ありがとう

253:Name_Not_Found
10/03/21 16:55:34
属性や子要素やイベントリスナなどを保持したまま要素名だけを置き換えたいのですが
どうすればいいですか?
Firefoxで動かしたいです

「dom "要素名" (置き換え|書き換え)」等で検索して
URLリンク(okwave.jp)
URLリンク(oshiete1.goo.ne.jp)
といったページがヒットして
これと同じようなことをしたいのですが

254:174
10/03/21 16:59:07
誰かURLリンク(code.google.com)の使い方教えてください
マジでお願いします

255:Name_Not_Found
10/03/21 17:11:36
>>253
不可能。
新しい名前でElementを作って自分でいろいろコピーするしかない。


256:Name_Not_Found
10/03/21 17:13:09
>>254
>>190
ドキュメントに使用例あるだろ

257:174
10/03/21 17:14:38
The JSpeed engine analyzes different portions of your JS code for fragments which can be optimized, and substitutes them with faster code.

Optimization Example:

for (i=0;i<1;i++) {
j = i + 1;
f = Math.floor(i);
f = Math.floor(21.4);
}

for (i = 0, j = 0; i < 1000000; i++, j++) {
if (i == 4) {
var tmp = i / 2;
a = Math.abs(i);
}

if ((i % 2) == 0) {
var tmp = i / 2;
tmp = Math.min(i,tmp);
i++;
}
}
var arr = new Array(1000000);
for (var i = 0; i < arr.length; i++) {}

258:174
10/03/21 17:15:23
before: ~14 ms

for (var i=0;i<1;++i) {
j = i + 1;
f = i>>0;
f = 21.4>>0;
}

for (var i = 0, j = 0; i < 1000000; ++i, ++j) {
if (i == 4) {
var tmp = i >> 1;
a = i < 0 ? ~i++ : i;
}

if ((i & 1) == 0) {
var tmp = i >> 1;
tmp = i < tmp ? i : tmp;
i++;
}
}
var arr = new Array(1000000);
for (var i = 0, arr_len = arr.length; i < arr_len; ++i) {}

after: ~7 ms

259:Name_Not_Found
10/03/21 17:17:45
それしか見えないのならもう諦めろ

260:174
10/03/21 17:18:49

ドキュメントってこれですか?

261:174
10/03/21 17:19:35
>>259先生、もしご存知でしたら教えてください。お願いします。

262:253
10/03/21 17:30:30
>>255
どうもありがとうございますm(_ _)m

263:Name_Not_Found
10/03/21 17:42:39
>>254
リンクがあるのにわざわざソースを貼るな。
そもそも、一体何が分からないのかが分からない。それすら説明できないようなら諦めろ。
インタープリターが賢かったら全く役に立たないテクニックだから

264:174
10/03/21 17:46:57
ソースすいませんでした
ありがとうございます
どのように使うものなのかがわかりません


265:Name_Not_Found
10/03/21 17:51:50
>どのように使うものなのか
高速化の小手先テクニック。x86アセンブラの基本を知ってれば分かる。
但し最近のコンパイラは賢いからC言語だとどっちで書いても速度は同じだったりする。

266:Name_Not_Found
10/03/21 18:40:57
>>253
Document.renameNodeを使えるDOM3プロセッサを探せ

267:Name_Not_Found
10/03/21 18:42:06 oYRZIBb0
javascriptで面白いライブラリおしえてちょんまげ~~~~い

268:Name_Not_Found
10/03/21 18:50:49
JSNES - A JavaScript NES emulator
URLリンク(benfirshman.com)

Gordon - An open source Flash runtime written in pure JavaScript with SVG
URLリンク(paulirish.com)

269:Name_Not_Found
10/03/21 19:00:07
>>268
暖かい思いやりに感謝する。


別の質問!!
javascriptを書くときに使うエディタもおしえてぴょんぴょん~~♪

270:Name_Not_Found
10/03/21 19:03:23
死ね

271:Name_Not_Found
10/03/21 19:06:14
久々にレベル高いのがいるなw

272:Name_Not_Found
10/03/21 19:12:48
>>269
Eclipce
NetBeans

273:Name_Not_Found
10/03/21 19:13:46
>>271
269のことですかw

274:Name_Not_Found
10/03/21 19:26:19
>>272
ありがとうございます。

275:Name_Not_Found
10/03/21 19:26:41
今日のスレは面白いなww

276:Name_Not_Found
10/03/21 20:52:30
canvasでエミュレーターか
いろいろできるようになってくるんだなぁ

277: ◆6j1/CrbOks
10/03/21 22:35:39
test

278:Name_Not_Found
10/03/22 01:03:29
formを非同期でページ内の<div id="myForm"></div>内に生成しています。
formのinputエリアのIDを指定して値の受け渡しをしていますが、
一度フォームエリアを$("myForm").remove();をして再生成すると
form内のtextareaの入力用idが重複してしまい値を受け取らなくなります。
ソース見る限りinputエリアのidは唯一のはずなのですが
原因を何とぞご教授よろしくお願いいたします。

279:Name_Not_Found
10/03/22 01:16:16
生成したけどremoveされなかったってことでしょ
どう見ても生成のやり方に依ると思うんだけど

280:Name_Not_Found
10/03/22 01:31:32
いじってて気付いた
textarea = document.createElement("textarea");
textarea.setAttribute("type","text"); // textarea にtype属性は無い
document.getElementsByTagName("body")[0].appendChild(textarea);

これIE7以下だとエラーになるけどバグかな?

281:Name_Not_Found
10/03/22 03:01:14
IE6 で for in で調べると type プロパティには textarea という値が入ってるから
readonly のプロパティとして実装されてるんじゃないかしら。

282:Name_Not_Found
10/03/22 11:52:55 cbvQbnLM
エスパーさん、お願いします。
下記のコードが正常に動くようにするにはblockEnter()に何を入れると良いでしょうか?

<p><textarea cols="40" rows="10" onkeydown="blockEnter();"></textarea></p>
<script type="text/javascript">
function blockEnter() {
if (event.keyCode == 13) return false;
}
</script>

283:Name_Not_Found
10/03/22 12:00:45
テンプレ >>2 より
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。

284:Name_Not_Found
10/03/22 12:06:48 ycbbAk62
emac scriptの最新版っていつ普及するか教えてくほちーの


285:ペ・ヨンジュン ◆3cMgdlp8VY
10/03/22 12:18:01
>240
<input type="button" value="リサイズだぜ"onclick="RSto()">

<input type="button" value="リサイズだぜ" onclick="RSto()">

<input type="button" value="リサイズだぜ" onclick="try{RSto()}catch(err){if(confirm(err+'\n\n[エラーを翻訳する]')){window.open('URLリンク(translate.google.co.jp)'+err+'&sl=en&tl=ja')}}">

286:Name_Not_Found
10/03/22 12:42:14 /WDNaoOm
子要素があるかないかはhasChildNodes()で
属性があるかないかはhasAttributes()で
特定の属性があるかないかはhasAttribute(name)ですが、
addEventListenerメソッドがあるかないかを判断するにはどうすればいいですか?

287:Name_Not_Found
10/03/22 12:45:55 gbCtXRNy
>>286
意地悪なことをいうと
(element.addEventListener)

288:286
10/03/22 12:51:14
すみませんイベントタイプも調べたいです

289:Name_Not_Found
10/03/22 14:38:22
>>285
属性値の&はエスケープしとけ、な

290:Name_Not_Found
10/03/22 14:46:51
>>286
DocumentEvent#canDispatch

291:278
10/03/22 15:44:56
自己解決です。

$("id") としなければならない所が
$(id) になっていました。

消えないわけでした。
あほだ俺orz

292:Name_Not_Found
10/03/22 16:25:38
>>291氏と似たうっかりで、jqueryなんだけど
$("#id_name")にするところで、たまに#を抜かすことはあるw
納期が迫ってあわててる時なんかは、その頻度が上がる上がる

293:210
10/03/22 17:11:03
210です。
>>210>>239界隈で相談にのってくれた皆様。

今、解決出来ました~!!!

皆さん、本当にありがとうございまいsた。
どの方のアドバイスもすごい参考になりましたが
その中で、解決の決め手になったのは

>>222
そのままだとドメインが違うから無理。
JSONP使えばなんとかなる。後は自分で頑張れ
という、アドバイスでした。

JSONPのマニュアルを必死に読んでいたときに
これと同じことを指摘してくれた方がいて、その具体的方法を
アドバイスしてくれて、そしたら(とりあえず)JSONPを取り入れなくても
希望が叶うことになったのです。

生成された表を直接ブログに載せるのは無理だということが判り
スクリプトをHTMLにアップしてそっちにリンクを貼って
ユーザーに見てもらうという方法に落ち着きました。

皆さん。本当にありがとうございました。
(* ̄◎ ̄*)ぶっっちゅうううん♪

294:210
10/03/22 17:12:10

あ、興奮のあまり、割り込んじゃってすみませんでした。
もうとっくに話題は変わってるというのに。

295:Name_Not_Found
10/03/22 17:24:39
世間は広いな・・・・。

296:Name_Not_Found
10/03/22 19:44:21
救急車呼びたくなった

297:Name_Not_Found
10/03/23 01:34:12
メールボックスに来たら泣くレベル

298:Name_Not_Found
10/03/23 11:49:57
<!--
0から9まで10個のappendChildしたdivを表示するにはどうすればいいですか?
順に上書きされているのか最後の数字しか表示されません。
初歩的なことだと思いますがつまずいてしまいました。
-->
<html>
<head>
<script>
function test() {
var div = document.createElement("DIV");
for (var i = 0; i < 10; i++) {
div.textContent = i;
document.body.appendChild(div);
}
};
</script>
</head>
<body onload="test();">
</body>
</html>

299:Name_Not_Found
10/03/23 12:07:40
forの中にvar divもつっこめ

300:Name_Not_Found
10/03/23 12:08:20
>>298
div1個しか作ってないよ

301:Name_Not_Found
10/03/23 12:09:47
<script>
function test() {
for (var i = 0; i < 10; i++) {
var div = document.createElement("DIV");
div.textContent = i;
document.body.appendChild(div);
}
};
</script>


var div = document.createElement("DIV");の位置が悪い
改変前のほうだと
div作る→そのdivに0を入れる→次のループでさっきのdivに1を入れなおす(上書き)→……
ってなるからループ毎に要素をつくらないとだめ
ついでに言うとIEで動かない

302:Name_Not_Found
10/03/23 12:10:43
>>299-300
できました
どうもありがとうございます

303:Name_Not_Found
10/03/23 12:11:58
>>298
divを1個生成する
divの中身を「1」にする
divをbody末尾に足す
さっきのdivの中身を「2」にする
さっきのdivを(すでにある場所から取り除いて)body末尾に足す(=位置は変わらない)
さっきのdivの中身を「3」に(ry

皿一枚でおかず十品出そうとすんなよ

304:Name_Not_Found
10/03/23 12:12:39
おそかた/(^o^)\

305:Name_Not_Found
10/03/23 12:15:23
>>301,303
どうもありがとうございます
>>303
> 皿一枚でおかず十品出そうとすんなよ
自分が何をやっていたのか想像できました

306:Name_Not_Found
10/03/23 12:19:21
お前ら優しいなwww
> 皿一枚
うまいなw

307:Name_Not_Found
10/03/23 14:30:58
お~い山田君。皿三枚持ってきてー。

308:Name_Not_Found
10/03/24 00:19:25
オブジェクトは全て参照になる事を忘れないように

309:Name_Not_Found
10/03/24 01:20:40
クロスドメインって相手のサーバーにjsファイルないと無理?

310:Name_Not_Found
10/03/24 01:30:59
jsファイル自体にクロスドメイン制限はない
jsファイルがどこにあろうと、XHR先はアドレスバーに出ているドメインと同じ必要がある

311:Name_Not_Found
10/03/24 01:54:39
なるほど わからん

312:Name_Not_Found
10/03/24 16:37:53
var totalRaceTime
var numbOfRunners

totalRaceTime = 0
totalRaceTime = parseFloat(totalRaceTime)
numbOfRunners = 0
numbOfRunners = parseFloat(numbOfRunners)

raceTime = prompt("Please enter the race time in minutes.","000.00");
raceTime = parseFloat(raceTime);
raceTime = raceTime.toFixed(2);

while (raceTime != 999)
{
numbOfRunners = numbOfRunners + 1
totalRaceTime = totalRaceTime + raceTime

raceTime = prompt("Please enter the race time in minutes.","000.00");
raceTime = parseFloat(raceTime);
raceTime = raceTime.toFixed(2);

}

document.write("numbOfRunners = " + numbOfRunners + "<br>")
document.write("totalRaceTime = " + totalRaceTime)

ちょっと長いですが。ランナーのタイムを打ち込んでいって、
ランナーの数とタイムの合計を表示するシンプルなコードを書きたいのですが、
どうもtotalRaceTimeがraceTimeの合計ではなくて文字列をくっつけただけな結果になってしまいます。
ParseFloatを通したはずなんですが、何故でしょうか?

313:Name_Not_Found
10/03/24 16:41:53
toFixed()を読んだら文字列になる。それで「+」使ったら連結になる。
toFixed()はdocument.write()するときに1回だけ呼ぶべきでは。

314:312
10/03/24 17:04:08
toFixed()が関数を文字列にかえることは知りませんでした。ありがとうございます!
おかげさまでうまくいきました。

315:Name_Not_Found
10/03/24 18:14:44
頼むからセミコロンつけてくれ

316:Name_Not_Found
10/03/24 19:33:20
はい;

317:Name_Not_Found
10/03/24 19:49:59
^^;

318:Name_Not_Found
10/03/24 20:54:39
行末にセミコロンを付ける言語を書いた後だと、
必要のない言語でもつい付けちゃうんだよな。
アセンブラ等ならコメント開始だから実害ないけど。

319:Name_Not_Found
10/03/25 00:32:13
セミコロン補完計画

320:Name_Not_Found
10/03/25 01:11:29
>>318
2行目まででRubyが思い浮かんだのだけど、
まさかアセンブラが出てくるとは思わなかったw

321:Name_Not_Found
10/03/25 11:03:22 JqAoxhMQ
学生の時(十数年前)にTIのDSP用に書いたきりだわ、アセンブラ。
もう全然思い出せない…

322:Name_Not_Found
10/03/25 11:07:54
JavaScriptのライブラリをまとめたまとめサイトを教えてくださーい(^o^)ほほ~い

323:Name_Not_Found
10/03/25 11:16:07 OTuVuC1P
Object内でthisの参照先を他のObjectに変更したいのですがどうしたらよいでしょうか?

324:Name_Not_Found
10/03/25 12:10:09 JqAoxhMQ
>>323
どうしてもthisで他のオブジェクトを参照しなければならない
ケースがよくわからないのだけど、callかapplyで解決する話かな?

325:Name_Not_Found
10/03/25 12:13:51 U93J9e82
PHPで以下のようなクラスをJavaScriptではどのように実装したらよろしいでしょうか?

class Aisatu
{
function hello() {return "こんにちは";}
function konbanwa() {return "こんばんは";}
}

326:Name_Not_Found
10/03/25 12:37:56
クラスという概念がないと前置きした上で

Aisatu = new Function();
Aisatu.prototype.hello = function () { return "こんにちは"; };
Aisatu.prototype.konbanwa = function () { return "こんばんは"; };

var obj = new Aisatu();
alert(obj.hello());

327:Name_Not_Found
10/03/25 13:07:59
>>326様ありがとうございます
勉強になります
手本にして書いてみます
ありがとうございます

328:Name_Not_Found
10/03/25 13:54:49
最近自分もPHPからJavaScript初めて色々試してたのでPHP使いならこれが分かりやすいかも。

<script>
var ClassName = function() {
 //construct here
 this.setProperty("こんにちは");
};

ClassName.prototype = {

 property: null,

 setProperty: function(value) {
  this.property = value;
 },

 getProperty: function() {
  return this.property;
 }

};

var obj = new ClassName();
alert(obj.getProperty());
obj.setProperty("こんばんは");
alert(obj.getProperty());
</script>

ClassName.prototypeの中身の実体は連想配列なので、区切りにカンマを忘れずに。
最後のはいらないけど。
a:bならプロパティになって、a:function()だとメソッドになる感じかな。
あとnullは大文字だとだめみたい。

329:Name_Not_Found
10/03/25 13:57:39
>>326
Fが大文字のFunctionって何でしょうか?
ググれなくてわかりません。

330:Name_Not_Found
10/03/25 14:10:33
>>328のコードで追記しとけば、
アクセス修飾子がないので(全部publicなので)、
直接propertyいじれちゃったりする。
あくまでもPHP風に書くためということであってカプセル化という意味合いは全くないので注意。

331:Name_Not_Found
10/03/25 17:11:33
new Function();

function(){};
と同じ。結局。

332:Name_Not_Found
10/03/25 19:24:51
326と328のコードは書き方違うけど中身は同じ?

333:Name_Not_Found
10/03/25 20:11:46
別物

334:Name_Not_Found
10/03/25 22:58:18
javascriptでサーバーとソケット通信することは可能ですか?

335:Name_Not_Found
10/03/25 23:05:29
たしかソケットはHTML5から使えるようになる予定だった気がする

336:Name_Not_Found
10/03/25 23:08:22
無理だけどできるようにするライブラリがあったと思う
けどそれを入れてないと使えないので
自分が使う分ならいいけど他の人に使わせる場合は入れてもらないとだめ
名前は忘れたけどぐぐれば出てくると思う
まぁその部分だけFlashでやればいいんでない

337:Name_Not_Found
10/03/25 23:18:34
ありがとうございます。
サーバー側はpythonで書いたんですが、クライアント側はやはりflashの方がいいのでしょうか?


338:Name_Not_Found
10/03/26 01:58:07
今日作ってて驚いたんだが
気まぐれで配列にオブジェクトリテラルで数値指定で格納して、
ShiftとかPOP系を使おうとするとエラーになってしまうんだな
アレだと全て文字列(連想)として扱われてしまうのか。
某所でjsは皆ハッシュテーブルと聞いてたから妙な勘違いをしてた
もう!

339:Name_Not_Found
10/03/26 02:09:09
当たり前だろ

340:Name_Not_Found
10/03/26 02:38:05
晩飯はなんでも食い物だけど
食い物がなんでも晩飯にはなんねーよ
チョコ好きだけどそれが晩飯だと言われたら俺は泣くぞ

341:Name_Not_Found
10/03/26 05:25:27
夕食はア・タ・シ(ウフ

342:Name_Not_Found
10/03/26 06:02:06
いつのまに $ とかでてきたんだ
とほほのjs入門には $ とかないのに

343:Name_Not_Found
10/03/26 06:09:36
言語仕様レベルで最初から$がある件

344:Name_Not_Found
10/03/26 06:29:17
はじめからあったのかorz

ajaxのソースで $ 見たとき
jsじゃねーしww
って びっくりしたわ

345:Name_Not_Found
10/03/26 08:27:19
$ = function(e){return document.getElementById(e);};
なんてよく書くだろ

346:Name_Not_Found
10/03/26 09:31:03
$a = 1;
って書き方で変数を宣言できるってこと?

347:Name_Not_Found
10/03/26 10:23:40
変数名には普通『!"#%&'()*+,-./:;<=>?@[\]^`{|}~』と空白以外はどんな記号だろうが使える


348:Name_Not_Found
10/03/26 10:26:30
あ = 1;
t$2 = 2;

うそおおおおおおお

349:Name_Not_Found
10/03/26 11:50:26
独り言ならツイッターでやれ

350:Name_Not_Found
10/03/26 12:22:58
使えるから使うってわけでもないし

351:Name_Not_Found
10/03/26 12:25:05
jQueryの事言ってるんじゃねえの?

352:Name_Not_Found
10/03/26 12:27:46
さすがにこれはエラーになるでしょ

変数 = "こんにちは";
alert(変数);

353:Name_Not_Found
10/03/26 12:53:14
やってみればいいさ

354:Name_Not_Found
10/03/26 12:56:26
javascript:(function(){変数="こんにちは";alert(変数);})();
!?
こいつあいさつしてきたぞ!!

355:Name_Not_Found
10/03/26 12:57:17
うっぜえ

356:Name_Not_Found
10/03/26 13:02:16
全角使えるとかマジできめえ

357:Name_Not_Found
10/03/26 14:01:27
その話題はもう飽きた

358:Name_Not_Found
10/03/26 14:48:12 MJVNVjvJ
Lightboxのように画像を表示したときに出てくる薄透明のあれってどうやるのでしょうか?

359:Name_Not_Found
10/03/26 14:54:54 9GVpw/0P
>>358
style

360:Name_Not_Found
10/03/26 14:59:12
>>358
こんなのもできないのかよ・・・


<div id="box">
サンプル
</div>


document.getElementsById("box").style("background:#000000;filter:50%");


361:Name_Not_Found
10/03/26 15:19:30
filterって先行実装?

362:Name_Not_Found
10/03/26 15:28:56
filiterってなんだ?
透過ならopacityだが

363:Name_Not_Found
10/03/26 15:38:07
IEの糞仕様

364:Name_Not_Found
10/03/26 15:49:44
opacityの先行実装がfilterかね

365:Name_Not_Found
10/03/26 16:54:03
先行実装の意味わかってるか?

366:Name_Not_Found
10/03/26 17:02:38
勝手実装

367:Name_Not_Found
10/03/26 17:21:06 PhlB3Y2c
すみません。$get()という関数がサンプルに出て来たのですが、
わたしはasp.net主体なのでよくわかりません。
これは標準の関数でしょうか?
機能はgetElementById().valueと同じように使われていたのですが
解説が見つからず困っております。なにとぞ教えてください。

368:Name_Not_Found
10/03/26 17:30:58
そのサンプルでの定義とか、使っているライブラリの中で定義されてるんだろ。
javascript:alert(typeof $get);これでそれが定義されているのかわかるから
後は自分で調べれ。

369:888
10/03/26 18:26:27
Googleの検索でYahoo Japanって検索した時にヤフーのメインページの
リンク以外にも、メール・ニュース・オークションとあるんですがあれは
どうすれば一般のウェブサイトにつけれますか?ご存知の方宜しくお願いします。

370:Name_Not_Found
10/03/26 18:28:50
すれち

371:Name_Not_Found
10/03/26 19:04:32
透過なら、3つまとめてやってるよ。
obj.style.filter="alpha(opacity=xx)";と
obj.style.MozOpacity=xx;と
obj.style.opacity=xx;の3つで。
2つめは念のために入れてたり。

372:Name_Not_Found
10/03/26 19:14:13 DqqHxmkE
JavaScriptを書くのに使える色分け表示できるエディタって何がいいですか?

373:Name_Not_Found
10/03/26 19:29:04
エディタならなんでもいいんじゃね
IDEならaptana

374:Name_Not_Found
10/03/26 19:43:21
エディタ名とJavaScriptで画像検索

375:Name_Not_Found
10/03/26 21:47:09 K6QF+Cfr
>>368
ありがとうございます

376:Name_Not_Found
10/03/27 00:25:48
jQueryのAutocomplete Modを使いたいのですが
以下のようにinputが複数あり(実際にはもっと多数存在)、それらをクリックしたときに
jQuery Autocomplete Mod プラグインでオートコンプリートを実行したいのですが
id_nameは取得出来ていますがAutocomplete Modは全く動いてくれません・・・
jsファイルのauto_search(obj)をどのように修正すれば動くようになりますでしょうか。
ちなみに、onclickのイベントしたいのは、autocompleteArrayを条件により変更したいためになります。
たとえば・・・Local1は州、Local2はLocal1で選択した州に存在する町のような形です。

html側(jquery.autocomplete.js、jquery-1.4.2.min.jsは読み込み済み)
<body onload="init()">
<table id="tbl">
<tr><td><input type="text" id="Local1" value=""></td></tr>
<tr><td><input type="text" id="Local2" value=""></td></tr>
</table>

377:Name_Not_Found
10/03/27 00:27:12
開業が多すぎると言われてしまったのでhtmlに対するjsファイルはいかになります。

function init(){
var e=document.getElementById('tbl').getElementsByTagName('input');
for (var i=0; i<e.length; i++){e[i].onclick=function(){auto_search(this)};}
}

function auto_search(obj){

var id_name = obj.getAttribute("id");
//
alert(id_name);//念のためalertでidが取得出来ているかチェック

var data_arr = new Array();
if(id_name=="Local1"){
data = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"];
}else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定
data = ["aaa","bbb","ccc"];
}
$(document).ready( function() {

$('#'id_name).autocompleteArray(data_arr);


});

}

378:Name_Not_Found
10/03/27 00:36:02
>>371
未だに火狐1.5未満を使ってる人が果たしているのかw

379:Name_Not_Found
10/03/27 00:49:18
>>377
最後の行を

$('#' + id_name).autocompleteArray(data_arr);

にすればいんじゃね?
レス読んでないけど。

380:Name_Not_Found
10/03/27 01:04:11
<div class="hoge"><p>で囲まれているspanタグのテキスト部分だけを取り出したいのですが、
-----------------
  var str = "";
  var spanTag = document.getElementsByTagName("span");
  for(var i=0; i<spanTag.length; i++){
    if(spanTag[i].parentNode.nodeName == "P" && spanTag[i].parentNode.parentNode.nodeName == "DIV" && spanTag[i].parentNode.parentNode.className == "hoge"){
      str += spanTag[i].innerText + "\n";
    }
  }
  alert(str);
-----------------
↑if文の条件をもっとすっきり書くことできますでしょうか?
 jQueryを使うのは無しでお願いします。

■テストケース■
<div class="hoge"><p><span>OK1</span></p></div>
<div class="hoge"><p><span>OK2</span></p></div>
<div class="geho"><p><span>NG</span></p></div>
<div class="hoge"><span>NG</span></div>
<div><p><span>NG</span></p></div>
<p><span>NG</span></p>

■出力結果■
OK1
OK2

381:377
10/03/27 01:15:08
jsファイルに一部記載誤り有り

var data_arr = new Array();
if(id_name=="Local1"){
data_arr = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"];
}else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定
data_arr = ["aaa","bbb","ccc"];
}

dataをdata_arrにしましたが動かず・・・

>379
情報ありがとうございます。
しかし、一瞬動いた!と思ったけど、IEだとオブジェクトを指定しろとのエラーがFirefoxのFirebugには
jsファイル自体が表示されない状況に陥ってしまいました・・・
もう少し、初めのjsファイル見直してみます

382:Name_Not_Found
10/03/27 01:17:17
jQueryなら$()で帰ってくるのは配列じゃなかったかな

383:Name_Not_Found
10/03/27 01:49:47
jQueryオブジェクトだっけ。
$('#test')[0]でprototypeの$と同じ

384:Name_Not_Found
10/03/27 01:52:49
ここはjQueryもokですか?

385:Name_Not_Found
10/03/27 01:54:38
それ用の専用スレでも別に立てろよ

386:Name_Not_Found
10/03/27 02:11:17
【誰か】jQueryのここがわからない【助けて】
スレリンク(tech板)l50


387:Name_Not_Found
10/03/27 02:12:45
>>380
慣れてないから、もっといい書き方あるかもしれない

var str = "";
var it = document.evaluate('//div[@class="hoge"]/p/span/text()', document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var text = it.iterateNext();
while (text) {
str += text.textContent + "\n";
text = it.iterateNext();
}
alert(str);

388:377
10/03/27 02:36:11
とりあえず、data_arrの条件分岐をやめ
function auto_search(obj){
var id_name = obj.getAttribute("id");
//alert(id_name);

var data_arr = new Array("Aberdeen","Ada","Adamsville","Addyston","Adelphi","Adena","Adrian","Akron");
//alert(data_arr);

$(document).ready( function() {
$('#'+id_name).autocompleteArray(data_arr);
});
}
にして試してみましたが、IEではどちらかのalertを有効にすれば動きました。
Firefox、Operaではalertを有効にしても当たり前の事ながら動きません。
なぜIEのみalertが有効なら動くのかも分からず困りました。

それよりも
>385-386
一応Javascriptに関する事なのでOKかと思いましたがスレチだったでしょうか?
これ以上の質問はすれ違いなようでしたら>386ご紹介のスレに移動したいと思います。

389:Name_Not_Found
10/03/27 02:45:52
スレ見たけどひどいな

390:Name_Not_Found
10/03/27 02:57:50
とりあえず一応紹介したけど別にスレ違いでもないんじゃね

391:377
10/03/27 03:27:15
>390
心強い言葉ありがとうございます。


さて肝心のものは、あれから悩み続けても進展無く、眠くて朦朧としてきただけのようです。
どなたか、解決への糸口のご教示、よろしくお願いいたします。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch