
こんばんわ。
早速質問をお願いします。
下のようなhtml文があります。
//------------------------------------------------
<span id = 'ID'><IFRAME FRAMEBORDER='0' MARGINHEIGHT='0' MARGINWIDTH='0' SCROLLING='NO' HEIGHT='60' WIDTH='120' SRC='address'> <table border='0' height='60' width='120'><tr><td align='center' valign='middle'><a href='address' target='_blank'>リンクテキスト<img src='address' width='1' height='1' border='0' alt='' /></a></td></tr></table> </IFRAME></span>
//------------------------------------------------
<span>~</span>の間にある、aタグの [href='address']の値を取得
したいのですが上手く行きません。
var nodes = document.getElementById("ID");
var links = nodes.getElementsByTagName("a");
で<span>~</span>内のAタグリストにして、そこから
var href = links[0].getAttribute("href");
で取れるかなと思ったのですが、どうもgetElementsの部分からして
違うらしくて。
要素の子を頭から順にたどって行けば、一応値は取れると思いますが、
階層の深さ常にが一定とは限らない為、それはしたくありません。
こういった場合、どうするのが一般的なのでしょうか?
宜しければアドバイスをお願い致します。
No.1ベストアンサー
- 回答日時:
iframe 要素を使っていなければ maru_n さんの JavaScript コードで期待通りの動作をするはずです。
今回の例の場合、iframe 要素を使っているというところにちょっと問題があります。 iframe 要素の中身は 「iframe 要素をサポートしていない UA において表示され」 ます。 逆に言うと、iframe 要素をサポートしている UA では iframe 要素の中身は全くレンダリングされないということになります。
そのため、iframe 要素をサポートしている UA では、ID = "ID" の span 要素の子孫は iframe 要素のみになり、a 要素はないことになってしまいます。 ゆえに getElementsByTagName メソッドで a 要素を取得しようとしても取得できないのです。
以上が原因です。
そんなわけで解決は難しいと思うのですが、そもそも表示されもしない iframe 要素の子孫要素を取得する必要はあるのでしょうか? そこから設計を見直したほうがいいような気がします。
なるほどなるほど。
iframeはそういった働きをするものなのですね。
正常にレンダリングされた後では、iframe内のタグは無いものに
されてしまうと。
よく理解できました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アコーディオンメニューにする...
-
Preorder Tree Walkとは
-
Aタグのhrefの値を取得したいの...
-
innerTextは標準化されているの...
-
Listでintの最大値を超える要素...
-
javaがわかりません。。。
-
URL+URN=URI と習ったのですが...
-
こんばんは。 メガメニューを今...
-
鍵盤アプリで、スマホの画面に...
-
JTextAreaを改行コードを直接書...
-
或る文字列の文字数が一定数以...
-
iText セル内での自動改行について
-
jQueryについて
-
(再質問)エクセルのマクロボ...
-
コンソール画面のクリアの方法
-
collection型を引数にしたファ...
-
新しいパソコンのネット設定な...
-
Progateの入力画面で使えるショ...
-
Google SketchUpのポータブル版...
-
PythonをCentOSなどのサーバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iText セル内での自動改行について
-
アコーディオンメニューにする...
-
或る文字列の文字数が一定数以...
-
2つのXMLファイルを読み込む
-
配列による二分木
-
Aタグのhrefの値を取得したいの...
-
【jQuery】MixltUPの複数フィル...
-
Listでintの最大値を超える要素...
-
Nodeのキャストに失敗します
-
HTMLでのテキストエリアで入力...
-
ajaxで読み込んだDOMに対してin...
-
鍵盤アプリで、スマホの画面に...
-
JTextAreaを改行コードを直接書...
-
(再質問)エクセルのマクロボ...
-
collection型を引数にしたファ...
-
mとnを入力 mからnまでを加算し...
-
コンソール画面のクリアの方法
-
汎用機のJCLの入門書ありま...
-
4ヶ月経ってもgoogleへインデッ...
-
Progateの入力画面で使えるショ...
おすすめ情報