我想将当前网址添加到属性内容的元标记中

时间:2019-07-18 19:22:42

标签: javascript html aem window.location

我想将我当前的URL添加到内容值的meta标签中,当前使用某些指向错误url的对象是不正确的。

<meta property="og:url" content="${request.requestURL.toString}" />

这将返回错误的URL,此标记位于组件内部,该组件在整个站点的许多其他页面中使用,因此它被回收了,我不能仅对URL进行硬编码。

这是我尝试使用一些javascript进行的操作,但是它不起作用,我相信它会在知道它所在的url之前运行脚本。

<script>

    var currentLocation = window.location;
    </script>
<meta property="og:url" content="${currentLocation}" />




,但不会返回当前位置 当我查看页面源代码时,它只是显示此 它甚至不显示content属性

<meta property="og:url"/>


enter image description here

如果我检查了一下,可以看到该变量中引用了该URL

5 个答案:

答案 0 :(得分:0)

html无法处理javascript ...这是一种静态语言。您需要使用脚本进行设置

<meta id="meta-location" property="og:url" content="" />

<script>
  document.querySelector('#meta-location').setAttribute('content', location.href)
</script>

答案 1 :(得分:0)

由于JS在初始化DOM之后编辑DOM,因此您必须在加载元标记后运行脚本。通过属性选择器获取元,如下所示:

<meta property="og:url" content="" />

<script>
  document.querySelector('meta[property]="og:url"').setAttribute('content', location.href)
</script>

或者您可以使用名称:

<meta name="url" property="og:url" content="" />

<script>
  document.querySelector('meta[name]="url"').setAttribute('content', location.href)
</script>

答案 2 :(得分:0)

您可以尝试使用类似方法,使用此方法,您将在meta标记中获得完整的网址。

<meta property="og:url" content="${request.scheme}://${request.serverName}:${request.serverPort}${currentpage.path}.html" />

答案 3 :(得分:0)

尝试将Java类用于业务逻辑(无论是吊索模型还是扩展WCMPojo类)

我使用规范标签具有类似的功能。我所做的是从我的FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base返回了一个字符串(Url),并根据给定条件对其进行了更新。

Model

以HTML

String url;
// getter of url


@PostConstruct
public void afterCreated() {

    url = url + domainName + slingRequest.getRequestURI();
 or
    url = slingRequest.getRequestURL().toString();
 or
    url = "Any modification you like";
}

通过这种方式,您可以轻松调试并进行相应的修改。

希望这会有所帮助。

答案 4 :(得分:0)

  1. 使用 .querySelector()
  2. 选择元标记
  3. window.location.href (您当前的网址)设置为以下网址的内容 使用 .setAttribute()
  4. 的元标记
<meta name="url" property="og:url" content="www.sample.com" />
<script>
    document.querySelector("meta[name=\"url\"]").setAttribute("content", window.location.href);
</script>