【问题标题】:add a <link rel="canonical" dynamically in the head tag在 head 标签中动态添加 <link rel="canonical"
【发布时间】:2015-01-29 02:35:44
【问题描述】:

我需要根据正在加载的页面动态地将链接 rel 标签添加到 head 标签。有没有办法使用 page.header.controls.add 方法来做到这一点?还是只能通过 javascript 或 jquery 实现?提前感谢您的帮助。

【问题讨论】:

  • 最好用你喜欢的任何 CGI 编程语言来做这个服务器端。在这种情况下,您将使用 ASP。
  • 谢谢回复,我是新手,能详细点吗?非常感谢
  • 我说最好使用服务器端,因为如果用户发出请求,您希望服务器在用户获取输出之前处理它。在我看来,这在服务器语言中会更有意义。

标签: javascript jquery html asp.net


【解决方案1】:

你可以试试这个

if(!document.getElementById('id2')) { var link = document.createElement('link'); link.id = 'id2'; link.rel = 'stylesheet'; link.href = 'CSS/Css1.cs'; document.head.appendChild(link); }

【讨论】:

  • 上面的代码没有添加链接 rel="canonical" - 我建议你用那个场景进行测试,以防万一行为不同。
【解决方案2】:

您可以为此使用HtmlGenericControl 类:-

HtmlGenericControl linkFile = new HtmlGenericControl("link");
linkFile.Attributes.Add("rel", "canonical");
linkFile.Attributes.Add("href", "testPath");
Page.Header.Controls.Add(linkFile);

【讨论】:

  • 谢谢,之前也试过了,但是在页面源代码中看不到链接标签,是我遗漏了什么吗?
  • 我在母版页后面的代码中添加了这个,我做错了吗?
  • @Mani - 我的意思是在哪个事件中?将其添加到母版页的Page_Load 事件中。
  • 奇怪!您如何验证是否添加了它?检查页面来源。
  • 检查了页面源 - 也使用了这个 HtmlLink clink = new HtmlLink(); clink.Attributes.Add(HtmlTextWriterAttribute.Rel.ToString().ToLower(), "canonical"); clink.Href = "test.com"; Page.Header.Controls.Add(clink);没用!
【解决方案3】:

我们也可以这样用:

 HtmlLink clink = new HtmlLink();
    clink.Attributes.Add( HtmlTextWriterAttribute.Rel.ToString().ToLower(), "canonical");
    clink.Href = "http://www.test.co.in/";
    Page.Header.Controls.Add(clink);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多