2012-07-29 17 views
5

Giả sử tôi cóNhận nội dung của thẻ liên kết với javascript - không CSS

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

(lấy từ mẫu trang web w3)

Có ai biết nếu những có thể truy cập thông qua DOM JavaScript?

Tôi muốn biết Nếu tôi có các thẻ liên kết như thế này trong tài liệu HTML cho dù chúng được đọc giống như tài liệu chính và được thêm vào DOM và nếu tôi cũng có thể truy cập DOM của chúng.

+0

Gửi yêu cầu ajax để lấy nội dung của họ? –

+0

Không chắc chắn nếu bạn muốn nhận thẻ 'liên kết' hoặc nội dung của tệp được tham chiếu bởi thẻ liên kết đó. – devundef

+0

Tôi muốn biết Nếu tôi có các thẻ liên kết như thế này trong tài liệu HTML cho dù chúng được đọc giống như tài liệu chính và được thêm vào DOM và nếu tôi cũng có thể truy cập các DOM của chúng. – sproketboy

Trả lời

2

Hãy thử điều này - http://jsfiddle.net/TpTsJ/ (2 đầu tiên là các liên kết JSFiddle - bạn sẽ không có chúng trên trang của bạn)

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

Có, tôi có thể làm điều đó nhưng tôi đã tự hỏi liệu tôi có thể truy cập vào DOM thực tế của href không. Tôi biết tôi có thể làm điều này thông qua một cuộc gọi ajax nhưng có thể trình duyệt đang làm điều này rồi. – sproketboy

+1

Không. Chỉ có cách ajax. –

11

tôi có mã này:

<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

Điều này dường như không làm việc cho tất cả các url mặc dù. Tôi gặp lỗi khi cố gắng sử dụng nó cho url = http://www.andy-howard.com/blog.htm bất kỳ ý tưởng nào tại sao? –

+0

Và đó là giới hạn tôi nghĩ. Nó ngừng hoạt động vì một lý do nào đó. –

+0

không hoạt động với tôi –

Các vấn đề liên quan