のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,490,786人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

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

元スレ+ JavaScript の質問用スレッド vol.101 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
101 : Name_Not - 2012/06/18(月) 17:10:28.73 ID:??? (+45,+17,-15)
関係ないdivを操作するのをやめるべき
102 : Name_Not - 2012/06/18(月) 17:21:54.39 ID:??? (+63,-30,-293)
$ifrObj = $("<iframe src='http://www.yahoo.co.jp'></iframe>").appendTo(document.body);
$ifrObj.contents().ready(function(){
var title = $ifrObj.contents().find("title");
console.log(title);
});

こんなふうに、iframeを動的に生成して、内部に読み込んだコンテンツの
titleタグのテキストを取得したいのですが、結果がカラになってしまいます。
chromeの開発者ツールで見ると、コンテンツはちゃんと読み込まれているんですが
(iframeの直下に「#document」というノードができて、その中にコンテンツが
読み込まれています。)

動的に生成したiframe内コンテンツから、情報を取得するには
どうすればいいのでしょうか?
103 : Name_Not - 2012/06/18(月) 17:22:47.12 ID:??? (+63,+4,+0)
別ドメインは無理
104 : Name_Not - 2012/06/18(月) 17:23:48.56 ID:??? (-1,-29,-4)
あとYahooはiframe内に出せないでしょ?
105 : 102 - 2012/06/18(月) 18:30:28.20 ID:??? (+3,-30,-99)
とりあえず、ローカルファイルを
file://
で開く形式で、yahooのコンテンツはiframeに表示できています。
用途的にもfile://でファイルを開いて使いたいので、
iframeに表示できているコンテンツの情報は取得したいです。

iframe
 |
 +-> #document
   |
   +-> <html>
     |
     +-> <body>~</body>

となっている場合、html以下にはどうアクセスすりゃいいのでしょう?
106 : Name_Not - 2012/06/18(月) 18:41:47.61 ID:??? (+52,+29,-5)
後出しするクズはスルーよろ
107 : Name_Not - 2012/06/18(月) 19:01:50.63 ID:??? (+30,+2,-16)
拡張化してクロスドメインの制限解除すればいい
108 : Name_Not - 2012/06/18(月) 19:02:00.04 ID:??? (+3,-30,-176)
var div = document.createElement('div');
var div2 = div.cloneNode();
div.id = 'div1';
div2.id = 'div2';
div.appendChild(div2);

こんな感じで、外のスコープに<div id="div1"><div id="div2"></div></div>を作ったのですが、
appendしたあとdiv2は不要なので、下のように修正しました。

var div = (function() {
var a = document.createElement('div');
var b = div.cloneNode();
a.id = 'div1';
b.id = 'div2';
a.appendChild(b);
return a;
})();

実はこの書き方をよく知らないで書いたらたまたまうまくできたってだけなのですが、
このdivは関数ではないので、何度呼び出しても1つまでしか生成されませんよね?
109 : Name_Not - 2012/06/18(月) 20:57:32.91 ID:??? (+66,+29,-18)
>>102
不正します的なオーラが漂いまくってるので教えられない。

ちょっとだけいうと>>103のいうのがヒントでjavascriptでなければできる。
110 : Name_Not - 2012/06/18(月) 21:31:40.77 ID:??? (+57,+29,-7)
107も答え

質問者が怪し過ぎる
そのうち逮捕でもされるんじゃないか
111 : Name_Not - 2012/06/18(月) 23:37:34.98 ID:??? (+13,-29,-110)
removeEventListenerって使いますか?
使い道がよくわかりません・・・
unload時に登録してたリスナーを片っ端から消すとかですか?
もしそうだった場合登録したリスナーに無名関数を渡していた場合
どうやって削除するのでしょう?
112 : Name_Not - 2012/06/18(月) 23:39:11.79 ID:??? (+58,+6,+0)
使わない
113 : 111 - 2012/06/19(火) 00:12:42.38 ID:??? (+65,+29,-9)
>>112
やっぱ使わないんですか?
自分の使い方が悪いのかと不安でしたがちょっと安心しました
ありがとう
114 : 102 - 2012/06/19(火) 00:46:08.84 ID:??? (+11,-30,-215)
>>102です。いろいろ心配かけてすみません。
やってることは、LAN接続できるA/Dコンバータに対するHTTPアクセスです。
A/Dコンバータ内では組み込みhttpdが動いていて、読み取り値を確認するための
簡単なweb画面が用意されています。

