【问题标题】:Find coordinates of every link in a page查找页面中每个链接的坐标
【发布时间】:2010-09-09 05:13:49
【问题描述】:

在 Javascript 中: 如何找到网页中每个链接的坐标(x、y、高度、宽度)?

【问题讨论】:

    标签: javascript web hyperlink location


    【解决方案1】:

    使用jQuery,就这么简单:

    $("a").each(function() {
        var link = $(this);
        var top = link.offset().top;
        var left = link.offset().left;
        var width = link.offset.width();
        var height = link.offset.height();
    });
    

    【讨论】:

      【解决方案2】:

      没有 jquery:

      var links = document.getElementsByTagName("a");
      for(var i in links) {
          var link = links[i];
          console.log(link.offsetWidth, link.offsetHeight);
      }
      

      试试这个页面的 func 来获取 x 和 y 值: http://blogs.korzh.com/progtips/2008/05/28/absolute-coordinates-of-dom-element-within-document.html

      但是,如果您尝试添加图像或类似内容,我建议您使用 a:after css 选择器。

      【讨论】:

        【解决方案3】:

        纯 JavaScript:

        function getAllChildren (node, tag) {
          return [].slice.call(node.getElementsByTagName(tag));
        }
        function offset(element){
          var rect = element.getBoundingClientRect();
          var docEl = doc.documentElement;
          return {
            left: rect.left + window.pageXOffset - docEl.clientLeft,
            top: rect.top + window.pageYOffset - docEl.clientTop,
            width: element.offsetWidth,
            height: element.offsetHeight
          };
        }
        
        var links = getAllChildren(document.body, 'a');
        links.forEach(function(link){
          var offset_node = offset(node);
          console.info(offset_node);
        });
        

        【讨论】:

          【解决方案4】:

          使用 jQuery:

          $j('a').each( findOffset );
          
          function findOffset()
          {
              alert
              ( 'x=' + $j(this).offset().left
              + ' y=' + $j(this).offset().top
              + ' width=' + $j(this).width()
              + ' height=' + $j(this).height()
              );
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-08-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-11-28
            相关资源
            最近更新 更多