gpt4 book ai didi

javascript - 通过 javascript 触发时 Silverlight ShowDialog() 抛出安全异常

转载 作者:行者123 更新时间:2023-12-02 18:27:30 25 4
gpt4 key购买 nike

我有一个如下所示的 JavaScript 函数。

var object;
$(document).ready(function () {
$("#buttonA").click(function (e) {

object.doWork(); //triggers a method in Silverlight

});
});

Silverlight 中的方法

private void doWork()
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.ShowDialog(); //throws error "Dialogs must be user-initiated"
}

关于抛出错误的任何想法。我没有在 silverlight 的 doWork 方法中设置任何断点。 javascript中的按钮点击事件似乎是用户发起的事件。请提出解决此问题的建议。

谢谢

最佳答案

对话框必须由用户启动,因为它们必须由于 Silverlight 组件内的用户交互事件(单击、按下按钮等)而发生。 (实际上“由于”实际上是交互后一定时间内必须发生的限制,而不是诸如调用堆栈之类的严格限制)

从 Silverlight 安全限制的 Angular 来看,这只是调用 Silverlight 的任意 javascript 方法,因此这是不可能的(有充分的理由)。您需要从真正的 Silverlight 按钮打开该对话框。

如果您确实需要从通过 javascript 调用的 Silverlight 控件中引发某种对话框,您可能需要实际回调以在 JavaScript/HTML 中打开对话框(或在任一环境中打开某种弹出窗口)。

关于javascript - 通过 javascript 触发时 Silverlight ShowDialog() 抛出安全异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205471/

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