Google apps script 嵌入谷歌网站的谷歌应用程序脚本中的换行符?
我是个新手,所以可能有一些明显的东西我遗漏了 这段代码嵌入在我公司使用的谷歌网站中Google apps script 嵌入谷歌网站的谷歌应用程序脚本中的换行符?,google-apps-script,newline,saml,Google Apps Script,Newline,Saml,我是个新手,所以可能有一些明显的东西我遗漏了 这段代码嵌入在我公司使用的谷歌网站中 基本上,我所做的是创建一个文本框,在SAML响应中,我单击按钮,它进行URL解码,然后base64解码字符串。这很有效(令人惊讶)。但输出只是XML的一长行。例如,为了在python中克服这个问题,我刚刚替换了“>\n我认为标签不允许任何创建新行的内容。您尝试了.createHTML,它允许基本标记。尝试使用带有标记的HTML 我没有试过,所以我不知道它是否有效 除此之外,我认为您需要拆分内容,并添加第二个标签
基本上,我所做的是创建一个文本框,在SAML响应中,我单击按钮,它进行URL解码,然后base64解码字符串。这很有效(令人惊讶)。但输出只是XML的一长行。例如,为了在python中克服这个问题,我刚刚替换了“>\n我认为标签不允许任何创建新行的内容。您尝试了
.createHTML
,它允许基本标记。尝试使用带有
标记的HTML
我没有试过,所以我不知道它是否有效
除此之外,我认为您需要拆分内容,并添加第二个标签。我找到了答案。我最终使用了.createHTML,然后替换了所有的““另一个角色。这一切都是因为XML和谷歌网站剥离了他们不喜欢的东西。不过,我很想听听其他解决方案,因为这是一个相当混乱的解决方案。您好。我确实试过了。这是注释掉的行之一。然后,它的格式不同,输出到处倾斜。它似乎在某种程度上曲解了XML(或者可能是谷歌网站删除了它?),只显示了部分文本。添加第二个标签是什么意思?您正在创建一个ID为“SAMLout”的标签,然后设置该标签的文本,对吗?然后将整个内容放入标签中,并尝试使用新行将其格式化。我想说的是,为新行上需要的文本的每一部分创建一个新变量,然后为每一行创建一个标签,并为该行设置文本。
function doGet(e) {
var myapp = UiApp.createApplication().setTitle('CAML Response Decoder');
var testText = "Decoded Response Will Appear Here...";
var mygrid = myapp.createGrid(2, 2);
mygrid.setText(0, 0, 'SAML Response: ');
mygrid.setWidget(0, 1, myapp.createTextBox().setName("SAMLin"));
mygrid.setText(1, 0, 'Decoded: ');
// mygrid.setWidget(1, 1, myapp.createTextBox().setName("SAMLout"));
mygrid.setWidget(1, 1, myapp.createLabel(testText).setWordWrap(true).setId("SAMLout"));
// mygrid.setWidget(1, 1, myapp.createHTML(testText).setId("SAMLout").setWordWrap(true).setWidth(50));
var mybutton = myapp.createButton('Decode');
// var mypanel = myapp.createVerticalPanel().setSize(800,500);
var mypanel = myapp.createHorizontalPanel();
mypanel.add(mygrid);
mypanel.add(mybutton);
myapp.add(mypanel);
var handler = myapp.createServerHandler('myClickHandler');
mybutton.addClickHandler(handler);
handler.addCallbackElement(mygrid);
return myapp;
}
function myClickHandler(e) {
var app = UiApp.getActiveApplication();
var textValue = e.parameter.SAMLin;
var strURIDecoded = textValue.replace(/%2D/g, "-").replace(/%5F/g, "_").replace(/%2E/g, ".").replace(/%21/g, "!").replace(/%7E/g, "~").replace(/%2A/g, "*").replace(/%27/g, "'").replace(/%28/g, "(").replace(/%29/g, ")").replace(/%3Cbr%20%2F%3E/g, "%0D" ).replace(/%0A/g, "%0D" ).replace(/%250D/g, "%0D").replace(/%5Cr%5Cn/g, "%0D").replace(/%2B/g, "+").replace(/%5Cn/g, "%0D").replace(/%5Cr/g, "%0D").replace(/%3D/g, "=");
var strB64Decoded = Utilities.base64Decode(strURIDecoded);
var Assertion = Utilities.newBlob(strB64Decoded).getDataAsString();
var AllDone = Assertion.replace(/></g, ">\n<");
// var AllDone = ("<div>" + AllDone2 + "</div>");
// var document = XmlService.parse(Assertion);
// var AllDone = XmlService.getCompactFormat()
// .setLineSeparator('\n')
// .setEncoding('UTF-8')
// .setIndent(' ')
// .format(document);
app.getElementById('SAMLout').setText(AllDone)
app.close();
return app;
}