+ JavaScript の質問用スレッド vol.66 +
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
ただ「動きません」「エラーです」は何も情報がないため嫌われる。
エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8)
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【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"」としないとページ移動しちゃうから。
【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中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
あーあ道場訓
道場訓(笑)
いま議論してしまいましょう。道場訓復活させたい?
その場合、「書くことが許される者」はどのように扱う?
恥ずかしいからいらない
それぐらい読めないやつは来る必要ないんじゃないかな
あの道場訓は世界遺産級だよ。復活熱烈キボン。
「書くことが許される者」は前のとおりでよい。
既に完璧なものに誰が手を加えられようか。
<form name="formImgList" id="imageList">
</form>
この中に
<div><label>
<input type="radio" name="imgGroup" value="google.gif" />
<img src="google.gif" />
</label></div>
をJavaScriptのinnerHTMLで挿入してから
alert(document.formImgList.imgGroup.length);
でBOX数を表示しようと思ったのですが、
undefinedになります。
どのように指定すれば良いのでしょうか?
BOX数の意味が分からん帰れ
>>14 質問をきちんと分かる日本語で説明できる者
いきなり帰れは冷たすぎるだろw
>>14とりあえずBOX数って何?
よそに投稿して、イタチガイとやめかれた者ですが、
col に id (max)を与えたテーブルのセル(数値)の値によって、
そのセルの背景色を変えようとしていますが、childNodes では
td の値をゲットすることは出来ないのでしょうか?
var i;
var hot =document.getElementById('max').childNodes;
var stra=hot.length;
for (var i=0;i<stra;i++){
if ( Number( stra ) > 0 ) {
stra[i].style.backgroundColor="#ffcccc";}
}
これではどうも td にアクセス出来ていないように思うのですが。
>>19 childNodes[0]とか番号つければいいんじゃないかな
>>19 マークアップが入れ子になってないだろアホ
>>19 stra[i].style〜、で数値を配列扱いしてる
どーでもえーが、for と if の内外が逆だ。
これはヒドイwwww
ホームページ制作王は、世界の権威であるCOMDEXが、
21世紀の世界標準として認定した唯一のアプリケーションである。
したがって、ホームページ制作王を用いずに出力されたものは全て非標準であり、
ホームページ制作王によってパブリッシュされたもののみが世界標準なのである。
ホームページ制作王なくして世界標準を騙ることは許されない。
私が決めたのではない。世界がそう決めたのである。
これは世界の意思なのである。
世界標準であるホームページ制作王を貶し、
今もなお非標準ソフトを生産・販売・使用する者に対し、強く警告する。
今や世界のWebは、ホームページ制作王によって構築されている。
にも関わらず、我が国では、ホームページ制作王の導入が全く進んでいない。
このままでは、我が国のWebは後退をつづけ、今後100年の敗北が決まるも遠くない。
ホームページ制作王が、COMDEXの認めた唯一の世界標準であるという事実を
重く受け止めよ! さもなくば日本のWebに未来はない!
広告宣伝料徴収、必至だなw
1行8000円として、14 * 8000 = 112,000円也
そんなに安いのか。ウチの紙媒体部門は毎月数千万出稿してんぞ。雑誌1ページ云百万とかの稟議上げてる。
・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します
[上記全てを承諾して書き込む]
29 :
26:2008/07/25(金) 11:36:18 ID:???
>>27 すまん。時価評価に訂正。
1行80万円として、14行 * 80万 = 1,120万円也
過去スレ分も追徴するとして、10回分にまけて
1,120万円*11回 = 1億2,320万円
と出た。よろしく。
2chでまれに見る良スレだからな。
text = "ああ<tag>うう</tag>ええ";
regEx = RegExp('<tag>(.*)</tag>', 'g');
text = text.match(regEx);
この場合、「<tag>うう</tag>」が返ってくるんだが、
「うう」のみを取得したいんだが方法はありませんか?
$1
>>31 while (matched = regEx.exec(text)) result.push(matched[1]); とか
>>31 RegExp.$1に期待した結果が入ってる。
36 :
33:2008/07/26(土) 05:39:40 ID:???
whileの条件で正規表現リテラル使うとIEが無限ループになるみたいです。ご注意。
while (m = /a([0-9])/g.exec('a1a2a3')) alert(matched);
個人的にひっそりとご注意しとけ初心者www
JavaScriptの後付仕様のアレに書いてあるだろ。
その一例がこれ。
>>35 >>32と
>>34は違うぞ。
>>34のレガシーはいつになったら新規に書く馬鹿が絶滅するのかねえ。
Gecko2で削除されるからね
>>37 たまにRegExp.$1って使うのだけど使うとまずいの?
var keyword = 'text';
var reg = new RegExp('(' + keyword + ')', 'g');
var pre = 'pre';
var post = 'post';
'text-text-text'.replace(reg, pre + '$1' + post);
ってやったりとか、これの最後の行を
'text-text-text'.replace(reg, pre + RegExp.$1 + post);
ってやったりとかしてた。
ホントはどうするのが正解なの?
>>41 読んでも何が悪いのか分からんから一月位したら忘れて$1使ってそうだな
互換性とシェア争い考えたら消滅するわけがないし
そうですか
自分ではRegexp#exec()やString#match()から配列受け取る方が
書きやすいし安心だけどね。
>>31 globalフラグつけてるってことは
複数の文字列を取得したいってことだと思うから
こうすればいいんじゃないかな><
text = "ああ<tag>うう</tag>ええ<tag>かか</tag>くく";
regEx = RegExp('<tag>(.*?)</tag>', 'g');
var list = [];
text.replace(regEx, function(_, x){ list.push(x) });
alert(list);
質問です。
外部HTMLを読み込んだ後、<head></head>間に<script〜>のコードを追加し
上書きみたいな形でiframeに表示させようと思っているのですが、
これはJavaScriptで可能でしょうか?
またはこんな処理をするJavaScriptは公開されていますでしょうか?
ずっと悩んでいてどこから手をつければよいのかわからないのでご教授のほどよろしくお願いします。
スクリプトとiframの関係が分からないんだけど。
>>47 アカシックレコードにアクセスした結果
iframeに外部htmlを読み込み、その外部htmlのheadの子要素としてscriptを追加する
という意味らしい
>>49 その通りでございます、翻訳ありがとうございます。
>>48 そうですか。どこかに読み込んだファイルを一時的に保存して、それを書き換える、というのも不可能でしょうか?
指定したアドレス先からソースをもってくるにはどうすればいいですか?
>>51 documentElement.outerHTML
54 :
Name_Not_Found:2008/07/27(日) 16:24:52 ID:u+rLpME1
document.body.innerHTMLで、html bodyを文字列として取得できますが、
ヘッダも含めて(<html>~</html>全部)を文字列として取得する方法はありますか?
55 :
54:2008/07/27(日) 16:33:44 ID:???
自己解決しました。
どのように解決したのかkwsk
alert('<html>'+document.documentElement.innerHTML+'</html')
とか?
それだとDOCTYPE宣言が取得できないのです...
alert(document.firstChild.publicId)
とか?
>Web開発者はInternet ExplorerやFirefoxはもちろん、WiiやiPod touchなども意識し、
>それぞれに最適化したコンテンツをリリースしている。
>だがPS3はまだまだ。最適化したいと思ってもらえるぐらいの存在感を打ち出していきたいという。
ならPS3くれよ。
PSPとPS3て同じエンジン?
PSPはNetFront
>>59 こうだ!
var dt = document.doctype;
alert("<!DOCTYPE " + dt.name + " \"" + dt.publicId + "\" \"" + dt.systemId + "\">")
XMLHttpRequestでlocation.href GETする方が楽だな
>>62 せめてNetFrontみたいにPC版も配布すればいいのにな
でもNetFrontのPC版って絵文字にすら対応してないし、もうちょっと何とかして欲しい。
それとも最新版では大分良くなってるかな?(うちのは古くて V1.01 V3.2だし)
JavaScript から CSS に記述されている a:link や a:visited にアクセスすることはできますか?
リンクの色と既読の色を設定したいんですが。
var ss = document.styleSheets[0];
if (ss.addRule) ss.addRule("a:visited", "color:hogehoge");
else if(ss.insertRule) ss.insertRule("a:visited {color:hogehige}", ss.cssRules.length);
else alert("ごめんなさい");
>>69 ありがとうございます、個別に設定できると嬉しいんですが…
動的に class を加えるなどしてみますね
71 :
Name_Not_Found:2008/07/30(水) 13:37:11 ID:M4eRatpC
FF3とIE7で正常動作していたプログラムがIE6でバグ吐いた
IE6しね
IE8正式版が出たら切ってもいいよね
どーゆーとこ? IE6わりとまともだけど
>>72 XPのサポートが切れるまではダメなんじゃないの
75 :
Name_Not_Found:2008/07/30(水) 16:27:24 ID:m718t68z
76 :
名無しさん@お腹いっぱい。:2008/07/30(水) 16:41:04 ID:5s0bDkLK
フォームのinput type="submit"をロールオーバーさせたいんだけど、やりかた分かる?
77 :
76:2008/07/30(水) 16:45:58 ID:5s0bDkLK
<input type="image" id="hoge" src="hoge.gif" onmouseover="this.src='hoge_hover.gif'" onmouseout="this.src='hoge.gif'" alt="送信" />
これ以外で。
>>75 スレ違いかどうかはコード書かないとわからないから、
呼び出し方とかエラーとか書いたらいいよ。
>>76 >>77のどこがダメなのかと、どうしたいのかがわからないと答えようがなくね?
79 :
Name_Not_Found:2008/07/30(水) 17:09:52 ID:M4eRatpC
JavaScriptで
[Example:18:hoge]テスト
という文字列から
Example
18
hoge
テスト
という文字に分解する方法はありませんか?
hogeA = '[Example:18:hoge]テスト '.split("[")[1].split(":");
hogeB = hogeA[2].split("]");
hogeC = new Array(hogeA[0],hogeA[1],hogeB[0],hogeB[1]);
これでhogeCに配列として"Example", "18", "hoge", "テスト "が入る
>>76 inputを使わずに<button type="submit">...</button>を使え。
そしたらその内側に入れるものは普通に差し替え可能だから。
82 :
Name_Not_Found:2008/07/30(水) 17:58:46 ID:m718t68z
75です。
mootoolsとはjavascriptのライブラリで、
外部のjsファイルを読み込んでスライドショ
ーなどのエフェクトを与えるみたいです。
で、まだ使い方もよくわからないのでサンプルを
アップして試しに使ってみたのですが全然動きません。
なにかエラーが出てるような感じでもないです。
83 :
76:2008/07/30(水) 18:03:06 ID:5s0bDkLK
>>78 input type="image"だとCGIとの関連性で都合が悪いので、type="submit"にしたいの。
>>81 <button type="submit"><img src="hoge.gif" name="hoge" id="hoge" onmouseover="this.src='hoge_hover.gif'" onmouseout="this.src='hoge.gif'" alt="送信" /></button>
これでおけ?
実際に試したいところだが今試せる環境にないもんで、たのんます。
自分で試せよw
どこまで丸投げすりゃ気が済むんだ
だが断る。
#hoge:hover
>>79-80 そんだけきれいなフォーマットなら正規表現使った方がよくね?
>>80 "[Example:18:hoge]".match(/\[([!-~]+):([!-~]+):([!-~]+)\]/g);
alert([RegExp.$1,RegExp.$2,RegExp.$3]);
ミスった。
"[Example:18:hoge]テスト".match(/\[([!-~]+):([!-~]+):([!-~]+)\](.*)/g);
alert([RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$4]);
>>79 その問題が"[", ":", "]"を区切り文字と考えることが可能なものなら
var a = "[Example:18:hoge]テスト".split(/[\[:\]]/)
でいい(この文字列の場合a[0]は空になるので.slice(1)したりして)
>>90 var a = "[Example:18:hoge]テスト".match(/\[([!-~]+):([!-~]+):([!-~]+)\](.*)/);
alert(a.slice(1));
いつ書き換えられてもおかしくないコンストラクタのプロパティを使うな。
gオプション付けてるのにこういう危険なことをする奴のセンスを疑う。
>>92 横からスマソ。
> var a = "[Example:18:hoge]テスト".match(/\[([!-~]+):([!-~]+):([!-~]+)\](.*)/);
RegExp.$?の問題に絡んで↑こいうときは↓にすべきってどっかで見たけど、これは問題ないの?
var a = /\[([!-~]+):([!-~]+):([!-~]+)\](.*)/.exec("[Example:18:hoge]テスト");
勉強中の身につき、意味がよくわからないまま既存のスクリプト書き換えたばっかなんですが、よかったらご教示くださいませ。
'[Example:18:hoge]テスト'.substring(1).replace(/[[:\]]/g, '\n');
>>93 RegExp#execに渡したものは文字列に変換されるから型に寛容っつー話じゃねーの?
JS1.6のジェネリックなString.matchと同じ。
仮に
>>95の想像通りなら、
>>93の「すべき」は条件に依るわな。
どこに思わぬ "undefined" が潜んでいるのかを知りたい場合もあるだろう。
97 :
Name_Not_Found:2008/07/31(木) 01:24:57 ID:ZTlu1cHf
web制作でjavascriptとphpならどちらが役立ちますか?
今はjavascriptからはじめてますが、、。
HTML-JavaScript-PHPの順で覚えたほうがいい
どちらが役立つかって言えばPHPかな
ただサーバーサイドの言語は流行り廃りがあるし
せっかく勉強したPHPが将来的に何の役にも立たなくなることはある
両方やる前提なら
>>98の言うようにJavaScriptからがいいと思う
このスレで聞けば、回答はおのずと・・・ww
>>97-100 それは勉強する人が「どんなことが主にやりたい」と思っている
かによると思うな。興味あることをやる方が上達するでしょ。
ありがとうございます。
javascriptから頑張ります。
webはやることが多くて大変ですね、、。
>>82 > アップして試しに使ってみたのですが全然動きません。
いや、だからここを実際に書いてみてくれと。
使い方が悪いから動いてないんだったら使い方見ないとわからんよ
>>103 ここは使い方の面倒を見るスレじゃないんで、帰ってもらった
方がいいと思うんだが。
JavaScriptのライブラリの使い方は作者に聞けば良いかと
onclick="return confirm('糞サイトに飛びますか?')"
糞サイトならいつもfalseにしとけ
マルチスレッドマダー?
110 :
Name_Not_Found:2008/08/01(金) 07:37:33 ID:iHIqBn1n
JavaScriptは最強言語です
炉梨流棒術(炉梨棍)
中国に数多あるという棒術の中でもその長い歴史で
一際異彩を放つものが唐代に流行した炉梨流棒術であろう。
己の肉体の棒のみで戦う姿は最早伝説といっても過言ではない。
しかしその修行は大変厳しく、修行者たちは妖しきものを除き
己の覇気を高めるという意味で「妖除覇覇(ようじょはぁはぁ)」の
掛け声を出して修行に励んだという。
しかし当然門下生には厳しい修行に負けて脱落者も出ており、
そういった者は近隣の村のトシバも行かない少女によからぬ行為を
行う者も多く、当時社会的な問題になった。
民衆はそういったものを「丙奴(ペド・甲乙丙でいえば丙のような奴)」
と呼んで忌み嫌われたという。
現代でも少女との性行為をほのめかすような奴に対して
「氏ね、ペド野郎」という事があるが、これは無論当時の名残である。
民明書房刊 『萌える!中国武術』より抜粋
113 :
Name_Not_Found:2008/08/01(金) 15:27:46 ID:xgFSNqZ8
テキストボックスに入力した遺伝子配列に対して
perlで言うところの
$str =~ tr/ATGCN/TACGN/;
をjavascriptで書きたいと思うんですがどうしたらいいでしょうか?
一文字ずつ配列に入れて置き換えているのですがもっといい方法はないでしょうか?
115 :
113:2008/08/01(金) 17:12:07 ID:???
よろしくお願いします。
<script type="text/javascript" src="
http://xxx.com/sub.js"></script>
<!-- ↑は「document.write('<div id="xyz">1.aaa\n2.bbb\n3.ccc<\/div>');」を吐く -->
<script type="text/javascript">
<!--
//書き換えスクリプト
document.getElementById('xyz').innerHTML = document.getElementById('xyz').innerHTML.replace(/\n/g, '<br />');
// -->
</script>
HTML上に↑のように書くと、sub.jsの展開が間に合わないらしく、狙ったような動作をしてくれません。
(外部スクリプト呼び出し行と、書き換えスクリプトの間をある程度空けるとちゃんと動作します)
sub.jsに手を加えず、且つ、bodyタグのonloadを使わず(ページ全体の読み込み終了まで待たず)に、
sub.jsが読み込み終わったのを判別して書き換えスクリプトを狙い通りに動作させる方法がないでしょうか?
普通は動くと思うけど。
ちなみにそのコードはIEだと/\n/gのマッチ自体が失敗してるから何も起こらない。
>>116 ブラウザはIE?
> HTML上に↑のように書くと、sub.jsの展開が間に合わないらしく、
document.getElementById('xyz')が取得できる (エラーにならない) なら、
sub.jsは実行済みじゃね? \nは先に空白に変換して書き出す仕様かも?
> (外部スクリプト呼び出し行と、書き換えスクリプトの間をある程度空けるとちゃんと動作します)
手元のIE6では再現できず。
>>117-118 こんな時間に早いレス、ありがとうございます。
しかも、ここに載せるに当たって便宜上簡略化したところでちゃんと動かないみたいですみませんでした。
Firefox3で動作チェックしていました。が、IEでもちゃんと動くようにしたいです。
もうちょっと正確なスクリプトは↓こんな感じです。
<script type="text/javascript" src="
http://xxx.com/sub.js"></script>
<!-- ↑は「document.write('<div id="xyz"><ul><li>1.aaa<br />2.bbb<br />3.ccc...<br />10.jjj<\/li><\/ul><\/div>');」を吐く -->
<script type="text/javascript">
<!--
//書き換えスクリプト
if (document.getElementById('xyz')) {
document.getElementById('xyz').innerHTML = document.getElementById('xyz').innerHTML.replace(/<br \/>/g, '<\/li><li>');
}
// -->
</script>
あらためてうちのWinXP SP3+IE7で動作チェックをしてみたら、
なんどか再読込するとちゃんと変換できるときと変換できないときがあります。
(もうちょっと変換スクリプトを後ろに下げるとうまくいくのか?)
120 :
119:2008/08/02(土) 04:06:58 ID:???
もうちょっと詳しく書くと、
sub.jsはランキングを表示するブログパーツです。
で、デザインを調整したいがために、改行ではなく<li>で分割したいということです。
デザイン的な問題だけなので、最悪エラーが出なければいいというつもりでif文もかましています。
<script type="text/javascript">
window.onload = function(){
try{
document.getElementById('xyz').innerHTML = document.getElementById('xyz').innerHTML.replace(/<br \/>/g, '<\/li><li>');
}catch(e){
void(0);
}
}
</script>
これで動くかな
>>119 正確どころか全然違うじゃん。
IE6 + <!DOCTYPE html PUBLIC "W3C//DTD HTML 4.01//EN">では
...replace(/<br(?:\s*\/)?>/ig, '<\/li><li>'); で置換されたが仕様は知らん。
再読み込みとか後ろに下げるとかの話は再現しない。
ただ単にDOMにアクセスできてないだけじゃないの
質問します。
良く背景に影を付けてるページを見かけますがCSSよりJavaScriptの方が簡単だと聞きました。
ですのでその背景に影を付ける方法をご教授くださいませ。
よろしくお願いします。
>>119 <br \/>そりゃこれじゃマッチせんわな。
alert( document.getElementById('xyz').innerHTML );
>>125 たとえばどんなの?
あと、どっちにしろCSSの知識は必須になるからね。
128 :
119:2008/08/02(土) 12:19:19 ID:???
いろいろとすみません。
とりあえず、
>>121のスクリプト+
>>122を参考に正規表現を/<br(?:\s*\/)?>/igにすることによって、
買い換えスクリプトを外部スクリプト直下に置いてもFireFox3、IE7ともに期待通りの変換ができるようになりました。
ほんとはonloadによる全体読み込み後ではなく、可能な限り早めに処理したかったんですが、
それ以外は望み通りになったので、まずは
>>121を理解できるように勉強してみます。
129 :
125:2008/08/02(土) 12:29:13 ID:???
130 :
Name_Not_Found:2008/08/02(土) 12:35:33 ID:8DFQSdLW
質問です
<a>link</a>というようなリンクをクリックして、このリンク部分からリンク機能を
なくしたいと思っています。(クリック済みだからもうクリックできないよ、という意味で)
<a href="javascript:delLink(var)">link</a>…というような感じだろうと思うけど、
肝心の function delLink(){} はどう書いたらいいんでしょう?
よろしくお願いします
131 :
130:2008/08/02(土) 12:46:16 ID:8DFQSdLW
説明が変だったので補足します
リンク機能をなくす っていうのは、<a></a>タグを削除すると
解釈してくれてかまいません。削除でなくて別の方法があればそれも教えて欲しいのですが…
よろしくお願いします
onclick="return false;"
>>128 (function(req) {
if (!req) return;
req.open('GET', '
http://example.com/sub.js', false);
req.send();
eval(req.responseText.replace(/<(\/)?ul>/g, '<$1ol>').replace(/<br\s*\/?>\s*(?:\d+\.)?/gi, '<\/li><li>'));
})((function() { try {
return new XMLHttpRequest() } catch(e) { try {
return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try {
return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { } } }
})());
send直後にresponseText取得とな?
135 :
134:2008/08/02(土) 13:22:19 ID:???
あ、同期になってるからいいのかスマソ orz
アクセスする度に画像が変わってさらにクリックすると画像が変わるにはどうすれば良いですか?
ランダム表示なら
msg[0] = '<img src="画像">';
msg[1] = '<img src="画像2">';
msg[2] = '<img src="画像3">';
で出来ると思うんですが
137 :
136:2008/08/02(土) 13:43:19 ID:fLBw4h25
sageてました
srcを変更するという概念は無いのかね
139 :
Name_Not_Found:2008/08/02(土) 14:13:35 ID:tsM0Qffm
そのイベントがセットされているかどうかを知るにはどのようにしたらよいのでしょうか?
<a href="" onclick="alert(1)">
このようなのなら、getElementBy**かなんかで取ってきて if(***.onclick)
という風に有るか無いかが分かるのですが、
***.attachEvent や ***.addEventListener で付けたイベントが上記のような
方法では分かりません。
そのイベントになにか入っているかどうかを知るにはどのようにしたらよいのでしょうか?
prototype.jsに関しての質問とかはどこのスレが適当でしょうか?
ここでいいよ
>>139 自然な形で知る方法はないので自分で管理できる分を管理しておいて
そこから調べるしか…
>>129 簡単だからとか難しいからとかじゃなくて見た目に関することだから
CSSなり画像なりで解決するのが本道じゃないかな
>>136 こなかじ?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><script type="text/javascript">
var imagelist = ["1.jpg", "2.jpg", "3.jpg"];
window.onload = function(){
var img = document.getElementById("random-img");
var i = Math.floor(Math.random() * imagelist.length);
img.src = imagelist[i];
img.onclick = function(){
i = (i + 1) % imagelist.length;
img.src = imagelist[i];
}
};
</script><title>
>>136</title></head><body>
<p><img id="random-img" src="" alt=""></p>
<noscript><p><img src="1.jpg" alt=""></p></noscript>
</body></html>
以下のツールと同等または、改良したツールを作りたいと考えています。
ttp://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx 上記ツールの欠点は、
例えば、expandoなプロパティは検知してくれますが、attachEventで付与したイベントは検知出来ません。
それを検知可能にしたいと思っています。
上記ツールのソースコードは見当たりませんでした。
そこで、Dripのソースコードを改良することで実現したいと考えています。
Dripのソースコードを見ると、敷居が高いと感じましたが、
res\drip.jsやJSHook.cppを見ているうちにおおまかには分かるようになりました。
しかし、自分一人ではつらい作業だと感じています。
このようなツールを作りたいと考えている方がほかにいましたら、
一緒に検討、解析、作成をしませんか?(ATL設計経験者が望ましいです)
>>140 進研模試でいうとfjがおよそ45、民放地上波は約40、
ニュース速報+は35程度を対象にしています。
Waar heb je het over?
148 :
Name_Not_Found:2008/08/04(月) 11:43:39 ID:41q/DyGk
input要素にname属性が追加されません。環境はSleipnir2.8です。
var element = document.createElement("input");
element.setAttribute("name", "date");
element.setAttribute("value","0804");
document.body.appendChild(element);
alert(document.body.innerHTML);//<INPUT value=0804>
アドバイスよろしくお願いします。
149 :
148:2008/08/04(月) 11:50:58 ID:41q/DyGk
すみません、自己解決しました。
どうやら環境が原因だったみたいで、IEにはname属性に関する不具合が
あるみたいです。
普段setAttributeとgetAttribute使わずにドット演算子使うんだけど、
setAttributeとgetAttributeを使わなくちゃダメなときってあるの?
ドット演算子がたまたま上手くいってるだけ?
好き好きでほ
>>148-151 どっちかというとsetAttribute()の方がトラブルになりやすい。
テンプレのFAQその2にもあるでしょ。
洩れは自分ではsetAttributeは絶対に使わない。
>>150 IEのUserDataなら、表面的には、HTMLの要素オブジェクトから辿る形でsetAttribute()を使う。
154 :
150:2008/08/04(月) 13:47:44 ID:???
>>151-153 なるほど。ありがとう。
自分では使わないけど、このスレ内ではよく見たし、
フレームワークでも使われてるのでどういう意図があるのか知りたかった。
>>153のことは聞くまで知らなかったし。
適材適所
融通無碍
JSONP API などで、?callback=func1 として
<script>
function func1() {
alert(document.cookie);
}
</script>
<script src="
http://example.com/jsonp-api?callback=func1"></script>
のような関数を呼び出すように作った場合、
document.cookie で返されるのは example.com のクッキーですか?それとも呼び出し元のクッキー?
>>157 実際にやってみたら良いと思うけど、
外部ファイルがHTMLファイルの中に取り込まれて、
HTMLファイルに書かれているのと同じ状態になるから
HTMLファイルのドメインになると思うよ
>>159 確かにやってみればイッパツですね…すんません
ありがとうございます
XP sp2適用でIE7でレジストリ弄らないで、ADODB.Streamの
インスタンスは作れたんですが、『このコンピュータの安全性の設定により
他のドメインのデータソースへのアクセスは禁止されています。』
と出るのです。それでセキュリティ設定の『ドメイン間でのデータソースのアクセス』を
有効にしてみたんですが、やはり同様のメッセージが出ます。
テンプラは見ましたが、やはりローカルリソースへのアクセスは絶対無理ですか?
いくらブラウザのセキュリティ設定を下げても。
FileSystemObjectは書込もセキュリティ下げれば可能なんですが・・。
どうにかUTF-8でローカルに保存したいんですよね。。
特定の画像を、ウェブページの右下隅に表示させたいです。
スクロールしないよう背景画像として固定したいです。
これを、ブラウザの種類を判別して、
各ブラウザごとの指定方法で、
間違いなく実現するにはどうすればいいんでしょうか。
>>161 Webで使うわけじゃないんならHTAにすれば?
>>162 img要素にスタイルシートでposition:absoluteで絶対配置か、position:relativeで相対配置
なりして、上にDIV置いてそこに本文とかで、z-order弄れば行けるのでは。
思いつきで書いてるだけで、試してませんが・・・。
>>163 webなのです。
客は無茶な要望をしてきて本当に困る・・。
>>164 ローカルでWebサーバを動かしてブラウザにはそれと通信
させるのが一番いいんじゃないだろうか。サーバ上のCGI
ならなんでもできるから。
>>161 データはwebサーバ側に保存して、
クライアント側に保存する時にはそれをダウンロードするとか
でごまかしちゃだめなん
>>166 すごいなオマエwww法律舐めてるだろwww勝手にやったら有罪になるぞw
>>164 vpnくらいあんだろ。ipsecだ。
あるいは、サーバの仮想化な。ビューだけを送りつける。
あるいは、客向きじゃないが、sshでポートフォーワーディングな。
つまり、/hp板や/php板ではろくな回答を得られない、高度な専門性を要する分野だ。移動しろ。
というか、個人で受けてんのか、会社が受けたのか知らないが、早目に外注しろ。最高数億くらいの見積もりは覚悟しとけよ。
扱うデータにも依るが、相談する板も分かってないようだと、冗談抜きで、とんでもないことになるぞ。
すげー、かっこいー
169 :
Name_Not_Found:2008/08/05(火) 09:12:28 ID:nsmtviOk
javascriptでブラウザのページ履歴一覧って取得できませんでしたっけ?
やーめーてーーーー
ど、ど、どうした? 痴漢はどいつだ!?
>>169 できたらさぞかし面白いことだろうよ。釣りページ作って訪れた
奴の履歴落としまくってエロサイト見てる奴はばらすぞと脅かせば
さぞかしもうかるだろうな。だからぜったいにできない。
173 :
169:2008/08/05(火) 12:21:07 ID:???
>>172 そかー( ;´Д`)さんくす
historyオブジェクトで履歴ページの数だけ参照できても使う機会ないよね。。
>>167 Goolge Docsは、
>>166みたいな方法使っていないのか?
Download file as ってメニューあるぞ!
法律違反のソースを示せ!!
勝手にセーブするのはマズイが、ユーザーにダウンロードさせるなら全然モーマンタイだよなあ。
まあそれでクライアントが納得しないなら、そんなアホなクライアントは切るしか無いだろ。
176 :
161:2008/08/05(火) 18:13:39 ID:???
UTF-8は絶対無理!とかけあったところ、じゃぁUTF-16でいいよ。
とのことですので、解決です。ありがとうございました。
深い意味はなかったんだろうなぁ・・・。
>>167 全然わかりません。サラっとググったところ、vpn・・暗号化のプロトコル?
仮想化・・VMware的な?sshポートフォ・・tcpのアプリで実装?
まぁ、私はここで合っているかと・・w
>>169 履歴の一覧はできないけど、あるURLに訪れたことがあるかどうかなら調べられる
調べるURLをたくさん用意すれば用は足りるかもしれないね
computedStyleかな
document.defaultView.getComputedStyle(..., ...).getPropertyValue(...)
これ、本当に滑稽だなwww
この仕様を作った当時、誰も彼もが何かに取り憑かれていたとしか思えんなww
そんな時代に、IE5でcurrentStyleをさらりと実装したマイクロソフトの俗なバランス感覚は秀逸だわwww
>>179 まあgetPropertyValue()はCSS2Propertiesインタフェース経由でいいけど
それにしてもDOM2 Style/CSSは全体的にあんまりよくないよね…
IEはviewという概念自体が存在しないふざけたブラウザだから
他と同等の機能を実装する際にcurrentStyleなんていう苦肉の策に出たんだけどね
それが事実かわからないけどcurrentStyleの方が使いやすいので
CSSOMで採用されそうなのはうれしい
>>181 はあ?まずcurrentStyleありきだ。まあ、前世紀には日本に俺以外には1人しかいなかったからな、網羅的に理解してるやつが。だから知らなくて当たり前なんだから、知ったかぶんな、少なくとも俺が見ているスレでは。
こんばんは。アホ外人サンはお元気ですか?
勘違い
チンケなプライド
固い頭
自己紹介乙
JavaScriptで3dゲームを作りたいんです。
shadeで作ったオブジェクトを読み込みたいんですが、
やり方がわかりません><
どなたかご指導ください。。。
>>188 JavaScriptで直接貼れるのは画像だけだけど。あとは
なんかのプラグインだろうけどそれはプラグインの方の話で。
できないんですか・・・。
回答ありがとうございました。
>>188 Canvas使えば重いがFirefoxで出来る
言語が何であろうと君にできるとは思えない
なんだとぉ
var orz=3
/(-v-)/gi
for ( ; ; )
クライアント側のブラウザでcanvasに描画した内容を
一旦サーバーに描画内容を送ってサーバー側で画像を生成すしダウンロードさせる以外に
クライアント側に保存する方法はありませんか?
>>198 それがいやなんならFLASHと連携して保存するのが
データ量的にはいいんじゃないかなあ
>>199 どうもありがとう御座います
FLASHを使う方法も何個かあるみたいですね
検討してみます
JavaScriptを使って、
F8ボタンが押されたらアラートを表示するといったことは可能でしょうか?
document.body.onkeydown = function () { }
とかでやろーと思えばできそうだがキー関係はクロスブラウザが面倒だから
適当な用途なら既存のライブラリを探した方が良い
document.onkeydown = function kdown(ev){
if(navigator.appName.charAt(0) == "M"){
ev = event;
}
if(ev.keyCode == undefined){
keynum = ev.which;
}else{
keynum = ev.keyCode;
}
if(keynum==119){
alert("F8キーが押されました");
}
}
この程度しか思いつかなかった
204 :
Name_Not_Found:2008/08/09(土) 14:40:46 ID:GhcDtiVy
<li>の子要素全てに要素を追加したいんですが
一番最後だけに適応されてしまします・・・
解決策をお願いします。
<script type="text/javascript">
window.onload=function(){
var fom= document.getElementById("fofo");
var tex = fom.getElementsByTagName("input");
var lli = fom.getElementsByTagName("li");
var ele=document.createElement("p");
var te = document.createTextNode("テキスト");
ele.appendChild(te);
lli[0].appendChild(ele);
lli[1].appendChild(ele);
lli[2].appendChild(ele);
}
</script>
<body>
<form>
<ul id="fofo">
<li><input type="text"></li>
<li><input type="text"></li>
<li><input type="text"></li>
</ul>
</form>
</body>
>>204 普通にappendChild()しても追加したい要素が暗黙にコピーされるわけじゃないから
2つ以上のところに同じような要素とかを追加したい場合はcloneNode()を使うといいよ
lli[0].appendChild(ele.cloneNode(true));
…
206 :
204:2008/08/09(土) 15:02:56 ID:???
>>205 無事解決しました。
本当にありがとうございます!
<textarea></textarea>内に入力されたXMLから
タグ名や要素内容を取得したいと考えているのですが、
ヒントになるような関数は無いでしょうか?
208 :
207:2008/08/09(土) 18:02:50 ID:sGXY6Rx2
間違って下げてしまいました
>>207 IEなら
new ActiveXObject("Msxml2.DOMDocument.6.0").loadXML(textarea内の文字列)とか
Firefox, Opera, Safariなら
new DOMParser().parseFromString("application/xml", textarea内の文字列)とか
Firefoxのアドオンを作ろうと思ってるんですが
htmlドキュメント読み込みが完了したのちにそのhtmlドキュメントに対して加工を行うような場合は
グリースモンキー用のスクリプトとして書いた方が良いのでしょうか?
212 :
207:2008/08/09(土) 18:20:28 ID:sGXY6Rx2
>>209,210
なるほど。というかDOMはテキストデータでも使えたんですね。
参考にさせていただきます
特定の要素の子要素を抽出といったことは可能ですか?
たとえばaddress要素の中にあるa要素を抽出するなどです
可能です
>>211 Firefoxアドオンつくったことないから聞き流してくれて構わないけど
つくるものが小規模なものならGreasemonkeyスクリプトでいいと思う
設定画面を提供したいとかなってくるとアドオンにした方がいいんじゃないかな
>>213 addressのchildNodes内の全ノードの要素名調べて"A"のものだけ拾うとか
DOM XPath使えるなら
document.evaluate(
"a", address要素, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
とかかな
addressの子要素がaしかないとか、あってもその他の要素がaを子孫に持たないとかいった
限定された状況ならaddress要素.getElementsByTagName("a")でもアリ
ありがとうございます
Xpath使えるなら//adrress//aの方がいいんじゃないの
>>217 それaddressの子のaだけじゃなくて子孫のaも取っちゃうよ?
Firefoxで右クリック(onContextmenu)を押した時、左クリック(onClickまたはonMouseDown)の処理も有効になってしまいます。
一つのオブジェクトを左クリックで加算、右クリックで減算したいのですが、
何か良い方法ないでしょうか?
右クリックで倍減らせば?
221 :
207:2008/08/09(土) 19:48:56 ID:sGXY6Rx2
>>218 >address要素の中にあるa要素を抽出する
とあるのでおそらく子要素限定でなく子孫要素が欲しいのだとエスパーした
子限定なら//address/aで
>>222 あー。そうなのかな
あと自分は親となる1つの要素をすでに取得できてる状態で、その中から
ある型の子要素を取るにはどうするかって質問だと思ってたけど
特定の要素ってそういう意味じゃなくて特定の型の要素ってことか…
>>220,221
すみませんonMouseDownイベントのみでの挙動でしたorz..
onClickでFirefoxとIE両方で解決しました。
<input id="result" value="0">
<input type="button" value="+/-" onClick="up()" onContextmenu="down();return false;">
<script type="text/javascript"><!--
var val=0;
function up () { val++; output(val); }
function down () { val--; output(val); }
function output (val) { document.getElementById('result').value = val; }
--></script>
225 :
207:2008/08/09(土) 21:04:48 ID:sGXY6Rx2
またくだらない質問になってしまうかもしれませんが、
text = "<ele>要素1</ele><hoka>その他1</hoka><ele>要素2</ele><hoka>その他2</hoka>";
alert(text);
dat = new DOMParser().parseFromString(text, "text/xml");
alert(dat.getElementsByTagName('hoka').length);
ざっとこんなソースを書いてみたのですが、二つ目のalertの数字が0しか返ってこないのですが、
書き方が間違っているのでしょうか?
>>225 ルートの要素がないからパースエラーになってるよ
> text = "<ele>要素1</ele><hoka>その他1</hoka><ele>要素2</ele><hoka>その他2</hoka>";
text = "<foo><ele>要素1</ele><hoka>その他1</hoka><ele>要素2</ele><hoka>その他2</hoka></foo>";
227 :
207:2008/08/09(土) 21:19:04 ID:???
>>226 なるほど、そうでしたか。
ミスしてたところがやっと理解出来ました。ありがとうございます。
228 :
Name_Not_Found:2008/08/09(土) 21:41:56 ID:Z1AHzGF7
JavaScript が無効になっているためプレイヤーを表示できませんとでるのですがどうしたら
>>201の件、ありがとうございました。
もうひとつ質問なのですが、たとえばF8キーを2回連続で押したら、といったこともできるんでしょうか?
特に必要ではないのですが、参考までに聞いておきたいのです。
よろしくお願いします。
231 :
Name_Not_Found:2008/08/09(土) 22:23:58 ID:m5WllpiC
javascript対応のエディターを教えてください。
日本語化されていて、コード補完機能付きのものがいいです。
Visual Web Developer 2008 Express Editionじゃね
233 :
Name_Not_Found:2008/08/09(土) 22:42:20 ID:omKaKNev
はいマルチー
236 :
233:2008/08/09(土) 23:09:23 ID:omKaKNev
>>233 可能なんですかぁ
是非方法を教えて下さい
237 :
233:2008/08/09(土) 23:11:46 ID:omKaKNev
238 :
233:2008/08/09(土) 23:18:02 ID:omKaKNev
次
てめーが仕切んなカス
そういうあなたは、ボケ?
相変わらず民度低いスレだな
民度(笑)
while文の中のif-elseはなぜできないのですか?
while(@){ A }
Aのところなら普通にif文使えてるけどな。
>>246 その@の発想はなかった。
が3項演算子で代用すりゃ@でも同じようなことはできるな。
>>246-247 while(function(){ ... if ... }()) { ... }
とかすれば条件部分でもif-elseが書けるんでは。
式と文
<h2>見出し</h2>
<h2><span id="hoge">見出し</span></h2>
getElementsByTagNameとtextContentを使って
「見出し」という文字列と、h2に含まれるテキストが一致するかを判断しようとしているんですが
2行目のように、spanなどの何らかの要素が入っている場合だと一致したことになってくれません。
こういう場合は、どのようにすればテキストだけを見て一致と判断してくれるのでしょうか?
よろしくお願いします。
>>250 textContentは子孫のテキストを連結したものを返すから
>>250の1番目のh2も2番目のh2も普通は一致すると思うよ
できなかったなら何らかの要素が入ってるから、じゃなくて
<h2>
<span id="hoge">見出し</span>
</h2>
みたいにやってて空白文字が入ってるからじゃないかな?
そういう場合は/^\s*見出し\s*$/.test(h2要素.textContent)とか
やった方がいいかも
>>250 要素の内側ノードを全部たどってテキストノードの文字列
だけ抽出すればいいんではないの。
>>252 それを手軽に高速に間違いなくやってくれるのがtextContentのはずだろ。見過ごせないほど酷いバグでも見つけたのか?w
>>251-253 根本的にマッチングの方法が間違っている気がするので、とにかく調べて色々試してきます。
ありがとうございます。
文字コードとかじゃね?
もう見てないかもしれないが
256 :
250:2008/08/11(月) 03:16:59 ID:D4TpjafA
ダメでした…。
最初書き込んだ時は「〜.textContent=="見出し"」として一致するか見てたんですが(まだJavascriptを触って3日目なので勘弁してください…)
これじゃさすがにダメな気がしまして、今はstr.match(/見出し/)としてマッチするかを見ているんですが(この際完全一致じゃなくてもいいので)、
どうにも成功しません。(str = document.getElementsByTagName("h2")[0].textContent)
htmlファイルに直接javascriptを書き込んだ場合は一致したと判断されるのですが
GreaseMonkeyのスクリプトとして使ってみると一致しないという状況です。
OSはVista,Firefox3.0.1という環境で、jsファイルはShift_JISで作っております。
どなたか原因の方を推測していただいて、ぜひ教えてください…。よろしくお願いします。
257 :
250:2008/08/11(月) 03:19:41 ID:D4TpjafA
なお、そもそもスクリプトが動いてないんじゃないかと思われるかもしれませんが、
matchの条件をアルファベット(たとえばmidashi)に直すとGreaseMonkeyのスクリプトでも一致したとみなされるため、
その点での心配はありません。日本語だけがダメなようです。
>>257 よく読んでないけど、こんなやり方もありますよ。
var word = document.evaluate('//*[text()="ニュース"]', document, null, 7, null);
alert(word.snapshotLength);
これをgoogleのトップで実行すると"ニュース"を2個検出する。
javascriptの開発にはfirebugが便利ですよ。
保存するときの文字コードはUTF-8NかUTF-8がいいのではないでしょうか。
UTF-8にはエライ目にあっている。Shift_JISが世界共通にならない
ものだろうか。
アホか
UTF-8N最強
UTF-8だとPHPとセッション関連で・・・
1行目だけの問題だろ
どっちでもいいよ
どっちでもいいのか?w
PHPなら、もうHTTPヘッダ出力しちゃだめだよになるはずだし、
うぇぶでざいなどもからは、隙間があくだのなんだのとくっだらねえ文句がくるだろうし、
ろくなことないんだが、どうやってうまく処理してんだ?w
まさに、今日、同じところに嵌まっていた。
とりあえず、escape(hoge.textContent)だと、%uで2バイト毎にエンコードされるのに、
プログラムコード中の文字列の場合、(例えばescape("ほげほげ") )だと、%で1バイト毎にエンコードされてしまってた。
なんか、内部的に違うんだろう、きっと。
ということで、漏れはヘタレなので、%uでエンコードされた文字列と比較することにしたけど。
266 :
265:2008/08/11(月) 23:27:12 ID:???
ひょっとして、DOMならUTF-8になって、
コード中の文字列はHTMLページのエンコードに従って、
Shift_JISの解釈になってるのかね?
Greasemonkeyで使うときは、HTMLページのエンコードは自分では選べないし、注意が必要だな…。
SCRIPT要素にCHARSET属性を明示しろよアホ。
>>267 Greasemonkeyだから、SCRIPT要素は関係ないと思うのだけど…。
その後、ネットを見ていたら、Greasemonkeyで使う、*.user.jsをUTF-8で保存すれば、いいだけっぽいな…。
後日、試そう。
269 :
Name_Not_Found:2008/08/12(火) 05:27:14 ID:83I6s3bG
>>258-259 ありがとうございます。
XPathというやつですね。何とか解決できそうです。
270 :
Name_Not_Found:2008/08/12(火) 05:28:09 ID:83I6s3bG
>>265 いいヒントになりました。ありがとうございます。
funca(x)に相当するJavaScriptは何でしょうか。
>>268 日本語ベタに書かずちゃんとunicodeにしてる?
JSは皆さんどう読んでいますか?同僚は「ジス、ジス」っていうんで
すが、ジスだとJISでなければいけないと思います。「ジェーエス」って
いいづらいですよね。
普通にJSでもジャバスクリプトって読んでる
275 :
273:2008/08/12(火) 12:40:04 ID:???
ご返答ありがとうございます。
ホントですか?信じられません。
信じられないなら聞かなきゃいいのに
>>274に同じ
277 :
Name_Not_Found:2008/08/12(火) 14:47:08 ID:TwK0ve6v
IE7(Vista)から?別ウィンドウに対する制限が厳しくなったようで、下記のような現象にあって困っています。
回避方法をご存知の方がいましたら教えていただけないでしょうか?
子ウィンドウの[OK]ボタンクリックで親ウィンドウからExcelデータをダウンロードする機能です。
・親ウィンドウから子ウィンドウを開く。
・子ウィンドウで条件を選択して[OK]ボタンを押す。
[OK]ボタンのonclickで親ウィンドウのフォームをsubmitし、子ウィンドウを閉じる。
=>IE6(XP)だとそのままファイルの実行・保存ダイアログが表示されますが、IE7(Vista)だとダウンロード警告バーが表示されてしまいます。
親ウィンドウではなく子ウィンドウ内のフォームをsubmitした場合は、IE7でも警告バーは表示されず、そのままダイアログが表示されます。
子ウィンドウを自動的に閉じられれば、子ウィンドウからsubmitでもかまわないのですが、それもできない(submit前に閉じてしまう)ので困っています。
>>277 子ウィンドウなんて使わないのがよろし。
279 :
277:2008/08/12(火) 16:17:05 ID:TwK0ve6v
>>278 画面仕様を変えられないので・・・
ユーザーにブラウザの設定を変更させるというのも無しです。
質問します。
フォトアルバムを順次にサムネイルよりクリックにて表示させたいと思います。
そこでライトボックスが良いのではないかと思い、「Lightbox JS v2.04」をDownloadして、
いくつか参考サイトで導入を試みましたが上手く動きません。
「ページでエラーが発生しました」となってしまいます。
ローカルでもアップ後でも上手くいきませんでしたが、もしかしてサーバーによっては
使えないなどもあるのでしょうか?
よろしくお願いします。
>>280 lightbox は特別なことは何もしなくてもどこでも動くよ。
余計なことしてない?
>>279 セキュリティでそうなっているということは、回避方法なんてまず無いと思って然るべき
もしあったらそれはセキュリティホールと呼ばれるだろう
画面仕様を変えられないというのがどのレベルの話なのか分からんのだが、
「警告は出ますが、大丈夫です」なんて注釈付けてたら信用を失うよ
悪いことは言わないから、その部分だけでも仕様変えた方が良いよ
ここ、セキュリティって言葉に過剰反応しやすいけど、
よーく質問者・クライアントのやりたいことを聞いてみると、
結構、セキュリティに引っ掛かる条件下でやりたいことではないことが多いよ。
284 :
280:2008/08/12(火) 22:45:30 ID:???
>>281 いや〜参りました・・・あれからずっとやっておりますが未だ解決できません
余計なことしてるのは鉄板なのでしょうが、その余計なことが分かりませんです
Downloadしたindex.htmlはそのまま動くのできっと私のheadの記述がおかしいのかもです
もしかしてJavaScript同士は干渉しあいますか?
GoogleAnalysisをheadに入れてるから駄目なのでしょうか?
ちょっと外して試してみたら^;
286 :
280:2008/08/12(火) 23:05:21 ID:???
>>285 そうですよね、テンパッててその発想がありませんでした
外してみたものの変わりなく、クリックするとページエラーになってしまいます
カスみてえな事gdgd言ってねえでできない状態のhtml晒せよ
ほんの数人の例外を除いて、北米でJSやってるような外人は全員アホ、日本で言えばIT土方。
仕様書読めねえから分かりやすく書き直せ、くらいの開き直りで生きている図々しい糞野郎ばかりだ。
そんなボンクラ連中が勢いで書いたライブラリを、すとりくとな(X)HTMLに埋め込んだ時、すんなりまともに動いた験しがない。
具体例が無いんじゃ反応のしようが無いよ、出直してきな
はいはいすとりくとすとりくと
292 :
280:2008/08/13(水) 09:33:04 ID:???
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"><!-- InstanceBegin template="/Templates/base.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="content-language" content="ja" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<!-- InstanceBeginEditable name="desc" -->
<meta name="description" content="このページはサンプルを掲載しているページです。" />
<meta name="keywords" content="サンプル,サンプル,サンプル,サンプル,サンプル,サンプル" />
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="doctitle" -->
<title>サンプル</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="lightbox" ここから-->
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>
<!-- InstanceEndEditable ここまで-->
<link href="../css/base.css" rel="stylesheet" type="text/css" media="screen,tv,projection" />
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print" />
<link href="../favicon.ico" rel="shortcut icon" type="image/x-icon" />
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<!-- InstanceParam name="id" type="text" value="member" -->
<!-- InstanceParam name="pageTop" type="boolean" value="true" -->
<!--Google Analysis ここから-->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "
https://ssl." : "
http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-hogehoge-1");
pageTracker._setLocalRemoteServerMode();
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!--Google Analysis ここまで-->
</head>
295 :
280:2008/08/13(水) 09:36:53 ID:???
<body id="album">
<div id="wrapper">
<div id="main">
<!-- InstanceBeginEditable name="mainArea" -->
<a href="images/image-1.jpg" rel="lightbox">
<img src="images/thumb-1.jpg" width="100" height="40" alt="Megan" border="0" /></a>
<!-- InstanceEndEditable -->
<!--end div#main-->
</div>
<!--end div#wrapper-->
</div>
</body>
<!-- InstanceEnd --></html>
出来ないのを再現する最小のhtmlを貼れよw
まあそこまで考えられる奴なら自己解決できそうだが
>>296 で解答は?w
偉そうな割には口先だけでレベル低そうだなw
まあ俺もわかんないから同類だがな
299 :
280:2008/08/14(木) 09:30:02 ID:???
>>297 できました!ありがとうございます。
いや凄い、貴方凄いっすわ、ググっても参考サイト出てこないなか貴方のおかげで一発解決。
何故scriptaculousの読み込みが上手くいってないのか調べたくググってみても参考サイトが
見つけられない間抜けさ・・・ですがFirefoxにFirebugインストールはやってみます。
でも他の人はデフォでscriptaculousの読み込みが上手くいってるんですかね?
とにかく本当にありがとうございました。
Lightbox JS v2.04 scriptaculous
でぐぐったら普通に出てくるだろ
つうか公式に書いてあるって言う
Lightbox 2 uses the Prototype Framework and Scriptaculous Effects Library.
You will need to include these three Javascript files in your header (in this order).
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
scriptaculousのeffectsとbuilderが必要なのに
>>293ではeffectsしか呼び出してない
コピペして主にHTMLを書くだけのライブラリの使い方を教えてあげるスレwww
どんどんレベルが下がって行くねw
夏なのにレベルが下がらない方が怖いわ
JS危篤
if(A && B && C){...}のように論理積をとるか
if(A){
if(B){
if(C){}
}
}
のようにネストするかでは、どちらが早いのでしょうか?
306 :
Name_Not_Found:2008/08/15(金) 11:27:52 ID:gG/gIjTv
IEのプロセス iexplorer.exe のメモリ使用量を javascript で取得する方法は
ありますでしょうか?
情けない話ですが、メモリリークがどうしても直らなくて原因を探るためにメ
モリ量の増減を見て色々参考にしたいのです。
随時メモリ量を取得してサーバに送って蓄積して調べる参考にしたいと思って
います。
なにかソフトをインストールする必要があるなら入れられますし、完全なロー
カル環境です。
(IE6, WinXP or Win2K)
宜しくお願い致します。
>>302 たまにこのスレを見ているが、常に低位安定です。
まずライブラリの使い方なんて聞くなと
>>306 俺がやった時は、計測するためのマシンやブラウザを決定してから、
VBスクリプトで画面操作のシナリオを作成。
IEもvbsから立ち上げる。
それで定期的にCPU使用率を吐き出す。って感じ。
どうしてもクライアント側からサーバに送るモデルを崩したくなければ、
ActiveXプラグインとかの方がいいかもしれない。
【質問事項】
innerHTMLに流し込んだHTML内のアンカーへのリンクを、
別フレーム内のHTMLに作成する場合にはどうすればよいのでしょうか。
【詳細】
index.htmlでフレームを3つ作っていて、それぞれにa.html、b.html、c.htmlを初期表示しています。
a.htmlはファイル名を入力するフィールドと「実行」ボタンが存在し、ファイル名を入力し
「実行」を押下すると、javascriptでファイル名を取得し、perlのプログラムの引数に設定してperlプログラムを実行します。
(サーバは使用してなくて、クライアント内に閉じています。)
perlプログラムは、アンカータグ(<a name=test_0001>0001<br><a>)がtest_0001〜test_1000まで1000個記載されたhtml(result1)と、
そのアンカータグへのリンクを含んだhtml(result2)を作成します。
で、作成されたresult1とresult2を、先のb.html、c.htmlが表示されていたフレームのinnerHTMLに指定し、見た目上3つのフレームが、
a.html、result1、result2が表示されるようにし、result2のリンクを押下することで、result1の該当のアンカー部分が表示されるようにしたいのですが、
result2内で記述するresult1のアンカーへのリンクの記述方法がわかりません。
サンプルプログラムとして、単にフレームを二つ作って、アンカータグを含むy.htmlとリンクを含むz.htmlを作った場合には、
z.htmlに以下のタグを作ることで、希望通りの動作ができていました。
(テーブルの行のonclick属性に指定することを想定しています。)
<tr onClick="window.parent.frame1.location.href='../html/y.html#test_0500'">
innerHTMLで表示内容を変えた場合、innerHTMLに流し込んだHTML内のアンカーへのリンクを、別フレーム内のHTML内に作成するにはどうすればよいでしょうか。
>>310 innerHTMLだろうが普通にHTMLで書いたものだろうが
リンクの側は同じでいいと思うけど。
312 :
Name_Not_Found:2008/08/16(土) 00:41:47 ID:4yT0jKt/
310です。回答ありがとう。
うーん、最初はそうなのかなーって思って、
<tr onClick="window.parent.frame1.location.href='../html/b.html#test_0500'">
て書いてみたんだけど、
そうするとinnerHTMLに流し込んだresult1は消えてしまって、
b.htmlが表示されてしまいます。
(それはそれで当たり前かなーとは思ったのですが。b.html=result1には
ならいから、元に存在するb.htmlを表示するのかなと)
なのでinnerHTMLの中身を指定するリンクを書かなければならないのでは
と思ったのです。
それとも何か根本的に間違っているのかな?
>>312 ああなるほど。リンクを踏んだらページ内容がリロードされるから
消えてしまうということね。試してないけどonclickに入れる動作を
window.parent.frame1.document.getElementById('test_0500').scrollIntoView()
にしてみたらどうかな?
314 :
Name_Not_Found:2008/08/16(土) 11:20:15 ID:4yT0jKt/
310、312です。回答ありがとうございます。
教えていただいた方法で、やってみます!!
できたらうれしいなー。
ツリー表示をしたいのですが、
なぜかページを表示させてからの1回目のクリックで、非表示状態のツリーが展開しません。
2回目のクリックからは正常に動くのですか・・・
・JavaScript部分
function treeMenu(tName) {
tMenu = document.all[tName].style;
if(tMenu.display == 'none') tMenu.display = "block";
else tMenu.display = "none";
}
・HTML部分
<a href="javaScript:treeMenu('tree1')">ツリータイトル</a>
<div id="tree1">内容</div>
・CSS部分(外部ファイル)
div#tree1{
display: none;
}
HTMLのdiv部分に直接「style="display:none"」と書けば正常に動いて解決するのですが、
外部ファイル上でどうにかできないのでしょうか・・・?
ご指摘、よろしくお願いします。
316 :
315:2008/08/16(土) 16:54:06 ID:???
書き忘れました。
使用ブラウザはFireFox2.0.0.16(最新版)です。
>>315-316 CSSで設定したスタイルを直にstyle.displayで取ることは
できない。FAQに書いてあるだろボケ!
でもこの場合は「...display == "none"」で見てるとこを
「...display != "block"」で見るように直せば動くかと。
y君なにしてんの
ほんとにもう
320 :
Name_Not_Found:2008/08/16(土) 21:19:10 ID:ZMx5fdXJ
>>315 それだとJavascriptオフだと見れないじゃん。
だよなwww
JavaScriptで
class属性(値はなんでもOK)を持つdiv要素だけを抽出したかったら、
どうするのが最も効率的ですか?
XPath
>>322 1)document.querySelectorが存在するかどうか確かめて、存在すれば
document.querySelector('div[class]');
を実行
2)1が存在しなかった場合document.evaluateが存在するかどうか確かめて、存在すれば
document.evaluate('//div[class]'.document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
を実行
3)2が存在しなかった場合、divをgetElementsByTagNameで得てgetAttributeで確かめていく
こんな感じじゃないかなあ
戻り値の型はそれぞれ違うからそれには注意
ただコードが見難くなるだけだし、少々遅くても3だけでやった方がいいよ
/*
getElementsByClassNameがgetElementsByTagNameみたいに引数にワイルドカードを指定できたら
それが最速かもと思って確かめてみたんだけどFF3では出来なかった
これが一般的な実装なのかどうかは知らない
*/
@class
帰ってくるのアトリビュートノードじゃん
>>325 それだとクラスの値を取ってくるだけだろ
タコが
//div[@class="section"]
だとSectionってクラス名はスルーされてしまうんですが
大文字小文字などを無視するオプションなんてのはありませんか?
//div[translate(@class, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='section']
これで。
見にくいのでこんなの使わずに大文字小文字は区別して使ったほうが良いと個人的には思う
SECTION と sectionだけでいいだろ
なんでABC...と全部引数にするんだよタコ
書き方がアレだから誤解されてもしょうがないけどなー
それはともかくIE6が生きてるうちはなんもできないね
なんか上から目線の痛い奴がいるなぁ・・・夏か。
マウスのホイールをスクロールしたら関数を呼びたいのですが、
どうすれば良いのでしょうか。
また、スクロールの向き(↑か↓か)によって処理を変えるということもやりたいと考えているのですが、
どうすれば良いのでしょうか。
よろしくお願いします
onmousewheel/DOMMouseScrollイベント拾って、
event.wheelDelta/3かevent.detail/-120みたいな感じで向きを取得。
ありがとうございます。
339 :
Name_Not_Found:2008/08/18(月) 20:38:23 ID:AxZsi/Qj
javascriptでクッキーの読み書きをしているのですが
「あいうえお」と書き込んだはずが「BDFHJ」と返ってきてしまいます。
何が原因なのでしょう?
ちなみにファイル等はすべてUTF-8で統一しています。
>>339 cookieに日本語直接入れたわけではなくescapeして入れたのにunescapeしてみたら違ったってこと?
cookieに直接日本語を入れてはダメだというのを知らなかったのが原因でした。
ありがとうございました
XmlHttpRequest つかって HTML の断片を読み込んでいます。
その中に <script>タグがあるんですけど、それが実行されません。
たとえば
<script type="text/javascript">alert('OK');</script>
というのをとってきてこれを $('placeholder').innerHTML = html; の
ように代入したんですけど、alert() が実行されません。
原因と対処方法を教えてください。
ぐぐるときのキーワードでもいいです。
よろしくお願いします。
>>342 大文字小文字。
>>343 危なそうならscript要素?何だそれ?
つうか、危ない危ないと自作自演で騒ぐ馬鹿はアホ外人だけにやらせとけって言ってるだろ。
346 :
Name_Not_Found:2008/08/18(月) 23:12:04 ID:wGd6+L3U
>>313 教えていただいたとおり
window.parent.frame1.document.getElementById('test_0500').scrollIntoView()
を指定してみたのですが、うまく動きませんでした。
残念です。
innerHTML内のアンカーに対してどうやってリンクをはればいいんですかね。
誰も悩んでいないので非常に簡単なことのような気がしますが・・・。
ソースは明日でもアップできるところがあればアップします。
347 :
Name_Not_Found:2008/08/18(月) 23:48:07 ID:AxZsi/Qj
DOMでサーバとつなげてデータを受け渡しする処理を作っているところなのですが
「&」はどのようにすれば渡せるでしょうか?
解決する糸口が見つけれないのでおねがいします
URLエンコード
349 :
Name_Not_Found:2008/08/19(火) 00:35:08 ID:TOpsvi2r
prototype.js(v1.6)でクラス変数・メソッドを定義するのに
以下のようにしているのですが、
もっとエレガントに出来ないものでしょうか?
// クラス定義
var Foo = Class.create({
// インスタンス変数
instanceVariable: "",
// インスタンスメソッド
instanceMethod: function() {
}
});
// クラス変数
Foo.classVariable = "";
// クラスメソッド
Foo.classMethod = function() {
};
350 :
Name_Not_Found:2008/08/19(火) 00:50:56 ID:/G3i/MBt
>>348 試しにalert( encodeURI(dat3) ); をコードの中に混ぜてみましたが、
&は変換されずにポップアップに出てきました
ちなみにブラウザはFirefox3です
351 :
347:2008/08/19(火) 01:35:41 ID:???
いや、半分まではうまく行ってました。
サーバ側ではちゃんと&を受け取ることが出来ていて、
その後データをXML形式にしてクライアント側に返信しているのですが、
&がXMLに混ざっているせいで、XMLそのものが不成立になり、
結果がおかしくなっていました。
こういう場合、どうやって回避すべきなのでしょうか?
まずは日本語での説明能力を身につけることじゃないかな
MDCくらい読めばいいのにね
encodeURIComponent
>>349 マルチポストしながらエレガントさを求めるのはいかがなものか
decodeURI、encodeURIは「; / ? : @ & = + $ ,」の文字を変換しませんが
decodeURIComponent、encodeURIComponentは変換を行います。
こんにちは。
overlibで画像を表示することは不可能なんですが、他のやり方ご存知でしょうか?
読むと、XML の中に & を混ぜたいって話だろ?
encodeURIComponent じゃなくて、escapeXML 相当の機能だろう。
function escapeXML(str) {
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
}
358 :
342:2008/08/19(火) 19:00:49 ID:???
>>343 >scriptはinnerHTMLじゃ実行されない。
>なので、evalするか、evalが危なそうならscript要素を動的に作る。
ありがとうございました。
アドバイスに従って、<script>タグをとってきてcontentをevalすることにしました。
var elem = $('placeholder');
elem.innerHTML = html;
var scripts = elem.getElementsByTagName('SCRIPT');
for (var i = 0, n = scripts.length; i < n; i++) {
eval(scripts[i].childNodes[0].nodeValue);
}
>>344 >大文字小文字。
なんのことですか?
<!-- 【知らんがな】 -->
<script type='text/javascript'>
(function(){
//コード
})()
</script>
<!--
こう書けばグローバルな名前は汚れないのかな?w
-->
グローバルに宣言すれば汚れますよ
>evalが危なそうならscript要素を動的に作る
違いがわからないので誰か説明してくれ
>>354 二つのスレをよくもまぁ見てんのな。
ご丁寧にレスも二つのスレにしっかりとつけやがって阿呆が。
お前みたいな雑魚の力なんぞ借りなくてもできたから安心しろや。
// クラス定義
var Foo = Class.create({
// インスタンス変数
instanceVariable: "",
// インスタンスメソッド
instanceMethod: function() {
}
});
Object.extend(Foo, {
// クラス変数
classVariable: "",
// クラスメソッド
classMethod = function() {
}
});
使い捨てオブジェクトによる二度手間とループによる継承(笑)もどき
いいかげん無駄だと気付け。ほんとPrototypeは有害だ。
prototype.js (笑) とか言ってるのって真っ先に飛びついてった奴らだろ
>>363-365 無能を晒してどうすんだお前ら?
理解できないならそうと言ったらどうよ?
アホはアホなりにがんばれw
367 :
365:2008/08/19(火) 22:37:25 ID:???
>>366 インスタンス変数はコンストラクタの中で代入しないとクラスで共有されるから注意、分かったら氏ね
おまいら旨そうな餌をばらまくなよだれがでる
>>367 例は分かりやすく書いただけだ阿呆が。
prototype.js否定してる奴って
ブラウザ毎の差異を自前ライブラリとかで
実装しちゃってたりするのかw
ブラウザが増えたり、バージョンが上がったりする度に
ソースに手入れるのか?ご苦労なこったなw
その方がよほどアホだろ?
クラス定義の仕方の統一とか継承以外にも
prototype.jsを使う利点ってのがあるんだよ。
アホ共がw
エレガントなレスですねw
もう終わりなのかいお二人さん
____
/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <エレガントなレスですねw
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // <だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
またまた
にぎやかなレスする奴らばっかw
どっちも消耗しろw
ここまでESの話題なし
javascript使ってる人たちって、みなさんこんな感じなんですか?
>>375 javascriptを使いこなせない奴がprototype.jsに頼るという図式
>>374 別にいいじゃん。Web制作板なんだから3系ってことで。
3K=キモイ、カラム、クサイ
379 :
365:2008/08/20(水) 13:30:34 ID:???
どこをどう読んだら俺が prototype.js を否定してるように読めるんだ?
>>361 ごめん、書いた後にscript要素動的に作っるのも変わらないなと思った。
適当に書きすぎました。
delete a
a = null
はどうちがいますか?
参照消えるゴミ
nullが残る
かな
hasOwnProperty("a") がtrueになるかfalseになるか
aがローカル変数ならdelete不可
思ったように動作しないので間違いの指摘をお願いします。
textareaで入力されている改行テキストを改行コードで分割、各行に対してseparatorで表される文字が無ければ行全て、あればそれ以前までの文字列を比較対象として、重複の削除をしたいのです。
var separator = new RegExp('[^ \t]+');
var array_listA = document.getElementById('textarea').value.split('\n');
var array_list = Array();
var keynameA = '';
var keynameB = '';
for(var i = 0 ; i < array_listA.length ; i++)
{
keynameA = array_listA[i].match(separator);
if( keynameA === null )
keynameA = array_listA[i];
for(var j = 0 ; j < array_list.length ; j++)
{
keynameB = array_list[j].match(separator);
if( keynameB === null )
keynameB = array_list[j];
if( keynameA === keynameB )
break;
}
if( keynameA !== keynameB )
array_list.push(array_listA[i]);
}
任意のURLについて、Javascriptを使ってそのページが存在するかどうか(404かどうか)をチェックしたいのですが、
どうすればできるのでしょうか?
>>385 何と何を比較したいのか分かり易くたのむよ
>>385 String#match()の戻り値が配列なのは承知ですか。
>>386 サーバ側にHEADリクエストするCGIプログラム等を置いて、
XMLHttpRequestでそれを呼ぶって感じかと。
同じドメインのURLだけでいいならXMLHttpRequestで直接リクエスト。
>>385 こういうのでいいのかな。Macで試してないが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = [], o = {};
document.getElementById('t0').value.replace(/([^ \t\r\n]+)[^\n]*\n/mg,
function(s, t) { if(!o[t]) { o[t] = true; a.push(s); } });
alert(a.join('|'));
}
</script>
</head><body>
<h1>test</h1>
<div><button onclick="test()">test</button><br>
<textarea id="t0" rows="20" cols="40"></textarea></div>
</body></html>
390 :
385:2008/08/23(土) 18:18:49 ID:???
>>388さんの指摘で少し先に進めたような気がします。
>>389さんのスクリプトはスマートにバッチリこなしてくれますが、高度すぎて読み解くのにもう少しかかりそうです。
どうもありがとうございました。
正規表現で0以上の数字をマッチさせたいんですが
[0-9]+
じゃマッチしないんでしょうか?
すいません
認識を色々誤っていたかもしれません
マッチしたいのは文字列の中の数字で、たとえば
「今は13時です」といった部分が11時であろうと、24時であろうと(半角、全角問わず)マッチさせたいのです。
しかし、「今は臨時です」といった数字以外の場合にはマッチさせたくないのです
どうすれば良いのでしょうか
お世話になります。
今 document.addEventListener("keydown", hoge, false) として、
何らかのキーが押された場合にhogeという関数を呼び出すようなスクリプトを書いているのですが、
textarea上などでキーを押した場合にもhogeが呼び出されてしまって困っています。
特定の要素上ではeventlistenerが効果を発揮しないようにするために、
どのような方法が考えられるのでしょうか?
よろしくお願いします。
>>395 > なんかマッチしません
> 実際やってみたらマッチしてくれないです
>>1
他で答えがもらえたんでもういいです
クソスレ
マルチで、さらにクソスレの置き土産w
さすがここの住民の目は肥えてるwww
流れにワロタ
すみません、質問させてください。javascriptのmatchは検索キーに変数を置くことは可能でしょうか。
var str = "123456789";
var key = "/^[0-9]+$/";
var valid = (str.match(key))? true:false;
alert(valid);
というようなことをしたいのですが、何とも上手く行きません。何が良い方法はあるでしょうか。
ここは質問に答えるスレでじゃないぞ
質問するだけのスレだ
すみません、自己解決。
検索キーはstringじゃなかった。
お騒がせしました。
どこまで自己解決したのか知らないけど
var key = /^[0-9]+$/;
って書けばおk
検索キーっていうのか、それ。勉強になるなあ。
>>404 ありがとうございます。
てっきりphpとかと同じで、文字列だと思ってました。
同じ方法で解決できました。ありがとうございます。
>>405 正しい呼び方は分かりません。
適当に検索キーと呼んでました 。
すみません。
お礼になるかどうかは分かりませんが、
私も分かる範囲で。
>>403 inputのみにeventListenerを当てる方が素直な気がします。
var objs = document.getElementsByTagName("input");
for(var n=0; n<objs.length; n++){
objs[n].addEventListener("keydown",hoge,false);
}
など。
どうしてもdocumentに当てたいなら、
textareaのonfocusで、removeEventListenerを当てて、
textareaのonblurで、addEventListenerを当て直すというのは?
お粗末様でした。
409 :
Name_Not_Found:2008/08/24(日) 15:31:31 ID:V4KIEkrh
printscreenやコピーで取り込んだ画像を表示するにはどうすればいいですか?
環境はIEでローカルです
板違い駄
411 :
409:2008/08/24(日) 17:27:43 ID:V4KIEkrh
>>410 クリップボードで文字列をコピペするような感じで
画像を取り出して表示したかったんですが
javascriptじゃ不可能なんでしょうか?
一度保存すればimgタグで表示するのは簡単なんですが…
危険なので誰も教えてくれないと思います。
414 :
409:2008/08/24(日) 18:33:38 ID:V4KIEkrh
>>411 JavaScript だけでは無理だね。
サーバサイドのプログラムができるのであれば、ImageMagick からブラウザのスクリーンショット撮れるけど、
URL をブラウザで表示してそこから処理を始めるから、リアルタイムで表示するのはちょっと難しいかも。
いずれにせよ cron で処理することになると思う。
416 :
名無しさん@いたづらはいやづら:2008/08/25(月) 12:14:36 ID:Zp3ctjeH
質問させてください。
2種類のnameの違ったinput type="textのnameをjavascriptを使ってセレクトで切り替えできる
フォームを作りたいのですが、教えていただけませんか?
半分まで出来たのですが残り部分がわからなかったため2chの有識ある
皆さんに質問させて頂きました。是非、ご教授の程宜しくお願いします。
参考例
HTML部分
@<input type="text" name="test1">
A<input type="text" name="test2">のようなtextのnameを選択にしたいのです。。
【実践部分】
JSファイル部分
function chg(i) {
var a = ['','test1','test2'];
document.getElementById('i0').name = a[i];
}
HTML部分
<select name="chg(i)">
<option value="test1">
<option value="test2">
</select>
<input type=text name="" id="i0">...?
すみません、教えていただけると嬉しく思います。
>>416 <select name="ふつうの名前" onchange="chg(this.selectedIndex + 1)">
名前が空っぽの場合があるというのが気持ち悪いけどねー。
>>416 optionのvalueに入れてあるなら配列作る必要はないんじゃない?
onchangeだけだとキーボード操作で変わらないからonkeyupも入れてみた(もしかしたらもっといいやり方あるかも。)
inputは初めの1回だけ参照を取得すれば良いからクロージャにした。
メモリリークとかそういう話はよくわからない。
<head>
<script type="text/javascript">
window.onload = function () {
window.chg = (function() {
var input = document.getElementById('i0');
return function(select) {
input.name = select.value;
}
})();
}
</script>
</head>
<body>
<select onchange="chg(this)" onkeyup="chg(this)">
<option value="test1">テスト1</option>
<option value="test2">テスト2</option>
</select>
<input type="text" id="i0" />
</body>
Firefox 3.1に搭載予定のJavaScriptエンジン「TraceMonkey」,数倍〜数十倍の高速化:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20080825/313337/ 米Mozilla Foundationは米国時間2008年8月23日,
オープンソースWebブラウザ「Firefox」用の新たなJavaScriptエンジン「TraceMonkey」を発表した。
Just-In-Time(JIT)コンパイラ搭載でJavaScriptの処理速度が大幅に向上し,
各種Webアプリケーションの高速化につながると見込む。
キーコードが10の文字は何ですか。それどうやれば分かるんですか。
421 :
名無しさん@いたづらはいやづら:2008/08/25(月) 15:46:34 ID:Ku5PHUWx
>>417さん
>>418さん、ありがとうございました!
お二方のやり方で動作反応確認できました!
本当に助かります!ありがとうございました!
422 :
Name_Not_Found:2008/08/25(月) 15:54:10 ID:odg6FqWJ
test
@T
AU
BV
機種依存 乙。How many times do i have to say this?
外部JavaScriptファイルを読み込む場合についての質問です。
以下の様に宣言しますが、鯖落ちしたときのために、同じjsを2つのサーバーに置き
2回同一内容のjsを宣言してもいいのでしょうか?
<script language="JavaScript" src="
http://saba1/func.js"></script>
<script language="JavaScript" src="
http://saba2/func.js"></script>
script要素で読み込んだコードはグローバルスコープで実行されるわけだが
いいのかどうかはそのコード次第だろ
機種依存とかいつの時代の話だよw
>>426 htmlがあるサーバに、saba1とsaba2に問い合わせて先に返答した方
の内容を返すインタフェースを仕込む方がいい希ガス
>>426 その script タグを書いてる HTML と同じ鯖の .js だけ読み込むといいよ
鯖落ちしたらそもそも HTML が見れなくなるから何も問題は無い
っていうかそんなしょっちゅう落ちてる鯖なんか使うなよ
有名なライブラリなら Google でも提供してる
フォームの中のある要素があるかないか調べる方法を教えてください
if (f.elements[temp_name_val].value != '') {
stock_temp = f.elements[temp_name_val].value;
}
temp_name_valというのが要素名が入る変数なのですが、AJAXによってフォームの要素が変動しますので、
上記のように書くと、そんな要素はありませんというエラーになります。よって先にフォーム内にその要素が存在するか調べてから処理しようと思います。
>>431 if(f.elements[temp_name_val]) { // その要素がある
434 :
426:2008/08/26(火) 13:55:30 ID:???
>>427 >>429 >>430 レスありがとうございます。
仕様上htmlと同じサーバーにjsが置けません。
jsではfunc1(){} のような関数定義しているだけです。
この場合、2つのjsをダウンロードしてから読み込みということで問題ありそうでしょうか。
関数定義を2つのファイルでした場合、呼び出すときに遅くなったりしないのでしょうか。
>>429 すみません、そこまでできそうには・・。
>>434 関数定義だけなら後のファイルで関数が上書きされるから問題ないけど、
例えば一つ目のサーバが落ちてたら、
scriptファイル取りに行く間他のファイル取りに行くの待つからその分待たされると思うよ。
間にプロキシ挟むようにするとか、そういう方で対策取った方が良いと思う
str.substring(-2,0)ってのは、最後から2個だと思ったけど今みたら
挙動がちがう(IE6,SP2)。昔はそうだったはずだけど変わった?
他のブラウザでもそうなのかな。
437 :
426:2008/08/26(火) 15:09:06 ID:???
>>435 ありがとうございます。
1つ目のファイル(js)読み込み時に待たされるのですか・・。これは問題ですね。
もう一つ聞きたいことができたんですが、同時に読み込みにいける数はレジストリで設定出来るものでしょうか。
これが最大2だった場合、鯖落ちjs一つがタイムアウトにならないかぎり、画像やhtmlなど一つづつしか読み込めない状態になったりするんでしょうか。
つまり、scriptファイルが複数あった場合は一つのファイルにまとめたほうがいいのでしょうか?
アドバイスありましたらお願いします。
>>437 > 1つ目のファイル(js)読み込み時に待たされるのですか・・。これは問題ですね。
> つまり、scriptファイルが複数あった場合は一つのファイルにまとめたほうがいいのでしょうか?
気にし過ぎ。
script とか画像とかまとめるのは当然有効。でも、気にし過ぎ。
439 :
435:2008/08/26(火) 15:35:48 ID:???
>>437 確かにscriptファイルを1つにしたり、キャッシュしたりするのは有効。
でも
>>438が言うように大抵は気にし過ぎってレベル。
その仕組み作るコストかかっても仕方ないし、そこまで行くとスレ違いな気がする。
440 :
426:2008/08/26(火) 15:39:22 ID:???
>>436 substringとはちと古いけど、その解釈であってる。
substrもそうだけど、IEが狂ってる。
なので、sliceで代用しる。
>>436>>441 ___ ━┓
/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\
. | (__ノ ̄ |
\ /
\ _ノ
/´ `\
| |
| |
443 :
406:2008/08/26(火) 16:32:05 ID:???
str.substring(-2,0) ← 空文字列だろ
>>437 クライアントの同時並列ダウンロード数の設定にかかわらず、
JSをダウンロード及び実行している際にはそれ以降の外部ファイルは
一切ダウンロードされない
>一つづつしか読み込めない状態
一つも読み込めない状態 が正しい
446 :
441:2008/08/26(火) 21:46:52 ID:???
>>444 あー、見間違えた!
ごめんなさい。
ごめんなさい。
ごめんなさい。
string.substr(-2) で後ろから2文字。
のはずが、IEはそうならない、って書きたかった。
_ ......... __
,.ィ"/,. ィ'":.:.:.:\:.:`丶、
/ / ,:":.:.:.:.:.:.:.:.:.:.:.:ヽ:.:.:.:.:.\
/ ./ /:.:./:.:.:.:.:.:.:.|:.:ト;.:.:l:.:.:.:.:.ヽヽ
/ / /:.:./:.:.:.:.:.:.:.:/:.:| ',:.:ト、:.:.!:.:.l:.', < いいぞ質問者もっとやってください、ベイベーですぅ。
く ,' l:.:.:.:l:.:.:./:.:.://_/ .l:/ー-ヽ:.:| ',| まだとぼけた回答を続けるのはよく訓練されたアフォな百賞共ですぅ。
ヽ、.」 l:.:.:.:.l:.:.l_:/フ ' /' 、,,,,,.ノ:./ ′
/:.:.{ !:.:.:.:.Vr ,,ィ ′ ///イ}
/:.:.:.:{ ヘ:.:.:.:\=''"// _ ハ!
/:.:.:.:.:.{ ,イ_ヽT rr‐', <ノ , ' } < ほんとあらゆる所がハゲた回答者を相手するのは地獄だぜぇ〜ですぅ。
/:.:.:.:.:.:..{ r-,.‐-.、>、ヽヽヽ ..__/ } ふぅはははぁ〜ですぅ。
/:.:.:.:.:.:.:.:{ </: : : : :ヽ} ヽ、 ,ヽ,‐;.:.::{ }_ ri
/:.:.:.:.:.:.::.:.{ {l: : : : : :.:.!{,〃゙Yニ .r‐─ヽ_|__二二――─---.r| |
. , ':.:.:.:/:.:.:.:{ /:|:.: : : : : :ヾ,ヽ='ィ、ニ|`゙゙゙''―ll_____二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l
, ':.:.:./:.:.:.:.,イ/:.:.|:.:.',: : /: : : \/ ! ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ
. , ':.:.:/:.:.:.:.:./ /:.:.:.:!:.:.:.∨: :_:_: : / l 'j_/ヽヽ, ̄ ,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`"
, ':.:./:.:.:.:.:.:./ ./:.:.:.:.:.!:.:.:/: :/r =7 ,'.フ: :ヽl }Y フ `゙,j" | | |
,.':.:/:.:.:.:.:.:.:/ /:.:.:.:/ハ:/:.:.:.イ7/〈:、 !'.):.:. : : `ヽ/'、ヽ二-フ | | |
/:.:.:.:.:.:.:., ' /:.:./:./:./:.:.:.:/://:.:.:ヽ:\ |ヘ:r,.
>>444と
>>446の同一人物とも思えん落差がショックだな
こんな夜話なヤシがエラそうなこと意ってるのか
>>448 特に同一人物には見えないがスーパーハカーさんですか
そもそもECMA-262ではsubstringの第1引数としてマイナスの数で
後ろからなんていう仕様になっていない。なので、たとえ手元の
ブラウザで試して動いたとしても使わない方が吉。
そもそもIEがECMA-262を無視しているから
ECMA-262 の仕様では substring の引数にマイナスがあった場合 0 と同じものとして扱われる
ことぐらい全員知っとけ
substringよりsliceの方が恩恵が多いから
sliceしか使ってないよー
おれは Perl 使いだから、文字列処理はどうしても RegEXP に頼りがちになる。
RegEXPか、それは新しいな
sliceの第2引数にマイナスを指定するとsubstrと同じになるんだっけ
・・・
sliceの第2引数にマイナスを指定するとゲシュタルト崩壊する
sliceの第2引数にマイナスを指定すると5分長門
464 :
426:2008/08/28(木) 00:22:24 ID:???
すみません。
やっぱり、やはり、scriptファイルを置いているサーバーが重いです。
2つに複製しておくとして、一つ目のファイルを読み込みに行くときとタイムアウトの時間を設定することは可能でしょうか?
もう一つの対策としてhead内で、外部ファイルではなく直接宣言する場合問題などはありますでしょうか?33kbほどなのですが。
これなら読み込みに行く時間がないので拘束に処理できるような気がするんですが。
>>464 <script type="text/javascript">
<!--
ここに書く
// -->
</script>
レスありがとうございます。
やってみます。
もう一つ疑問なのですが
<!--
// -->
このコメント欄にする場合って未対応のブラウザ用ですよね?
sleipnirなどでjavascriptを切ってもコメントにしていないscriptは表示されないんですが
これとは別ということなんでしょうか
html内にscriptを書いてるとき、コメントにしていないんですが。
もうそれはいいよ
>>466 script要素のコメントはパーサレベルでの話なので
ユーザがJavaScript切るのとは別の話だよ
別にコメントにしてもしなくてもいいけど人それぞれ
自分はscript要素を認識しないブラウザ知らないけど
前スレか前々スレぐらいに携帯ブラウザで認識しないのがあるとか書いてあったな
改行を含む複数行のテキストデータを
1行ずつ取り出して処理を行いたいのですが、
どうしたらいいでしょうか?
471 :
470:2008/08/28(木) 03:36:29 ID:???
改行でsplitしてArray化したら出来ました。
複数行のテキストデータをサーバ内に置いて、
その文字列を改行で配列にしたいんですが、
どうしたらいいでしょうか?
472 :
470:2008/08/28(木) 03:42:46 ID:???
XMLHttpRequest
474 :
470:2008/08/28(木) 03:57:39 ID:???
彼は幸せだね!
まるで、初めてAjaxを知るようだ...w
いいぞもっとがんばれIE8
firefoxで
event.keyCode = 9;
とすると動作していないようなのですが、
これを動作させるためにはどうすればよいのでしょうか。
eventにはイベントオブジェクトを代入してあります。
<form onsubmit="submit_form(this); return false;">
のようなかんじで、onsubmitに関数を指定しています。
ここで、フォームに複数のsubmitボタンがあるときに、
どのsubmitボタンが押されたかをsubmit_form()のなかで
調べることはできますか。
function submit_form(form_elem) {
// どのsubmitボタンが押されたかを知りたい
}
event.explicitOriginalTarget
>>479 >>480で調べればわかると思うけど、IEとSarariにはそのプロパティがないから
全部に対応しようとするともう少し必要みたいね。
safariのためにinputにonclickが必要なんだけど、これならそもそもformで調べる必要ないような気もする。
<script type="text/javascript">
function setActiveElement(elem) { // for Safari
if (!document.activeElement) document.activeElement = elem;
}
function getExplicitOriginalTarget(e) {
return document.activeElement || e.explicitOriginalTarget;
}
function submitForm(e) {
var target = getExplicitOriginalTarget(e);
alert(target.id);
return false;
}
</script>
<form onsubmit="submitForm(event);" action="">
<input type="submit" id="a" onclick="setActiveElement(this);" />
<input type="submit" id="b" onclick="setActiveElement(this);" />
</form>
参考:
http://d.hatena.ne.jp/slack4u/20080418/1208481846 http://forum.magicajax.net/forums/thread/714.aspx
document.addEventListener('focus', function (e) {
e.currentTarget.activeElement = e.target;
}, true);
"1423"以外の4桁の数を表す正規表現はどう書けば良いですか?
/\d{4}/
だと単に4桁の数になります。
function a(){
a : null;
b : null;
this.c = {
d : null,
e : null
};
this.g();
};
a.prototype = {
c : {
f : function(){
alert(a)
}
},
g : function(){
a = "HELLO";
}
}
var test = new a();
test.c.f();
こんな感じに、prototypeで作った深い場所の関数を呼び出したいんですけど、
undefinedになってしまいます。
test.g()は呼び出せるのですが・・・。
なにか対処方法がありましたらご教授願います。
>>483 煩雑になるから正規表現だけで表そうとすることが間違い
?。こう? [^1234]{4}
ごめん、大幅に勘違いしてた。
[23456789][12356789][13456789][12456789]
マジでこんなのしか思いつかない。吊ってくる。
( number.match(/\d{4}/) && number!="1423" )
>>483 俺も正規表現だけで処理しない方がスマートだと思うけど、
どうしてもってなら↓でいけないかな?
/[023456789]\d\d\d|\d[012356789]\d\d|\d\d[013456789]\d|\d\d\d[012456789]/
ただこのままだと5桁以上の数字もマッチします。
ご回答ありがとうございます。
なるほど、正規表現だけで表さないほうがいいですか、やはり。
実はあるSNSの話ですが、自分の日記ページにはid=1423というのがurl中にあるので、
自分以外の人の日記ページのurlにマッチさせたいと考えたのでした。
変数urlにURLが格納されていて、
http://example.com/hoge.php?id=1423 の時には処理をさせず、
http://example.com/hoge.php?id=1321 など1423以外のidの時にだけある処理をさせようと考えました。
/\d{4}/.test(url) && url != '1423'
などとすれば良いところなのでしょうが、あいにく処理をする関数func()には正規表現を渡さないといけません。
そこでなんとか正規表現だけで解決できないかと考えたのでした。
/[2-9]\d{3}|1[0-35-9]\d\d|14[013-9]\d|142[0-24-9]/
これでいけそうです。
495 :
493:2008/08/29(金) 21:12:18 ID:NVv6eAmB
496 :
493:2008/08/29(金) 21:16:38 ID:NVv6eAmB
あ、5桁以上にマッチしないために/^ $/ではさんで、
/[2-9]\d{3}|1[0-35-9]\d\d|14[013-9]\d|142[0-24-9]/
でOKかな?
497 :
493:2008/08/29(金) 21:18:02 ID:NVv6eAmB
ミスってました。これで大丈夫だと思うのですが、如何でしょう?
/^[2-9]\d{3}|1[0-35-9]\d\d|14[013-9]\d|142[0-24-9]$/
>>497 そこまで自力でいけたならとりあえずやってみそ。
たぶんそれじゃダメだけど。
499 :
493:2008/08/29(金) 21:26:04 ID:NVv6eAmB
いまのところ正常に動いてますがバグが潜んでいる可能性はあるかもしれません。
たぶん駄目と言われるのであれば反例を出して欲しいです。
500 :
Name_Not_Found:2008/08/29(金) 21:29:40 ID:w19wDPZ7
493ではないが答えるんなら理由説明しなって
>>498 参考にならない意味のないレスになってるぞ
>>499 それでうまくいってるなら、
> 変数urlにURLが格納されていて、
っていう前提が嘘で、変数urlにはidの値が入っているはずだが?
>>500 おっしゃるとおりでした。駄レス申し訳ありませんでした。
503 :
493:2008/08/29(金) 21:35:21 ID:NVv6eAmB
いやidを正規表現にかけました。
なんとなく夏チューンマンの気配を感じて見守ってたらこれだよw
そもそもidの数字を渡すこと前提なんなら
正規表現なんか使わずif文だけでいいだろwwwwwwwwwwww
APIの問題上仕方ありませんでした
Javascriptでデータベース構築できますか?
スクリプト言語でデータベースエンジン作ってるのって聞いたことないなぁ。
夏も終わりだし、スレのレベルを元に戻していこうぜ。
2ch発メモリリーク検知ツール作成
>>145のため、
循環参照検知のロジックを検討したい。
createElementとかのブラウザAPIは全部ラップするとして、参考になるところないかなぁ。
専用スレでも立ててやれカスども
・・・え?
・・・ん?
んっ・・・ぁ・・・
>>507 「Javascript データベース」でググるといろいろと出てくるよ
RDBMSではないけど
EUCやJISへの文字コード変換は外部jsを使わないと無理ですか?
簡単に出来る方法がありましたら教えてください
何で肯定先読みが出てきてるのに否定先読みが出てきてないのさ
/^(?!1423)\d{4}$/
>>519 ここで愚痴言っても生姜ない。パソコン買った店に行って文句言ったら?
・・・え?
明後日までの辛抱だ
>>518 WSHならADODBで割と簡単にできるが
525 :
Name_Not_Found:2008/08/30(土) 19:12:22 ID:gUCt4vM4
mp3ファイルをダウンロードしているのですが、
IEの機能でのダウンロードは途中で回線が切断されたら降り出しに戻ってしまったり、
ダウンロード自体に時間がかかるので、ダウンロードソフトを使いたいのですが、
落としたいmp3ファイルは、javascriptによって保存のためのウインドウ(開く、保存、などと書いてあるやつ)が起動する仕組みになっているみたいで、
URLがわかりません。
だからダウンロードソフトも使えません。
そこで、mp3ファイルがダウンロードできるページのソースを表示してみたら、
こんな箇所がありました。
// MP3ファイルダウンロード
function showMP3(_nendo, _katei, _kamoku, _no) {
document.location = 'MP3.aspx?nendo='+_nendo+'&katei_code='+_katei+'&kamoku_code='+_kamoku+'&sq_no='+_no;
}
そして、mp3ファイルをダウンロードするところにマウスポインタをあわせると、
ステータスバーには
javascript:showMP3('2008','S13','N184','06')
と表示されます。
自分はjavascript知らないのでわからないのですが、
この4つのキーワードを上で記述されている規則によってURLに変換してダウンロードができるようになるってことなんじゃないですか?
javascriptがわかる人、URLの導き出し方教えてください。
527 :
Name_Not_Found:2008/08/30(土) 20:27:23 ID:2KqfMudE
>>526 最後が.mp3ってなってないと、ダウンロードソフト使えないですよね?
最後が.mp3になってるURLの探し方ってないんでしょうか?
とりあえず通報しました
530 :
Name_Not_Found:2008/08/31(日) 00:54:37 ID:DzJe4ado
>>525 ここはJavascriptを書く意志と能力を持つ者のスレです。
そんなのそのダウンロードソフトとやらがどんな動きするかによるでしょ。
試してみればいいじゃん。
明日からはマシになるのかなぁ。。。
>>530 URIに対して何を返すかなんてサーバ次第。
試してできなかったのか?
それともあなたの乏しい知識で無理そうだと判断してるのか?
少なくとも提示されたコードからはそういう感じのURIになりますよってこと。
バカはスルーするべき
535 :
493:2008/08/31(日) 08:55:18 ID:???
>>519 勉強になりました。ありがとうございます。
<a href="hoge.html" onclick="piyo">test</a>
リンクを踏んだときに
JavaScript有効の時はpiyoを実行するのみでhoge.htmlには遷移させず、
JavaScript無効の時にはhoge.htmlに遷移させるにはどうしたらいいですか?
return false;
できました
ありがとうございました
str=str+
+のあとに
<a class="test" href="javascript:test('aaa','count'))>てすと</a>"
この1文を追加したいんですが
str=str+"<a class='test' href='javascript:test("+aaa+","+count+")'>てすと</a>";
これだと構文がまちがっているみたいでした
どうすればいいでしょうか?
つまらない事で申し訳ないですが、よろしくお願いします。
540 :
539:2008/08/31(日) 22:14:09 ID:???
すみません、5行目の変数のところ
('"+aaa+"','"+count+"')
こうでした
>>540 もとのと同じようにしたいなら"にするために\"とか使ったらよい
542 :
539:2008/08/31(日) 22:57:51 ID:???
>>541 なるほど!!ちょっと今日は疲れたので
また明日やってみます、ありがとうございました
booとかhogeとか欧米人が考えたの?
とすると、hogeはホゲじゃなくてホッヂなんだろうね。booはよく知らん
ホゲだろ
548 :
かなこ:2008/09/01(月) 15:12:48 ID:???
こんにちは
JavaScript初心者なのです
JavaScriptでマウスオーバーでの画像の入れ替えは以下のように記述すれば動くのですが
------------------------------------------------------------
<SCRIPT LANGUAGE="JavaScript">
<!--
function gazou(mySrc){
document.myimg.src=mySrc;
}
//-->
</SCRIPT>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<center>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons1.gif')">パンダ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons2.gif')">ペンギン</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons3.gif')">ねこ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons4.gif')">ねずみ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons5.gif')">ライオン</a>
<br><br>
<img src="images/icons1.gif" border="0" width="32" height="32" name="myimg">
------------------------------------------------------------
↓続く
かなこはジャングルなのか
薄い方がいいのに
550 :
かなこ:2008/09/01(月) 15:15:08 ID:???
マウスオーバーでのURLの切り替えはどうすればよいのでしょうか?
※★の部分を変更しました
------------------------------------------------------------
<SCRIPT LANGUAGE="JavaScript">
<!--
function gazou(mySrc){
★document.myimg.href=mySrc;
}
//-->
</SCRIPT>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<center>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons1.gif')">パンダ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons2.gif')">ペンギン</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons3.gif')">ねこ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons4.gif')">ねずみ</a>
<a href="JavaScript:void(0)" onMouseOver="gazou('images/icons5.gif')">ライオン</a>
<br><br>
★<a href="images/icons1.gif" name="myimg">
<img src="images/icons1.gif" border="0" width="32" height="32">
</a>
------------------------------------------------------------
「document.myimg.href=mySrc;」の記述がおかしいとは思うのですが
初歩的すぎるのかどこにも載ってません(×〜×)
皆様よろぴこお願いします。
551 :
Name_Not_Found:2008/09/01(月) 15:59:30 ID:x3BXnTPD
二次元配列からconfirmで選択して新配列に入れる関数を作りたい。
arr=[];
W=[['01','02','03'],['001','002','003']];
function Con(Q){for(i=0;i<Q.length;i++){if(confirm(Q[i])==true){arr.push(Q[i]);break;}else{continue;}};return Q};
for(i=0;i<2;i++){Con(W[i])};
うまくいきません。どこがまずいのかご指摘お願いします。
552 :
441:2008/09/01(月) 19:14:23 ID:???
>>548 画像の入れ替えといいながらimg要素がないとはどういう了見だ。
冗談はさておき。
入れ替え前画像:img_f1.jpg/入れ替え後画像:img_f2.jpg
--
window.onload = function(){
var IREKAE_className = "IREKAE";
function IREKAE(img){
var I = this;
this.img = img;
this.f1 = document.createElement("img"); this.f1.src = this.img.src;
this.f2 = document.createElement("img"); this.f2.src = this.img.src.replace("_f1.","_f2.");
this.img.onmouseover = function(){ this.src = I.f2.src; };
this.img.onmouseout = function(){ this.src = I.f1.src; };
}
var tmp = document.getElementsByTagName("img");
var irekae = [];
for(var i=0 ; i<tmp.length ; i++){
if(tmp[i].className.indexOf(IREKAE_className) == -1) continue;
irekae.push(new IREKAE(tmp[i]));
}
}
--
<img src="img_f1.jpg" class="IREKAE">
名前消せば良かった。説得力ねー。
しかも派手に勘違いしてるし。吊ってきます orz
function gazou(src){
var target = document.getElementById("target");
target.src = src;
}
<p><img src="入れ替わる画像.jpg" id="target"></p>
<ul>
<li onmouseover="gazou('images/icons1.gif')">パンダ</li>
<li onmouseover="gazou('images/icons2.gif')">ペンギン</li>
<li onmouseover="gazou('images/icons3.gif')">ねこ</li>
<li onmouseover="gazou('images/icons4.gif')">ねずみ</li>
<li onmouseover="gazou('images/icons5.gif')">ライオン</li>
</ul>
別にa要素じゃなくてもいいんだよ、ということで。
555 :
かなこ:2008/09/01(月) 20:16:10 ID:???
>>549さん
そういう意味ではないです〜(*~〜~*)
どっちかっていうと荒れ地です〜
>>554さん
ありがとうございまする〜
でも全然 私がやりたいのと違うのです。質問は
>>548と
>>550でワンセットです。
イメージを変えるときの指定はは
document.myimg.src
とできるのですが、リンク先(href="この部分")を変えるときは
document.myimg.href
でよさそうなのですができないのでどうしたらいいのでしょう?ということです。
よろぴこです。
こういうことかいね。
function gazou(src){
var a = document.getElementById("target");
var img = a.getElementsByTagName("img")[0];
a.href = src;
img.src = src;
}
<p><a href="入れ替わる画像.jpg" id="target"><img src="入れ替わる画像.jpg"></a></p>
<ul>
<li onmouseover="gazou('images/icons1.gif')">パンダ</li>
<li onmouseover="gazou('images/icons2.gif')">ペンギン</li>
<li onmouseover="gazou('images/icons3.gif')">ねこ</li>
<li onmouseover="gazou('images/icons4.gif')">ねずみ</li>
<li onmouseover="gazou('images/icons5.gif')">ライオン</li>
</ul>
557 :
かなこ:2008/09/01(月) 21:27:03 ID:???
>>556さん
ザッツ・ライトでございます!!どうもありがとうございました。
大変感謝いたします!!
チュッ♪
>>558 とりあえず「break;」削除して、あと最後のfor文を「i」以外に
561 :
551です:2008/09/01(月) 23:47:01 ID:???
arr=[];に
W=[['01','02','03'],['001','002','003']];
から
arr=['02','001'];
こんな風に入れたいのですが、こおだとキャンセル一回とOK二回で
すませたいのですが、そうなりません。
562 :
551です:2008/09/01(月) 23:51:24 ID:???
for(j=0;j<2;j++){Con(W[j])};
にしたら完動しましたw。
ありがとうございました。
保守
丸一日書き込みが無いのも珍しいな
これからますますgoogle chromeのせいで賑わう
JavaScriptの動作を高速にするために「V8」という技術も搭載
V8って何だろ
技術じゃなくて、VM 実装の名前>V8
JITに期待
DLしようと思ったらWindows Vista/XP 用になってたから止めた。
2000用は無いのん?
いまだに2000なんか使ってんのか
逆に考えるんだ!
ユーザーを切り捨てられて便利だと!
JavaScriptのAPI仕様は出てないぽ?
WebKitのAPIからの拡張部分のあるなしが気になる。
573 :
Name_Not_Found:2008/09/04(木) 01:43:38 ID:ZBLX8A/o
パソコン上でウィンドウを開いて移動等をさせる。
みたいなことと同じような感じの操作をブラウザ上でする。
ためにはどういう風にしたらいいでしょうか?
HTMLやって、
CSSやって、
次はなにをやろうかな〜?
という初心者にとって、
Perlとjavascriptだと
どっちが難しい?
画像の戻るボタンについて質問させてください。
1.<form><input type="button" value="back" onclick="history.back()"></form>
これで前のページに戻ることは出来るのですが
2.<form><input type="image" src="back.jpg" onclick="history.back()"></form>
これだと戻れません(前のページではなく同じページに移動してしまう)
どうしたら画像で戻るボタンを作ることが出来ますでしょうか?
>>576 <form onsubmit="return false">
つーか<img>タグにでもそのonclickつければいいんじゃない。
>>575 何を作りたいわけ?それに拠るだろ。油絵描きたいなら画材屋行けばいいし
>>575 perlが難しい
javascriptは猿でも三日でわかる
三日で習得した猿はどこにいる?嘘孤狗な。
>>575 両刀遣いの自分から言わせると、
どっちかを入門書にある程度はマスターすれば、
他方の入門書程度をマスターするのは難無くできると思う。
慣れの問題で後から覚えるほうはとっつきにくいだろうが。
いづれにせよHTMLやCSSに比べればどっちも難しい。
ただ、javascriptは現状代替がないんで遅かれ早かれ覚えることになると思うが、
Perlはphpとか同類があるから、まずjavascriptを覚えて、
そのあとあらためてPerlかphpかあるいはほかの言語かを選ぶのも手。
javascriptはHTMLと関連してややこしい部分とかあるけどな
他の言語は入力と出力が簡単な物が多い
プログラミング初心者でどの言語にも通用する知識を付けたいなら、二択ならPerlの方を勧めたいけどな
perlはフランス語っぽい
むしろ英語っぽ。pearlなら水晶って意味だし。
フランス語ならペール
英語ならパゥール
ちがうだろ。仏文科のオレとしては、
フランス語ならペルル
英語ならパール
ペルル5世
もともとFFってjavascript早くなかったし
そこで負けたからってモジラオワタとか何いってんのかわかんない
593 :
Name_Not_Found:2008/09/05(金) 00:53:40 ID:5wXOW3uo
URLの文字列のパラメータ部分をJavascriptでうまく取り出そうとしています。
sample.com/r.cgi?BBS=●●●&KEY=▲▲▲
sample.com/r.cgi?KEY=▲▲▲&BBS=●●●
sample.com/r.cgi?KEY=▲▲▲&HOGE=■■■&BBS=●●●
たとえば、上記の例の3つを全て以下の形にしたい。
sample.com/r.cgi/●●●/▲▲▲/
ソースを以下に記述します。
-------------------
<script type="text/javascript">
<!--
str = new Array();
str[0] = "sample.com/r.cgi?BBS=abc1&KEY=12345678";
str[1] = "sample.com/r.cgi?KEY=12345678&BBS=abc1";
str[2] = "sample.com/r.cgi?BBS=abc1&KEY=12345678&ST=1&ED=100";
str[3] = "sample.com/r.cgi?ST=1&ED=100&BBS=abc1&KEY=12345678";
for(i=0; i<str.length; i++){
if(str[i].match(/(^
http:\/\/sample\.com\/read\.cgi)\?BBS=(\w+)&KEY=(\d+)/) != null){ // (1)
str[i] = RegExp.$1 + "/" + RegExp.$2 + "/" + RegExp.$3 + "/"; // (2)
}
}
alert(str.join("\n"));
//-->
</script>
-------------------
594 :
593:2008/09/05(金) 00:54:48 ID:5wXOW3uo
593の続き)
現状では、r.cgi?BBS=●●●&KEY=▲▲▲という形しか対応できていません。
ソースの(1)〜(2)の部分を書き換えてできる、とてもスッキリして効率の良いプログラムをご教授いただけますでしょうか?
splitで分割したり、正規表現使ったりいろいろ試してみましたが、長くなってしまいます。
【現状の結果】
sample.com/r.cgi/abc1/12345678/
sample.com/r.cgi?KEY=12345678&BBS=abc1
sample.com/r.cgi/abc1/12345678/
sample.com/r.cgi?ST=1&ED=100&BBS=abc1&KEY=12345678
【期待する結果】
sample.com/r.cgi/abc1/12345678/
sample.com/r.cgi/abc1/12345678/
sample.com/r.cgi/abc1/12345678/
sample.com/r.cgi/abc1/12345678/
以上。
単純に考えて
1. ? 以降でパラメータを切り出す
2. & で split
3. それぞれを = で split してハッシュなりに代入
とかでしょうね。
596 :
593:2008/09/05(金) 01:03:33 ID:5wXOW3uo
失礼。ソース10行目。
誤)if(str[i].match(/(^
http:\/\/sample\.com\/read\.cgi)\?BBS=(\w+)&KEY=(\d+)/) != null){ // (1)
正)if(str[i].match(/(^sample\.com\/read\.cgi)\?BBS=(\w+)&KEY=(\d+)/) != null){ // (1)
あとは、BBS=XXX と KEY=YYY をチェックする正規表現を 2 回に分ける。
>>574 Array.prototype.someとかの出力は
Safariの[[native Code]]ではなく、
Array.jsの中のコードが直接出るのね。
【ECMA】 分裂なのに ハーモニーとは コレ 如何に 【Script】
================================================================================================
『ECMAScript Harmony/ES3.1 と ActionScript 』
http://weblogs.macromedia.com/akamijo/ 既に一部で伝えられているように、先週 ECMA TC39 から次期 ECMAScript 標準に関するアナウンスがありました。
Flash Player 9 の発表以来、Adobe は ActionScript を ECMAScript 標準第 4 版として提案された
ECMA-262 Edition 4 (ES4) に完全準拠させるという目標を公にしてきました。この ES4 は、
Adobe, Mozilla, Opera, それから Google を主要なサポーターとして標準化が進められていましたが、
一年ほど前に Microsoft と Yahoo! 主導で ECMA-262 Edition 3.1 (ES3.1) のワーキンググループが
開始されて以来、2 つの異なる ES3 後継仕様案が並存する状況が続いていました。
先週の発表は、ES4 に関する標準化作業を中止し ES3.1 に集中することが決定されたというもので
ECMAScript Harmony プロジェクトと名付けられています。ES3.1 は ES4 のサブセットではありません。
つまり AS3.0 は ES3.1 非互換になるということです。例えば ES3.1 の仕様には namespace や package は
含まれません。これらの機能は ES3.1 以降の拡張に際しても含まれないことがはっきりと述べられています。
また、型指定や継承といった機能の採用については (そもそも class の定義自体が異なるのですが)
今後の議論を待つことになります。JS1.7 や JS1.8 としてFirefox 2, 3 に追加された機能も
Harmony 路線では見直されるようです。
------------------------------------------------------------------------------------------------
ようするに、ゼロから作り直し、っていうか、勉強しなおしw!ヒーーーー
ECMAにクリエータの側からの参加者っていないのか?ひどすぎ
またもやIEは独自路線かw
Flash にロックインした技術者をクリエータって呼ぶの?
ロックマンがどうした
> ES3.1 は ES4 のサブセットではありません。
> つまり AS3.0 は ES3.1 非互換になるということです。
これはわからんでぇ、harmony 以前はサブセットになるようにしてたし
ES3.1 機能をある程度は入れられると思う…
つか Array 拡張は入ってるし。
606 :
593:2008/09/06(土) 01:53:30 ID:oGNrQrBF
>>595 >>597 >>599 ありがとうございます。
参考にいたしまして以下のような感じでできました。
<script type="text/javascript">
<!--
str = new Array();
str[0] = "sample.com/r.cgi?BBS=abc1&KEY=12345678";
str[1] = "sample.com/r.cgi?KEY=12345678&BBS=abc1";
str[2] = "sample.com/r.cgi?BBS=abc1&KEY=12345678&ST=1&ED=100";
str[3] = "sample.com/r.cgi?ST=1&ED=100&BBS=abc1&KEY=12345678";
for(i=0; i<str.length; i++){
if(str[i].match(/(^sample\.com\/r\.cgi)\?/) != null){
qsParm = new Array();
parms = RegExp.rightContext.split("&");
for(j=0; j<parms.length; j++){
pos = parms[j].split("=");
qsParm[pos[0]] = pos[1];
}
if(qsParm["BBS"] != null && qsParm["KEY"] != null){
if(qsParm["BBS"].search(/^\w+$/) == 0 && qsParm["KEY"].search(/^\d+$/) == 0){
str[i] = "sample.com/r.cgi/" + qsParm["BBS"] + "/" + qsParm["KEY"] + "/";
}
}
}
}
alert(str.join("\n"));
//-->
</script>
>>605 試してもないけど
td に指定してるなら↓じゃね
<td class="alphafilter">内容</td>
それでできないなら
仕様なのか不具合なのかドキュメントが間違ってるか
>>606 RegExp.rightContextなんていう便利なもんがあったのか。
勉強になりますたw
610 :
605:2008/09/06(土) 02:18:51 ID:bU+zTKh0
>>607 ありがとうございます。
いま確認中です。
Macなので色々なブラウザのスクリーンショットを撮ってくれるサイトで確認してるので時間かかってしまいます。
611 :
605:2008/09/06(土) 02:31:56 ID:bU+zTKh0
>>607 無事透過できました。
<p>でtableごと囲ってみたり無駄な事ばかりしてたんですけどclassを入れるだけでよかったんですねorz
tdに指定したら指定していないtdにも適用されちゃうみたいなので直してきます。
ありがとうございました。
612 :
605:2008/09/06(土) 02:59:43 ID:???
すいませんageてました。
画像とtdやtableの幅を全て指定したら直りました。
ありがとうございました。
form名がxxxのテキストボックスyyyの入力チェックを行い
エラーだとフォーカスを移してあげてテキストボックスに色をつけ
入力された値をクリアしたいのですが、何故かフォーカスを移して
色付けるまではいくのですが、値がクリアされません。。。
下記のように記述しているのですが何が誤りなのでしょうか・・・?
ご教示お願い致します。
document.xxx.vtori.focus();
document.xxx.vtori.style.backgroundColor='#ffcccc';
document.xxx.vtori.clear();
↑失礼しましたvtoriという値をyyyにしていませんでした。。
document.forms["xxx"].elements["yyy"].value=""
でいいんじゃないの。clearメソッドなんてないよ。
>>617 ありがとうございます!出来ました。そんなメソッド無いですね。。。
何であると思い込んで作ってたんだろう。。。申し訳ありませんでした。。
ie7とfirefox3でondblclick属性からjavascriptの関数を呼び出すサイトを作っています。
ondblclick属性を持つdivタグを500個ほど作ると、IEだと重すぎてまともに動きません。FireFox3だと動きます。
ondblclickで呼び出した関数が遅いのかと思い、関数の中で時間を計ってみたのですが
呼び出している関数そのものは、FireFox、IE共に大きな差はありませんでした。
そこで質問なのですが、
1) IEやFireFoxでエレメントがダブルクリックされてから、OnDblClick属性が実行されるまでの時間を計るにはどうしたらいいでしょうか?
2) IEで、OnDblClick属性が実行されるまでの時間を短縮するにはどうしたらいいでしょうか?
よろしくお願いいたします。
なお、実行環境は主にWinを想定しております。
私としてはIE7で動けば十分と考えておりますが、アクセス解析によるとIE6の利用者も多いようなので、
そちらでも使える高速化の技術があれば、うれしいと思っています。
よろしくお願いします。
>>619 それIE Developer Toolbar入れてないか?
このツール入れてると1秒以上CPU100%になった後にイベント発動するときがある。
622 :
619:2008/09/06(土) 23:21:11 ID:???
申し訳ありません。
その後いろいろと検証した結果、私の勘違いだったようなので質問を取り下げます。
質問よろしいでしょうか。
こちらはとある質問サイトから拝借させて頂いた正規表現でして、
match(/^[ ]*[^ -~。-゚]*[ ]*$/)
「文字列の前後(行頭・行末)の全角・半角スペースを除く、全角文字列(全角スペース含む)のみの組み合わせにマッチ」
という検索条件なのですが、これに「全角文字列(全角スペース含む)+”半角スペース”のみの組み合わせにマッチ」
というように、「半角スペース」という条件を追加するにはどのように記述を変更したらよろしいでしょうか。
どうぞよろしくお願い致します。
>>624 半角スペースのみだったらその半角スペースは行頭及び行末になっちゃうじゃん
他人に何かやらせるんなら仕様をしっかり定義しろ
「文字列の前後(行頭・行末)の全角・半角スペースを除く、全角文字列(全角スペース含む)のみの組み合わせ」
もしくは
「半角スペースのみの組み合わせ」
にマッチ
ってことか?
626 :
624:2008/09/07(日) 16:15:32 ID:???
レスありがとうございます。説明不足・仕様固め不足で大変申し訳ございませんでした。
舌足らずではありますが、全力で補足説明申し上げます。
便宜上、
_ ← 半角スペース
_ ← 全角スペース
と思って下さい。上記の正規表現ですと、
(1): _ _ _ _ あああ _ いいい _ _ ううう _ _ _ _
にはマッチするのですが、
(2): _ _ _ _ あああ _ いいい _ _ _ _ ううう _ _ _ _
↑ ↑
↑の部分に半角スペースが1ヶ所でも入ると、そこが「いいいの行末」または「うううの行頭」
とは認識されないようで、全てマッチしなくなります。
「あああ」の前、「ううう」の後ろの全角・半角スペースの組み合わせは問題なく除外されるので、
全角文字列(全角スペース含む)(上記(1):の「あああ _ いいい _ _ ううう」の状態)に、
”半角スペース”((1)に(2):の↑部分が入った状態)もマッチさせる表現に悩んでおります。
最初の定義文を修正させて頂くと、
「文字列の前後(行頭・行末)の全角・半角スペースを除く、全角文字列のみ(文字列中の半角はスペースのみ有効)の組み合わせ」です。
もし、全角・半角スペースのみが入力された場合、別段階ではじきます。それ以外の何らかの文字列が入力される設定です。
または、別の表現で申しますと、
「行頭、行末、行間(問題部分が正規表現で行頭・行末と解釈されない為、このような表現を用います)の
全角・半角スペースの組み合わせを除く、全角文字列のみの組み合わせにマッチ」
という正規表現の方法に悩んでいる次第です。
読むの面倒だからそれで何をやりたいのかだけ書いてみて
628 :
Name_Not_Found:2008/09/07(日) 16:41:07 ID:kXmR/eCf
jsの外部ファイルを使っているサイトを見るとき
jsファイルはどのような設定の上でブラウザなどにキャッシュされているのでしょうか?
日数など。
また、違うアドレスのサイトに同じjs(jsのURLはおなじ)が使われていた場合、再度ダウンロードするのでしょうか?
629 :
624:2008/09/07(日) 17:03:17 ID:???
>>627 >>624,626 を踏まえまして、
match(/^[ ]*[^ -~。-゚]*[ ]*$/)
↑は
「行頭・行末の全角・半角スペースの組み合わせを除く、全角文字列のみの組み合わせにマッチ」
です。
これを、
「行頭、行末、行間の全角・半角スペースの組み合わせを除く、全角文字列のみの組み合わせにマッチ」
に対応させるには、上記の正規表現にどう追加したらよろしいでしょうか。
var xx = 'ab(cd)e';
var zz = xx.match(/\(.+?\)/g);
を実行するとzzは (cd) になる。
括弧の中だけ、つまり文字列 cd だけをzzにいれたいときはどうしたらいいでしょうか
>>630 カッコの位置を検索してsubstringかsliceしては?
>>630 やり方はいろいろあるけど、例えばこういうの
var zz = xx.match(/\(.+?\)/g).replace(/^\(|\)$/g,'');
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<h1>test</h1>
<pre><script type="text/javascript">
var xx = 'ab(cd)e';
var zz = xx.match(/\((.+?)\)/)[1];
document.writeln(zz);
</script></pre>
</body></html>
>>627,631,632,634
クソース・ウンコード・寝言はスレに持ち込むなとあれほど
>>629 > match(/^[ ]*[^ -~。-゚]*[ ]*$/)
>
> ↑は
> 「行頭・行末の全角・半角スペースの組み合わせを除く、全角文字列のみの組み合わせにマッチ」
> です。
違います。「行頭・行末の全角・半角スペースの組み合わせ」も含む1行全体です
やりたいことは多分こうでは?
output = /[^ -~。-゚]*/.exec(input.replace(/^[ ]*|[ ]*$/))[0]
>>630 var xx = 'ab(cd)e';
var yy = /\((.+?)\)/.exec(xx);
var zz = yy ? yy[1] : '';
基本的な質問をさせてください
Javascriptとcssでプルダウンメニューをつくろうと思います
ユニバーサルなコンテンツを制作する場合
Javascriptをきっている人のことを考慮した場合、
メニューで使わないほうがベターでしょうか?
あと1つ
Javascriptをきっている人の数ってそんなにいるもんでしょうか?
>>637 メニューをページ末尾にマークアップしてCSS・JSで上に持ってくれば切ってても邪魔にならない
切ってる人の数は実際少ないと思うけど、携帯のアプリブラウザとかはまず対応してない
少ないからといってそれを考慮しないやり方はよくないと思う
まず普通にHTMLを書き、それに合わせてスクリプトを書け。
スクリプトに合わせてHTMLを書くDHTML時代の発想から抜け出せないから
そんな阿呆な心配をするんだ。
普通のHTMLにいらないサブメニューだから下に置くんだろjk
JS使わなくてもCSSだけでプルダウンメニュー作れるから
>>637的にはそれで解決だろ
>>641 IE用に変なマークアップを施さないといけないじゃん
俺の調査ではIEユーザーはJS切らないから大丈夫だ
IEコンポーネントブラウザ使用者はその限りではない
そして素のIEなのかIEコンポーネントブラウザなのか判断がつきにくい
俺の調査
646 :
635:2008/09/08(月) 11:50:58 ID:???
オレ、オレ。オレだよ、オレ。
>>646,647
スレのぬしさん いつもありがとうございます
jsの外部ファイルを使っているサイトを見るとき
jsファイルはどのような設定の上でブラウザなどにキャッシュされているのでしょうか?
日数など。
また、違うアドレスのサイトに同じjs(jsのURLはおなじ)が使われていた場合、再度ダウンロードするのでしょうか?
>>652 jsの外部ファイルを使っているサイトを見るとき
jsファイルはどのような設定の上でブラウザなどにキャッシュされているのでしょうか?
日数など。
また、違うアドレスのサイトに同じjs(jsのURLはおなじ)が使われていた場合、再度ダウンロードするのでしょうか?
普通のドキュメントと同じ扱いだと思うけど
普通のドキュメントて何のことだよw
今すぐ、ブラウザのアドレスに
javascript:alert(document.form_calc.t1t.value = "改行\r\n入れるお")
を入れる作業に戻るんだ。
あと、そこのソース見るときは、Vbrという変数が改行になってるから。
ズレた返答してたらすまそ。
挿入するときは \n でよくね?
Lightbox設置しようとしたんですがいざホームページを見て見ると
ページでエラーが発生しました。と表示されます。
設定はうまくいってますし、何が問題なんですかね?
>>662 FireFox&Firebugの環境を揃えるか
IE&VisualWebDeveloperの環境を揃えること。
話はそれからだ。
うまくいってるってなんでわかるねん
何が問題なんですかね?→設定がうまくいってないのが問題
elemntをremoveChildで削除した後もFirebugのconsole.debugで参照できるのだけど、
この参照は残ったままになるの?それともGCが処分してくれる?
nullを入れた方が良いか気になる
いずれGCが解放してくれる。何もしないでよいのがJSのスペックだ。
Ajaxしてて、sendした後、readystateが4になる前に、
abortしても、firefoxのfirebugのコンソールでは
読み込み中っぽく見えるんですが、これってほっといてもよいもの?
日本語でおk
>>667 参照するやつが残っていれば、残る。
FireBugのconsole.debugに出せるするようにするために、作った変数などがなくなれば、処分してくれる。
>>672 ならないって何?
>>671 removeChildしてても誰かが参照してるってこと?
それともFirebugが参照してるから消えてないってこと?
>>672 おれもならないな。
サーバの応答を10秒かかるようにして、5秒後にabortを実行するようにすると
FireBugのコンソールタブにはURLの横に、読み込み途中であることを示す
http://getfirebug.com/screenNet-timeline.gif のようなぐるぐるまわるアイコンが表示されるが
5秒間のみまわる。
ちなみにabortしない場合は10秒間まわる。
>>673 JSのシステム側で参照しているやつはいない。またFireBugでも参照していない。
あなたがデバッグ文として出せるようにしていること自体が、解放されていない原因。
教えて貰えると助かります。
<input type="password" id="test" name="test"/> といった要素について、
var o = document.getElementById("test");
o.type = "text"
以上のようにした場合、Fx3, Safari3 だと問題が起きないのですが、
ie6の場合だと「プロパティの値を取得できませんでした」とエラーが帰ります。
これはie6の問題なのでしょうか、それとも私のアホさのせいでしょうか。
回避を助けて貰えると、とても助かります。
>>675 こちらもINPUTタグはtextからpasswordに変更は出来たけど、逆はダメでした。
IEはセキュリティのために防いでるっぽいですね。IE8bでも同様の動作です。
以下から探しても、type=passwordの場合にpassowrdを変更出来ないという記述は見当たらないね。
ttp://msdn.microsoft.com/en-us/library/ms535837(VS.85).aspx
同じことやりたければ、以下を思いつきました。入れる場所とかイベント張ってたりしたら適時変更を。
var o = document.getElementById("test");
var p = o.parentNode, pass = o.value;
o.outerHTML = "";
var txt = document.createElement("input");
txt.type = "text"; txt.value = pass;
p.appendChild(txt);
ありがとうございます。IE特有の現象ですか...。
回避方法、ありがとうございます。
有り難く使わせて頂きます。
それにしても、これを防ぐと
なぜセキュリティが向上するのか今ひとつ良く分からない...。
678 :
667:2008/09/10(水) 09:56:03 ID:???
>>674 ごめん、もうちょい詳しく教えて。
下のようなサンプルの場合「※」の時点でpの参照がなくなると思ったのだけど、そうではない?
<div id="parent">
<p id="p">p</p>
<span id="span">span</span>
</div>
<script type="text/javascript">
var parent = document.getElementById('parent');
var p = document.getElementById('p');
parent.removeChild(p); // ※
console.debug(parent.childNodes); // <p>は消えてる
console.debug(p.id); // p と表示される。p=null しないとダメ?
</script>
>>678 あるサブツリーをある箇所から取り除いて別の箇所に挿入するとき、
どうやるわけ?removeChildした瞬間に消えられたら困るじゃない。
変数からたどれるうちはGCされないでしょ。
>>679 > あるサブツリーをある箇所から取り除いて別の箇所に挿入するとき、
> どうやるわけ?removeChildした瞬間に消えられたら困るじゃない。
あ。なるほど。
681 :
Name_Not_Found:2008/09/10(水) 16:29:22 ID:2f4vSFoL
文字列をクリックすると書き込み可能になり、
フォーカスを外すとajaxでpostされる機能を実装したいと思います
わりとよくある機能なので、jQueryのプラグインを探したのですが見つかりません
もしご存じの方いたら教えてください
フォーカス外すと送信とはスリリングだな
>>681 あまりおすすめできないがプラグインなんていらなくね?
$(セレクタ).blur(function(){
$.ajax({
処理
});
});
こういうことじゃなくて?
>>677 自分にも分らないけど、input type=passwordとかいかにもっぽいと思っています。
removeChildも出来ないからouterHTMLに変えたりしたから。
こういうのはブラウザによって色々あるというのが自分の経験。
>>678 解放するために、いちいちp=nullは必要ないですよ。
>>682 インクリメンタルサーチやパスワードの強度チェックとかであれば、
Ajaxなアプリで割とあるのかなぁと思っているんですが。
クリックされたかどうか見て textarea に差し替えて onchange の中で XMLHttpRequest で send すればいいと思うよ
もっとややこしくやりたいならライブラリでも何でも探せばいい
あるノードが親要素の何番目のノードなのか調べる方法を教えてください
var count = 0;
while(node.previousSibling) { ++count; node = node.previousSibling; }
ページの読み込み時にonloadで呼ばれ、複数のHTML要素を非表示処理したいのですが
・js外部ファイル
・複数のHTMLから呼ばれる
の条件で実装する方法が思いつきません。
各HTML内で個別にやる事は出来るのですが、一つにまとめてしまう方法があったら教えて欲しいのです。
よろしくお願いします。
外部ファイルにしたって記述は変わんないよ
まず、以下の前提でよいですか
・外部JSファイルが複数のHTMLで呼ばれている。
・window.onloadの処理を共通化したい
・複数のフレームから成り立っていて、全てのフレームの読み込みが完了したイベントが欲しいのに
window.onloadがばらばらで発動してしまって困る
なら、それぞれのフレームでフラグ持って、すべてONになったら処理実行でよいかと。
692 :
689:2008/09/12(金) 00:04:36 ID:???
言葉足らずですみません。
外部ファイルのwindow.onloadが呼ばれてそこで処理を行いたいと思っています。
単体のHTMLです。
HTML1
<div id="hoge"></div>
<div id="hage"></div>
HTML2
<div id="mage"></div>
のような要素をonload時に取得したいのです。
意識あわせのために、質問箇所を()で囲みます。
ページの読み込み時にonloadで呼ばれ(処理が?)、
複数のHTML要素を非表示処理(画面見えとして非表示となるように処理を?)したいのですが
・js外部ファイル
・複数のHTML(要素?)から呼ばれる(関数が?)
の条件で実装する方法が思いつきません。
各HTML(要素?)内で個別にやる(非表示処理を?)事は出来るのですが、
一つにまとめてしまう(関数を?)方法があったら教えて欲しいのです。
外部ファイル(js外部ファイル?)のwindow.onloadが呼ばれて
そこで処理(非表示処理を?)を行いたいと思っています。
694 :
689:2008/09/12(金) 00:51:58 ID:???
度々すいません。
>> ページの読み込み時にonloadで呼ばれ(処理が?)、
window.onloadの事です。
>> 複数のHTML要素を非表示処理(画面見えとして非表示となるように処理を?)したいのですが
document.getElementById('hoge').style.display等を想定しています。
>> ・複数のHTML(要素?)から呼ばれる(関数が?)
window.onloadを書いた外部javascriptファイルの事です。
>> 各HTML(要素?)内で個別にやる(非表示処理を?)事は出来るのですが、
>> 一つにまとめてしまう(関数を?)方法があったら教えて欲しいのです。
getElementByIdを使用すれば出来るという意味です。
window.onloadで呼ばれた関数で出来ないかという事です。
>> 外部ファイル(js外部ファイル?)のwindow.onloadが呼ばれて
>> そこで処理(非表示処理を?)を行いたいと思っています。
そうです。
onload時にしたいことは
「要素の取得」と「そこで取得した要素の非表示化」を行いたいということでしょうか。
なら、window.onloadに
ずらずらgetElementByIdでdisplay=noneすれば解決すると思いますが。
あと、取得した要素をdocumentツリーにぶら下げるのをやめるか、
ツリーにぶら下げる前にその要素のdisplayをnoneにしておいて、ぶら下げるか。
696 :
689:2008/09/12(金) 02:07:49 ID:???
なんとかがんばってみます。
ありがとうございました。
今回は質問者が酷い
698 :
Name_Not_Found:2008/09/12(金) 17:50:29 ID:KXkO7YBk
先頭の文字列「●●」、「▲▲」、「■■」を削除したいのですが、どのようにしたらよいのでしょうか?
-----------
以下のようにやってみましたが、
var str = '▲▲aiueo';
str = str.replace(/^(?:●●|▲▲|■■)/, '');
-----------
このような場合にうまく消えてくれません。
var str = '●●▲▲aiueo';
var str = '■■▲▲●●aiueo';
-----------
gを付けてもダメでした。
whileで回したり、replaceに関数を使用すると出来ますが、正規表現だけで表現するにはどのようにしたらよいのでしょうか?
宜しくお願い致します。
^で先頭にしてるからだろ
str = str.replace(/^(●●|▲▲|■■)+/, '');
/^(?:●●|▲▲|■■)+/
702 :
Name_Not_Found:2008/09/12(金) 20:21:34 ID:KXkO7YBk
あぁぁ・・そうでした(>_<)。有り難う御座います。
ぼーっとしてたのか完全に頭から抜けてました。
助かります。
凸(▼皿▼メ)
functionとreturnというキーワードを短く書けるようにしなかった
JavaScriptは負け組。JavaScriptで10文字超えてる時点で終わってるんだよ。
C も php も負け組か
Java も Python もか …あれ?逆じゃね?
━━━本スレに書く事を許される者は以下の通り━━━━━
−、自ら学んでJavaScriptコードを書く意思を持つ者
あるエレメントの最上位のグローバルオブジェクトが
何であるかを知る方法はありますか?
ウィンドウが一つの場合はグローバルオブジェクトは
windowオブジェクトになるわけですが、
例えば子ウィンドウが10個あるとして、
ある子ウィンドウ中のエレメントを見たときに
その子ウィンドウのグローバルオブジェクトの
参照を得る方法があるのかという質問です。
具体的に言うと
親ウィンドウの関数
window.rcvElement = function(elem){
//ここでelemの最上位オブジェクトの参照を得たい
}
//子ウィンドウから以下のように親ウィンドウにエレメントを渡す
window.opener.rcvElement(window.document.getElementsByTagName("div")[0]);
ゾンビウィンドウを見ていたんですがわからないところがいくつかあったので
教えてください。
window.open(location.href,"","left=" + (x+y) + ",top="+ (y-x)+",width="+x+",height="+y);
この文の
location.href,"" ←これが何を表すか
+x+
"y の最後に”がない理由
この3箇所が分かりません。
悪用する気はありませんのでよろしくお願いします。
次の方どうぞー
変数、演算子、文字列の何たるかを理解していない奴に説明するのはめんどいな。
どうしても分からないので教えてください.
当方 javascript 初心者でちょろっと php を触った事がある,程度のやつです.
やりたい事は,業務で使うメールフォーム作成です.
基本的なメール送信は出来たのですが,どうしても以下の点で躓いてしまって困っています.
メールの本文テンプレートを Subject と連動して自動でテキストエリアに貼付けたい.
以下まではなんとかやってみました.
Subject を html の form(select(option)) として option の value 値にメールの本文テンプレートを格納して,
本文 form(textarea) へ貼付ける.
Subject は php にて subject.txt を読み込んでタグ付けをしている.
<option value=template/$str.txt>$str2</option>
value 値は template/$str.txt としている.
javascript で emplate/$str.txt を開いて,テキストエリアに貼付けてくれるといいんでないかな?と思っているのですが,
中々思う様にいきません.
どうしたら良いでしょうか.
実はもっと簡単な方法があったら教えてください.
この記法は何だろうと思うが
form(select(option))
$str.js として外部 js として呼び出して
こんな風に書いとくのが一番楽だと思う
var template_1 = "hoge\npiyo";
717 :
714:2008/09/15(月) 20:05:34 ID:???
718 :
714:2008/09/15(月) 20:44:19 ID:???
>>716 さん
ありがとうございます.
>この記法は何だろうと思うが
>form(select(option))
失礼しました(汗
form の select の option て意味でした...すみません.
>$str.js として外部 js として呼び出して
>var template_1 = "hoge\npiyo";
外部ファイル .txt を .js としてそのファイルの中を
var template_1 = "
メールテンプレート
.
.
終り
";
とする,で宜しいでしょうか.
今イチ分かった無くて申し訳有りません.
>>718 var template[0] = "メールテンプレート1";
var template[1] = "メールテンプレート2";
ってやった方がさらに楽かもね
document.getElementById('tos').checked = true;
document.getElementById('faudio').checked = true;
722 :
714:2008/09/16(火) 00:57:17 ID:d7tqE8ab
がんばってみましたがどうもうまくいきません.
どうやら根本的に分かっていない様です.
ちょい頂いたとレスをヒントにもうちっとがんばってみます.
ありがとうございます.
723 :
720:2008/09/16(火) 12:43:00 ID:???
724 :
Name_Not_Found:2008/09/17(水) 12:17:07 ID:iHnUnSss
var ary = [{aaa:10},{bbb:200},{ccc:50}];
この入れ子になってるオブジェクトの値をもとに配列をソートしたいんですけど
どうやったらいいでしょうか。
var ary = [{aaa:200},{ccc:50},{bbb:10}];こうしたい。
>>724 最後の行まちがえた
var ary = [{bbb:200},{ccc:50},{aaa:10}];です。
ary.sort(function(a,b){
var a_value, b_value;
for (var i in a) {
a_value = a[i];
}
for (var i in b) {
b_balue = b[i];
}
return a > b ? 1 : -1;
});
あ、間違えた
-return a > b ? 1 : -1;
+return a_value > b_value ? 1 : -1;
>>725 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<h1>test</h1>
<pre><script type="text/javascript">
function show(o) { var s=''; for(k in o) s += k+':'+o[k]+','; return s; }
function val(o) { for(k in o) return o[k]; }
var ary = [{aaa:10},{bbb:200},{ccc:50}];
ary.sort(function(x, y) { return val(y) - val(x); });
for(k in ary) document.writeln(show(ary[k]));
</script></pre>
</body></html>
釣り針がでかいな
>>729 大口叩きたいのなら美しいコード貼ってからどぞ。
自分に言われたと思ったのか
いや別に誰だって同じことさ。
htmlにjavascriptを使っているんですが、エスケープが必要な文字とはどのようなものがあるのでしょうか?
val=" 〜"とこのように使っているのですが。
' \" これだけはエスケープしているのですがエラーが出ることがあります。
ブラウザにでも動作が違うのでしょうか?お願いします。
/ とか
正規表現使ってるならもっとあるよな
もう全部に\つけろ
あらやだ
>>734>>735 レスありがとうございます。/はあってもなぜか通るんですよね。
文字列処理のときはどうやってエスケープしていますか?
もう一つ聞きたいのですが、
str.replaceで「置き換えられる文字がなくなるまで置換える」て感じに出来ないでしょうか?
単体だと置換え文字が何個あろうと1回しか置き換えなくてこまる・・
g
/ はエスケープする必要ないし通るのは当たり前だよ。
ありがとうございます
//g
こうした場合に必要なんですね。勉強になりました。
まとめてある所はないでしょうか
既存の関数をコピーしつつ、オーバーライドする方法はないのでしょうか?
function func_a(){ alert("a1"); }
function func_a(){ alert("a2"); }
でオーバーライドしちゃいますが、func_aの中で元のfunc_aも実行したいです。
>>741 func_aの中で自分自身を呼びたい場合(再帰呼び出し)はどう
区別するわけさ。絶対無理だね。
>>742 古いfunc_aの中で自分自身を再帰呼び出しすることはありません。
>>724 Object.nameを比較してソートする
>>741 適当な変数に保存しておいて呼び出す以外に方法ってあるの?
>>744 Function.prototype.func_aとかで、なんかできそうな気もするのですが
>>744 もうちょっとヒントをください。Object.nameの呼び出し方はどうやるんですか。
func_a = function () {
};
func_a = function (before) {
return function () {
return before();
};
}(func_a);
名前が同じなのに違う振る舞いをさせるって、バグの温床だけどな
>>741 >既存の関数をコピーしつつ、オーバーライドする方法はないのでしょうか?
好きな所にコピーすりゃいいだけだと思うんだけど何が難しいの?
749 :
Name_Not_Found:2008/09/18(木) 02:19:03 ID:2JH9m3W1
thickboxを利用して、htmlを表示しようとしています
パラメータで指定したサイズよりも縦横に少し大きなウインドウが
開いてしまいます
余分な分をあらかじめ引いた数値をwidth,heightに指定すればいいんですが、
別の方法はないかと考えています。
どうしたらいいのでしょう?
(スクロールバーの分、大きく開いてるのかなと思いますが、
スクロールバーは必要ないんです)
750 :
749:2008/09/18(木) 02:27:25 ID:???
thickbox.jsは3.1の通常版(compressedではないほう)を使っています
リンクは現在、以下の形になっています
<a href="page1.html?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=482&width=784&modal=true" class="thickbox">
どなたかアドバイスいただければ幸いです。
オフィシャルを見たりソースを見たりはしたんですが、よくわかりませんでした
よろしくお願いします
>>740 「"」で囲まれた文字列リテラル内の「"」、「'」で囲まれた(略、あとはエスケープ記号の「\」を「\\」くらいじゃないか?
new RegExp("\\d+");
こんな感じで正規表現オブジェクト作成する場合は「\」をエスケープしないとだめだから注意な。
>>751 ありがとうございます。参考になりました
もう一つ質問があるのですが
任意の文字列(たとえば ab12あいcd34うえab12あいcd34うえ )のようにランダムに文字があったとして
2列連続しているアルファベット小文字のみすべて大文字に置き換えるという処理をさせたいのですがどうすればいいのでしょうか?
マッチのさせ方と大文字変換の命令はわかっているんのですがtoUpperCase();どうにもいい方法が思いつきません。
replace の第二引数使え
>>753 使用例を教えていただければ助かります。
第二引数ってどのように使うのでしょうか?
態度でけえよボケ
string.replace(/(.*?)([a-z]{2})/gi, function(str,p1,p2){return p1+p2.toUpperCase();});
これでいけそうです!ありがとうございました
(.*?) これいらなくね
(?_?)
function PreView(oA){
if(! document.createElement) return true;
if(oA.firstChild.nodeValue=='開ける') {
var NewIFRAME = document.createElement('iframe');
NewIFRAME.width='100';
NewIFRAME.height='40';
NewIFRAME.scrolling='no';
oA.parentNode.replaceChild(NewIFRAME,oA);
NewIFRAME.parentNode.insertBefore(oA,NewIFRAME);
NewIFRAME.src=oA.href;
oA.firstChild.nodeValue='閉じる';
} else {
var TargetFrame = oA.nextSibling;
oA.parentNode.removeChild(TargetFrame);
oA.firstChild.nodeValue='開ける';
}
return false;
}
001<a href="file:///C:/Documents%20and%20Settings/001/Favorites/" onclick="return PreView(this);" title="001お気に入り">開ける</a><br>
002<a href="file:///C:/Documents%20and%20Settings/002/Favorites/" onclick="return PreView(this);" title="002お気に入り">開ける</a><br>
iframeの前閉じるの後ろに<br>を入れたいのですがどうすればいいのでしょうか?
j正規表現内に変数を入れることって出来ますか?
// この中に変数x内の文字列を入れたいのですが
763 :
Name_Not_Found:2008/09/19(金) 22:50:39 ID:MXi7vMFv
すいません教えてください
ieとff対応でdivタグ内の文字の表示非表示をクリックして切り替えるスクリプトを書きたいのですが
表示か非表示かの条件判断の書き方がわかりません
ヒントとなるようなキーワードでもかまいませんのでどなたかご教授おねがいします
766 :
Name_Not_Found:2008/09/19(金) 23:01:22 ID:4iTNf8pC
すいませんそちらに移動します
ありがとうございました
スレチだったらすみません。
最近Internet Explorerを最新バージョンに変えたのですが
ようつべでJavaScript がオフになっているか〜と表示されます
最新の Flash Player を入手してください。とも書かれているんですが
サイトへいったら「ダウンロードは成功しました」と表示されます
その度にPCの再起動もしているのですが笑顔やようつべがまったく見れません
どうすればいいのでしょうか?
くたばってください
そしてスレ違い
>>767 そろそろこれもテンプレに入れるべきな気がしてきたw
770 :
Name_Not_Found:2008/09/20(土) 03:58:52 ID:ttlFE8kd
すみません、よければ
>>749の質問にも回答お願いします
まずい質問だったでしょうか?
>>770 開いた後で窓のサイズを調べて大きすぎるぶんだけ
縮めるとか?でもそれもいまいちだと思うから
「ない」というのが答えでは。
>>767 テンプレも読めない奴は2度と来るな!
>>763 もう見てないかな。その要素の「displayされているか否か」を
ブラウザから取ろうとすると面倒なことになる。そんなことしなくても
自分がその要素を表示/非表示から始めることにしてHTML+CSSを書く
んだから、現在どちらなのかをJavaScript側で別の変数なりに覚えて
おくのが簡単だと思うね。
…え?
こ…これは?
質問させてください。
ブログで自作のjava scriptを表示させているのですが、
最近document writeがすべて表示されない時があります。
例えばdocument writeを10回行う外部ファイルを読み込んでいるのに、
途中の3回までしか表示されないという状態になります。
これはどのような原因で起こっていると考えられるでしょうか?
サーバの問題なのでしょうか?
777 :
776:2008/09/20(土) 18:30:14 ID:???
分かりにくいと思いますので、補足させていただくと、
一度表示すると3回までしか実行されないで、
更新すると10回表示され、
されに更新すると7回までしか実行されないなど、
更新のたびに表示が変わります。
>>776 検証したブラウザとソースを書かないと答えようがないだろkz
きちんと書かれているならばそんなことは有り得ないとだけ言っておこう
java scriptだからじゃないw
781 :
776:2008/09/21(日) 09:47:27 ID:???
>>779 あ、そうなんですか・・・
ソースのバグなんですね。
それだけでも十分参考になりました。
ありがとうございました。
ちなみにPHPのプログラムで出力しているソースなので、
かなりきたないんです・・・
document.write()って上書きじゃなかったっけ?
>>781 >ちなみにPHPのプログラムで出力しているソースなので、
>かなりきたないんです・・・
ソースが汚くなる理由にならない
つーか外部にしろ <script type="text/javascript" src="***.js"></script>
785 :
776:2008/09/21(日) 11:00:42 ID:???
だから汚くてもいいからさっさとソース晒せよw
787 :
776:2008/09/21(日) 11:45:00 ID:???
>>786 え、いいんですか?
ムダに長いし、読みにくいですよ?
どこかにupすればいいんでしょうか?
>>787 >>2 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
長い(1レスに入らない)場合はアップロードしてURIを貼る。
789 :
776:2008/09/21(日) 12:24:10 ID:???
>>789 うちの環境では特に問題なく動いた
XP SP2 IE6.0 FF3で確認
url[]の中身が酷いことになってるな。空白だらけ。
fontタグの閉じも変だし。
792 :
776:2008/09/21(日) 13:11:46 ID:???
>>790 普段は普通に動くんです。
たまに途中で止まることがあります。
>>791 urlは気づいてましたが、自動取得なのでしょうがないかなと。
空白を削除する処理を入れたほうがいいですかね?
fontは気づいてなかった!!
ありがとうございます。
空白はreplace(/\s/g, "")で消せば
var link = document.evaluate('//a', document, null, 7, null);
alert(link.snapshotLength);
上記のようなコードで、ページ中に含まれるアンカーの数を取得しようとしていまして、
ほとんどのウェブページでは正常に取得できるのですが、
http://bakera.jp/ebi http://diary.noasobi.net/ の両サイトでは正常に取得できず、「0」と表示されてしまいます。
原因としては何が考えられるでしょうか?
HTMLじゃなくてXHTMLだから
>>795 ありがとうございます。
助かりました。
>>762 var x = "hoge";
var exp = new RegExp("^.*" + x + ".*$", "i");
alert(exp); // /^.*hoge.*$/i
798 :
Name_Not_Found:2008/09/21(日) 22:35:48 ID:Sknwe9Hv
a に付けられたname名(txt001)をjavascriptで取得し変数hensuに値を代入したいのですが
思ったように代入できません。
ただ、name名はサーバ側でスクリプトが自動的につけるので、getElementById("txt001")のようにあらかじめ書けません。
aリンクをクリックしてjavascriptでこのname名を取得する方法をご教授お願いいたします。
どなたかご教授お願い致します
function getid() {
hensu = getElementById();
}
<a href="javascript:getid()" name="txt001"></a>
>>798 hrefからJavaScriptを呼ばないといけないの? onclickを書いて
いいのなら「onclick="alert(this.name)"」とか。
800 :
Name_Not_Found:2008/09/21(日) 23:06:24 ID:Sknwe9Hv
おかげさまでonclickで関数にthis.nameを入れて呼び出したら解決できました
ありがとうございました
A[サーバーaのhtml] → B[サーバーbのiframe] → C[サーバーaのiframe]
という構造のとき、Aから孫フレームであるCに
Permission deniedを回避してアクセスする方法を教えてください。
(GDataみたいなクロスドメイン通信を実装したいと思ってます)
suretigai
配列に小文字のa〜zと0〜9までを格納したいのですが、
これよりスマートな書き方ができると知人に叱責をされました。
もしご存知の方おりましたらご教授お願い致します
Array("a","b","c","d","e","f","g","h","i","j","k","m","l","n","o","p","q","r","s","t","u","v","w","x","y","z",0,1,2,3,4,5,6,7,8,9,0);
>>803 'abcdefghijklmnopqrstuvwxyz0123456789'.split('') とかですかねぇ……。
0-9がstring型になりますが。
"abcdefghijklmnopqrstuvwxyz0123456789".split("")
>>801 フレームCに手が入れられるのなら、Cの中に
「top.framec = window;」
とか入れておいて、フレームAからはこのframecを
参照する、とかでできないかな。試してないけど。
>>803 配列の定義方法じゃなくて
そんな配列を使うこと自体に文句を言われているような気もする
for使うくらいなら
>>803のほうがマシだな。
ひと目で何だか解るし。
a-z,0-9みたいな表記で配列に入れる方法ってなかったっけ?
書こうと思った瞬間ど忘れしたった
配列内包はまだまだ使えないよ
IE8正式版が出てから覚えなおせばいい
ネットうようよしてるとそこそこの確率でスクリプトエラーがでるんだが製作者が間違ってるのだろうか
それともブラウザごとに互換性がないためのエラーなのか・・。
ぷにるでエラーでるように設定してるんだが20サイトに1個はエラーでますね
大抵は外部ファイルの読み込み失敗とかじゃない
可能だけど画像2は何?
見たとおりの説明になってしまいますが、画像2は、画像1と画像3の間にある画像で、
画像1をクリックした時でも、画像2に関しては、特に他の画像への切り替えはありません。
画像2があるのとないので、ソースの記述が変わるといけないと思い、念の為に書かせてもらいました。
817 :Name_Not_Found[sage]:2008/09/24(水) 18:56:01 ID:???
可能だけど画像2は何?
すみません。わかりづらかったようなので、画像を更新しました。
821 :Name_Not_Found[sage]:2008/09/24(水) 19:58:27 ID:???
>>816 少しぐらいはぐぐれアホ
おまえ何でここにいんの?
( ^ω^)できたお
<img id="img1" src="image1.jpg" onclick="this.src='imageA.jpg'; document.getElementById('img3').src='imageC.jpg';">
<img id="img2" src="image2.jpg">
<img id="img3" src="image3.jpg">
824 :
816:2008/09/25(木) 10:23:18 ID:???
>>823 ご教示頂いた方法で、やりたい事が出来ました。
ありがとうございました。感謝。
質問の意味わかんない
関係ないけど td を display:none; にすると table としておかしくなるよな
>>825 洩れもわかんない。「隠してない状態」と「隠した状態」の2つの
表をそれぞれ別に作って貼ってくれない?その2つの間で行き来
できればいいんだよね。
>>826 あれ?と思いFirefoxで表示してみたら
ie6で表示されてた線が消えた上に表示もなんかおかしなことに・・ orz
>>825 exMenu()を実行しなくてもHTMLを表示しただけで発生している問題だから、
JavaScriptじゃなくてスタイルシートのスレに行ったほうがいい気がする
border-collapse: collapseで多少見た目マシになるね
関係ないけどTABLEのオプションとTDのstyleの両方でborderを指定するのって気持ち悪い
830 :
825:2008/09/26(金) 17:55:54 ID:???
>>825 trがあるからその隙間ができるかな。
trの方にmyTable_etcのidつけてdisplay:noneにしておいて、
javascriptの方はdisplay = ''にすればいいと思う
そうするとFirefoxでも移動しないし。
diplay = 'block'だと開いた時にFirefoxで隙間できる。
833 :
825:2008/09/26(金) 19:16:09 ID:???
popとshiftの性能差に驚いた
実装も挙げずに性能を語るな
836 :
Name_Not_Found:2008/09/27(土) 09:30:26 ID:0dqw06Bd
ObjectやArrayのように
[]でアクセスできるオブジェクトを作りたいのですが
どう書けばいいですか?
Hoge.prototype.[] = function (key,value){}
みたいな書き方してみたのですがダメでした
>>836 そんな、自分の脳内で機能や構文をでっちあげるなんて無茶な…
Arrayだってオブジェクトみたいなもんだろ
連想配列の添え字だってプロパティになるんだから
Mathのように、インスタンスにせずにメンバメソッドを使える
オブジェクトにするには、どう書けばいいでしょうか?
クロージャを使うメリットについて質問させて下さい。
グローバル変数やインスタンス側で値を保持するのと比較すると
無駄なメモリを使わないので、パフォーマンスの向上につながると理解しているのですが
javascriptのガーベッジコレクションについて詳しいサイトや書籍をご存じでしたら教えてください
>>839 var Math2 = function () { this._abs = Math.abs(); };
Math2.abs = function (obj) { return (obj instanceof Math2 ? obj : new Math2(obj))._abs; };
>>840 無駄なメモリを使わないんじゃなくね
呼ぼうとする変数はスコープチェーンを辿って探すためグローバル変数へのアクセスは時間がかかる
↓
だから繰り返し使う関数で記憶させておきたい数値がある場合はグローバル変数を使うのではなく
クロージャを使った方がいい
と理解してる
>>843 ありがとうございます。
根本的なところの理解が間違えていたようです。
検索してもでてこないわけですね。
>>839 普通に Hoge = { test: function() { alert(0); } };
846 :
Name_Not_Found:2008/09/28(日) 13:05:39 ID:def440PK
prototype.jsを使っているのですが
$('elemement').innerHTMLの書き換え(レンダリング)完了を
つかむイベントってありましたっけ?
Ajax.Updaterを使うと
うまいことレンダリング後に
onCompleteの内容実行してくれるんですが
仕様的に、Ajax.Request使って複数可変個のhtmlを読み
組み合わせてから出力しなければならないのでUpdaterが使えません。
CGI使えればサーバーサイドで必要htmlまとめて
1リクエストで済むようにするのですが…。
847 :
Name_Not_Found:2008/09/28(日) 14:59:47 ID:def440PK
すみません
>>846解決しました…。
読み込んだ後の処理が根本的に動いてませんでした…orz
読み込み後の処理に使う変数のスコープが
ずれていたことに気づかずにレンダリングが
なされていないと思い込んでました。
スコープ見直したら動作しました。
http://allabout.co.jp/internet/hpcreate/closeup/CU20030721A/index2.htm <script language="JavaScript">
var imglist = new Array(
"flowerA.jpg",
"flowerB.jpg",
"flowerC.gif",
"flowerD.gif" );
var selectnum = Math.floor((Math.random() * 100)) % imglist.length;
var output = "<img src=" + imglist[selectnum] + ">";
document.write(output);
</script>
画像をランダムで表示できると聞いて色々と検索したら
上記のサイトを見つけてランダムに画像を表示する事ができました
ランダムで表示させた画像にリンクを入れたいのですが、どのように変更すればいいのでしょうか?
ご教授お願いします。
>>848 リンクはAタグだからimgをそれで囲めばいいんじゃないの。
HTMLは知ってるんだよね?
Math.floor((Math.random() * 100)) % imglist.length;
何これ
こうでいいじゃん
Math.floor(Math.random() * imglist.length);
スレタイに「中・上級」って入れた方がいいよね。
別に易しい質問でも質問のしかたがまっとうなら構わないのでは。
>>854自己レス
ひとりのユーザが入力したコメントが長すぎてそれに全体が引き伸ばされてるだけだった。
こんな場合には、Firefoxの拡張機能のFirebugなどを使って、
そのエレメントに適用されているスタイルを確認するのが手っ取り速いね。
質問ですが、よくクッキーの値をencodeURI()してからセットするよう教えているサイトがありますが、
$もエスケープしなくていいんですか?
http://www.w3.org/Protocols/rfc2109/rfc2109 の4.2.2
>>
NAME=VALUE
Required. The name of the state information ("cookie") is NAME,
and its value is VALUE. NAMEs that begin with $ are reserved for
other uses and must not be used by applications.
<<
encodeURI()でなくてencodeURIComponent()なら$もエスケープできるのでこちらのほうがクッキーに書く時には推奨ではないですか?
知らんがな
直接言って来い
>>857 洩れもencodeURIComponent()を使うのが正しいと思うね。
世の中の間違ったサイトなんていちいち指摘してらんないよね。
860 :
857:2008/10/01(水) 16:46:41 ID:???
>>859 ご回答ありがとうございます。
間違ったサイトの指摘が目的ではなくて、分からないので何が正しいか知りたいだけです。
857の論拠からするとencodeURIComponent()が正しいと思ったんですが、
encodeURI()でも良いとする理由があるなら知りたいなと思って質問しました。
別に間違っちゃいないだろ。
変換する文字が無ければencodeURI()さえ必要ない。
encodeURI()でも良しとする理由も同じだよ。
気に食わないなら
>>858
>>861 >変換する文字が無ければ
それを判定する処理を毎回入れるのか、
仕様上そのような文字は絶対に入っていないと決められているのかは知らんけど、
仕様変更で無知な第三者が手を加える可能性を考えると、
前もってその対応(エスケープ処理)を実装しておいた方が良いね。
encodeURIはいらない子
toGMTStringに次いでいらない子
お前らなんでescapeとencodeURIsとencodeURIComponentがあるのかちゃんと理解してないだろ。
誰か
>>857-864に教えてやってくれ
var ie = WScript.CreateObject(InternetExplorer.Application,IE_);
for(var i=0; i<WScript.Arguments.length; i++){
ie.Navigate(WScript.Arguments(i));
while(ie.Busy || ie.ReadyState!=4) WScript.Sleep(100);
ie.ExecWB(6,2,3);
}
htmlをD&Dでダイアログを出さずに印刷しようと思って、
↑のようなスクリプトを書いたのですが、
Sleepが上手く利かずプリンタに放り込まれる
順番がバラバラになってしまいます。
どこが悪いのか教えて頂けませんでしょうか。
escapeは非ASCII文字に対して、正しく機能しないんじゃなかったけ
ブラウザ間の互換性も悪いし
WSHじゃなくてIEの問題だろ
ie.ExecWB(6,2,3);
が非同期で待ち合わせ方法がないので無理だろ
ie.ExecWB(6,2,3);
WScript.Sleep(100000);
とでもして我慢するんだな
870 :
Name_Not_Found:2008/10/01(水) 22:33:05 ID:muL0j2+8
すみません。質問です。
このスレはJavaScriptに精通した人じゃないと書き込んじゃいけないのは
じゅうじゅう承知です。
でもそれを踏まえて、質問しちゃいます。
ボタン押すたびに数字が変わるプログラム
イメージとしてはさ
000-999まで3桁の数字が
スペースキー押すたびにランダムで変わる
そんなプログラムをメモ帳に貼り付けて、htmlで保存して
遊びたいんだけどね
できるものですか?
872 :
Name_Not_Found:2008/10/01(水) 22:40:07 ID:muL0j2+8
>>871 おお!!
ちょちょちょって簡単にできちゃうものですか?
>>872 >>870の内容程度ならちょちょちょって簡単にできる
同じ数字が揃った時やある特定の数字が揃ったときにイベントを発生させることもできる
詳しくは手取り足取りスレ池
874 :
Name_Not_Found:2008/10/01(水) 23:00:28 ID:muL0j2+8
>>871 ちょとさんま食べてて返事遅くなった
ごめんね。
ちょちょちょなのか。すごいな。
手取り足取りスレがどこにあるのかわかんないってのもあるけど
871さんに手取り足取り教えてもらうのは
できないですか?
>>874 javascript スロットでググって好きなの弄って使え
876 :
Name_Not_Found:2008/10/01(水) 23:12:34 ID:muL0j2+8
>>875 思っていた以上の仕上がりです!
ありがとうございました。
ie.ExecWB(6,2,3);
第3引数はVARIANT of type VT_I2でないと駄目なので
JScriptでは待ち合わせできない。VBScript使ってこと
>>874 >935 名前: Name_Not_Found Mail: 投稿日: 2008/10/01(水) 23:04:13 ID: muL0j2+8
>すみません。お願いです。
>いろいろあってここにたどりつきました。
>
>「ボタン押すたびに数字が変わるプログラム 」
>みたいなの作ってもらえませんか?
>
>イメージとしては
>000-999まで3桁の数字が
>スペースキー押すたびにランダムで変わる
>
>そんなプログラムをメモ帳に貼り付けて、htmlで保存して
>遊びたいんだ
>
>できるものですか?
おまえシネよ
スクリプト書こうという意志が全く感じられないレスにマジレスするからだろ
たまにタメグチを織り交ぜてるところがムカつくよね
簡単な質問はGoogleのキーワード提示ですむから受け流せ
お前らってほんと馬鹿だよなwwwwwwwwwwww
886 :
Name_Not_Found:2008/10/02(木) 05:24:48 ID:4xAYpAle
ドラッグ&ドロップを実現しようとしています。
ドラッグを開始したら、対象オブジェクトのコピーを作り、半透明にして、
マウスの動きに追従させています。
ドロップの判定は、ドロップを受け入れるオブジェクトにハンドラを付けて
行おうと思うのですが、マウスに追従させているオブジェクトに
イベントが飲み込まれてしまい、うまく判定ができません。
あるオブジェクトにイベントをスルーさせるにはどうしたらいいのでしょうか?
>>869>>877 なるほどです。
素直にVBScriptを使う事にします。
ありがとうございました。
Complex.prototype.valueOf = new Function("return this.real");
というのがサイ本にありましたが、なぜfunction(){ return this.real }ではなくてFunctionコンストラクタを使うんですか?
メリットがあるとしたらどんなことでしょう?
サイ本持ってないけどクロージャにならない所とかかな?
890 :
888:2008/10/02(木) 13:34:38 ID:???
>>889 そうです。
Complex.prototype.valueOf = function(){ return this.real };
でも動くかと思います。
だから、わざわざコンストラクタを使うのはなぜか不思議に思いました。
終わりよければすべてよし
関数式を書けるのはJavaScript 1.5からじゃなかったか。
それ以前のバージョンならFunctionコンストラクタを使わざるをえないわな。
893 :
888:2008/10/03(金) 07:36:22 ID:???
>>889 今読み返すとトンチンカンなレスをしてしまっていました。すみません。
クロージャにならない所がnew Function()を使う利点ということだったんですね。
それはどうしてですか?
>>892 サイ本の他の箇所ではバリバリ関数式を使っているのでちょっとそれは考えにくいかもしれません。
でも、ECMAScript3で関数式が導入されたのを知らなかったので勉強になりました。
IEで言えば5.5以前ですがそんな古いのをサポートする状況はめったにないと思います。
>IEで言えば5.5以前ですがそんな古いのをサポートする状況はめったにないと思います。
勝手に決め付けるなよwメリットを聞きたいんじゃないのか?
>>893 >それはどうしてですか?
適当に言ってみただけだけど、
スコープチェーンを断ち切れるので場合によってはメリットになります。
本の前後の流れを読まないと何も言えませんねすみません。
ちなみにさっき確認してみたけど
関数式は IE4、NC4.03(JS1.3?) でも動く。
NN3.04(JS1.1?)だとダメで、new Functionに書き変えたら通った。
余談ですがNN3.04を起動すると最初に表示されるNetscapeのホームページが
JavaScript Errorダイアログの嵐でどう見てもブラクラです本当にありがとうございました
896 :
888:2008/10/03(金) 11:00:23 ID:???
IE5.5以前というと10年以上前のブラウザになるので、そこまで古いブラウザのサポートなどしないと思っていました。
でも、場合によってはそういうサポートの必要があるのかもしれないのでメリットの一つと言えるかもしれませんね。
せっかくいただいた意見に否定的な返事をして申し訳ありませんでした。
897 :
888:2008/10/03(金) 11:14:32 ID:???
>>895 new Function()だとグローバルスコープになるということを仰っているのだと思います。
前後の流れといってもサイ本のリファレンス部分(第5版訳書のp115、Object.valueOf()の解説部分)なので、本当にこれだけです。
お察しの通り、これは複素数を表すオブジェクトを数値として扱う時に使うメソッドで、本文では
var c = new Complex(2,3); // 複素数2+3i
のようなオブジェクトを虚数部分を切り捨てて実数2として扱いたいような時のために
こういうメソッド(数学記号で書くと Re z)を定義しておくといい
という説明があるだけで、コード自体は本当に
>>888の1行だけです。
確かにスコープチェインを断ち切れるというのはメリットにはなりえますが、
javascriptの入門書に出す例としてはどうなのかなと疑問に思います。
わざわざご確認してくださってありがとうございます。
相当古いブラウザでも関数式が動くんですね。
898 :
Name_Not_Found:2008/10/03(金) 11:36:13 ID:ihTF5Itp
蔵が、ナビゲーションのボタンにマウスオーバーしたら、
AのボタンならAの画像、BのボタンならBの画像と、
ページの背景の画像が変わるようにして欲しいと言っています。
onClick="document.bgColor='#FF0000'"
で色なら変えれるようですが、
画像を変更することはできるのでしょうか。。。
可能であれば、
Aのボタンにマウスオーバー→cssで#a-backに切り替わる
Bのボタンにマウスオーバー→cssで#b-backに切り替わる
という風にしたいのですが、最悪cssでなくても、
背景画像さえ変更できればと考えています。
JavaScriptはあまりわからないため、
実現できるかどうかもわかりません。
お助けください。。。
>>898 onmouseover="document.body.backgroundImage = 'url(xxx.png)'"
金とってんならちっとは勉強しなよ。
蔵ってブラウザかと思ったら顧客かよw
死ねwwwww
そこからもらってるカネで生活してるくせして
客を蔵とは何事だ。バチがあたるぞそのうち。
クライアント→蔵 だと思ってたんだが、
>>901は違うことを考えていたのだろうか。
金づるだから蔵?
Web制作板で蔵=clientが分からない方がおかしいだろ。
この場合はUAのことだろ
ウーアとは懐かしいな。
今はもう歌ってないんだろうか。
906 :
sage:2008/10/03(金) 13:21:35 ID:f8IzqVMb
URLエンコードくらいしろよ
と言いたいところだがsage間違ってるし釣られたか?
次世代JSだとそれでいいんですよね。
それなら次世代JSで実行したらいいじゃない
910 :
Name_Not_Found:2008/10/03(金) 19:04:28 ID:VHcBshOb
チェックボックスにチェック入れると連動してテキストボックスに文字が入るのって出来る?
sageにチェック入れるとアドレス欄にsageって入るような奴
誰か頼む。
912 :
Name_Not_Found:2008/10/03(金) 19:46:10 ID:VHcBshOb
スレチみたいね。
ごめん
900超えたのでテンプレ論議あれば今どうぞ。
道場訓を昔に戻して今の
>>1にあるのを工夫してどっかに入れると?
914 :
Name_Not_Found:2008/10/04(土) 08:58:38 ID:X+gRChen
<div id="tgt"><a href="">link</a></div>ってなってて、cssで
aタグのwidth,height,background-imageを設定してるとします。
で、getElementById('tgt')でaタグの親のdivを取得できるんですが、
それを手がかりにaタグの背景を変更することは出来るでしょうか?
もし可能であれば教えてもらえるとうれしいです
それともやはり、aタグ自体にIdを振っておかないとダメでしょうか?
DOM嫁
>>914 本当に<div>の中に<a>が直ちにあるのなら
document.getElementById('tgt').firstChild
がそのa要素のはずだけど。改行とかはさまってたらだめだからね。
document.getElementById('tgt').getElementsByTagName('a')[0]
>>916-917 うおお、親切な回答ありがとうございます!
DOMの本一冊買って勉強してみます、ほんとにありがとう〜
%HOGE% と \%HOGE% があるとき
\%HOGE%の方にはマッチしない正規表現はどう書けばいいですか?
もうひとつ、否定後読み ?<! に対応しているブラウザはありますか?
>>1 >−、質問をきちんと分かる日本語で説明できる者
「きちんと」はどこへ掛かる?
−、質問を分かる日本語できちんと説明できる者
の方がベター?
/[^\\]%HOGE%/
>>921 条件の説明不足でした。
%HOGE%は文字列中のどこに出現するかわかりません。
foo%HOGE%bar
%HOGE%
\%HOGE%
foo\%HOGE%bar
/[^\\]%HOGE%/
これだと文字列の先頭に出た場合にマッチしません。
/(?<!\\)%HOGE%/
とできればいいんですが一般のブラウザのJavascriptエンジンは
否定後読みに対応していません。
>>922 じゃあ先頭も……。
/(?:[^\\]|^)%HOGE%/
924 :
Name_Not_Found:2008/10/05(日) 22:15:09 ID:qmdtgKHO
PDFのブラウザ内表示とJavaScriptによる表示制御で困っています。
【環境】WindowsXP/InternetExplorer6/Acrobat9
・index.html
<frameset rows="*,70">
<frameset cols="1%, 99%">
<frame src="XXX.html", name="XXX">
<frame src="YYY.pdf", name="main">
</frameset>
<frame src="menu.html", name="menu">
</frameset>
・XXX.html
(ブランクページ)
・manu.html
<html><head>
<script type="text/javascript">
<!--
function reload(){
parent.main.location.reload();
}
//-->
</script></head>
<body>
<a href="#" onClick="reload()"><img src="reload.jpg"></a>
</body></html>
925 :
924:2008/10/05(日) 22:15:49 ID:qmdtgKHO
>>924の構成で、ブラウザ内にPDFを表示しています。
PDF内に他のPDF文書へのリンクが設定されており、mainフレーム内で表示します。で、問題なのですが
YYY.pdf表示 → YYY.pdf内のZZZ.pdfへのリンククリック → ZZZ.pdfをmainフレームに表示 と動作させ、
menu.htmlのreload()を動作させると、mainフレームにYYY.pdfが表示されてしまいます。
mainフレーム内にZZZ.pdfをリロードさせたいのですがどのようにすればよいでしょうか?
ご教授のほどよろしくお願いします。
このスレと何の関係があるん?
>>925 mainフレーム内にどのPDFが表示されているかは分かるの?
適当なタイミングで「alert(top.frames.location.href)」を
実行させてテストしてみては。分かるのであればreload後に
改めて「top.frames.location.href=表示させるべきPDF」を
実行させれば済むんじゃないかな。もちろん全部自鯖でないと
無理だけど。
928 :
Name_Not_Found:2008/10/05(日) 23:13:42 ID:fX51YEnk
Javascriptで指定の座標の色を取得するにはどうしたらいいでしょうか。もしできるのであれば教えてください。
929 :
924-925:2008/10/05(日) 23:28:20 ID:qmdtgKHO
>>927様
レスありがとうございます。menu.htmlでparent.main.location.reload()の前に
alert(parent.main.location);
alert(top.frames["main"].location);
alert(top.main.location);
を挿入し、YYY.pdf表示→ZZZ.pdf表示→reload()を試してみましたが、
すべて
http://〜/YYY.pdf しか取れない状態でした。
そらまあそうやろね
>>923 どう質問したらいいかわからなくなってきたので
具体的にやりたいことを示します。
function conv(val){
var list = {HOGE:"foo",FOO:"bar"};
var reg = /%(\w+)%/g;
val = val.replace(reg,function(whole,p1){
return list[p1];
});
return val;
}
var str = "c:\\hoge\\%HOGE%\\%FOO%.txt";
alert(conv(str)); //「c:\hoge\foo\bar.txt」
上記コードでstr中の%〜%をconvが理解できる形式でエスケープして
%HOGE%という文字列を変換せずに
alert(conv(str)); //「c:\hoge\%HOGE%\bar.txt」
と表示させたい場合どう修正すればいいですか?
例えば以下のような形式で%HOGE%をエスケープする場合の
conv中の処理の仕方が思いつきません。
var str = "c:\\hoge\\\\%HOGE%\\%FOO%.txt";
>>928 カラーピッカーとかじゃなくて?
画面中の画像とかそう言うのも含めて
指定座標に表示されている色を取得するってのは
Javascriptだけじゃ無理じゃないかな
933 :
Name_Not_Found:2008/10/06(月) 06:35:26 ID:MZBbEznn
>>931 convの中でまず「\%」を文字列中に現れないような
別の記号に置き換え、現在のconvの処理を行い、最後に
その別の記号を「%」に戻す。
>>923 お前もうそろそろ死ねよ。いい加減にしろ
いつもいつも面白いと思ってやってんの?
>>931 戻り読みはJS1.8でも無理だからまだまだ使えない
基本は
>>934の考え方でいいけど、有効なエスケープ文字は /(?<!\\)\\/ だから
同じことを
>>934の前で /\\\\/ に対してもやらないと駄目
別の文字は '\x02' とか '\x03' あたりで
936 :
931:2008/10/06(月) 10:51:49 ID:???
>>934 >>935 ありがとうございます。
以下のコードで意図した動作になりました。
function conv(str){
var list = {HOGE:"foo",FOO:"bar"};
var escBackSlash = "\0x02";
var escVariable = "\0x03";
return str
.replace(/\\\\/g,escBackSlash)
.replace(/\\%/g,escVariable)
.replace(/%(\w+)%/g,function(whole,p1){return list[p1]})
.replace(new RegExp(escBackSlash,"g"),"\\")
.replace(new RegExp(escVariable,"g"),"%");
}
var str = "c:\\hoge\\\\%HOGE%\\\\%FOO%.txt";
alert(conv(str)); //c:\hoge\foo\bar.txt
var str = "c:\\hoge\\\\\\%HOGE%\\\\%FOO%.txt";
alert(conv(str)); //c:\%HOGE%\foo\bar.txt
こういうことですよね?
あと、扱う文字列がパスだけではないので
strに \0x02 や \0x03 が含まれる可能性がないとも言い切れないんですが
\0x02 や \0x03 の代わりにGUIDなんかにした方がいいんでしょうか・・・?
937 :
931:2008/10/06(月) 10:57:17 ID:???
>>936 間違えました
\0x02 \0x03 ではなくて
\x02 \x03 ですね
MacのSafari3になってから右クリックの後はmouseoverやmouseoutのイベントを
一切受け付けなくなってしまいました。一度画面内のどこかをクリックすれば正常
に受け付けるようになります。Mac Safari2やWin Safari3では発生しない現象です。
回避策を探しているのですがここはスレ違いでしょうか?その場合ふさわしいスレを
教えてもらえると助かります。
バグなら回避しようが無いんじゃないかなぁ
>>937 そういうことだけどこうじゃないの?
.replace(new RegExp(escBackSlash, "g"), "\\\\");
.replace(new RegExp(escVariable, "g"), "\\%");
こういう方法でやる以上、どこまでユニークにしてもスマートじゃないしなによりキリが無いから
好きな文字を使えばいいよ
ただあんまり長いと遅くなるから。
941 :
931:2008/10/06(月) 13:20:54 ID:???
>>940 他にも間違いがあったのでとりあえず現在のコードを貼ります。
function conv(str){
var list = {HOGE:"foo",FOO:"bar"};
var escBackSlash = "\x02";
var escVariable = "\x03";
return str
.replace(/\\\\/g,escBackSlash)
.replace(/\\%/g,escVariable)
.replace(/%(\w+)%/g,function(whole,p1){return list[p1]})
.replace(new RegExp(escBackSlash,"g"),"\\")
.replace(new RegExp(escVariable,"g"),"%");
}
var str = "c:\\hoge\\\\%HOGE%\\\\%FOO%.txt";
alert(conv(str)); //c:\hoge\foo\bar.txt
var str = "c:\\hoge\\\\\\%HOGE%\\\\%FOO%.txt";
alert(conv(str)); //c:\hoge\%HOGE%\bar.txt
正直すごく混乱してきました。整理します。
\\%HOGE% の \\ は %HOGE% をエスケープするためのもの。
%HOGE%を変換したい場合はエスケープしていない %HOGE% が必要。
しかしセパレータの \\ をつけて \\%HOGE% とするとエスケープされるので
セパレータの \\ をエスケープする \\ をつけて \\\\%HOGE% とする。
つまり \\\\ はパスセパレータだから最終的に \\ にならなければならない。
%HOGE% をエスケープした \\%HOGE% の \\% は %HOGE% をそのまま表示するためのものだから
最終的には \\%HOGE% ではなく %HOGE% を出力しなければならない。
という理由で↓こうなったんですが・・・
.replace(new RegExp(escBackSlash,"g"),"\\")
.replace(new RegExp(escVariable,"g"),"%");
942 :
931:2008/10/06(月) 13:40:41 ID:???
さらに、
c:\\hoge\\\\%HOGE%\\\\%FOO%.txt の
\\\\がセパレータなのだとしたらc:\\hogeの\\はなんなのか?
エスケープに関して二つのルールを同時に適用している状態?
統一してc:\\\\hogeとするべきなのかとも思うけどそれもおかしな話な気がする。
%HOGE%のエスケープに\\を使うのがそもそもの間違い?
それとも%HOGE%はエスケープできないという仕様にすべきか?
でもフォルダ名、ファイル名に%は使える。
・・・すいません誰か整理してくださいw
とりあえずセパレータとしての \ はエスケープ文字じゃないから
>%HOGE%のエスケープに\\を使うのがそもそもの間違い?
ということ
今回の質問内容は戻り読みに代わる処理方法だったわけだから
退避させるために置換した文字たちは同じように元に戻さないと駄目
クックブックのp52ですが、「あるエンティティに関連したデータがグローバル領域にあり、何度も参照する必要がある場合はオブジェクトを使うべきでしょう」
というのはどういう意味ですか?
前の文章ではオブジェクト指向の経験をjavascriptに持ち込み過ぎることの弊害が書かれていました。
イベントデリゲーションについて質問です。
<div id="images">
<img id="img1" (略)>
<img id="img2" (略)>
(略)
<img id="img10" (略)>
</div>
に対して、onloadで次のようにイベントを設定しています。
for(i=1; i<=10; i++) {
img=document.getElementById('img'+i);
img.onclick=function(){ hoge(this) };
}
これを個々のimgではなく、その親の<div id="images">でイベントを監視する
方法があるようですが、具体的なやり方がわかりません。
どのようにすればいいのか、教えてください。
それと、テンプレ
>>4 のQ14の意味が理解できません。
上の
img.onclick=function(){ hoge(this) };
は問題があるのでしょうか?
以上、よろしくお願いします。
946 :
931:2008/10/06(月) 18:30:48 ID:???
>>943 >今回の質問内容は戻り読みに代わる処理方法だったわけだから
>退避させるために置換した文字たちは同じように元に戻さないと駄目
確かにそうですね。
ということで仕切り直します。
戻り読みに代わる処理方法としては問題ないようなので後は
「%HOGE% のエスケープに \\ 以外の文字を使う」
ということになると思いますが、
どの文字を使うのが一番問題が少なそうですか?
または根本的に違うアプローチにしたほうがいいのでしょうか
947 :
928:2008/10/06(月) 19:21:21 ID:???
>>932 わかりました。ありがとうございます。m(_ _)m
>>945 >イベントデリゲーション
アホ外人氏の出番ですな
>テンプレ
>>4 のQ14の意味が理解できません。
解り難いねこれ。
「thisを含めたい」だけじゃ目的が解らないし、
回答も var x = this; とするだけで済む所をややこしい書き方して余計に難解にしてる。
とりあえず
>>945のコードとは関係無いし問題も無いかと。
>>945 document.getElementById('images').onclick = function(evt) {
evt = evt || event; // バカIEをfixして
var tgt = evt.target || evt.srcElement; // バカIEはsrcElementだっけ?
if (tgt.tagName.toLowerCase() != 'img') return;
// tgtはimg要素
hoge(tgt);
};
上書き可能なonclickプロパティでデリゲーションしても危険なだけだろjk
>>950 attachEvent/detachEvent
addEventListener/removeEventListener
てこと?
952 :
923:2008/10/06(月) 22:47:31 ID:???
故意犯だから
新スレは975超えたら。FAQのQ14を手直ししたいなら大体案を。
旧道場訓に戻したいという人は現れなかったようだね。
956 :
945:2008/10/07(火) 10:46:34 ID:???
>>948-951 レスありがとうございます。
>>949 丁寧にありがとうございます。
event target srcElement でググってきます。
質問です。例えば、
var object = document.all('hoge')とかおいて、後で
object.value見たいにして呼び出すようにすると動作が遅くなった
り、コード読み取りに負担を掛けたりしますか。1つ2つならいいと思う
としても、たくさんあるとやはり問題でしょうか。
>>957 必要なら書けばいい
それよりメル欄自重w
沢山て数十万個とか?
動的に要素が追加されたり削除されたりすることがないことが保障されてるんなら
静的キャッシュでも作れば少しは軽くなるんじゃないの
961 :
957:2008/10/07(火) 23:19:40 ID:???
>>958~960さん
貴重なアドバイスありがとうございました。
js文字列にマッチする正規表現をRegExpコンストラクタで作る例なんですが、
new RegExp("\"(?:\\.|[^\\\\\\\"])*\"", 'g')
の
\\.
の部分がなぜ必要なのか分かりません。
new RegExp("\"[^\\\\\\\"]*\"", 'g')
では駄目ですか?
963 :
962:2008/10/08(水) 16:03:23 ID:???
あっ自己解決しました。エスケープシーケンスにマッチするためですね。
なんで分からなかったのか不思議です。
よく調べていると
>>963は間違いだと分かりました。
"\19800"のような文字列にマッチさせるために必要、の間違いでした。訂正します。
あと、
>>962の例は間違いでした。
new RegExp("\"(?:\\.|[^\\\\\\\"])*\"", 'g')
では"\19800"にマッチしないので
new RegExp("\"(?:\\\\.|[^\\\\\\\"])*\"", 'g')
が正解でした。
これで正しいでしょうか?間違いがあれば指摘お願いします。
965 :
962:2008/10/08(水) 16:18:36 ID:???
>>964は"\19800"ではなくて"\\19800"でした。頭混乱してました。すみません。
new RegExp('"(?:[^"]|\\\\")*"', 'g')
/"(?:[^"]|\\")*"/g
正確にはjavascriptの質問ではないですが。
Canvasタグに関しての質問で
function a(){
Canvasタグの処理(以下略)
}
function b(){
Canvasタグの処理(以下略)
}
と二つの図形をCanvasで描画してそれぞれのidを別とした場合、
それを同時に画面に出したいのですが、どうすれば良いのでしょうか?
関数実行中は画面の再描画がされないから、一つの関数にまとめれば見た目的には同時に出力されるんじゃない?
試してないからわかんないので報告お願い
(function(){})(a();
);
ごめん 編集途中で書き込まれた
(function(){
a();
b();
})();
970 :
962:2008/10/08(水) 17:35:51 ID:???
>>966 簡潔ですね。ただし、その場合だと'\\\'のように不正なリテラルにもマッチします。
/"(?:[^"\\]|\\.)*"/
972 :
962:2008/10/08(水) 19:16:51 ID:???
973 :
967:2008/10/08(水) 22:09:59 ID:???
>>968 ありがとうございます。
少しこちらの説明が抜けていましたので訂正します、手間かけさせてすいません。
Canvasタグを使う際、描画した関数にIDをつけて
<body onload="関数名">
<canvas id="描画した図のID" width=〜 height=〜>
</canvas>
</body>
のようにすれば出力されるのですが。
これをaとbで分けると、両方を出したいのにどちらか一方しか出せないという事態になります。
ここで、新しい関数を作ってそこにaとbを出し、IDを指定してやれば出るのでは?と思い実行してみましたが。
結果は出ませんでした。やはりこのような方法では無理なんでしょうか?
ごめん何いってんのか分からん
IEのfilterについて質問です。
■CSS
div.test{
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop,src="foo.png");
/* foo.png は透過png */
}
■JS
var div = document.createElement("div");
div.className = "test";
document.body.appendChild(div);
var cs = div.currentStyle || document.defaultView.getComputedStyle(div,"");
div.onclick = function(){
div.style.filter = cs.filter + "¥n" + "alpha(opacity=100)"
}
上記のようにAlphaImageLoaderで透過pngを貼った要素に対して、
alphaで透明度を100にすると、手元のXPSP2/IE7ではpngが透過では
なくなってしまうようです(黒ベタ塗り60%透過のpngで試しました)。
これは仕様ですかね?
976 :
Name_Not_Found:2008/10/10(金) 14:33:01 ID:olgLrLH/
CGIに埋め込んでるんですが
document.write("<input type=\\"text\\" size=\\"18\\" name=\\"name"+(i+1)+"\\" value=\\"$name"+(i+1)+"\\">");
この$name と数字を連結する方法ないですか?
$nameしか反映しない
>>976 どうなって欲しいのがどうなってしまうのかよくわからないんだけど。
978 :
Name_Not_Found:2008/10/10(金) 14:58:03 ID:olgLrLH/
>>977 $nameに入るべき数字が「あ」だった場合
valueに「あ1」とか「あ2」とか、$nameに入ってるものの語尾に(i+1)の数字そのものが一緒に出てくる
>>976 エスパーになったつもりで答えると、
$nameの中身が数字で、valueに「$name+i+1」の値を入れたいなら↓
document.write("<input type=\\"text\\" size=\\"18\\" name=\\"name"+(i+1)+"\\" value=\\""+($name+i+1)+"\\">");
valueに「$name(i+1)」という名前の変数の中身を入れたいならCGI側のプログラム言語の問題でスレ違い。
>>978 で、今はどのようにうまくないって?
「document.write("<」を削除して画面に表示させ
どのようになってるか見て確認したらいいかも。
>>975 そですか。ありがとう。
>>976 回答まちのあいだにエスパー発動
1.実際に出力したいのはこう
<input type="text" size="18" name="%%%%%%" value="###%%%">
2.JSでdocument.writeに文字列として渡す為にクォートをエスケープ、%%%%%%は変数なので切り離す
document.write("<input type=¥"text¥" size=¥"18¥" name=¥"" + "%%%%%%" + "¥" value=¥"###" + "%%%" + "¥">");
3."%%%%%%"をJSの変数に置き換える
document.write("<input type=¥"text¥" size=¥"18¥" name=¥"" + name+(i+1) + "¥" value=¥"###" + (i+1) + "¥">");
4.とりあえずエスケープされたクォートを仮に★に置き換え
document.write("<input type=★text★ size=★18★ name=★" + name+(i+1) + "★ value=★###" + (i+1) + "★>");
5.echoに文字列として渡す為にクォートをエスケープ
echo "document.write(¥"<input type=★text★ size=★18★ name=★¥" + name+(i+1) + ¥"★ value=★###¥" + (i+1) + ¥"★>¥");";
6.エスケープ文字もエスケープして★を元に戻す(★ => ¥¥")、######は変数なので切り離す
echo "document.write(¥"<input type=¥¥"text¥¥" size=¥¥"18¥¥" name=¥¥"¥" + name+(i+1) + ¥"¥¥" value=¥¥"" + "###" + "¥" + (i+1) + ¥"¥¥">¥");";
7."######"をCGIの変数に置き換える
echo "document.write(¥"<input type=¥¥"text¥¥" size=¥¥"18¥¥" name=¥¥"¥" + name+(i+1) + ¥"¥¥" value=¥¥"" + $name + "¥" + (i+1) + ¥"¥¥">¥");";
984 :
982:2008/10/10(金) 15:21:05 ID:???
つか、CGIの言語がわからん。
echoの引数を+でつなげる言語ってなんだ?
985 :
982:2008/10/10(金) 15:24:20 ID:VFYbeZHW
phpだと.でつなぐ。
6.エスケープ文字もエスケープして★を元に戻す(★ => ¥¥")、######は変数に置き換える
echo "document.write(¥"<input type=¥¥"text¥¥" size=¥¥"18¥¥" name=¥¥"¥" + name+(i+1) + ¥"¥¥" value=¥¥"".$name."¥" + (i+1) + ¥"¥¥">¥");";
7.おしまい。
>>980 スレ違いの方でした
ジャバで連結できるのかと思っていました
ごめんなさい
>>981 今は出力するはずの物が「あ」だったら
あ1
あ2
あ3
あ4
あ5
こうなってる
>>982−985
分かりやすくありがとうございました
頑張ります
GreaseMonkeyのスクリプトとして書いたのですが、これを一つのスクリプトにしたいんです。
そのまま一つのファイルにしたら上のスクリプトしか動かないし、if文の条件で出来るのでしょうか。
どなたか改善方法をおねがいします。
// ==UserScript==
// @name 1yen_bid_units
// @namespace
// @description 入札価格を1円
// @include
https://sa.step.rakuten.co.jp/* // ==/UserScript==
document.getElementsByName("bid_units")[0].value = "1";
document.forms[num].bid_units.value = "1";
document.forms[num].childNodes[1].value = "1";
// ==UserScript==
// @name 1yen_bid_price
// @namespace
// @description 入札個数を1個
// @include
https://sa.step.rakuten.co.jp/* // ==/UserScript==
document.getElementsByName("bid_price")[0].value = "1";
document.forms[num].bid_price.value = "1";
document.forms[num].childNodes[1].value = "1";