【发布时间】:2017-10-27 14:00:39
【问题描述】:
服务器:Unix,客户端:IE Edge 我的部分代码:
%let P_debug_log = %str(<INPUT TYPE='hidden' NAME='_DEBUG' VALUE='LOG'>);
proc stream outfile=_webout quoting=both resetdelim='_do' ASIS;
BEGIN
%if "&_whattodo" ne "print" %then %do;
<script language='JavaScript' type='text/javascript'>
function subForm(f,v) {
if (v !== '') {
$('#'+ f).append('<INPUT TYPE="hidden" NAME="'+ v +'" VALUE="1">');
}
$('#'+f).submit();
}
$(document).ready(function() {
$('#footButtons').append($('.footButton')); /* move all elements with class=footButton to pageFooter */
$('#footMessage').append($('.footMsg'));
$('form.log').append("&P_debug_log.");
});
</script>
%end;
;;;;
输出: 问题是,生成的流输出在“某处”有换行符,但不是在预期的地方(使用选项 ASIS,它应该像我的代码一样格式化)。 这会导致不可预测的 JavaScript 错误,例如当换行符在 JavaScript 字符串中时。 似乎有一个隐含的 LRECL 1024。如果按预期设置换行符,那就没问题了。 有什么提示吗?
这是最初格式化的输出(页面源):
<script language='JavaScript' type='text/javascript'> function subForm(f,v) { if (v !== '') { $('#'+ f).append('<INPUT TYPE="hidden" NAME="'+ v +'" VALUE="1">'); } $('#'+f).submit(); }
$(document).ready(function() { $('#footButtons').append($('.footButton')); $('#footMessage').append($('.footMsg')); $('form.log').append("
<INPUT TYPE=
'hidden
' NAME=
'_DEBUG
' VALUE=
'LOG
'
>"); }); </script>
【问题讨论】:
-
看起来像 ASIS/PRESCOL 选项中的错误。你可能想用 SAS 来提高它。