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

mat*_*ain 7 javascript google-chrome bookmarklet

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

您将获得:

ERR_NAME_NOT_RESOLVED
Run Code Online (Sandbox Code Playgroud)

我希望使用书签,能够获取当前域名并将其重定向到 whois 页面,以检查该域是否可用。

我在控制台中尝试过:

window.location.href
Run Code Online (Sandbox Code Playgroud)

但它输出:

"data:text/html,chromewebdata"
Run Code Online (Sandbox Code Playgroud)

有没有办法检索失败的 URL?

TWi*_*Rob 5

其他人给出的解决方案不起作用(可能是因为我遇到了不同的错误或有更新的版本:Chrome 55):

\n\n
document.querySelector(\'strong[jscontent="hostName"]\').textContent\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
document.querySelector(\'#reload-button\').url\n
Run Code Online (Sandbox Code Playgroud)\n\n

一个可能更加面向未来的版本(来自托马斯的评论

\n\n
loadTimeData.data_.summary.failedUrl\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
var url = (l\xe2\x80\x8c\xe2\x80\x8bocation.href === \'data\xe2\x80\x8c\xe2\x80\x8b:text/html,chromeweb\xe2\x80\x8c\xe2\x80\x8bdata\'\n    && loadTimeData.data_.summary.failedUrl\n    || document.querySelector(\'#reload-button\').url\n) || location.href;\n\nvar hostname = (l\xe2\x80\x8c\xe2\x80\x8bocation.href === \'data\xe2\x80\x8c\xe2\x80\x8b:text/html,chromeweb\xe2\x80\x8c\xe2\x80\x8bdata\'\n    && loadTimeData.data_.summary.hostName\n    || document.querySelector(\'strong[jscontent="hostName"]\').textContent\n) || location.hostname;\n
Run Code Online (Sandbox Code Playgroud)\n