A/D変換された値に、直接アクセスするためのAPIが無いので、web画面のhtmlを
ajaxかiframeで取得して、それをDOM解析してクライアント側で表示する、
という処理を作成しています。
そのDOM解析したいhtmlを取得する部分がうまくいかなかったので、質問させて
いただきました。

いろいろ試行錯誤して、とりあえずな形にはなりましたが自力で解決できました。
ありがとうございました。
115 : Name_Not - 2012/06/19(火) 01:34:32.04 ID:??? (+35,+9,-8)
定期的に全部取得して
1画面に出力、という発想がいいんじゃない?
116 : Name_Not - 2012/06/19(火) 02:38:53.98 ID:??? (+57,+29,-11)
「自力で解決」

こういうクズが前もいたな
117 : Name_Not - 2012/06/19(火) 03:08:11.35 ID:??? (+57,+29,-24)
詳しく書く必要はないと思うけど、どういう方向で解決したか書いておいた
ほうがいいよな。間違った方向に進んでいる場合もあると思うし。

いいかけて終わりみたいな。
俺だけ解決すればいいみたいな。
118 : Name_Not - 2012/06/19(火) 04:22:34.09 ID:??? (+52,+29,-2)
情報を後出しするやつばたいていクズ
119 : Name_Not - 2012/06/19(火) 05:29:42.16 ID:??? (+39,-30,-88)
<p id="test">
<span>1</span>
<span>2</span>
<span>3</span>
</p>

evt.targetで、spanの3つめにフォーカスがある場合、
自身が親(p)の子要素(span)の3番目であるということはどのようにして知ることができますか?
たまたま最後にあるので、
target.parentNode.childNodes.lengthで得ることはできますが、
1番目とか2番目にフォーカスがある場合もちゃんと1や2と取得するにはどうしたらよいでしょうか?
120 : Name_Not - 2012/06/19(火) 07:25:20.73 ID:??? (+57,+29,-22)
クズ呼ばわりされるスレで
あれこれ書く必要もあるまい
解決できればそれでよし
121 : Name_Not - 2012/06/19(火) 08:19:59.02 ID:??? (+62,+29,-22)
>>119
一般には知ることはできない。その例の場合中身のテキストを持ってくれば1とか2とか
書いてあるからそれを取るとか?
122 : Name_Not - 2012/06/19(火) 08:40:39.70 ID:??? (+3,-29,-20)
>>119
previousSiblingを繰り返してHTMLElementを数える
123 : Name_Not - 2012/06/19(火) 08:49:00.75 ID:??? (+23,-29,-19)
<span>の内容でやるかIDを振るかだな
124 : Name_Not - 2012/06/19(火) 08:51:54.68 ID:??? (+58,+30,-41)
先週仕事中いきなりルパン三世のテーマ口ずさんで「スパン・ザ・サァード」って歌ってた奴いたな
125 : Name_Not - 2012/06/19(火) 08:54:15.43 ID:??? (+53,+22,-13)
俺は>>123に一票
ID振るのがスマートな気がする
126 : Name_Not - 2012/06/19(火) 08:55:24.66 ID:??? (-1,-29,-8)
んまー無駄にIDとかクラス使うとめんどいから
data-unko=""が一番いいと思う
127 : Name_Not - 2012/06/19(火) 08:59:30.92 ID:??? (-1,-29,-41)
setInterval(function() {
 alert('先週仕事中いきなりルパン三世のテーマ口ずさんで「スパン・ザ・サァード」って歌ってた奴いたな');
},5000);
128 : Name_Not - 2012/06/19(火) 09:29:38.40 ID:??? (+46,-30,-279)
とっても初歩的な質問で申し訳ないのですが
a.hogeかa.fugaかa.piyoである時の条件文の書き方なんですが

if (a.hoge) {}
if (a.fuga) {}
if (a.piyo) {}

if (a.hoge) {
} else if (a.fuga) {
} else if (a.piyo) {
}

if (a.hoge) {
} else if (a.fuga) {
} else {
}

