我是创建JavaScript bookmarklet的新手,但在解决我的问题方面已经有了一定的方法,但最后还是陷入了困境。
基本上,我想创建一个bookmarklet,它将替换URL中2个位置的文本 - 子域和URI。
我已经成功完成了第一部分:
(function() {
window.location = window.location
.toString()
.replace(/^https:\/\/www\./, "https://edit.");
})();
接下来,我需要从页面中获取一些元数据(cab-id)。我已经设法将它打印到控制台:
function getCabID() {
var metas = document.getElementsByTagName("meta");
for (var i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") == "cab-id") {
return metas[i].getAttribute("content");
}
}
return "";
}
console.log(getCabID());
我需要做的下一件事是替换url的结尾(“www.xxxxxx.org.uk/*”中的所有内容都包含以下内容:
/EPiServer/CMS/Home#context=epi.cms.contentdata:///
我无法弄清楚如何做到这一点,我真的很挣扎。我想出了以下内容,但它不起作用:
(function() {
var url=window.location.href;
stringUrl=String(url);
stringUrl=stringUrl.replace(/^https:\/\/www.xxxxxx.org.uk\/, "https://edit.xxxxxx.org.uk/EPiServer/CMS/Home#context=epi.cms.contentdata:///");
document.location=stringUrl;
})();
我还需要在///之后直接弹出cab-id。
很抱歉这个问题很长,但我需要做的是:
任何提示都将受到大力赞赏:D
正如我理解你的问题,以下书签可能允许结合第二和第三步:
javascript:(function() {
window.location.href = "https://edit.xxxxxx.org.uk/EPiServer/CMS/Home#context=epi.cms.contentdata:///" + getCabID();
function getCabID() {
var metas = document.getElementsByTagName("meta");
for (var i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") == "cab-id") {
return metas[i].getAttribute("content");
}
}
return "";
}
})();