WebBrowser添加span标记

时间:2016-01-19 15:47:51

标签: c# .net forms winforms webbrowser-control

如何添加<span>标记 找到另一个span标签后?示例有此标记:

<span data-offset-key="d5l2u-0-0">
<br data-text="true">
</span>

**Must look like this:**

<span data-offset-key="d5l2u-0-0">
   <span data-text="true">Hello stackoverflow</span>
</span>

2 个答案:

答案 0 :(得分:0)

您可以使用JQuery替换span标记内的所有内容:

$(document).find('span').html('<span data-text="true">Hello stackoverflow</span>');

这将在整个html中找到第一个跨度。如果你想在一些特定的标签内搜索,比如名为“control”的id的div,你可以这样做:

$('#control').find('span').html('<span data-text="true">Hello stackoverflow</span>');

答案 1 :(得分:0)

您可以通过创建HtmlHelper并将其放在HtmlHelperExtensions.cs文件中来实现此目的。这个帮助方法使用TagBuilder来创建自定义嵌入式html span标记。

e.g。

public static MvcHtmlString SpanInSpan<TModel, TProperty>(
            this HtmlHelper<TModel> htmlHelper,
            Expression<Func<TModel, TProperty>> expression,
            string dataOffset = null,
            IDictionary<string, object> htmlAttributes = (IDictionary<string, object>)null)
        {
            var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var spanContent = metadata.Model.ToString();

            var tagBuilder = new TagBuilder("span");
            tagBuilder.MergeAttributes(htmlAttributes);
            tagBuilder.MergeAttribute("data-text", "true");
            tagBuilder.InnerHtml = spanContent;

            var outerTagBuilder = new TagBuilder("span");
            outerTagBuilder.MergeAttributes(htmlAttributes);
            outerTagBuilder.MergeAttribute("data-offset-key", dataOffset);
            outerTagBuilder.InnerHtml = tagBuilder.ToString(TagRenderMode.Normal);

            return MvcHtmlString.Create(outerTagBuilder.ToString(TagRenderMode.Normal));
        }

然后,您可以在视图中使用它来处理视图模型

e.g。

@Html.SpanInSpan(x => x.PropertyName, "d5l2u-0-0")

渲染此视图后的输出如下:

Rendered View

相关问题