单击bookmarklet时,我需要URL,例如:
https://example.com/test/page1/page2/page3/final page
替换为:
https://example.com/panel/pages/test+page1+page2+page3+final-page
如果不清楚,则域保持不变,但之后是/panel/pages/,后面是相同的原始页面结构,但使用+而不是/。最后,如果最终页面有空格(并非所有页面都有空格(,则使用-。
并不是每个我想要的URL在最后一个之前都有三页。有些人只有一两个。因此,它需要以某种方式适用于所有人。
这里的想法是,第二个链接用于编辑页面,第一个是实时页面。我想要一个简单的方法打开页面进行编辑。理想情况下,新的URL将在一个新的选项卡中打开
考虑到我在这方面完全是个新手,我很想找个方向。
这个怎么样?
(function(loc) {
loc.href = `${loc.protocol}//${loc.host}/panel/pages/${
loc
.pathname
.slice(1)
.replace(///g, "+")
.replace(/(s|%20)/g, "-")
}`;
})(window.location)
这创建了一个重定向到…
protocol
是http:
或https:
- 在域和主机之间添加
//
- 页面主机名
- 我们转到硬编码的
/panel/pages/
loc.pathname
获取URL中/
及其后的所有内容- 因为它包括前导
/
,所以我们必须删除它,这样它就不会像.slice(1)
一样变成+
- 然后我们用
+
替换所有/
- 替换所有空格(在URL中编码为
%20
(
书签就绪代码:
javascript:(function(l){l.href=`${l.protocol}//${l.host}/panel/pages/${l.pathname.slice(1).replace(///g,"+").replace(/%20/g,"-")}`})(window.location)