你好我已经尝试了好几天了。
我想做的是回显测试,然后创建一个将回显的文本复制到剪贴板的按钮。
所以我想要的是我有一个SQL列表,在该列表中有一个ID行,我可以将其传递给段落中的echo,但是当我尝试对参数执行相同操作时,#似乎出现了问题
while($row = mysqli_fetch_array($result)) {
echo "<div>";
echo " <p id='" . $row['ID'] . "'>" . $row['Message'] . "</p>";
echo '<button onclick="copyToClipboard('. $row['Title'] . ')">Copy TEXT 2</button>';
echo " </div>";
}
它也以某种方式生成参数,但是之间有一个空格 (“#om2”)“
非常感谢您的帮助
编辑。
脚本
<script type="text/javascript">
function copyToClipboard(element) {
var $temp = $("<textarea>");
$("body").append($temp);
var html = $(element).html();
html = html.replace(/<br>/g, "\n"); // or \r\n
console.log(html);
$temp.val(html).select();
document.execCommand("copy");
$temp.remove();
}
</script>
带有echo '<button onclick=\"copyToClipboard(' . $row['Title'] . ')>Copy TEXT 2</button>';
答案 0 :(得分:0)
您正尝试通过#OM2
函数作为参数{1>} ...
缺少一些引号使它成为字符串。实际上,copyToClipboard()
不是。
尝试添加一些#OM2
:
\'
应该可以...但是我建议一个更好的选择...
使用类来处理click事件,而不是内联echo '<button onclick="copyToClipboard(\''. $row['Title'] . '\')">Copy TEXT 2</button>';
。
onclick
然后您的剪贴板复制脚本将简单地是:
while($row = mysqli_fetch_array($result)) {
echo "<div>";
echo " <p id='" . $row['ID'] . "'>" . $row['Message'] . "</p>";
echo '<button class="copy">Copy TEXT 2</button>';
echo " </div>";
}
$(".copy").on("click",function(){
var text = $(this).prev("p").html().replace(/<br>/g, "\n");
navigator.clipboard.writeText(text);
});
$(".copy").on("click",function(){
var text = $(this).prev("p").html().replace(/<br>/g, "\n");
navigator.clipboard.writeText(text);
});