我有一个页面上有两个<script>
块,一个在本地运行,一个在exactttarget服务器上运行:
<script type="text/javascript">
var results = localStorage.getItem('results');
var results = JSON.parse(results);
</script>
<script runat=server>
Platform.Load("Core","1");
Write(Stringify(results)); //this returns a 'null' value
var campaignsupdate = DataExtension.Init("0DB9904F-CE05-45E7-8052- 7C6935B4B012");
for(var i=0; i < results.length; i++) {
var rowid = results[i]["ROWID"];
var title = results[i]["title"];
campaignsupdate.Rows.Update({title: title},["ROWID"], [rowid]);
}
</script>
目前,在'runat=server'块中调用'results'返回一个空值。我如何访问"runat=服务器"块中的"结果"数组?
你不能。由于服务器端Java脚本在服务器上运行:),它在客户端机器上执行的javascript之前执行,因此当您在SSJS块中访问它时,var 'results'不存在。据我所知,SSJS不能与javascript通信,所以你不能使用javascript库或javascript块中编写的代码。作为一种替代方法,您可以在GET/POST请求中传递一个值,然后在SSJS中获取它。看看:http://help.marketingcloud.com/en/documentation/exacttarget/content/server_side_javascript/server_side_javascript_syntax_guide/core_library_server_side_javascript_functions/utilities_server_side_javascript_functions/请求对象和函数区域