Pet*_*ter 44 javascript regex bookmarklet
我遇到了一个奇怪的情况.我正在编写一个JavaScript书签,允许用户轻松快速地点击并共享外部网站到我们的网站.它只是得到标题,页面URL,如果他们在页面上选择了任何文本,它也会抓取它.
问题是它由于某种原因无法与外部域一起使用,因此如果我们在内部使用它,我们最终会得到一个共享窗口,其URL格式如下:
http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title= ....
这工作正常,但如果我们尝试使用外部域并最终得到如下格式的URL:
然后我们在页面上出现Forbidden Error并且无法加载...如果我们手动删除http://
外部域地址,它会再次加载.
所以..我认为解决这个问题的最佳解决方案是修改JavaScript书签以删除http
它正在加载窗口.以下是我当前的bookmarklet的外观:
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)+
Run Code Online (Sandbox Code Playgroud)
如您所见,e(l.href)
是传递URL的位置.
如何修改它以删除外部域http://
?
Fai*_*Dev 130
我认为考虑所有可能的协议会更好.
result = url.replace(/(^\w+:|^)\/\//, '');
Run Code Online (Sandbox Code Playgroud)
mat*_*sko 41
url = url.replace(/^https?:\/\//,'')
Run Code Online (Sandbox Code Playgroud)