どれがいいんでしょうか?
ていうか違いがよくわかりません・・・orz
switch文がしっくり来るとは思うのですがこの条件でswitch文の書き方がわからず・・・
どなたかベストな方法を教えて下さい
129 : Name_Not - 2012/06/19(火) 09:54:12.31 ID:??? (+56,+3,-1)
処理の中身次第
130 : Name_Not - 2012/06/19(火) 10:11:32.14 ID:??? (+65,+29,-17)
>>128
>>129も書いてるがそれ全部用途が違うだろ
131 : Name_Not - 2012/06/19(火) 10:40:53.94 ID:??? (+55,+27,-9)
この程度の処理の記述すらわからんクズ
132 : Name_Not - 2012/06/19(火) 10:44:14.12 ID:??? (+0,-30,-129)
俺としては

if (a.hoge) {}
if (a.fuga) {}
if (a.piyo) {}

if (a.hoge) {
} else if (a.fuga) {
} else if (a.piyo) {
}

は違うものじゃね?って思った
前者でこの内の存在するかどうかをそれぞれ調べたいのか、後者で優先度はhoge>fuga>piyoで存在したら後はどうでもいいのか
133 : 128 - 2012/06/19(火) 11:39:54.86 ID:??? (+68,-30,-103)
レスありがとうございます
説明不足ですみませんでした

a.hoge、a.fuga、a.piyoの1つだけ必ずあることが保証されてる条件です
配列にこの3つ(hoge、fuga、piyo)のオブジェクトを入れていて
取り出したものがどれであるかによって処理をするというものです

array=[{hoge:1},{hoge:2},{fuga:2},{hoge:1},{piyo:3}];
a=array[0];
if (a.hoge) {}

という感じです
134 : Name_Not - 2012/06/19(火) 11:57:18.56 ID:??? (+57,+29,-1)
>>133
条件後出しは死罪
135 : Name_Not - 2012/06/19(火) 12:15:35.98 ID:??? (+91,+29,-8)
だな。後出しクズ野郎は二度と来るな
ここは初心者お断りだ
136 : Name_Not - 2012/06/19(火) 12:39:03.67 ID:??? (+54,+26,-11)
後出し禁止をテンプレの >>1 に入れますかね?
137 : Name_Not - 2012/06/19(火) 12:47:43.71 ID:??? (+99,+29,-83)
最後をelseで締める場合は最後の条件は評価しなさそうだから1番早そう。
ifとelseifのみだと最悪で一番最後のelseifの条件を評価しそうだが最速で1番目で抜けられる。
ifのみだと1つ目で一致しても全部評価するから一番遅そう。

内部でどうなってるかはしりますぇーん。
138 : Name_Not - 2012/06/19(火) 13:20:38.95 ID:??? (-1,-29,-24)
1回の比較で指定の処理を実行するように書けばいい
139 : Name_Not - 2012/06/19(火) 13:27:27.98 ID:??? (+1,-21,-7)
その配列に処理する関数も入れとけ。
140 : Name_Not - 2012/06/19(火) 13:31:43.60 ID:??? (+45,+27,+0)
そうそう表引き
142 : Name_Not - 2012/06/19(火) 14:35:11.86 ID:??? (+57,+29,-4)
そんな基本的なこともわからないクズ
万死に値する
144 : Name_Not - 2012/06/19(火) 15:32:53.43 ID:??? (-12,-29,-5)
>>143
ドメインはまたぎません。
topやparentでググって見ます。

ありがとうございました。
145 : Name_Not - 2012/06/19(火) 15:43:03.18 ID:??? (+70,+29,-4)
>>135,142
なんでプログラミング関係のスレってこういう奴が現れるんだろう。
146 : Name_Not - 2012/06/19(火) 15:43:52.23 ID:??? (+52,+29,-3)
みんながスルーできればモーマンタイ
147 : Name_Not - 2012/06/19(火) 15:48:19.02 ID:??? (+71,+29,-24)
>>133
まぁ>>137のいうとおり評価する回数で単純に見りゃいいと思う
最後に存在したら全部やるのと変わらないけど、最初にあったらそれだけっていう

どんな形であれ、順番にやるわけだし
149 : Name_Not - 2012/06/19(火) 16:32:56.19 ID:??? (+52,+29,-22)
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について