1

我正在自定义我的 tumblr 模板,我需要访问包含我的照片集的 iframe 的 URL。当我查看我的不倒翁页面的 html 时,我看到:

<figure class="photoset with-caption">
  <div id="photoset_66130132457" class="html_photoset">
    <iframe id="photoset_iframe_66130132457" class="photoset" style="border:0px; background-color:transparent; overflow:hidden;" src="http://blog.kazoova.com/post/66130132457/photoset_iframe/kazoova/tumblr_mvtbtjxyAt1t05bsz/0/false" frameborder="0" height="535" scrolling="no" width="100%">  
    </iframe>
   </div>
</figure>

如何使用 tumblr 变量获取 iframe 中 src 的值?

我可以使用以下代码获取单个图像的 URL,但这不是我想要的:

{block:Photoset}
  {block:Photos}
    {PhotoURL-500}
  {/block:Photos}
{/block:Photoset}

我希望照片集有一个类似于 {PhotoURL-500} 的变量,例如 {PhotosetURL-500}。

请帮忙!

4

2 回答 2

4

如何获取 Photosets iframe src

可悲的是,没有一个theme operator给我们src作为字符串的,我们唯一的选择是{Photoset-500}用作 OP 状态。但是,可以使用theme operators我们拥有的 iframe src。

iframe src 的细分

http://mikedidthis-pierre.tumblr.com/post/37187983482/photoset_iframe/mikedidthis-pierre/tumblr_meih4y5SDi1rkq61e/700/false

我们可以将其分解为 7 个部分:

  1. http://mikedidthis-pierre.tumblr.com/post/
  2. 37187983482/
  3. photoset_iframe/
  4. mikedidthis-pierre/
  5. tumblr_meih4y5SDi1rkq61e/
  6. 700/
  7. /false

1 Tumblr 博客的 URL,前缀为post/. 1 和 2 应串联使用。
2唯一的帖子 ID。
3一个通用的、一致的子目录。
4乍一看像 Tumblr 用户名。由于自定义域,我不会说它是 Tumblr URL。但是,它似乎可以更改为任何内容,只要它包含一个字符。
5唯一的 Tumblr 生成 ID。想想转发键。这是我们真正需要的部分,并且没有theme operators生成它。
6 iframe 的大小(以宽度为单位)。
7阴影模式。我相信将其用于true为照片集中的每张照片添加阴影。

我们可以复制多少?

所以像这样使用可用的主题运算符:

{BlogURL}/post/{PostID}/photoset_iframe/x/ * missing 5 * /700/false

我们几乎可以生成完整的 src!

http://mikedidthis-pierre.tumblr.com/post/37187983482/photoset_iframe/x/ * missing 5 * /700/false

发现 5

坏消息是,我们将需要 javascript。我不会对此进行介绍,但我将解释我们如何获得缺失的信息。如果您将theme operators用于照片集,则只需使用图像 url `{PhotoURL-500}:

http://25.media.tumblr.com/tumblr_meih4y5SDi1rkq61eo4_500.jpg

你能看到5吗?让我们分解一下:

  1. http://25.media.tumblr.com/
  2. tumblr_meih4y5SDi1rkq61e
  3. o4
  4. _500
  5. .jpg

1托管图像的 Tumblr 服务器的地址。
2缺失数据 5.
3这是照片集中图像的编号,所以是第 4 个。但是,我认为这与上传顺序有关,而不是显示顺序。
4图像大小。
5文件扩展名。

那么现在怎么办?

因此,要获得完整的 iframe src,您将需要使用 javscript 查找第 5 部分的数据,然后将其与我们已经从可用的theme operators.

OP 没有说明他们为什么需要 iframe URL。我假设延迟加载,可能与响应有关。

希望能帮助到你!

概念证明:

基于图像的照片集:示例

使用上述信息的基于 iframe 的 Photoset:示例

于 2013-11-07T01:07:17.417 回答
0

我有一个类似的问题 - 我想链接照片集“标题”(我们设置的标题),以便所有帖子标题都是链接并且工作/看起来相同。

我发现@mikedidthis的回答很有帮助。但我玩了一下,我认为iframe src从头开始重建是多余的。

我开始用更多的类更新我的标记并使用以下Javascript -

$('.top.media.photoset.no-link').each(function(){
    $set = $(this);
    var url = $set.find('iframe').attr('src');
    // console.log(url);
    $set.find('.cont').find('a').attr('href',url).end().end().removeClass('no-link');                           
}); 

因为我有延迟加载,我想要一种方法来只设置href每个链接一次,我在类no-link中添加了用于选择器特异性(我也可以搜索 href != "#" 的链接,我想)。

于 2014-02-11T20:12:25.070 回答