Копирование в буфер обмена на JavaScript

В JavaScript скопировать в буфер обмена можно только то что находится внутри тега <input>. Потому приходиться для копирования в буфер обмена произвольного текста приходиться идти на ухищрения в виде например временного помещения текста для копирования в input. Например как-то так:

<span style='cursor: pointer;' id='ipsegsw'>192.168.1.1</span>
<script>
$('#ipsegsw').click(function() {
	    var $temp = $("<input>");
	    $("body").append($temp);
	    $temp.val($('#ipsegsw').text()).select();
	    document.execCommand("copy");
	    $temp.remove();
            console.log('IP скопирован в буфер обмена');
});
</script>