我遇到了一个奇怪的情况。我正在编写一个JavaScript书签,允许用户轻松快速地点击并共享外部网站到我们的网站。它只是得到标题,页面URL,如果他们在页面上选择了任何文本,它也会抓住它。
问题是它由于某种原因无法与外部域一起使用,因此如果我们在内部使用它,我们最终会得到一个共享窗口,其URL格式如下:
http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title= ....
这很好用,但是如果我们尝试使用外部域并最终得到这样格式的网址:
然后我们在页面上收到 Forbidden Error 并且无法加载...如果我们从externaldomain地址手动删除http://
,它会再次加载。< / p>
所以......我认为解决这个问题的最佳解决方案是修改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://
?
答案 0 :(得分:120)
我认为考虑所有可能的协议会更好。
result = url.replace(/(^\w+:|^)\/\//, '');
答案 1 :(得分:40)
url = url.replace(/^https?:\/\//,'')
答案 2 :(得分:6)
l.href.replace(/^http:\/\//, '')
答案 3 :(得分:2)
我认为你需要的正则表达式是/(?:http://)(.*)/i
。这应该是第一场比赛。
答案 4 :(得分:-4)
尝试使用replace功能
var url = url.replace("http%3A%2F%2F", "");