gpt4 book ai didi

javascript - 转义 Qualtrics 管道文本以在 javascript 中使用(更一般地说,如何安全地转义用户生成的文本)

转载 作者:行者123 更新时间:2023-12-03 16:28:35 28 4
gpt4 key购买 nike

在我的 Qualtrics 调查中,我有一个自由回答(文本框)问题。我想将这个问题的回复转换成 javascript,这样我就可以进行一些复杂的文本处理并将结果发布到外部页面。

看起来官方的 Qualtrics 方法是使用管道文本代码:

var answer = "${q://QID1/ChoiceTextEntryValue}"

但这会生成 javascript 代码,并在代码中插入文字响应。如果调查人员在他们的回复中加上引号,它将破坏代码。我还验证了它可以用来注入(inject)任意 javascript!

有什么方法可以安全地将用户生成的值分配给变量?

我试过的:
  • 如果有一个 API 调用可以将响应直接放入 javascript 变量中而不必使用管道文本,那就太好了。我检查了他们的API documentation并与技术支持进行了交谈,并且看起来不存在这样的功能。
  • 如果 Qualtrics 具有用于字符替换的内置功能,我可以使用它来去除引号,那也会很有帮助,但我认为它没有。
  • 我可以使用响应验证来防止响应者提交包含引号的响应。这是我想出的唯一可行的解​​决方案,但对用户来说会很烦人。
  • 最佳答案

    我参加聚会有点晚了,但请关注 this support ticket ,我能够得到这样的问题响应文本:

    Qualtrics.SurveyEngine.addOnPageSubmit(function()
    {

    /* Get current question ID (e.g. 'QID10') */
    var qid_str = this.questionId;

    /* console log to check what ID was capture (you can comment this line)*/
    console.log('Question is: QR~' + qid_01_str)

    // Save the current question's response value QR~QID247~TEXT
    var responseTextField = document.getElementById('QR~' + qid_str);
    var currentResponse = responseTextField.value;

    /* console log to see what was captured (you can comment this line too)*/
    console.log('response text is: ' + currentResponse)

    });

    这解决了我自己在管道文本中使用双引号的问题。希望它可以帮助像我这样也有这个问题的其他考古学家!

    关于javascript - 转义 Qualtrics 管道文本以在 javascript 中使用(更一般地说,如何安全地转义用户生成的文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256458/

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