获取给定URL的网页标题

4
有没有一种方法可以根据给定的URL返回网页标题? 我不是指当前页面的标题,可以通过执行document.title获取,而是获取另一个网页的标题。

可能是由URL指向的网页的标题。 - tskuzzy
修改了问题。重新开放?除了措辞不当之外,我没有看到关闭的理由。 - tskuzzy
@tskuzzy。糟糕的措辞还不够吗? - gdoron
@gdoron:重点是我改了措辞,现在问题表述更清晰了。所以我认为我们应该重新打开它。 - tskuzzy
请参见以下链接:https://dev59.com/TGsz5IYBdhLWcg3wbHTG - starbeamrainbowlabs
显示剩余2条评论
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
5
如果该网站位于不同的域名下,您将无法访问。这将违反同源策略的安全性规定。 否则,您可以将其他网页加载到隐藏的iframe中并使用以下方法:
document.getElementById('myIframe').contentWindow.document.title;

实际上,我有点说谎了。这样做是一种安全违规行为,但是IE存在一个漏洞,可以通过VBScript访问内容。不确定是否已经修补此漏洞。


在任何浏览器中,这应该适用于同一域:var x = window.open('url'); var title = x.document.title; x.close(); 不过它可能会触发弹出窗口拦截器。 - Paul
是的,这就是为什么我更喜欢使用iframe。 - tskuzzy
哪种方法更省时间?是先导航到URL然后获取标题,还是像你上面说的那样做? - k.ken

3

不行。

除非使用一些额外的API。


+1,因为我喜欢这种对于非真实问题的回答! - gdoron
2
如果在同一域中,是可以实现的。 - Derek 朕會功夫

2
也许 ajax 能够实现这个,但是通过原始工具不行!(因为 js 是客户端的!)

-1

可以的,而且非常简单。

chrome.topSites.get(function(info){ //fetching the top sites visited in chrome
    var xyz=document.getElementsByClassName('urclassname');
    for(var i=0;i<info.length;i++) {
       console.log(info[i]);  //check the data fetched by info
       xyz[i].setAttribute("urclassattribute",info[i].title); //set the title of the fetched url
    }
});
假设我最常访问的网站是Facebook,那么console.log(info[i])将在浏览器控制台中输出以下值: Object title : "(3) Facebook" url : "https://www.facebook.com/" proto : constructor : ƒ Object() hasOwnProperty : ƒ hasOwnProperty() isPrototypeOf : ƒ isPrototypeOf() propertyIsEnumerable : ƒ propertyIsEnumerable() toLocaleString : ƒ toLocaleString() toString : ƒ toString() valueOf : ƒ valueOf() defineGetter : ƒ defineGetter() defineSetter : ƒ defineSetter() lookupGetter : ƒ lookupGetter() lookupSetter : ƒ lookupSetter() get proto : ƒ proto() set proto : ƒ proto() 因此,您基本上可以获取网站的标题。

这没有任何意义。问题与访问量最高的网站有什么关系? - tejasvi88

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,