【问题标题】:C# write a string to a variable defined in %name% in a loaded html page in WebBrowser controlC#将字符串写入WebBrowser控件中加载的html页面中%name%中定义的变量
【发布时间】:2016-06-09 22:42:15
【问题描述】:

我在 WinForm 内的 WebBrowser 控件中加载了一个 html 本地文件。在html代码中,我在%variables%中定义了一些变量。

我的问题是如何将WinForm中的字符串/数据传输/引用到加载的html页面中定义的%viarables%,并刷新WebBrowser上显示的加载的html页面。

以下是加载本地 html 文件的代码。任何建议将不胜感激。

顺便说一下,它是一个WinForm应用程序,不是asp.Net。

        string curDir = Directory.GetCurrentDirectory();
        this.webBrowser1.Url = new Uri(String.Format("file:///{0}/{1}", curDir + "\\Forms", fileName));

【问题讨论】:

    标签: c# html winforms


    【解决方案1】:

    与其在加载 HTML 后尝试替换变量(这可能会出现问题),不如先读取源文件,替换变量,然后将更新后的文档加载到 Web 浏览器控件中?这似乎更简单。

    例如:

    string dir = Path.Combine(Directory.GetCurrentDirectory(), "forms");
    string html = File.ReadAllText(Path.Combine(dir, fileName));
    foreach (string variable in GetListOfVariables())
    {
        html = html.Replace(variable, GetReplacementForVariable(variable));
    }
    webBrowser1.DocumentText = html;
    

    【讨论】:

    • 没问题;很高兴我能帮上忙。
    【解决方案2】:

    您可以控制 HTML 文件的内容吗?您可以尝试将InvokeScript 方法与事先在文档中准备的 Javascript 函数配对。

    如果您不控制内容,则可以从代码中注入 javascript。 Here 是这样做的一些例子。

    【讨论】:

    • 德米特里,感谢您的建议。我没有写控制内容。
    猜你喜欢
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2010-12-08
    相关资源
    最近更新 更多