如何从 chrome 扩展访问主机

Posted

技术标签:

【中文标题】如何从 chrome 扩展访问主机【英文标题】:How to access host from chrome extension 【发布时间】:2016-07-06 20:12:14 【问题描述】:

我正在寻找一种方法来读取当前选项卡的主机 (not just hostname)。

我可以阅读网址,但似乎找不到可靠的正则表达式来提取主机。

我可以从 window.location 对象获取主机,但我找不到从扩展程序访问该数据的方法。

【问题讨论】:

【参考方案1】:

给定一个 URL,您可以使用 URL constructor 对其进行解析并提取 parsed URL components。例如:

// Just an example, there are many ways to get a URL in an extension...
var url = 'http://example.com:1234/test?foo=bar#hello=world';
var parsedUrl = new URL(url);
console.log(parsedUrl.host);

// Or if you want a one-liner:
console.log(new URL(url).host);
Open the javascript console, and you'll see "example.com:1234" (2x).

【讨论】:

遗憾的是,它不是跨浏览器功能,因为它在 IE 和一些移动浏览器中不稳定,但它符合我当前的目的。谢谢。 @Pasaribu 如果 URL 是绝对的(即完整的 URL),您可以使用锚点(<a> 元素)实现相同的效果。 var a = document.createElement('a'); a.href = url; console.log(a.host);

以上是关于如何从 chrome 扩展访问主机的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 扩展程序:无法启动本机消息传递主机

如何将我的 WAMP 本地主机从 firefox 移动到 chrome?

本地主机不工作 - vs 代码中的 chrome 扩展

如何使用本机消息传递主机调试未打包的 Microsoft Edge 扩展?

“广泛的主机权限”Webstore 警告,尽管只有一台主机具有权限

本机消息传递主机 chrome-token-signing