gpt4 book ai didi

jquery - 限制选项卡仅打开一次,以便用户无法在jquery中创建多个选项卡

转载 作者:行者123 更新时间:2023-12-01 04:34:28 25 4
gpt4 key购买 nike

我有一个内部应用程序,其中有一个名为“HV”的选项卡。此选项卡“HV”来自 cencerto 的入口点。

当我单击“HV”选项卡时,它会在浏览器的新选项卡中打开外部应用程序。

window.open("@viewsUrl", "HV");

如果打开多个选项卡,则存在临床风险。例如,如果我在选项卡 1 中打开病人 1,在选项卡 2 中打开病人 2,那么临床医生就有可能向错误的患者输入错误的信息。

为了避免这种情况,当临床医生点击患者2时,它应该覆盖选项卡1并在选项卡1中显示患者2的信息。

因此,我想检查该选项卡是否已打开,然后用第二个患者重新填充该选项卡,而不是打开另一个选项卡。

有没有办法用jquery检查这个?

我尝试了下面的代码,但它没有按照我的要求中提到的那样工作。

我已经投入了 2 天的时间并试图找到合适的解决方案,但到目前为止还没有成功。

请建议我如何执行此操作。

@{
string viewsUrl = ViewBag.viewsUrl1;
}

@section Scripts {
<script>
$(document).ready(function () {
debugger;

//function register_tab_GUID() {

if (typeof (Storage) !== "undefined") {

if (sessionStorage["tabGUID"] == null) sessionStorage["tabGUID"] = tab_GUID();
var guid = sessionStorage["tabGUID"];

window.addEventListener("storage", storage_Handler, false);

localStorage["tabGUID"] = guid;
}
// }

function storage_Handler(e) {

if (e.key == 'tabGUID') {
if (e.oldValue != e.newValue) {
tab_Warning();
}


}
window.open("@viewsUrl", "HV");
}

function tab_GUID() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}

function tab_Warning() {
alert("Another tab is open!");
}

});
</script>
}

最佳答案

首先,当您处于不同的选项卡中时,您无法跟踪浏览器选项卡链接,这与安全策略有关,因为它很容易被滥用。

但是有一个技巧可以通过使用javascript来实现这一点。

您必须使用以下 javascript 为希望应用此行为的每个页面分配一个窗口名称:

window.name = "PageUniqueID";

然后在该名称的链接目标上

<a href="link" target="PageUniqueID">Go</a>

如果页面尚未打开,浏览器将自动打开一个新选项卡;如果页面已打开,浏览器将再次打开同一选项卡。

关于jquery - 限制选项卡仅打开一次,以便用户无法在jquery中创建多个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com