首页 > 解决方案 > 向界面添加按钮

问题描述

我想添加一个按钮,让表演者在单击按钮后将一些文本复制到剪贴板。然而,我发现:

  1. 元素界面 { {button}} 不接受“点击”属性
  2. 原始的 html 按钮标签可能有效,但是当我将该函数添加到 on_click 属性和 js 部分时,页面返回错误“未找到该函数”。所以,我的问题是,如何将用户定义的 js 函数添加到项目中?有没有我可以参考的示例代码/项目?

标签: toloka

解决方案


尝试在项目的 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)
})
},

推荐阅读