gpt4 book ai didi

javascript - 为什么 Javascript 控件不会加载到托管 Web 浏览器中?

转载 作者:行者123 更新时间:2023-11-29 18:37:50 25 4
gpt4 key购买 nike

不幸的是,我们不得不在 Windows 桌面应用程序中使用用于网页的 JavaScript 控件。为此,我们在应用程序中托管 Internet Explorer 并告诉它导航到本地网页。然后我们获取脚本引擎的 IDispatch 接口(interface),并使用它与控件进行交互。网页看起来像这样:

<html>
<head>
<script src="third party website url" type="text/javascript"></script>
</head>
<body onload="OurApp.OnLoad()">
</body>
</html>

(为清楚起见,我省略了一些标签和属性。)我们将“OurApp”对象添加到脚本引擎的命名空间。它是一个 IDispatch 接口(interface),允许脚本回调到我们的应用程序中。在我们应用程序的 OnLoad() 方法中,我们构建了由控件定义的各种 JavaScript 对象。

问题:在 99% 的情况下,这种设置效果很好。不幸的是,在某些客户机器上,我们的 OnLoad() 方法无法在脚本引擎中找到任何预期的方法。这就像来自第三方网站的 JavaScript 没有加载或不允许运行。对于许多客户,我们已通过更改 Internet Explorer 中的安全设置解决了该问题。但是现在我们有一些客户的安全设置看起来是正确的,但我们仍然遇到问题。

作为一个额外的问题,如果我创建一个如上所述的网页并让客户在他的机器上打开它,他会看到一个弹出栏,要求他授权事件内容,然后一旦他同意,一切都会正常进行。 (在此页面中,我用一些执行相同操作的 JavaScript 替换了 OurApp.OnLoad() 调用。)这与我在我的机器上得到的行为相同,但我们的应用程序在这里运行良好。我们在客户的机器上根本没有收到任何错误消息(尽管可能我们只是没有在正确的地方寻找)。

所以,我很难过。如有任何想法或建议,我们将不胜感激。

更新我们终于设法解决了这个问题。问题是我们将不受支持的语言环境传递给第三方网站。在这种情况下,他们返回的是一个空脚本,而不是接近匹配或合理的默认值。

最佳答案

您可能想要实现自己的安全管理器:

http://msdn.microsoft.com/en-us/library/ms537182(VS.85).aspx

关于javascript - 为什么 Javascript 控件不会加载到托管 Web 浏览器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008066/

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