2

我正在运行 WYSIHTML5 以允许自己输入电子邮件文本并将其格式化以作为 HTML 发送。但是,当我查看格式化文本的 HTML 时,我会得到与颜色元素关联的类。这是预期的行为,但由于我需要在电子邮件中发送输出,因此我希望将这些颜色放在内联 CSS 中,因为我无法在电子邮件中附加 CSS 文件。这里的例子

<span class="wysiwyg-color-green">Testing</span>

也就是说,如果我为文本选择绿色:Testing. 有什么方法可以修改绿色使其成为 html 本身的一部分,例如

<span style="color:green">Testing</span>

我试图搜索这个但找不到,所以我没有先寻找它就不会问。如果有人可以请指出某个地方。即使是指向任何指南的链接,也可以。我不希望你花时间为我写代码。

4

2 回答 2

4

你可以用 php 做到这一点:

str_replace ( 'class="wysiwyg-color-green"', 'style="color:green"' ,$html)

你可以用 javascript 做同样的事情,尽管在服务器端做所有事情总是更安全。 http://www.w3schools.com/jsref/jsref_replace.asp

于 2013-02-06T09:07:35.230 回答
1

这是我使用的 javascript 代码,但注意上面的 Jean-Georges 警告可能是个好主意:

replaceColorStylesWithInlineCss = function (htmlContents){
    result = htmlContents.replace('class="wysiwyg-color-black"', 'class="wysiwyg-color-black" style="color:black"');
    result = result.replace('class="wysiwyg-color-silver"', 'class="wysiwyg-color-silver" style="color:silver"');
    result = result.replace('class="wysiwyg-color-gray"', 'class="wysiwyg-color-gray" style="color:gray"');
    result = result.replace('class="wysiwyg-color-maroon"', 'class="wysiwyg-color-maroon" style="color:maroon"');
    result = result.replace('class="wysiwyg-color-red"', 'class="wysiwyg-color-red" style="color:red"');
    result = result.replace('class="wysiwyg-color-purple"', 'class="wysiwyg-color-purple" style="color:purple"');
    result = result.replace('class="wysiwyg-color-green"', 'class="wysiwyg-color-green" style="color:green"');
    result = result.replace('class="wysiwyg-color-olive"', 'class="wysiwyg-color-olive" style="color:olive"');
    result = result.replace('class="wysiwyg-color-navy"', 'class="wysiwyg-color-navy" style="color:navy"');
    result = result.replace('class="wysiwyg-color-blue"', 'class="wysiwyg-color-blue" style="color:blue"');
    result = result.replace('class="wysiwyg-color-orange"', 'class="wysiwyg-color-orange" style="color:orange"');
    return result
};

注意:我在那里保留了所见即所得的样式,因为我正在保存到数据库并希望它在我再次加载时在 wysihtml5 部分中正确显示。如果你聪明,就把它擦干。

于 2014-03-31T01:22:48.160 回答