- ベストアンサー
iframeについて質問です。
iframeについて質問です。 取得先のページを全体を読み込むことはできるのですが、 指定したid属性だけを読み込むことってできるのでしょうか。 css、html5で対応できれば嬉しいです。 css、html5でできない場合jsでやり方があれば教えてもらえたら嬉しいです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
その他の回答 (3)
- hymat
- ベストアンサー率58% (95/162)
じゃなかった xhr.open('GET', 'http://ここにURLを書く/'); の部分を httpなど抜きで './xxx.txt'とかにしてください。
お礼
ありがとうございます。 './xxx.txt'の件ですが相対パスにするということでしょうか。 もしくはhttp://を./に変更するということでしょうか。 例:http://item.rakuten.co.jp/shopname/itemname/ の場合 ./item.rakuten.co.jp/shopname/itemname/ですか?
- hymat
- ベストアンサー率58% (95/162)
スマホの場合は同一サーバー上のファイルの指定がFQDNだとダメっぽいですね。 <input type="button" value="get data" onclick="ajaxGet('http://localhost/target1.html');"> ↓ <input type="button" value="get data" onclick="ajaxGet('target1.html');">
お礼
ご回答ありがとうございます。 下のno.3にご返信いたします。
- hymat
- ベストアンサー率58% (95/162)
セキュリティ的にiframeの内容はイジれないのでdiv等を使います。特定の部分だけ読み込むわけにいかないので、いったん全体を読み込んで、その後、idを指定して取り出します。ただし読み込む相手先ページがAllow-Originを制限している場合はできません。 <html> <body> <script> function ajaxGet() { var xhr=new XMLHttpRequest(); xhr.open('GET', 'http://ここにURLを書く/'); xhr.onreadystatechange=function(){ if(xhr.readyState == 4 && xhr.status == 200){ document.getElementById('div1').innerHTML=xhr.responseText; document.getElementById('data1').innerHTML= document.getElementById('ここにidを書く').innerHTML; } }; xhr.send(uri); } </script> <div id="div1" style="display:none;"></div> <div id="data1" style="border:solid 1px red;width:512px;">no data</div> <input type="button" value="get data" onclick="ajaxGet();"> </body> </html>
お礼
ありがとうございます! できました! 1点だけご相談があります。 スマホの場合IDを取得できません。 スマホでも取得できる方法はありますか? よろしくお願いします。
お礼
なんどもご回答いただいて本当にありがとうございました。 ベストアンサーが1つしか付けられないことが悔しいですが、本当に感謝しております。ありがとうございました。