在 MTurk HIT

问题描述

我最近在 MTurk HIT 中使用 javascript cookies 时遇到问题。特别是我试图跟踪用户偏好 w.r.t 显示/隐藏 HIT 指令。

到目前为止,我的方法如下:

<body>
    <div id='instructionButton'>
        <!-- Button triggering instruction body to collapse/show -->
    </div>
    <div id='instructionBody'>
        <!-- Instruction content (collapsible) -->
        ...
    </div>
</body>
<script>
    const instructionBodyId = 'instructionBody';
    const instructionButtonId = 'instructionButton';

    const cookieName = 'my_cookie_name';
    var isInstructionShown = true;

    var instrContent = $('#' + instructionBodyId);
    var instrButton = $('#' + instructionButtonId);


    function setCookie(name,value) {
        var date = new Date();
        <!-- Cookie valid for 48h -->
        date.setTime(date.getTime() + (48 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toUTCString();
        document.cookie = name + "=" + value + expires + "; path=/";
    }

    function getCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }

    function toggleInstructions(isShow) {
        setCookie(cookieName,isShow);
        isInstructionShown = isShow;

        if (isShow) {
            instrContent.slideDown();
        } else {
            instrContent.slideUp();
        }
    }

    function prepare_cookie() {
        instrButton.click(function() {
            toggleInstructions(!isInstructionShown);
        });

        let cookieVal = getCookie(cookieName);
        if (cookieVal == "false") {
            toggleInstructions(false);
        } else {
            toggleInstructions(true);
        }
    }

    $(document).ready(function() {
        prepare_cookie();
    });
</script>

上面的代码显示了我正在创建的 HIT 布局的一部分,当在 MTurk 中直接编辑 HIT 进行测试时,cookie 按预期工作(它显示在 Google Chrome 中并按预期工作,显示/隐藏指令自动)。

不幸的是,在发布 HIT 时,cookie 似乎没有设置(它没有出现在 Google Chrome 中显示的 cookie 列表中)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)