我有一个由文本组成的静态网页,分为带有<h2>
标记的部分。
我无权访问底层代码,但我想链接到特定的<h2>
标记。
如果我有权访问代码,我可以使用ID标记标记,例如:<p id="section1">
- 但这不是一个选项。
我也可以使用DOM索引访问它们,例如document.getElementsByTagName("h2")[0]
- 所以我的问题是,是否有任何方法可以将其添加到链接而无需关联的javascript?
由于
阿里
答案 0 :(得分:1)
不,你只能通过链接做到这一点。
您需要以某种方式访问底层标记,以滚动到某个位置或对DOM进行实时更新。
如果您可以使用iframe访问它并且CORS没有阻止,则可以这样做。
另一种方法是使用服务器端语言,如ASP.NET,从中读取页面,处理页面然后将其转发到客户端。这仍然会适得其反,具体取决于脚本等在相关页面上的行为方式。
答案 1 :(得分:0)
<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 contentDocument Property
如果您可以在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;
指向您喜欢的输出...
如果您绝对不能使用任何与文档的交互,那么您就是无法使用它。