+ JavaScript の質問用スレッド vol.78 +at HP
+ JavaScript の質問用スレッド vol.78 + - 暇つぶし2ch580:Name_Not_Found
10/06/08 17:27:45
joinで配列要素を連結した文字列を取得できますが
配列の区切りに文字を使用したくない場合、どのようにすれば良いですか?
.join('')ではカンマ区切りになってしまいます。

581:Name_Not_Found
10/06/08 17:36:05
.join('配列に存在しない文字列').replace(/配列に存在しない文字列/g, '')
もっときれいなやり方がある気がしてならない。

582:Name_Not_Found
10/06/08 18:12:14
>>580
元の要素をベターッと隙間なく並べたいってこと?それなら、カンマ
区切りの文字列からカンマを取るだけでよいのでは?そんな気がし
てならない。

583:Name_Not_Found
10/06/08 18:20:20
>.join('')ではカンマ区切りになってしまいます。

> ["a", "b", "c"].join("")
"abc"

ならんだろ
こういうことでもしたんじゃないか?

var sep; // 空文字列を設定したつもり
ary.join(sep); // 引数無し相当でjoin呼び出し

584:Name_Not_Found
10/06/08 18:20:27
IEやFirefoxは沢山の要素を作るとき、
変数に<div onclick="start">などの文字を追加していき最後にinnerHTMLでまとめてぶちこむ方が高速ですが
この場合無、名関数でスクリプト全体を囲んだ内部関数を呼び出すことはできませんよね?

585:580
10/06/08 18:27:39
>>583
おっしゃるとおり.join('')で普通にできました。
阿呆なことしてました。

>>581-582
replaceでの置換は思いつきませんでした。
文字列を限定できるなら使えそうですね。
覚えておきます!

ありがとうございました。

586:Name_Not_Found
10/06/08 18:27:40
>>584
よくわからんが、無名関数を他所で呼び出すことは名前がないためアクセスできず無理
innerHTMLに渡す文字列にscriptがあっても実行は無理

587:Name_Not_Found
10/06/08 18:55:40
やはりそうですよね・・・
DOMで要素を追加していくとIEやFirefoxでかなり遅くなるので
無名関数で囲まずに置くことにします。ありがとう。

588:Name_Not_Found
10/06/08 19:41:36 PkSI4MYZ
>>587
(function(){
    var window.AAA = function(){
        alert("hello");
    };
})();

みたいに、手の届くところに置くのは?

589:Name_Not_Found
10/06/08 20:24:46
それだったら
var myObj = {};
をグローバルに宣言して、無名関数内に
myObj.foo = function(){};
を入れる方がいいね。

590:Name_Not_Found
10/06/08 20:26:28
>>588
なるほど
親要素でイベントを監視して、idか何かで判定して
eventオブジェクトを引数で渡してしまえば確かにできるかも・・・!

591:Name_Not_Found
10/06/08 20:47:38
「マラソンを走ったあとは早めにポカリ飲むといいよ」
「なるほど、確かにシャワー浴びてからビール飲むのがいいかも」

592:Name_Not_Found
10/06/08 20:54:53 sNFqHSyY
素朴な疑問。
テレビガイドのページが読み込まれるとき、
左上にある番組表をクリックしようとすると、
かならずといっていいくらい、その下の広告をクリックしてしまいます。
URLリンク(www.tvguide.or.jp)

IEでもChromeでも同じなので、
よく見ていると、
その上の「TODAY's CHECK」の欄の高さが
しばらく高めに開いて、
その後上下に縮むので、
マウスの位置がちょうど広告にくるようです。

これはJavascriptでやっているのでしょうか?
意図的ということはないですよね?

593:Name_Not_Found
10/06/08 21:10:14 PkSI4MYZ
>>592
よくありがちっつーか、しょうがないっつーか。
TODAY'S CHECKのところ。

まず文字列がリスト表示されるコンテンツとして完結している。
それをJSが整形して、マーキー風に流れる様になる。

っていう二段階を踏んでるから、表示されてからガコガコっと高さが変わるんだね。
最初から高さをCSSで決め打っておけば問題なんだけど。

そうすると「JSが動かないが、CSSは効く」っていうレアな状態だと
リスト表示が見えない、ってのを気にしているのだと思う。

個人的には誰得?な感じがします。

594:Name_Not_Found
10/06/08 21:13:27
>「JSが動かないが、CSSは効く」っていうレアな状態

逆ならともかく、レアと言うほど少なくはない

595:Name_Not_Found
10/06/08 21:16:28
>>593
横からどうでもいいツッコミだけど、firefoxでNoScriptを有効にしてる環境だとよく発生する
>「JSが動かないが、CSSは効く」

596:Name_Not_Found
10/06/08 22:06:30
Firefoxを使っていて且つNoScriptを導入している人がどれくらいいると思ってんの?
統計で見たらほんの一部じゃん

597:Name_Not_Found
10/06/08 22:13:06
どうしても気になるならJavaScriptでCSSを有効にするのはどうか

var link = document.createElement("link");
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = src;
document.getElementsByTagName("head")[0].appendChild(link);


598:Name_Not_Found
10/06/08 22:47:49 PkSI4MYZ
>>594-595
すまん、レアな状態ってのは言葉が変だった。
標準状態(デフォ)でそういう実行環境はレアだよね、ってことっす。

599:Name_Not_Found
10/06/08 23:33:54
>>596
サイトによってもだいぶ率は変わりそう。
JSを切るのは別にFF+NoScriptだけの特権じゃないしね。

600:Name_Not_Found
10/06/08 23:46:54
なんかこのページの動作見てると段々イラッとしてくるな
最後のチェック見せるまで何秒待たせる気なんだ


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