我尝试了各种方法在新窗口中打开在.ftl文件中导入的.js文件中的链接,但没有成功。
以下是.js 中的代码
$(".termsAndCondition").on("click", function() {
var web_url = localStorage.getItem("webUrl");
setTimeout(() => {
window.location.href = `${web_url}TermsAndConditions`.prop(
"target",
"_blank"
);
}, 1000);
});
- localStorage返回一个字符串-将字符串
${web_url}TermsAndConditions
解析为具有prop的对象的字符串是什么 - window.location.htm在同一窗口中打开URL,您可以使用window.open,但这可能会触发弹出窗口阻止程序
- 为什么超时
只需使用带有target="_blank"
的链接
<a href="termsandconditions.html" target="_blank">Terms and conditions</a>
这不是有效的JS
window.location.href = `${web_url}TermsAndConditions`.prop(
"target",
"_blank"
);
我想你要找的是window.open()
(https://developer.mozilla.org/en-US/docs/Web/API/Window/open)。你可以称之为
window.open('termsandconditions.html');
在您的javascript中。这个方法也是一种在新选项卡中打开窗口的普通JS方法。目标可以设置如下:
window.open('URL','TARGET');
其中TARGET可以留空(与第一个示例一样(以打开新窗口,设置为_self以在同一窗口中打开,等等。
您可以使用window.open()
方法,如下所示,
$(".termsAndCondition").on("click", function() {
var web_url = localStorage.getItem("webUrl");
window.open(`${web_url}TermsAndConditions`, "_blank");
});
或者如下所示的自移除锚标签,
$(".termsAndCondition").on("click", function() {
var web_url = localStorage.getItem("webUrl");
var a = $("<a>").appendTo(document.body).attr({
href: `${web_url}TermsAndConditions`,
target: "_blank"
});
a.get(0).click();
a.remove();
});
现在通过target="_空白";天哪,整个下午我都在一个错误的文件里工作。我从另一个开发人员那里接管了它,我们实际上维护了两个项目和两个开发环境,我把1误认为是另一个。感谢@mplungjan,@Finn_Lancaster,@Wazeed。