我可以链接到 dom 中的元素吗?

Can i link to an element in the dom

本文关键字:元素 链接 dom 我可以      更新时间:2023-09-26

我有一个由文本组成的静态网页,分为带有<h2>标签的部分。我无权访问底层代码,但我想链接到特定的<h2>标签。如果我可以访问代码,我可以用 ID 标记标签,例如:<p id="section1"> - 但这不是一个选项。我也可以使用 DOM 索引访问它们,例如 document.getElementsByTagName("h2")[0] - 所以我的问题实际上是,有没有办法在不需要关联的 javascript 的情况下将其添加到链接中?

谢谢

阿里

不,你不能只用一个链接来做到这一点。

无论如何,您需要访问底层标记,以滚动到某个位置或对 DOM 进行实时更新。

如果您可以使用 iframe 访问它并且 CORS 没有阻止,则可以通过这种方式完成。

另一种方法是使用服务器端语言(如 ASP.NET),从中读取页面,处理页面,然后将其转发到客户端。这仍然可能适得其反,具体取决于脚本等在相关页面上的作用。

<iframe id="myframe" src="/yourDocument.html" />
var x = document.getElementById("myframe");
var y = (x.contentWindow || x.contentDocument);
if (y.document)y = y.document;
var contLinks = y.body;

如下所述: IFrame 内容文档属性

如果可以像这样在 iframe 上打开文档,或者从服务器端脚本获取其内容,请在返回的 DOM 上运行以下命令:

var createLinks = function(){
    var contLinks = document.getElementsByTagName("body");
    for(i=0; i<contLinks.length; i++)
        {
            var Links = document.getElementsByTagName("h2");
            var appendLinks = "";
            for(idx=0; idx<Links.length; idx++)
                {
                    appendLinks += "<a href='"+Links[idx].innerHTML.trim()+"'>"+Links[idx].innerHTML.trim()+"</a><br/>";
                    //Links[idx].remove;
                }
            contLinks[i].innerHTML = appendLinks;
        }
  }
 createLinks();

将最后一行contLinks[i].innerHTML = appendLinks;定向到您喜欢的输出...

如果您绝对不能与文档进行任何类型的交互,那么您就无法使用它。