在 Google 文档中创建彩虹文本
Creating Rainbow Text in Google Docs
var selectedElements = selection.getSelectedElements();
for (var i = 0; i < selectedElements.length; ++i) {
var selectedElement = selectedElements[i];
// Only modify elements that can be edited as text; skip images and other
// non-text elements.
var text = selectedElement.getElement().editAsText();
// Change the background color of the selected part of the element, or the
// full element if it's completely selected.
if (selectedElement.isPartial()) {
text.setColor(selectedElement.getStartOffset(),
selectedElement.getEndOffsetInclusive(), '#69359c');
}
}
}
上面的文本在 Google 文档内部进行了选择,并将其更改为十六进制代码 #69359c(深紫色)。我搜索了许多网站,许多gits,并向许多朋友寻求有关我的项目的帮助。
我的最终项目是这样的:
- 使用我的选择器为 Google 文档创建菜单(已完成)
- 能够突出显示一定数量的文本并将其更改为颜色数组(ROY G. BIV/THE RAINBOW)。
- 将格式设置为仅适用于 Google 文档。
如果有人可以帮助我,将不胜感激。
我刚刚发现了这个问题,很高兴从我的彩虹字体谷歌文档附加组件(魔术彩虹独角兽)中提供一些工作代码。
第一个问题是您需要在文本上设置前景色,第二个问题是上面的代码只允许部分段落选择。
对于整个选择,请使用以下代码:
var elementText = element.editAsText();
if (elementText) {
var paragraph = elementText.getText();
for (var j = 0; j < paragraph.length; j++) {
elementText.setForegroundColor(j, j, getNextRainbowColour(...));
}
}
对于部分选择,我使用了这个:
var elementText = element.asText();
var startIndex = element.getStartOffset();
var endIndex = elements.getEndOffsetInclusive();
for (var j = startIndex; j < endIndex+1; j++) {
elementText.setForegroundColor(j, j, getNextRainbowColour(...));
}
你已经非常接近答案了。尝试遍历"text"变量中的元素,以便更改每个元素的背景。
您可以使用这样的东西来迭代每个字母:
var letters = elementText.getText();
for(var j = 0 ; j< letters.length-1; j++)
{
elementText.setBackgroundColor(j, j+1, getRandomColor())
}
下面是使用不同颜色的函数示例:
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ )
{
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
对于您的最后一个问题,由于 Text 类不是 Javascript 的一部分,而是来自应用程序脚本库,因此这在 Google 环境之外不起作用。
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 借助asp.net验证或java脚本对多个文本进行验证
- 无法在ajaxStart中更改跨度文本
- 高亮显示时编辑文本大小和颜色
- jquery中的文本框验证
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Sails.js:同时发布文本输入和一个文件
- 当鼠标悬停在文本中的单词上时显示警报
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 将纯文本URL转换为可单击链接
- 彩虹色文本的循环动画
- 在 Google 文档中创建彩虹文本