Поместите URL-адрес текущего сообщения в Blogger

Я хочу поместить URL-адрес текущего сообщения в текстовую область каждого сообщения, поэтому я набрал следующий код в редакторе сообщений (режим HTML):

<script type='text/javascript'>
  var postUrl = '<data:post.url/>';
  document.write('<textarea>');
  document.write(postUrl);
  document.write('</textarea>');
</script>

Но то, что появилось, было

<data:post.url/>

который не заменяется URL-адресом сообщения.

HTML-макет содержит следующий код:

<body expr:class='&quot;loading&quot; + data:blog.mobileClass'>

Поскольку доступно много пользовательских виджетов Facebook/Twitter (кнопка «Мне нравится» и т. д.), я думаю, что должен быть какой-то способ передать значение data:post.url для целевого jscript, но мой поиск в Google неуспешный.


person Jeffrey Goines    schedule 17.03.2013    source источник
comment
этот код не будет работать в виджетах... API-интерфейс blogger в основном работает с шаблоном по умолчанию... вы правильно помещаете это в шаблон?   -  person Rahul Shah    schedule 17.03.2013
comment
Нет, я планирую размещать сценарий в каждом посте. До этого я пробовал document.write(document.url); но document.url — это просто URL-адрес блога.   -  person Jeffrey Goines    schedule 17.03.2013
comment
насколько мне известно, это не будет работать в сообщениях... теги блоггера работают только и только в шаблонах, а не в сообщениях/виджетах.   -  person Rahul Shah    schedule 21.05.2013


Ответы (4)


Вы можете поместить это в свой пост:

<div id="mytextbox"></div>

Затем отредактируйте свой шаблон, поместив этот код внизу перед закрывающим тегом </body>.

<script type='text/javascript'>
var d=document;
var mydiv = d.getElementById(&quot;mytextbox&quot;);
if (mydiv!=null)
{
mydiv.innerHTML = mydiv.innerHTML + &quot;<textarea>&quot;+&quot;<data:blog.url/>&quot;+&quot;</textarea>&quot;;
}
</script>

Код макета Blogger <data:blog.url/> фактически возвращает URL-адрес текущей страницы, а не URL-адрес блога.

person user850010    schedule 17.03.2013
comment
спасибо, но data:blog.url дает только URL-адрес блога, а не URL-адрес каждого сообщения - person Jeffrey Goines; 17.03.2013
comment
Я попробовал код в своем блоге, и он возвращает URL-адрес сообщения в блоге. Подробнее об элементах макета Blogger читайте здесь: поддержка. google.com/blogger/bin/, где указано URL: URL-адрес текущей страницы. HomepageUrl: домашняя страница блога. - person user850010; 17.03.2013
comment
если я щелкнул заголовок сообщения, URL-адрес изменился, а в текстовом поле отображается правильный (относящийся к сообщению) URL-адрес. Тогда использование data:blog.url точно такое же, как и document.write(document.url)? - person Jeffrey Goines; 17.03.2013
comment
Да, кажется. Если вы хотите разместить URL-адрес сообщений на главной странице, вам следует использовать data:post.url, но вам, вероятно, придется найти фрагмент кода в шаблоне, который перебирает сообщения. - person user850010; 17.03.2013
comment
Можете быть более конкретными? :) - person user850010; 20.03.2013

Очевидно, он просто обрабатывает «data: post.url» как строку, поскольку она заключена в кавычки, это работает?

<script type='text/javascript'>
  document.write('<textarea>' + data:post.url + '</textarea>');
</script>
person David Gilbertson    schedule 18.03.2013
comment
Это ничего не добавляет к выводу. - person Jeffrey Goines; 18.03.2013

Используйте приведенный ниже сценарий проверки, который работает для меня.

<script type='text/javascript'>
     var postUrl = '<data:post.url/>';
     document.write("<div class="fb-like" data-href='" + postUrl + "' data-layout="standard" data-action="recommend" data-show-faces="true" data-share="true"></div>");
</script>

Это дает ссылку на каждый пост соответственно.

person HateStackOverFlow    schedule 28.03.2015

Вам действительно не нужен javascript для этого. Вам нужно только указать значение, используя expr:value следующим образом:

<input type="text" expr:value='data:blog.url'/>

Затем вы можете стилизовать его по своему усмотрению, используя встроенный стиль, например:

    <input type="text" expr:value='data:blog.url' style='height:30px; width:100px;' />

Чтобы убедиться, что у вас есть ссылка в нужном месте, вы должны тщательно проверить элементы страницы блога и вставить код в нужное место.

Надеюсь, это поможет.

person Prosper Yole    schedule 19.01.2019