У меня есть внутреннее приложение, где у меня есть вкладка с именем "HV". Эта вкладка «HV» поступает из точки входа из cencerto.
Когда я нажимаю на вкладку «HV», в браузере открывается внешнее приложение в новой вкладке.
window.open("@viewsUrl", "HV");
Существует клинический риск, если он открывает несколько вкладок. Например, если я открываю пациента 1 на вкладке 1 и пациента 2 на вкладке 2, это дает шанс ввести неверную информацию для неверного пациента для врача.
Во избежание этого, когда врач нажимает на пациента 2, следует перезаписать вкладку 1 и отображает информацию о пациенте 2 на вкладке 1.
Итак, я хотел бы проверить, открыта ли уже вкладка, а затем заполнить ее вторым пациентом вместо открытия другой вкладки.
Есть ли способ проверить это с 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>
}