Javascript 突出显示IFrame中的文本
我正在尝试使用HTML、CSS和Javascript制作一个电子邮件签名生成器。我目前由一个表单和一个创建签名的按钮组成,用户在表单中输入他们的详细信息 单击按钮时,我让JS将用户输入的详细信息推送到HTML模板中,然后在同一页面上的IFrame中显示内容。我选择使用IFrame,以便签名样式与用于构建器页面的样式分开 现在,为了让用户更简单,我想添加一个按钮,突出显示IFrame的内容,然后将其复制到剪贴板,供用户粘贴到Outlook电子邮件签名中Javascript 突出显示IFrame中的文本,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用HTML、CSS和Javascript制作一个电子邮件签名生成器。我目前由一个表单和一个创建签名的按钮组成,用户在表单中输入他们的详细信息 单击按钮时,我让JS将用户输入的详细信息推送到HTML模板中,然后在同一页面上的IFrame中显示内容。我选择使用IFrame,以便签名样式与用于构建器页面的样式分开 现在,为了让用户更简单,我想添加一个按钮,突出显示IFrame的内容,然后将其复制到剪贴板,供用户粘贴到Outlook电子邮件签名中 我已经搜索过了,这似乎相当流行,但我不能突出
我已经搜索过了,这似乎相当流行,但我不能突出显示IFrame的内容。关于我要做什么才能使这项工作成功,你有什么想法吗?这里是一个在iframe中突出显示文本的JSFiddle 它不能复制iframe的内容,但应该可以帮助您继续。如果用户单击iframe,他们可以复制内容。如果我知道如何在不必单击iframe的情况下复制内容,我会让您知道。您可以从iframe中提取文本并将其放入当前文档中的临时隐藏表单中,但这似乎是一个混乱的解决方法
我设法弄明白我想做什么。非常感谢用户3333134帮助我走上正轨 这是一个演示我所追求的行为的例子。基本上,iframe中有一些html内容,我想复制这些内容,就像用户用鼠标选择它,然后将其复制到剪贴板一样
$(document).ready(function () {
$('#iframe').contents().find('body').html('<p>Line 1</p><p>Line 2</p>');
$('#click').click(function () {
var iframe = $('#iframe')[0];
var doc = iframe.contentDocument;
doc.execCommand('selectAll');
try {
var successful = doc.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
});
});
很接近,但我需要选择iframe本身的内容。iframe不包含任何用户输入字段,只包含html内容。我不认为您可以只选择普通的旧html,除非我缺少一些内容。我想说,黑客的解决方法是,当用户按下按钮时,从iframe中获取所需字段的html,将其设置为文本区域,然后自动选择文本区域并复制文本。可以从父文档中的iframe中提取文本,这样您就不必担心在iframe中选择文本。Dumb 5分钟编辑规则。。。这是JSFiddle。谢谢你的帮助,你写的不是我想要的,这可能是我不清楚的原因。但你确实帮我把这些点连起来了。
$(document).ready(function () {
$('#iframe').contents().find('body').html('<p>Line 1</p><p>Line 2</p>');
$('#click').click(function () {
var iframe = $('#iframe')[0];
var doc = iframe.contentDocument;
doc.execCommand('selectAll');
try {
var successful = doc.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
});
});