Вопрос

как я могу изменить атрибут href моей кнопки Google +1 с помощью jQuery

Кнопка изначально загружается с пустым href.

вот что я пробовал до сих пор

$(document).ready(function () {
    var qrCode = 'A12345';
    var shareLink = "http://<?php echo $_SERVER['HTTP_HOST'];?>/show.php?qrCode="+qrCode;
    $("#shareLink").attr("href", shareLink);
});

<g:plusone size='medium' id='shareLink' annotation='none' href='' callback='countGoogleShares'></g:plusone>
Это было полезно?

Решение 2

Наконец-то я добился того, чтобы все работало так, как я хотел.Я немного реструктурировал код, чтобы он работал.Вместо того, чтобы пытаться изменить атрибут href в document.ready, я создал пустой div, который будет контейнером для кнопки Google Plus, и написал кнопку с правильным href через .html().

//load the google plus javascript api
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
    {"parsetags": "explicit"}
</script>

//create an empty div to be the target of the google plus button
<div id="plusContent"></div>

<script>
    //get the qrcode to append to the url (ajax call in real life)
    var qrCode = 'A12345';

    //build the google plus object text string
    var googleShareLink = "<g:plusone size='medium' id='shareLink' class='shareLink'  annotation='none' href='http://<?php echo $_SERVER['HTTP_HOST'];?>/show.php?qrCode="+qrCode+"' callback='countGoogleShares'></g:plusone>";

    //write the google plus object to the target div
    $("#plusContent").html(googleShareLink);

    //render the +1 buttons in the target location
    gapi.plusone.go("plusContent");
</script>

Другие советы

Используйте JSAPI, чтобы явно отображать кнопку +1 в функции jQuery после установки href.

Выберите тег, используя функцию jQuery's ".next ()". Вам просто нужно поместить выбираемый тег непосредственно перед этой кнопкой.

почему ты хочешь сделать это?

Вам не нужно будет иметь HTML в строке JS.

я создал страница Похоже, где я создал Div, и внутри я поместил свой тег G: Plusone. Я поместил URL в качестве атрибута в Div как «Data-Url», но вам не пришлось бы это делать здесь.

<div class="plusoneContent" data-url="http://www.adamkoch.com/2012/05/04/moz-proxy-issues/">
<g:plusone></g:plusone>
</div>

Тогда я звоню Gapi.plusone.render и передаю URL:

var url = $(this).data('url');
gapi.plusone.render(this, {href: url});

Я использовал следующий код, который работает правильно:

<script type="text/javascript" src="http://apis.google.com/js/plusone.js">
</script>
<div id="plusone-div" class="plusone"></div>
<script type="text/javascript">
    gapi.plusone.render('plusone-div',{"size": "medium", "count": "true", "href": "[http://MySite.Com/]"});
</script>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top