我正在尝试准备气体代码样本,以嵌入到谷歌网站和其他网站。我使用HtmlService.createHtmlOutput和HtmlService.createTemplateFromFile()和template.evaluate().getContent()来提供google应用程序脚本内容的html版本。所有这些都按照这个职位很好地工作。
现在,我想使用prettyify.js美化代码。我使用的是埋入caja版本,它几乎可以工作。但是,正在美化的代码中的特定方法名称会引发来自htmlservice的错误。
不受支持的来宾构造对象的不驯服。期望一个函数而不是字符串: pln
具体来说,这篇文章被成功美化了,
function xisItHtml (e) {
return ( e.parameter.hasOwnPropertu('template')) ;
}
而这会抛出一个错误
function xisItHtml (e) {
return ( e.parameter.hasOwnProperty('template')) ;
}
似乎特定的方法(奇怪,因为没有执行这些代码,只是美化),导致caja卫生投诉。
模板中的代码就是
$(document).ready(function () {
// any jQueryness can happen here...
try {
prettyPrint();
}
catch(err) {
alert("failed prettification " + err);
}
});
我有点困惑。有什么想法吗?
发布于 2012-11-07 19:29:22
因此,当您将包含.toString()或.hasOwnProperty()的经过修饰的文本插入到GAS中的there输出中时,似乎出现了失败。我找不到任何其他导致问题的文本,但可能还有更多。我的黑客只是在美化之前修改文本,然后再修改。
$(document).ready(function () {
// any jQueryness can happen here...
var thingsThatScrewUp = [ 'toString', 'hasOwnProperty'],t;
$('.pretty').each( function(i,elem) {
var c = $(elem).text() ;
// disguise
for (var i = 0 ; i < thingsThatScrewUp.length ; i++ ) {
c = c.replace(new RegExp("." + thingsThatScrewUp[i], 'g'),".sandw_" + i + "_ch");
}
try {
t = prettyPrintOne(c);
}
catch (err) {
$('#report').html(err + c);
}
// undisguise
for (var i = 0 ; i < thingsThatScrewUp.length ; i++ ) {
t = t.replace(new RegExp("sandw_" + i + "_ch", 'g'),thingsThatScrewUp[i]);
}
$(elem).html("<pre class='code pretty prettyprint'>" + t + "</pre>");
});
$('#working').html('Module:');
});
这是一个工作版本
https://stackoverflow.com/questions/13269471
复制相似问题