STP 做了一些事情,完成后我需要关闭它的窗口。所以-6ren">
gpt4 book ai didi

javascript - 在 SAS/HTML/javascript 中,如何在打开后立即关闭 STP _webout html 页面?

转载 作者:行者123 更新时间:2023-11-29 17:49:05 25 4
gpt4 key购买 nike

从网页中的表单,我在新窗口中打开存储过程 (STP)。

<form target="_blank" action="http://<UrlToMySTP>" method="get" enctype="multipart/form-data">

STP 做了一些事情,完成后我需要关闭它的窗口。所以我试着用这样的javascript关闭它

data _null_;
file _webout;
put '<HTML>';
put ' <HEAD>';
put ' </HEAD>';
put ' <BODY onLoad="window.close()">';
put ' </BODY>';
put '</HTML>';
run;

但我收到一条错误消息:

Scripts may close only the windows that were opened by it

我找不到任何解决方案。是否有可能规避问题以获得相同的结果?

最佳答案

您可以尝试使用 dataType: "jsonp" 进行 ajax 查询。 它可以克服 CORS。STP 必须返回 json 响应,由 js 函数的名称包装,将在 ajax 响应后在浏览器中执行。

例子

json_test.sas

 data _null_;
file _WEBOUT;
put "JSFunctionToAlertHTML({""Code"":0});";
run;

html_test.html

必须包含:

$.ajax({
url: "http://servername:port/SASStoredProcess/do?_program=path%2Fjson_test&callback=?",
dataType: "jsonp"
});

请注意附加参数 callback=in url

  function JSFunctionToAlertHTML(json){
//Your code
}

如果您使用 EG 创建存储过程,您还必须从 STP 设置中排除存储过程宏并将结果功能设置为流。

关于javascript - 在 SAS/HTML/javascript 中,如何在打开后立即关闭 STP _webout html 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com