首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在页面加载失败时获取Chrome中的当前域名

在页面加载失败时获取Chrome中的当前域名
EN

Stack Overflow用户
提问于 2015-05-01 22:44:09
回答 4查看 2.4K关注 0票数 8

如果您尝试使用Chrome进行加载:http://sdqdsqdqsdsqdsqd.com/

您将获得:

代码语言:javascript
复制
ERR_NAME_NOT_RESOLVED

我希望,通过一个bookmarklet,能够获得当前的域名,并将其重定向到一个whois页面,以便检查该域名是否可用。

我在控制台中尝试过:

代码语言:javascript
复制
window.location.href

但它会输出:

代码语言:javascript
复制
"data:text/html,chromewebdata"

有什么方法可以恢复失败的URL吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-01-02 01:25:18

其他人给出的解决方案不起作用(可能是因为我得到了一个不同的错误或有一个较新的版本:Chrome55):

代码语言:javascript
复制
document.querySelector('strong[jscontent="hostName"]').textContent

但同样可以通过以下方式实现:

代码语言:javascript
复制
document.querySelector('#reload-button').url

一个潜在的更面向未来的版本(来自Thomas's comment)

代码语言:javascript
复制
loadTimeData.data_.summary.failedUrl

因此,一个包含所有变通方法的跨版本解决方案:

代码语言:javascript
复制
var url = (l‌​ocation.href === 'data‌​:text/html,chromeweb‌​data'
    && loadTimeData.data_.summary.failedUrl
    || document.querySelector('#reload-button').url
) || location.href;

var hostname = (l‌​ocation.href === 'data‌​:text/html,chromeweb‌​data'
    && loadTimeData.data_.summary.hostName
    || document.querySelector('strong[jscontent="hostName"]').textContent
) || location.hostname;
票数 3
EN

Stack Overflow用户

发布于 2015-05-01 22:50:21

在Chrome错误页面上,location.href没有指向你试图访问的域名,因为它是一个内部托管的页面。

但是,如果展开[显示详情]链接,则会显示您尝试访问的域名。

您可以在控制台(或书签小程序)中运行以下代码来解析域名:

代码语言:javascript
复制
document.querySelector('strong[jscontent="hostName"]').textContent
票数 3
EN

Stack Overflow用户

发布于 2015-05-01 23:11:42

nderscore的一个修改版本,因为您需要有一个if语句来返回正确的语句。

代码语言:javascript
复制
   function getUrl () {
     if(window.location.hostname == "") {
       return document.querySelector('strong[jscontent="hostName"]').textContent
     } else{
       return window.location.href;
     }
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29989031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档