javascript - 如何从 JavaScript 中的 URL 中删除 'http://'

标签 javascript regex bookmarklet

<分区>

我遇到了一个奇怪的情况。我正在编写一个 JavaScript 小书签,它允许用户非常轻松快速地单击外部网站并将其共享到我们的网站。它只是获取标题、页面 URL,如果他们选择了页面上的任何文本,它也会抓取它。

问题是出于某种原因它不适用于外部域,所以如果我们在内部使用它,我们最终会得到一个共享窗口,其 URL 格式如下:

http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title= ....

这很好用,但是如果我们尝试使用外部域并以如下格式的 URL 结尾:

http://internaldomain.com/sharetool.php?shareid=http://externaldomain.com/coolpagetoshare.html&title= ...

然后我们在我们的页面上得到一个禁止的错误并且无法加载它......如果我们手动从外部域地址中删除http://,它再次加载就好了。

所以.. 我认为解决此问题的最佳解决方案是修改 JavaScript 小书签以在加载窗口时删除 http。这是我当前的小书签的样子:

javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://internaldomain.com/sharetool.php',l=d.location,e=encodeURIComponent,u=f+'?u='+e(l.href)+

如您所见,e(l.href) 是传递 URL 的地方。

我如何修改它以删除外部域 http://

最佳答案

我认为考虑所有可能的协议(protocol)会更好。

result = url.replace(/(^\w+:|^)\/\//, '');

关于javascript - 如何从 JavaScript 中的 URL 中删除 'http://',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206269/

相关文章:

r - 在 R 中向前看以按顺序识别单词模式

javascript - 在书签中使用本地存储

javascript - 用于编辑当前 URL 的书签

javascript - 更改 Javascript 中一系列选项卡的背景颜色

java - 使用部分键获取 HashMap 的值

javascript - 使用 redux-saga 进行异步 api 调用

javascript - 一键删除 contenteditable div 中的整个 anchor 标记

Javascript 书签 If-Else

javascript - 使用 Github API 获取版本的所有提交部分

javascript - 多个 ID jQuery 选择器返回的结果与单个 ID 选择器返回的结果不同