gpt4 book ai didi

Excel Add In : Clicking a link to a different domain works, 但用 JS 改变位置不

转载 作者:行者123 更新时间:2023-12-04 15:00:06 24 4
gpt4 key购买 nike

我想将我的加载项重定向到不同域中的 URL。

我像这样将域添加到 list 中:

<AppDomains>
<AppDomain>https://another.domain.com</AppDomain>
</AppDomains>

我可以验证它是否有效,因为我可以像这样向我的插件添加一个普通链接:

<a href="https://another.domain.com/something">Click me</a>

然后我单击该链接,一切正常。

但是如果我尝试像这样以编程方式更改位置:

window.location.href = "https://another.domain.com/something";

然后加载项停止工作,仅显示错误屏幕显示“加载项错误抱歉,我们无法加载加载项。请确保您有网络和/或互联网连接。单击“重试”一次你又上线了。”

这是预期的行为吗?如何将我的加载项重定向到其他域?这过去在 IE11 webview 上运行良好,但不适用于 Chromium webview。

最佳答案

我不是 Office 加载项方面的专家,但据我了解,当您使用 WebView2 时在 Office 加载项中 WebView2窗口在 IFRAME 中运行,而主文档是内部 Office 窗口。

现在,当您通过 CoreWebView2.ExecuteScriptAsync(String) 注入(inject)脚本时方法,根据文档将这些脚本注入(inject)到主文档中:CoreWebView2.ExecuteScriptAsync(String) :

Runs JavaScript code from the javaScript parameter in the currenttop-level document rendered in the WebView.

这意味着window将指向内部 Office 主窗口,而不是您的 WebView2 .当您尝试浏览此内部窗口时,它会崩溃。相反,当您在 WebView2 中有一个链接时它导航 WebView2 iframe.

我看到 2 个解决方案:

<强>1。访问 Iframe窗口对象:

window.frames[0].location.href = "https://another.domain.com/something";

这里我假设只有一个 iframe。否则遍历 window.frames .

<强>2。将您的 javascript 直接加载到您的文档中:

将脚本标签添加到您的 <head>元素:

<script src="https://example.com/script.js"><script> .

现在window将是 WebView2 window 。这需要您控制 html。如果你这样做,我推荐这种方法。

关于Excel Add In : Clicking a link to a different domain works, 但用 JS 改变位置不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67111423/

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