Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将html打印到要复制的曲面_Javascript_Html - Fatal编程技术网

Javascript 将html打印到要复制的曲面

Javascript 将html打印到要复制的曲面,javascript,html,Javascript,Html,我使用以下代码将表的html存储为文本 var Data = document.getElementsByClassName("result")[0].innerHTML; 我可以使用控制台.log查看所选零件,但是,我希望提取这些数据,以便在外部复制和使用 因此,我尝试了警报(数据),但它并没有提供一个很好的表面来复制数据(尽管它可以工作,但我无法使用右键单击弹出窗口) 我还尝试以编程方式将数据复制到剪贴板,但它似乎只适用于选定的文本数据 有没有更好的方法提取这些数据供外部使用 注意:我正在

我使用以下代码将表的html存储为文本

var Data = document.getElementsByClassName("result")[0].innerHTML;
我可以使用
控制台.log查看所选零件,但是,我希望提取这些数据,以便在外部复制和使用

因此,我尝试了
警报(数据)
,但它并没有提供一个很好的表面来复制数据(尽管它可以工作,但我无法使用右键单击弹出窗口)

我还尝试以编程方式将数据复制到剪贴板,但它似乎只适用于选定的文本数据

有没有更好的方法提取这些数据供外部使用

注意:我正在使用firefox书签执行javascript。但我希望这些代码也能在其他浏览器中使用

编辑:我尝试了评论中建议的方法,但是在firefox中,我遇到了一个错误

document.execCommand(‘cut’/‘copy’) was denied because it was not called from inside a short running user-generated event handler.
因此,如果可能,打印到曲面似乎比使用该命令进行复制更好链接的问题不能解决我的问题。


Edit2:
window.prompt
做得更好,但是它把文本按到一行,震撼了我的世界。我仍然应该能够以编程方式解析它,但如果有更好的答案,我希望学习它。

下面是我保留多行的解决方案

它创建一个临时“textarea”,然后在选择()->复制后将其删除

函数triggercopy(){
var target_obj=document.getElementById('test1');
var copy_text=target_obj.innerHTML;//替换为实际数据。
var hidden_obj=document.createElement(“textarea”);
隐藏对象值=复制文本;
document.body.insertBefore(隐藏对象、目标对象);
console.log('prepare:'+copy_text);
隐藏对象选择();
文件。执行命令(“副本”);
document.body.removeChild(隐藏对象);
console.log('已复制:'+复制文本);
}
Text3as
dfsadf
Text3as

dfsadf
我发现两种方法最适合我的兴趣

首先,
窗口。提示符

var Data = document.getElementsByClassName("result")[0].innerHTML;

function copyToClipboard(text) {
    window.prompt("Copy data.", text);
}
copyToClipboard(Data)
这是一个很好的方法,取自一个建议的答案。这会将数据放入单行文本字段中。有趣的是,当在没有函数的情况下编写时,会执行
document.write(Data)
当单击
OK
时,在上述函数中编写时不会发生这种情况

第二步,
文档。写

var target = document.getElementsByClassName("resultTable striped")[0].outerHTML;
document.open('text/plain');
document.write(target);

我首先尝试打开一个包含所需内容的新选项卡,但是遇到了弹出窗口阻止程序和非纯文本html数据(格式化html而不是所需的表html数据)的问题。这就解决了这两个问题。

那么你是在问如何使用JavaScript将HTML内容复制到剪贴板?首先,获取要复制的对象,然后调用select()选择它,然后调用exec copy。@ObsidManager是的,我找到了
document.execCommand('copy')
,但据我所知,我需要先选择需要的部分,我想在我的情况下我做不到。@Sphinx,我试过了,但得到了
数据。select不是一个函数
错误。也许我做错了什么?可能是重复的谢谢你的回答,我正在使用
窗口。提示
。我更改了此代码以供使用,并得到一个“未找到节点”错误。您的代码中可能有错误。在JSFIDLE上提供您的代码,然后我们可以帮助您。我可能已经找到了更好的方法,使用
document.write()
可以更好地打印数据。