【问题标题】:Sas STP Putting javascript, Problems with jquery interpretationSas STP 放 javascript,jquery 解释问题
【发布时间】:2016-11-14 19:34:39
【问题描述】:

我有一些存储过程,其中放出一些 html 和 javascript,当我在浏览器中调用它们时(存储过程门户网站,Sas 9.3)它们可以工作:

工作示例:

put '<script type="text/javascript">';
if _n_ = 1  then do;
put 'function spSDesc(index){';
put 'document.getElementById("descText").value=spDescs[index];';
/*or put "document.getElementById(%str(%"descText%")).value=spDescs[index];";*/
put '};';
put '</script>';

这很好用。

但现在我想做一些 jquery 代码,但它不能那样工作:

put  " <script src=%STR(%"https://code.jquery.com/jquery-1.12.4.js%")></script>";
put "  <script src=%STR(%"https://code.jquery.com/ui/1.12.0/jquery-ui.js%")></script>";
put "<script>";
put " $( function() {";
put " $(%str(%"#datepicker%")).datepicker();";
/* or put ' $("#datepicker").datepicker();';*/
put "  } );";
put "</script>";

在浏览器中给我一个错误:

Mozilla 火狐:

15:19:47.465 SyntaxError: 预期表达式,得到 '&'1 do:1400:3

IE

SCRIPT1002:Syntaxfehler Datei:do,Zeile:1400,Spalte:5

浏览器中的代码:

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>                                                                                                                                  
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>                                                                                                                          
<script>                                                                                                                                                                                          
 $( function() {                                                                                                                                                                                  
 $(&quot;#datepicker&quot;).datepicker();                                                                                                                                                                    
  } );                                                                                                                                                                                            
</script> 

所以" 处理不正确,如果我在一些依赖于 jquery 的代码中使用它(请参阅它对于脚本 src= 部分的工作正确)。

有人可以帮我解决这个问题吗?我需要以另一种方式转义",还是使用其他jquery代码?或者它根本不适用于 jquery?

编辑: 据我了解,问题是: &amp;quot; 不被解释为 ",所以我得到一个语法错误 所以我需要 stp 编写 "´ 而不是 &amp;quot; 或让 jquery/javascript/browser 将 &amp;quot; 解释为函数内部的 "

EDIT2 + 解决方案: 在我的工作环境中,我只使用文件 _webout(我的工作示例来自那里),我认为在我的测试环境中我可以使用文件打印作为等效项,但我错了。我的示例中没有包含完整的输出代码,因此无法解决,对此我深表歉意。

data _null_;

*file print; /*does not work correct with "*/

file _webout;/*does work correct with "*/

put ...... /*example code comes here*/


run;

【问题讨论】:

    标签: jquery sas


    【解决方案1】:

    试试这个:

    data _null_;
    put  ' <script src="https://code.jquery.com/jquery-1.12.4.js"></script>';
    put  ' <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>';
    put '<script>';
    put ' $( function() {';
    put ' $( "#datepicker" ).datepicker();';
    put '  } );';
    put '</script>';
    run;
    

    选项 2:

    试试这个:

    <script>
        $( document ).ready(
         $( function() {
                $( "#datepicker" ).datepicker();
         } );
        );
      </script>
    

    【讨论】:

    • 这是我帖子(或部分)评论行中的解决方案,确实已经尝试过了,同样的效果。 ' "text" ' 和 "%str(%"text%")" 是等价的
    • 我在 STP 中经常使用 jquery,但我通常将 jquery 下载到本地文件夹。您可以添加完整的错误吗?还是仅此而已?
    • 这就是萤火虫向我展示的全部内容。当然,日期选择器不起作用...稍后我将在自己的服务器上使用 jquery,这只是为了测试,但 src 部分有效,它只是函数中不起作用的部分。跨度>
    • 顺便问一下css id=datepicker是否存在于你的html中?
    • 好的,我搞定了。问题实际上与文件选项有关。使用文件打印;在大多数情况下确实有效,但在这个特定的情况下,文件 _webout;确实工作正确。所以问题不在于我发布的代码(我的错误),而在于我使用文件选项的方式。但请您支持。
    【解决方案2】:

    为了避免引用您的 javascript 代码的问题以及提高一般可读性,最好直接从 Web 服务器本身提供 Web 文件(例如,如果是 jboss,则为 ROOT.war)。您将获得更快的响应时间(甚至可以在连接到 SAS 会话之前提供 html)和更简洁的界面(提供数据而不是修改后的标记)。

    您使用file print; 的方法可能通过将html 发送到ODS 目的地在本地工作,但通过存储过程Web 应用程序代理提供服务始终需要file _webout;。您仍然可以使用--disable-web-security 命令行标志(描述为here)以这种方式在本地处理您的Web 文件,但您的SAS 代码需要在STP 服务器上运行。以这种方式构建 STP Web 应用程序的指南可在 here 获得(完全公开 - 我写的)。

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      相关资源
      最近更新 更多