xowf::test_item::Answer_manager method prevent_multiple_tabs (public)
<instance of xowf::test_item::Answer_manager> prevent_multiple_tabs \ [ -cookie_name cookie_name ]
Defined in packages/xowf/tcl/test-item-procs.tcl
Prevent answering the same survey from multiple, concurrently open tabs.
- Switches:
- -cookie_name
(defaults to"multiple_tabs"
) (optional)- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- create_test_items
Source code: template::add_body_script -script [subst { var cookieLine = document.cookie.split('; ').find(row => row.startsWith('$cookie_name=')); var cookieValue = (cookieLine === undefined) ? 1 : parseInt(cookieLine.split('=')\[1\]) + 1; // console.log("cookie $cookie_name " + cookieValue); if (cookieValue > 1) { alert('Already open!'); window.open("about:blank", "_self").close(); } document.cookie = "$cookie_name=" + cookieValue; // console.log("START finished -> " + document.cookie); window.onunload = function () { var cookieLine = document.cookie.split('; ').find(row => row.startsWith('$cookie_name=')); var cookieValue = (cookieLine === undefined) ? 0 : parseInt(cookieLine.split('=')\[1\]) - 1; document.cookie = "$cookie_name=" + cookieValue; // console.log("UNLOAD finished -> " + document.cookie); }; }]XQL Not present: Generic, PostgreSQL, Oracle