【发布时间】:2012-01-02 14:59:40
【问题描述】:
我遇到了一个奇怪的情况。我正在编写一个 JavaScript 小书签,它允许用户非常轻松快捷地单击外部网站并将其共享到我们的网站。它只是获取标题、页面 URL,如果他们选择了页面上的任何文本,它也会抓取它。
问题是由于某种原因它不适用于外部域,所以如果我们在内部使用它,我们最终会得到一个 URL 格式如下的共享窗口:
http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title=....
这很好,但是如果我们尝试使用外部域并最终得到一个格式如下的 URL:
然后我们的页面上出现Forbidden Error,并且无法加载它...如果我们手动从外部域地址中删除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://?
【问题讨论】:
标签: javascript regex bookmarklet