1

StumbleUpon 发布了一个Widget 脚本,并记录了如何使用它来将 stumbleUpon 按钮(他们称之为徽章)插入网站。

您可以使用他们的在线工具为按钮生成标记。它看起来像这样:

<!-- Place this tag where you want the su badge to render -->
<su:badge layout="2" location="http://example.com"></su:badge>

<!-- Place this snippet wherever appropriate -->
<script type="text/javascript">
  (function() {
    var li = document.createElement('script');
    li.type = 'text/javascript';
    li.async = true;
    li.src = 'https://platform.stumbleupon.com/1/widgets.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(li, s);
  })();
</script>

该脚本元素只是延迟加载 widgets.js 事物的一种方式。仅从外观来看,我认为它可以通过扫描文档中的<su:badge>元素并将它们替换为iframes. 然后 iframe 本身从 stumbleupon 获取源内容,网址如下:http://badge.stumbleupon.com/badge/embed/4/?url=http%3A%2F%2Fexample.com.

iframe 在视觉上呈现如下: 在此处输入图像描述

stumbleupon 按钮是第二个。我展示其他的进行比较。如您所见,StumbleUpon 渲染看起来与所有其他人不同。SU 使他们的按钮看起来像一个“徽章”,而所有其他社交分享小部件看起来像......呃....一个按钮。


我正在尝试使 Stumbleupon 小部件看起来像一个按钮。我很确定这是可能的。例如, mashable 就是这样做的(例子)。这是它的样子:

在此处输入图像描述

如您所见,stumbleupon 按钮看起来像一个按钮。这不是徽章。Mashable 没有使用这个su:badge东西——他们已经渲染了自己的<a>标签,并对其进行了样式设置。

视觉渲染不是问题;我可以弄清楚如何使跨度看起来像一个按钮,没问题。当我单击标签或跨度时会出现问题。在我看来,使用 StumbleUpon 使用的 iframe-thing,它会调用此 URL 来提交一个页面以供共享:

http://www.stumbleupon.com/badge/?url=http%3A//example.com/whatever HTTP/1.1

iframe 使用 javascriptwindow.open来请求,并限制调整大小等。这就是它在 mashable 上的工作方式。生成的窗口如下所示:

在此处输入图像描述

这也是可混搭页面所做的,尽管它不使用 iframe。Mashable 页面包含的 javascript 只是直接从主 mashable 页面中打开“stumbleupon submit”窗口。

但是当我从我的页面尝试同样的事情时,固定的小窗口从 StumbleUpon 获得 302 重定向,然后是另一个 302,最终将其指向

http://www.stumbleupon.com/submit/visitor

...不允许共享链接。

这是一个很长的故事,但是:
有没有人知道如何说服 StumbleUpon 让我通过 iframe 中未包含的按钮共享链接或 URL?

mashable 的秘密是什么?

4

1 回答 1

1

好的,这就是我发现的。

当以下两个都为真时,最终将我指向 /submit/visitor 的 302 发生:

  • 用户未登录
  • 该文章之前没有在stumbleupon中被偶然发现

发生这种情况时,stumbleupon 会邀请您(用户)登录。它不会带您进入“提交 url”页面。

如果用户没有登录,但之前已经提交过文章,那么它会将您带到没有 302 的提交窗口。如果您继续提交,最终会要求您登录。但是在这种情况下,stumbleupn 网站的第一个视图会给你一个视觉指示,表明你正在提交一些东西。

如果用户已登录,并且之前没有提交过文章,那么您将直接进入提交页面。


所以我没有做错什么。我只需要第一次登录。这只是 StumbleUpon 提供的用户体验的产物。在我看来,这有点奇怪。这是令人惊讶的,因此是错误的。但那只是我的个人意见。

于 2012-05-16T01:21:38.113 回答