Javascript 限制为HtmlPage.Window.Eval()

Javascript 限制为HtmlPage.Window.Eval(),javascript,silverlight,Javascript,Silverlight,我想知道HtmlPage.Window.Eval()是否有限制 我目前正在定义一个url来创建mailto链接,内容由silverlight应用程序自动生成,然后传递给用户。但是,当我调用HtmlPage.Window.Eval(“location.href='mailto:?Subject=my%20Application%20-%20Spot%2直接%20deal&body=请%20查找%20附件%20以下%20交易%20详细信息…”;) 电子邮件相当大,但是它低于mailto uri的限制

我想知道HtmlPage.Window.Eval()是否有限制

我目前正在定义一个url来创建mailto链接,内容由silverlight应用程序自动生成,然后传递给用户。但是,当我调用HtmlPage.Window.Eval(“location.href='mailto:?Subject=my%20Application%20-%20Spot%2直接%20deal&body=请%20查找%20附件%20以下%20交易%20详细信息…”;)

电子邮件相当大,但是它低于mailto uri的限制。我想知道Eval方法的大小是否有限制,这可能会给我带来问题,如果我传递一个简化的消息,我不会遇到任何问题


有没有其他方法可以做到这一点?我已经尝试了HtmlPage.Window.Navigate,但是这总是会打开一个新窗口,即使我指定使用self

要确保对文本进行编码,我使用:

string email = "mailto:" + "?subject=" + HttpUtility.HtmlEncode(subject) + "&body=" + HttpUtility.HtmlEncode(body);
HtmlPage.Window.Navigate(new Uri(email));
我认为url的字符限制是2048。

谢谢Rob

在将url发送到函数之前,我一直在对其进行编码。据我所知,在InternetExplorer中使用mailto链接时,字符集可能超过512个字符。虽然可以通过设置扩展此功能,但我目前无权进行此操作

我最终使用了以下脚本:

HtmlPage.Window.Eval("OpenEmailLink(" + uri + ")");

function OpenEmailLink(uri) {

        var win = window.open(uri, '_blank', 'scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=0,height=0,left=-1000,top=-1000');
        if (win && win.open && !win.closed) win.close();
    }
win对象为null时出现一些问题(这是因为应用程序将其视为一个跨域项目,因此没有返回一个对象供我关闭。因此,我不得不使用弹出窗口启动电子邮件客户端,这与我所希望的解决方案相去甚远,但限制意味着我必须暂时凑合