You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用Script.Literal函数的情况下将指定JavaScript转为Script#?

转换JavaScript的Message监听代码到Script#(无Script.Literal)

嘿,我刚好对Script#的使用有不少经验,这就帮你把那段原生JS代码转换成合规的Script#实现,完全不用Script.Literal:

首先,Script#是通过C#语法生成JavaScript的,我们可以直接用它提供的DOM封装类来实现窗口事件监听:

using ScriptSharp;
using ScriptSharp.Dom;

public class MessageHandler
{
    public void InitializeMessageListener()
    {
        // 对应原生window对象,添加message事件监听
        Window.Current.AddEventListener("message", OnMessageReceived, false);
    }

    private void OnMessageReceived(MessageEvent eventArgs)
    {
        // 获取消息内容,对应原生e.data
        string message = eventArgs.Data.ToString();
        // 弹出消息,对应原生alert()
        Window.Alert(message);
    }
}

关键细节说明:

  • Window.Current:Script#中用来指代浏览器全局window对象的封装类,和原生JS的window完全对应。
  • AddEventListener:和原生JS的同名方法参数逻辑一致,第三个参数false表示在冒泡阶段触发事件,和你的原生代码行为匹配。
  • MessageEvent:Script#封装的message事件参数类型,它的Data属性就是原生事件对象里的e.data,调用ToString()就能拿到消息字符串。
  • Window.Alert:对应原生JS的alert()函数,完全不需要手写原生代码片段。

这样实现的代码编译后生成的JavaScript,和你提供的原生代码功能完全一致,而且全程没有用到Script.Literal,完全符合你的要求。

内容的提问来源于stack exchange,提问作者Tengmo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:13:25