【问题标题】:Inject a meta tag from a document's body?从文档正文中注入元标记?
【发布时间】:2012-10-01 03:26:49
【问题描述】:

我需要向某个页面添加一个元标记(具体来说,<meta name="apple-itunes-app" content="app-id=xxxxx">),但是我们的模板设置方式,我无法直接编辑 HEAD 标记的代码(对于公司,不是技术,原因)。

那么,有没有办法在 BODY 标签中使用 JQuery 来添加这个元标签?

【问题讨论】:

  • 在 Mobile Safari 6 的应用商店中在页面顶部的栏中显示应用。

标签: javascript jquery html meta-tags


【解决方案1】:

也许你可以试试这个:

jQuery:

$('head').append('<meta name="apple-itunes-app" content="app-id=xxxxx">');

Javascript:

document.getElementsByTagName('head')[0].appendChild('<meta name="apple-itunes-app" content="app-id=xxxxx">');

【讨论】:

  • jQuery 版本非常适合我。在我的应用程序中,我确实控制了头部,但是我想在 javaScript 中使这个横幅动态化。我将 jQuery 行放在脚本标记中作为 之前的最后一件事,iOS 可以正确检测到它。
【解决方案2】:

您可以添加元标记,但由于它们在正文被解析之前就被使用了,所以没用。

【讨论】:

  • 我害怕那个。上面的方法确实写了标签,但正如你所说的那样它不能正常工作。
  • 嗯,从技术上讲,这些将是向头部注入标签的正确方法,因此希望如果有人想这样做,他们会找到答案。我投票赞成你的答案,因为没有办法将多个标记为“正确”。
  • 这并不完全正确。某些元标记即使在正文被解析后添加也可以工作,请参阅stackoverflow.com/questions/3588628/…
【解决方案3】:

$('head').append("");

对我来说,这完成了工作:

  1. 把这个放在head部分,它会在body被解析之前检测并写入meta。如果没有任何条件,只需将html粘贴到head部分即可:
<script type="text/javascript">
     var isiPad = navigator.userAgent.match(/iPad/i) != null;
        if(isiPad === false){
          document.write('<meta name="apple-itunes-app" content="app-id={xxxxx}">');
        }
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2016-05-07
    • 2022-10-17
    相关资源
    最近更新 更多