2012-07-29 14 views
5

は私がJavaScriptを使用してリンクタグの内容を取得します - ないCSS

<LINK rel="Index" href="index.html"> 
<LINK rel="Next" href="Chapter3.html"> 
<LINK rel="Prev" href="Chapter1.html"> 

を持っていると仮定すると(W3ウェブサイトのサンプルから取られた)

をこれらのJavaScript DOMを介してアクセスしている場合、誰もが知っていますか?

私が知りたいHTML文書にメイン文書のように読み込まれ、DOMに追加されたかどうか、DOMにもアクセスできるかどうか、このようなリンクタグがあるかどうかを確認します。

+0

をするAJAXリクエストを送りますその内容を取得しますか? –

+0

'link'タグまたはそのリンクタグによって参照されるファイルの内容を取得するかどうかは不明です。 – devundef

+0

私に知っておきたいのですが、メイン文書のように読み込まれ、DOMに追加されているかどうか、DOMにもアクセスできるかどうか、HTML文書にこのようなリンクタグがあるかどうか。 – sproketboy

答えて

2

これを試してみてください - http://jsfiddle.net/TpTsJ/(最初の2がJSFiddleのリンクです - あなたはあなたのページにそれらを持っていません)

var links = document.getElementsByTagName("link"); 
for (var i = 0; i < links.length; i++) { 
    alert(links[i].getAttribute("rel") + ' : ' + links[i].getAttribute("href"));   
}​ 
+0

はい私はそれを行うことができますが、私はhrefの実際のDOMにアクセスできるかどうか疑問に思っていました。私はこれをAJAX呼び出しで行うことができますが、ブラウザがこれをすでに行っている可能性があります。 – sproketboy

+1

アヤックスだけ。 –

11

私はこのコードを持っている:

<script type="text/javascript"> 
var your_url = 'http://www.example.com'; 
</script> 

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script> 
<script type="text/javascript"> 
// jquery.xdomainajax.js ------ from padolsey 

jQuery.ajax = (function(_ajax){ 

    var protocol = location.protocol, 
     hostname = location.hostname, 
     exRegex = RegExp(protocol + '//' + hostname), 
     YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?', 
     query = 'select * from html where url="{URL}" and xpath="*"'; 

    function isExternal(url) { 
     return !exRegex.test(url) && /:\/\//.test(url); 
    } 

    return function(o) { 

     var url = o.url; 

     if (/get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url)) { 

      // Manipulate options so that JSONP-x request is made to YQL 

      o.url = YQL; 
      o.dataType = 'json'; 

      o.data = { 
       q: query.replace(
        '{URL}', 
        url + (o.data ? 
         (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data) 
        : '') 
       ), 
       format: 'xml' 
      }; 

      // Since it's a JSONP request 
      // complete === success 
      if (!o.success && o.complete) { 
       o.success = o.complete; 
       delete o.complete; 
      } 

      o.success = (function(_success){ 
       return function(data) { 

        if (_success) { 
         // Fake XHR callback. 
         _success.call(this, { 
          responseText: data.results[0] 
           // YQL screws with <script>s 
           // Get rid of them 
           .replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '') 
         }, 'success'); 
        } 

       }; 
      })(o.success); 

     } 

     return _ajax.apply(this, arguments); 

    }; 

})(jQuery.ajax); 



$.ajax({ 
    url: your_url, 
    type: 'GET', 
    success: function(res) { 
     var text = res.responseText; 
     // then you can manipulate your text as you wish 
     alert(text); 
    } 
}); 

</script> 
+0

これはすべてのURLにはうまくいかないようです。 url = http://www.andy-howard.com/blog.htmに使用しようとするとエラーが表示される理由は何ですか? –

+0

それは限られていると思います。それは何らかの理由で働くことをやめました。 –

+0

私のために働いていません –

関連する問題