gpt4 book ai didi

javascript - HtmlPage.Window.Navigate 在调试中有效,但在部署时无效

转载 作者:行者123 更新时间:2023-12-02 20:31:11 25 4
gpt4 key购买 nike

我正在创建一个使用 <Button> 的 Silverlight 应用程序标签,并调用 HtmlPage.Window.Navigate(new Uri("http://www.google.com"));期间Click事件。

在调试中,这工作正常。我可以单击该按钮并重定向到请求的位置。将其发布到服务器时,请求的操作无法执行。

我还尝试了其他变体,例如通过 HtmlPage.Window.Invoke() 调用 JavaScript或者只是使用 HtmlPage.Document.Submit() 简单刷新页面,但是一旦推送到服务器,两者都无法工作。

我现在很困惑。文件运行的两个位置之间唯一真正的区别是:

  • Silverlight 应用程序包装在 MVC 页面中,而不是自动生成的测试页面
  • 它还位于服务器的另一个端口上——我为 .NET 4 测试预留了一个端口。 MVC 页面位于:80,Silverlight 应用程序位于:81

几乎每次 Silverlight 应用程序尝试在 JavaScript 级别与 MVC 页面交互时,它都会失败(当然,不会引发任何可见错误)。我之所以这么认为是因为,当我写这篇文章时,我试图通过 MessageBox.Show() 弹出一个消息框。 Silverlight 中的命令——它没有出现。

我还可以尝试其他想法吗?

最佳答案

事实上,XAP 在端口 81 上,而您的 JavaScript 在端口 80 上,这使得这是一个跨域调用。默认情况下,Silverlight 不允许跨域 JavaScript 交互。

看看security settings对于这种场景。

我认为在您的情况下,有必要使用 enableHtmlAccess 启用跨域 HTML 访问,像这样:

<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2"
width="300" height="100">
<param name="source"
value="http://www.northwindtraders.com/MySample.xap"/>
<param name="enableHtmlAccess" value="true" />
</object>
</div>

关于javascript - HtmlPage.Window.Navigate 在调试中有效,但在部署时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101272/

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