Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态Google plus one+;1个按钮(带有更改的url)_Php_Javascript_Web_Google Plus_Google Plus One - Fatal编程技术网

Php 动态Google plus one+;1个按钮(带有更改的url)

Php 动态Google plus one+;1个按钮(带有更改的url),php,javascript,web,google-plus,google-plus-one,Php,Javascript,Web,Google Plus,Google Plus One,我有一个带有照片库的网站,我希望plus-one按钮指向照片页面,而不是图片库本身,这意味着当用户浏览图像时,我需要动态更改它。正确的方法是什么?来自: 设置+1目标URL +1'd的URL按以下顺序确定: 按钮的href属性 此属性显式定义+1目标URL 页面的标签 如果没有提供+1按钮的href属性,Google将使用页面的规范URL。有关定义页面的规范URL的更多信息,请参阅本帮助文章 document.location.href提供的URL,不推荐使用。 如果这些项目都不存在,Googl

我有一个带有照片库的网站,我希望plus-one按钮指向照片页面,而不是图片库本身,这意味着当用户浏览图像时,我需要动态更改它。正确的方法是什么?

来自:

设置+1目标URL

+1'd的URL按以下顺序确定:

  • 按钮的href属性 此属性显式定义+1目标URL
  • 页面的标签 如果没有提供+1按钮的href属性,Google将使用页面的规范URL。有关定义页面的规范URL的更多信息,请参阅本帮助文章
  • document.location.href提供的URL,不推荐使用。 如果这些项目都不存在,Google将使用DOM中的页面URL。由于此URL可能包含会话ID、锚定或其他参数,而这些参数实际上不是规范URL的一部分,因此强烈建议您为+1按钮设置href属性,或在页面中添加标记
  • 假设您有一组表示不同照片的标记。让我们假设每张照片都由以下内容表示:

    <div class="single-photo">
        <img/>
        <a href="http://single.photo.com/path">My photo</a>
    
    </div>
    
    
    
    添加+1按钮的最简单方法是:

    <div class="single-photo">
        <img/>
        <a href="http://single.photo.com/path">My photo</a>
        <div class="g-plusone" data-href="http://single.photo.com/path" data-other-parameter="other-parameter-value"></div>
    </div>
    
    
    
    通过创建显式呈现的按钮并更改规范链接的href,解决了此问题。如果没有为按钮提供url,它将从规范链接属性获取其url,然后通过重新呈现它,我可以使它每次指向不同的url。

    在head标记中写入以下内容:

    // Load +1 script
    (function() {
      var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
      po.src = 'https://apis.google.com/js/plusone.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    
    HTML代码:

    <div id="plusone_container">
    
    </div>
    
    
    
    并将此jQuery写入要设置+1按钮url的任何位置:

        $("#plusone_container").html('<div id="plusone"></div>');
        gapi.plusone.render("plusone", { "href": "Your URL" });
    
    $(“#plusone_容器”).html(“”);
    render(“plusone”,{“href”:“您的URL”});
    
    我阅读了文档,但是如果我已经有一个按钮从上面的方法之一获取了它的url,我将如何更改它指向的url以响应用户浏览图像?您如何呈现该按钮?有两种不同的选择。您使用的是哪一个?我不确定我是否完全理解您的意思,但我希望使用显式呈现的Javascript呈现它,但不更改页面的规范href。但是,同样,如果有一种特定的方式来渲染它,使它更容易动态更改,那么这就是我将如何渲染它…看看更新的答案。我假设您可以轻松地为每个图像生成路径和url。这样做比使用javascript更容易。答案仍然成立。只需使用类似完整解决方案解释的内容即可获得完整的url。根据文档,您应该能够调用render方法并在data href中传递url。这对我不起作用-它总是停留在页面上的第一个。但是,如果我在每次渲染之前动态更改规范url,并且根本不传递数据href,我可以让它使用新的url。