繁体   English   中英

在.NET嵌入式浏览器中通过AJAX提交数据

[英]Submit data via AJAX in .NET embedded browser

我们有一个设置,其中使用.NET嵌入式浏览器来显示通过将XSLT文件应用于XML文件(使用.NET)而生成的HTML页面。 这将生成使用DocumentText属性在嵌入式浏览器中显示的HTML。

我要实现的是在onmouseover上使用AJAX将一些数据发送到.NET组件。 问题是,.NET应用程序指出该URL是about:blank ,这也是手册中有关使用DocumentText属性的内容:

当您想使用字符串处理工具来操纵WebBrowser控件中显示的HTML页面的内容时,请使用此属性。 您可以使用此属性,例如,从数据库加载页面或使用正则表达式分析页面。 设置此属性后,WebBrowser控件会在加载指定的文本之前自动导航到about:blank URL。 这意味着,当您设置此属性时,将发生Navigating,Navigated和DocumentCompleted事件,并且Url属性的值不再有意义。

那么如何在该组件内部使用AJAX? 我没有要提交的网址...

有人做到了吗? 顺便说一句,我只做JS,不编写.NET。

我的代码不起作用:

    <script>

    function fnLog(action,rule){
        $.ajax({
          type: "POST",
//or: url:'about:blank',
//or: url: '',
//or url: 'localhost',
          data: "xmlToPost=<cr>"+
    " <guiActions>"+
        " <log>"+
           "  <action>"+action+"</action>"+
           "  <ruleId>"+rule+"</ruleId>"+
         "</log>"+
    " </guiActions>"+
 "</cr>"
        });
    }

    </script> 

编辑:我知道window.external.Post ,但这仅在IE中有效,并且与其余代码不同。 .NET开发人员希望坚持一种将数据发送到.NET的方法,这是通过将其发布来完成的,仅在每次mouseover都发布一个表单并不理想,因此这就是我要研究AJAX的原因。

您可以尝试导航到其他地方,例如ajax://<cr><guiAction..... ,。NET组件将收到有关此通知,采用新的URL并进行相应的解析,并防止重定向,因此不会进行任何操作实际发生在页面上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM