gpt4 book ai didi

javascript - XPages - 访问 sessionScope 以在页面脚本中进行条件调用

转载 作者:行者123 更新时间:2023-11-30 09:57:36 25 4
gpt4 key购买 nike

我需要在用户试图离开页面、关闭选项卡或浏览器本身时弹出警告。我能够使用下面的 window.onbeforeunload 调用成功构建它。客户修改了要求,仅当网页上有未保存的编辑时才弹出。

我为页面上的 onChange 事件的必要字段添加了 sessionScope.Changed = true,并在单击“保存”时将值重置为 false。我已经确认 sessionScope 变量设置正确。但是,无论值是什么 - true 或 false,我都无法正确触发弹出窗口。我还尝试将 if/then 环绕在 window.onbeforeunload 行周围,并让函数只返回消息。

sessionScope 是否在页面脚本中根本不可用,或者我引用它不正确,还是其他原因?

编辑:我的页面使用一系列堆栈容器来模拟选项卡式界面。一旦用户在没有保存的情况下单击另一个选项卡,此构造似乎会阻止内置的 enableModifiedFlag,这就是我沿着 sessionScope 变量的路径前进的原因。

提前致谢!

  <script language="JavaScript">
var ch = '#{sessionScope.Changed}';
window.onbeforeunload = confirmExit;

function confirmExit() {
if (ch == true){
return "You have attempted to leave this page. If you have > made any changes without clicking the Save button, your changes will > be lost. Are you sure you want to exit this page?";
}
else {
return "";
}
</script>

最佳答案

最有可能的问题是对时间的误解。如果您查看源 HTML,您会看到浏览器页面上没有对 #{sessionScope.Changed} 的引用。那是因为表达式语言 (#{sessionScope.Changed}) 只能在服务器上计算。因此,结果随后作为文字值传递到客户端 JavaScript。因此,除非您在更改内容时进行部分刷新,否则该值将不会更新,因此您将测试 HTML 首次传递给浏览器时的值。

关于javascript - XPages - 访问 sessionScope 以在页面脚本中进行条件调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292540/

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