toloka - 向界面添加按钮
问题描述
我想添加一个按钮,让表演者在单击按钮后将一些文本复制到剪贴板。然而,我发现:
- 元素界面 { {button}} 不接受“点击”属性
- 原始的 html 按钮标签可能有效,但是当我将该函数添加到 on_click 属性和 js 部分时,页面返回错误“未找到该函数”。所以,我的问题是,如何将用户定义的 js 函数添加到项目中?有没有我可以参考的示例代码/项目?
解决方案
尝试在项目的 TASK INTERFACE 中添加以下代码:
<div>
{{field type="input" name="whatever" value=link size="L" width="70%"}}
{{button label="Copy text to clipboard" href="#" size="L"}}
</div>
<textarea class="hiddenInput"></textarea>
在 JS 字段的 onRender() 中:
onRender: function() {
var _document = this.getDOMElement(),
button = _document.querySelector('.button'),
hiddenInput = _document.querySelector('.hiddenInput'),
task = this;
button.addEventListener('click',function (e) {
e.preventDefault();
hiddenInput.value = task.getTask().input_values.link;
/*hiddenInput.focus();*/
hiddenInput.click();
hiddenInput.select();
document.execCommand('copy');
button.classList.add('button_disabled');
button.querySelector('.button__label').textContent = 'Done';
setTimeout(function () {
button.classList.remove('button_disabled');
button.querySelector('.button__label').textContent = 'Copy text to clipboard';
},1000)
})
},
推荐阅读
- vue.js - 如何从 graphql 查询中访问参数
- json - 雪花表中 json 数据的解析字段将多行插入新的雪花表
- amazon-web-services - 允许使用 CDK 公开访问 AWS Aurora VPC 集群
- types - 在python数据框中将对象转换为字符串
- amazon-web-services - 如何设置从现有 API 获取数据的 AWS Kinesis Data Stream?
- java - 无法使用 XStream 将 XML 转换为 Map
- c++ - 如何计算给定文本的高度和宽度?OpenGL
- elasticsearch - Filebeat/Logstash 不向 ECS 发送 system.auth.*.* 数据
- javascript - 页面完全滚动时如何使组件出现在固定元素下方
- java - (创建 bean 时出错) - org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为 studentRepository 的 bean 时出错