Facebook的Colorbox URL参数

时间:2012-01-09 19:05:55

标签: php jquery character-encoding colorbox

我有一个传递问题?和=通过我的网址,因为我使用drupal(虽然我认为它与drupal或静态网站无关)。

每种媒体内容类型我都需要一个localhost / media / video路径?open =?cbox10

Pathauto模块为每种媒体资产内容类型都有此功能。 媒体/视频?开放=?CBOX [NID]

然后节点url看起来像 http://localhost/media-gallery/images%3Fopen%3D%3Fcbox14

如果我错了,请告诉我,但我相信我现在需要使用php对网址进行编码/解码。这些节点网址中的每一个都需要在视频页面上直接打开彩色框。

我正在调查urlEncodeComponent但不确定如何实现它。我想它会在我的page.tpl.php中,并且只要存在这些字符就被解码。

我可以在jquery或php中编码URL的值吗?

如果有人了解我没有使用的路径自动模块,请告诉我。我已经尝试'不替换'我的别名网址中的特定字符,但它没有按预期工作,因为它仍然显示解码。

我需要对此网址进行编码,以便为我页面上的每个独特内容传递正确的链接以打开图形标记。

目前为每个视频资产页面显示:

<meta property="og:url" content="http://localhost/media-
gallery/images%3Fopen%3D%3Fcbox14" />

需要编码到媒体/视频?open =?cbox14

Jquery根据唯一资产ID

直接打开彩盒
// Colorbox direct linking
  // Get the cb id in url or set false if not found
    var colorboxId = (window.location.href.indexOf('open=')==-1) ?
        false :
        window.location.href.slice(window.location.href.indexOf('open=') + 'open='.length + 1).split('&')[0];

    // Instantiate all colorboxes on the page
    $(".colorbox-inline").colorbox();

    // If id of colorbox was sent in url, open it now
    if(colorboxId !== false) {
    $("#" + colorboxId).colorbox({open:true});
    }   

目前正在测试......不起作用:

    <script>

$(document).ready(function() {
    var ogurl = $('meta[property="og:url"][content]').prop("content");

        $( ogurl ).prop("content", 
            decodeURIComponent( ogurl );
});


    </script>

它适用于它是什么但是如何确保我的网址被正确编码,以便facebook og:url可以获取已解码的网址。

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果你用PHP编写这个,你最好用PHP解码它。

echo '<meta property="og:url" content="' . urldecode("http://localhost/media-
gallery/images%3Fopen%3D%3Fcbox14") . '" />';

否则使用jQuery但我不确定是否可以这样做因为Facebook也执行JavaScript而你应该修改它(例如点击事件)。

$('meta[property="og:url"][content]').each(function() {
    $(this).prop("content", decodeURIComponent($(this).prop("content")));
});