14

伙计们,我有一个问题,希望你能帮助我解决这个问题。我有一个书签;

javascript:q=(document.location.href);void(open('http://other.example.com/search.php?search='+location.href,'_self ','resizable,location,menubar,toolbar,scrollbars,status'));

它获取当前网页的 URL 并在另一个网站中搜索它。当我使用这个小书签时,它会获取整个 URL,包括http://并搜索它。但现在我想更改这个小书签,所以它只需要www.example.comor example.com(不带http://)并搜索这个 url。是否有可能做到这一点,你能帮我解决这个问题吗?

谢谢!

4

6 回答 6

31

JavaScript 可以部分访问当前 URL。对于此网址:

http://css-tricks.com/example/index.html

window.location.protocol = "http"

window.location.host = "css-tricks.com"

window.location.pathname = "/example/index.html"

请检查:http ://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/

于 2012-08-27T08:58:05.693 回答
11

这应该这样做

location.href.replace(/https?:\/\//i, "")
于 2009-11-08T13:20:05.480 回答
4

使用document.location.host而不是document.location.href. 这仅包含主机名,而不包含完整的 URL。

于 2009-11-08T13:20:10.123 回答
0

使用 URL API

获取 URL 的一部分的现代方法是从给定的 url 创建一个 URL 对象。

const { hostname } = new URL('https://www.some-site.com/test'); // www.some-site.com 

您当然可以将窗口位置或任何其他 url 作为参数传递给 URL 构造函数。

像这样

const { hostname } = new URL(document.location.href);
于 2022-01-12T11:12:13.907 回答
-1

您是否可以控制website.com other.example.com?这可能应该在服务器端完成。

在这种情况下:

preg_replace("/^https?:\/\/(.+)$/i","\\1", $url);

应该管用。或者,您可以使用str_replace(...),但请注意,这可能会从 URL 中的某处删除“http://”:

str_replace(array('http://','https://'), '', $url);

编辑:或者,如果你只想要主机名,你可以试试parse_url(...)

于 2009-11-08T13:21:06.207 回答
-1

replace通过正则表达式匹配使用 javascript :

javascript:q=(document.location.href.replace(/(https?|file):\/\//,''));void(open('http://website.com/search.php?search='+q,'_self ','resizable,location,menubar,toolbar,scrollbars,status'));

将 (https?|file) 替换为您的选择,例如 ftp、gopher、telnet 等。

于 2009-11-08T13:33:05.313 回答