gpt4 book ai didi

c++ - WebBrowser 控件 : Navigate shows error message box even though . Silent 为真

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:38 29 4
gpt4 key购买 nike

我正在托管一个 Web 浏览器控件,使用 IWebBrowser2.put_Silent(VARIANT_TRUE) 进行初始化。

但是,当使用格式错误的路径调用 IWebBrowser2.Navigate 时,我仍然会收到一个消息框,相当于

"file:///D://htmlstuff/page.html" was not found. Make sure the path or internet address is correct.

此处的问题是用户意外指定的双斜杠(D:\htmlstuff 而不是 D:\htmlstuff)。

我可以在执行导航之前更早地发现这个特定问题,但我担心这个消息框仍然出现,因为我无法验证每个可能的 URL(或其他可能导致 webbrowser 控件忽略 Silent 标志的原因) .

我希望得到一个静默返回的错误代码。

有什么想法吗?是否有“更安静”的选项?

Windows 8.0、IE 10.0.9200.16750

最佳答案

这是 WebBrowser 控件的不良行为,我在使用 VBA 和 UserForms 时遇到过这种情况。我的解决方法是将目标 URL 加载到小型托管页面内的 iframe 中。这方式不会弹出警报,您可以查询目标 URL 是否确实加载。

<PathTo>/framehost.html#<TargetURL>调用托管页面

<!DOCTYPE html>
<head>
<title>Frame Host</title>
<script>

window.onload = function() {
var frame = document.getElementById('MyFrame');
frame.src = location.hash.substring(1);
frame.onload = function() {
try {
var doc = frame.contentDocument;
alert("Loaded " + frame.src);
} catch(e) {
alert("Failed to load " + frame.src)
}
}
}

</script>
</head>
<body>
<iframe id="MyFrame" src="about:blank"></iframe>
</body>
</html>

关于c++ - WebBrowser 控件 : Navigate shows error message box even though . Silent 为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22200768/

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